From 5178714da9dc8042b7fb7f308d7ed82fb3845f65 Mon Sep 17 00:00:00 2001 From: wassname Date: Tue, 23 Jan 2018 14:06:23 +0800 Subject: [PATCH] updating to tensorforce 0.3.5.2 --- requirements/requirements.txt | 4 +- tensorforce-PPO-IEET.ipynb | 930 +++++++++++++++++++++++++++------- 2 files changed, 742 insertions(+), 192 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 4416f75..3103bd1 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -3,8 +3,8 @@ gym==0.9.3 tensorflow-gpu==1.3.0 h5py==2.7.0 -# tensorforce 0.3.1 a specific commit -https://github.com/reinforceio/tensorforce/archive/17cf4b84d8fbad9d7c65d1d7bde36faabddd6a36.zip +# tensorforce 0.3.5.2 a specific commit +https://github.com/reinforceio/tensorforce/archive/4b5741d2088869e7f8f40c354bd63762c8d62833.zip # numbers tables==3.4.2 seaborn==0.8 diff --git a/tensorforce-PPO-IEET.ipynb b/tensorforce-PPO-IEET.ipynb index 0713ec6..e49f48d 100644 --- a/tensorforce-PPO-IEET.ipynb +++ b/tensorforce-PPO-IEET.ipynb @@ -14,8 +14,8 @@ "execution_count": 1, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:13.266006Z", - "start_time": "2017-11-12T23:19:11.514079Z" + "end_time": "2018-01-23T04:18:18.300900Z", + "start_time": "2018-01-23T04:18:16.224878Z" }, "collapsed": true }, @@ -56,8 +56,8 @@ "execution_count": 2, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:13.389088Z", - "start_time": "2017-11-12T23:19:13.268055Z" + "end_time": "2018-01-23T04:18:18.340130Z", + "start_time": "2018-01-23T04:18:18.302674Z" }, "collapsed": true }, @@ -73,8 +73,8 @@ "execution_count": 3, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:13.426379Z", - "start_time": "2017-11-12T23:19:13.390716Z" + "end_time": "2018-01-23T04:18:18.393561Z", + "start_time": "2018-01-23T04:18:18.341894Z" }, "collapsed": true }, @@ -91,15 +91,15 @@ "execution_count": 4, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:13.466918Z", - "start_time": "2017-11-12T23:19:13.430051Z" + "end_time": "2018-01-23T04:18:18.445868Z", + "start_time": "2018-01-23T04:18:18.395295Z" } }, "outputs": [ { "data": { "text/plain": [ - "'./outputs/tensorforce-PPO/tensorforce_PPO_crypto_20171105_06-50-31'" + "'./outputs/tensorforce-PPO/tensorforce_PPO_crypto-20180123_04-18-18'" ] }, "execution_count": 4, @@ -115,7 +115,7 @@ "import datetime\n", "ts = datetime.datetime.utcnow().strftime('%Y%m%d_%H-%M-%S')\n", "save_path = './outputs/tensorforce-PPO/tensorforce_PPO_crypto-%s' % ts\n", - "save_path = './outputs/tensorforce-PPO/tensorforce_PPO_crypto_20171105_06-50-31'\n", + "# save_path = './outputs/tensorforce-PPO/tensorforce_PPO_crypto_20171105_06-50-31'\n", "save_path" ] }, @@ -133,15 +133,15 @@ "execution_count": 5, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:13.547225Z", - "start_time": "2017-11-12T23:19:13.470766Z" + "end_time": "2018-01-23T04:18:18.489359Z", + "start_time": "2018-01-23T04:18:18.449070Z" } }, "outputs": [ { "data": { "text/plain": [ - "'logs/tensorforce_PPO_crypto_20171105_06-50-31/run-20171112_23-19-13'" + "'logs/tensorforce_PPO_crypto-20180123_04-18-18/run-20180123_04-18-18'" ] }, "execution_count": 5, @@ -175,9 +175,10 @@ "execution_count": 6, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:13.782496Z", - "start_time": "2017-11-12T23:19:13.551168Z" - } + "end_time": "2018-01-23T04:18:18.656543Z", + "start_time": "2018-01-23T04:18:18.491149Z" + }, + "collapsed": true }, "outputs": [], "source": [ @@ -187,11 +188,11 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 22, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:13.898899Z", - "start_time": "2017-11-12T23:19:13.786267Z" + "end_time": "2018-01-23T06:05:10.986285Z", + "start_time": "2018-01-23T06:05:10.936528Z" }, "collapsed": true }, @@ -203,16 +204,17 @@ "class TFOpenAIGymCust(OpenAIGym):\n", " def __init__(self, gym_id, gym):\n", " self.gym_id = gym_id\n", - " self.gym = gym" + " self.gym = gym\n", + " self.visualize = False" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 23, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:13.959906Z", - "start_time": "2017-11-12T23:19:13.900497Z" + "end_time": "2018-01-23T06:05:11.756660Z", + "start_time": "2018-01-23T06:05:11.675101Z" } }, "outputs": [ @@ -222,7 +224,7 @@ "[0]" ] }, - "execution_count": 8, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -236,6 +238,7 @@ " trading_cost=0.0025, \n", " window_length = window_length,\n", " output_mode='EIIE',\n", + "# random_reset=False,\n", ")\n", "# wrap it in a few wrappers\n", "env = ConcatStates(env)\n", @@ -250,8 +253,8 @@ "execution_count": null, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T06:10:34.259707Z", - "start_time": "2017-11-12T06:10:34.217310Z" + "end_time": "2018-01-23T04:01:11.265182Z", + "start_time": "2018-01-23T04:01:11.217222Z" } }, "outputs": [], @@ -259,21 +262,21 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 24, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:13.992876Z", - "start_time": "2017-11-12T23:19:13.961488Z" + "end_time": "2018-01-23T06:05:12.970604Z", + "start_time": "2018-01-23T06:05:12.866462Z" } }, "outputs": [ { "data": { "text/plain": [ - "(3, 51, 3)" + "(3, 51, 4)" ] }, - "execution_count": 9, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -290,15 +293,15 @@ "execution_count": 10, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:14.023039Z", - "start_time": "2017-11-12T23:19:13.994636Z" + "end_time": "2018-01-23T04:18:18.923913Z", + "start_time": "2018-01-23T04:18:18.885001Z" } }, "outputs": [ { "data": { "text/plain": [ - "(3, 51, 3)" + "(3, 51, 4)" ] }, "execution_count": 10, @@ -334,14 +337,13 @@ "execution_count": 11, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:32.641647Z", - "start_time": "2017-11-12T23:19:14.024832Z" - }, - "collapsed": true + "end_time": "2018-01-23T04:18:19.818282Z", + "start_time": "2018-01-23T04:18:18.925668Z" + } }, "outputs": [], "source": [ - "from tensorforce import Configuration\n", + "# from tensorforce import Configuration\n", "from tensorforce.agents import PPOAgent\n", "from tensorforce.core.networks import LayeredNetwork, layers, Network, network" ] @@ -364,8 +366,8 @@ "execution_count": 12, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:19:33.068774Z", - "start_time": "2017-11-12T23:19:32.646922Z" + "end_time": "2018-01-23T04:18:20.373983Z", + "start_time": "2018-01-23T04:18:19.821375Z" }, "collapsed": true }, @@ -498,7 +500,7 @@ "# Network as list of layers\n", "network_spec = [\n", " dict(type='EIIE', \n", - " l1_regularization=1e-8,\n", + " l1_regularization=1e-8,\n", " l2_regularization=1e-8),\n", " dict(type='flatten')\n", "]" @@ -506,11 +508,11 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 13, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:38:31.988172Z", - "start_time": "2017-11-12T23:38:31.948872Z" + "end_time": "2018-01-23T04:18:20.460505Z", + "start_time": "2018-01-23T04:18:20.375491Z" }, "collapsed": true }, @@ -549,11 +551,11 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 16, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:38:38.921235Z", - "start_time": "2017-11-12T23:38:32.455152Z" + "end_time": "2018-01-23T04:20:15.923322Z", + "start_time": "2018-01-23T04:19:27.639287Z" }, "scrolled": true }, @@ -562,7 +564,546 @@ "name": "stdout", "output_type": "stream", "text": [ - "\n", + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,287] Summary name gradients/ppo/optimization/moments/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,296] Summary name gradients/ppo/optimization/moments/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_1/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_1/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_1/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_1/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,307] Summary name gradients/ppo/optimization/moments_1/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_1/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_1/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_1/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_1/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_1/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,315] Summary name gradients/ppo/optimization/moments_1/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_1/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_2/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_2/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_2/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_2/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,326] Summary name gradients/ppo/optimization/moments_2/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_2/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_2/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_2/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_2/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_2/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,333] Summary name gradients/ppo/optimization/moments_2/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_2/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_3/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_3/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_3/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_3/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,345] Summary name gradients/ppo/optimization/moments_3/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_3/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_3/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_3/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_3/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_3/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,351] Summary name gradients/ppo/optimization/moments_3/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_3/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_4/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_4/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_4/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_4/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,372] Summary name gradients/ppo/optimization/moments_4/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_4/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_4/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_4/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_4/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_4/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,384] Summary name gradients/ppo/optimization/moments_4/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_4/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_5/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_5/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_5/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_5/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,404] Summary name gradients/ppo/optimization/moments_5/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_5/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_5/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_5/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_5/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_5/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,410] Summary name gradients/ppo/optimization/moments_5/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_5/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_6/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_6/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_6/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_6/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,429] Summary name gradients/ppo/optimization/moments_6/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_6/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_6/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_6/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_6/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_6/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,434] Summary name gradients/ppo/optimization/moments_6/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_6/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_7/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_7/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_7/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_7/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,464] Summary name gradients/ppo/optimization/moments_7/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_7/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_7/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_7/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_7/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_7/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,473] Summary name gradients/ppo/optimization/moments_7/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_7/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_8/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_8/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_8/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_8/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,482] Summary name gradients/ppo/optimization/moments_8/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_8/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_8/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_8/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_8/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_8/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,486] Summary name gradients/ppo/optimization/moments_8/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_8/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_9/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_9/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_9/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_9/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,501] Summary name gradients/ppo/optimization/moments_9/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_9/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_9/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_9/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_9/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_9/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,504] Summary name gradients/ppo/optimization/moments_9/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_9/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_10/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_10/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_10/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_10/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,521] Summary name gradients/ppo/optimization/moments_10/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_10/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_10/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_10/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_10/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_10/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,524] Summary name gradients/ppo/optimization/moments_10/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_10/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_11/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_11/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_11/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_11/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,542] Summary name gradients/ppo/optimization/moments_11/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_11/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_11/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_11/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_11/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_11/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,545] Summary name gradients/ppo/optimization/moments_11/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_11/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_12/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_12/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_12/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_12/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,554] Summary name gradients/ppo/optimization/moments_12/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_12/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_12/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_12/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_12/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_12/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,557] Summary name gradients/ppo/optimization/moments_12/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_12/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_13/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_13/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_13/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_13/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,566] Summary name gradients/ppo/optimization/moments_13/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_13/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_13/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_13/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_13/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_13/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,569] Summary name gradients/ppo/optimization/moments_13/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_13/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_14/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_14/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_14/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_14/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,577] Summary name gradients/ppo/optimization/moments_14/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_14/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_14/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_14/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_14/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_14/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,588] Summary name gradients/ppo/optimization/moments_14/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_14/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_15/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_15/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_15/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_15/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,601] Summary name gradients/ppo/optimization/moments_15/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_15/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_15/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_15/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_15/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_15/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,606] Summary name gradients/ppo/optimization/moments_15/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_15/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_16/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_16/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_16/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_16/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,619] Summary name gradients/ppo/optimization/moments_16/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_16/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_16/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_16/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_16/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_16/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,622] Summary name gradients/ppo/optimization/moments_16/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_16/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_17/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_17/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_17/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_17/Squeeze_1_0/mean instead.\n", + "[2018-01-23 12:19:30,641] Summary name gradients/ppo/optimization/moments_17/Squeeze_1:0/mean is illegal; using gradients/ppo/optimization/moments_17/Squeeze_1_0/mean instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_17/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_17/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Summary name gradients/ppo/optimization/moments_17/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_17/Squeeze_1_0/variance instead.\n", + "[2018-01-23 12:19:30,652] Summary name gradients/ppo/optimization/moments_17/Squeeze_1:0/variance is illegal; using gradients/ppo/optimization/moments_17/Squeeze_1_0/variance instead.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ "INFO:tensorflow:Create CheckpointSaverHook.\n" ] }, @@ -571,97 +1112,85 @@ "output_type": "stream", "text": [ "INFO:tensorflow:Create CheckpointSaverHook.\n", - "[2017-11-13 07:38:37,010] Create CheckpointSaverHook.\n" + "[2018-01-23 12:19:45,664] Create CheckpointSaverHook.\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ - "INFO:tensorflow:Restoring parameters from ./outputs/tensorforce-PPO/tensorforce_PPO_crypto_20171105_06-50-31/model.ckpt-11920000\n" + "INFO:tensorflow:Saving checkpoints for 0 into ./outputs/tensorforce-PPO/tensorforce_PPO_crypto-20180123_04-18-18/model.ckpt.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ - "INFO:tensorflow:Restoring parameters from ./outputs/tensorforce-PPO/tensorforce_PPO_crypto_20171105_06-50-31/model.ckpt-11920000\n", - "[2017-11-13 07:38:37,497] Restoring parameters from ./outputs/tensorforce-PPO/tensorforce_PPO_crypto_20171105_06-50-31/model.ckpt-11920000\n", - "WARNING:PPOAgent:Configuration values not accessed: local_model, summary_logdir, summary_frequency, cluster_spec, task_index, parameter_server, distributions, summary_labels, replica_model\n", - "[2017-11-13 07:38:38,256] Configuration values not accessed: local_model, summary_logdir, summary_frequency, cluster_spec, task_index, parameter_server, distributions, summary_labels, replica_model\n" + "INFO:tensorflow:Saving checkpoints for 0 into ./outputs/tensorforce-PPO/tensorforce_PPO_crypto-20180123_04-18-18/model.ckpt.\n", + "[2018-01-23 12:20:13,476] Saving checkpoints for 0 into ./outputs/tensorforce-PPO/tensorforce_PPO_crypto-20180123_04-18-18/model.ckpt.\n" ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Saving checkpoints for 11920000 into ./outputs/tensorforce-PPO/tensorforce_PPO_crypto_20171105_06-50-31/model.ckpt.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:tensorflow:Saving checkpoints for 11920000 into ./outputs/tensorforce-PPO/tensorforce_PPO_crypto_20171105_06-50-31/model.ckpt.\n", - "[2017-11-13 07:38:38,299] Saving checkpoints for 11920000 into ./outputs/tensorforce-PPO/tensorforce_PPO_crypto_20171105_06-50-31/model.ckpt.\n" - ] - }, - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" } ], "source": [ - "\n", - "exploration=dict(\n", + "explorations_spec=dict(\n", " type=\"epsilon_anneal\",\n", - " epsilon=1,\n", - " epsilon_final= 0.005,\n", - " epsilon_timesteps= 1e5,\n", - " start_after=0,\n", + " initial_epsilon=1.0,\n", + " final_epsilon= 0.005,\n", + " timesteps= int(1e5),\n", + " start_timestep=0,\n", ")\n", "\n", - "# exploration = tensorforce.core.explorations.EpsilonAnneal(**exploration)\n", - "config = Configuration( \n", - " batch_size=batch_size,\n", - " \n", - " # Each agent requires the following ``Configuration`` parameters:\n", - " preprocessing = None,# dict or list containing state preprocessing configuration.\n", - " exploration = exploration, #{'action' + str(n): exploration for n in range(env.action_space.shape[0])}, # dict containing action exploration configuration.\n", - " reward_preprocessing=None,\n", - " \n", - " # BatchAgent\n", - " keep_last_timestep=True,\n", + "# I want to use a gaussian dist instead of beta, we will apply post processing to scale everything\n", + "# actions_spec = environment.actions.copy()\n", + "# del actions_spec[\"min_value\"]\n", + "# del actions_spec[\"max_value\"]\n", + "# distributions_spec=dict(action=dict(type='gaussian', mean=0.25, log_stddev=np.log(5e-2)))\n", "\n", - " # PPOAgent\n", - " step_optimizer=dict(\n", - " type='adam',\n", - " learning_rate = 1e-3, # float of learning rate (alpha). (3e-4 in paper 1e-3 (atari) and 3e-4 in baselines)\n", - " ),\n", - " optimization_steps=4,\n", - " \n", - " # Each model requires the following configuration parameters:\n", - " # https://github.com/reinforceio/tensorforce/blob/master/tensorforce/models/model.py#L33\n", - " scope='ppo',\n", - " discount = 0.97, # float of discount factor (gamma).\n", + "# Or just use beta:\n", + "actions_spec = environment.actions.copy()\n", + "distributions_spec=None\n", + "\n", + "# https://github.com/reinforceio/tensorforce/blob/d823809df746c61471e2cba5832ab051581baf7e/docs/summary_spec.md\n", + "summary_spec = dict(directory=log_dir, \n", + " steps=50,\n", + " labels=[\n", + " 'configuration',\n", + " 'gradients_scalar',\n", + " 'regularization',\n", + " 'inputs',\n", + " 'losses',\n", + "# 'variables'\n", + " ]\n", + " )\n", + "agent = PPOAgent(\n", + " states_spec=environment.states,\n", + " actions_spec=actions_spec,\n", + " network_spec=network_spec,\n", + " batch_size=4096,\n", " saver_spec = dict(\n", " directory=save_path, \n", " steps=100000, \n", "# basename=os.path.basename(save_path)\n", " ),\n", - " \n", + " # Agent\n", + " states_preprocessing_spec=None,\n", + " explorations_spec=explorations_spec,\n", + " reward_preprocessing_spec=None,\n", + " # BatchAgent\n", + " keep_last_timestep=True,\n", + " # PPOAgent\n", + " step_optimizer=dict(\n", + " type='adam',\n", + " learning_rate=1e-3\n", + " ),\n", + " optimization_steps=10,\n", + " # Model\n", + " scope='ppo',\n", + " discount=0.99,\n", " # DistributionModel\n", - " distributions=dict(action=dict(type='gaussian', mean=0.25, log_stddev=np.log(5e-2))),\n", + " distributions_spec=distributions_spec,\n", " entropy_regularization=0.01, # 0 and 0.01 in baselines\n", - " \n", " # PGModel\n", - "# baseline_mode='network', # states or network\n", " baseline_mode='states',\n", " baseline=dict(\n", " type=\"EIIE\",\n", @@ -669,44 +1198,26 @@ "# update_batch_size=512,\n", " ), # string indicating the baseline value function (currently 'linear' or 'mlp').\n", " baseline_optimizer=dict(type='adam', learning_rate=0.003),\n", - " gae_lambda=0.5,\n", - " normalize_rewards=False,\n", - " \n", + " gae_lambda=0.97,\n", " # PGLRModel\n", - " likelihood_ratio_clipping=0.2, # Trust region clipping 0.2 in paper\n", - " \n", - " # Logging\n", - " log_level = 'info', # string containing log level (e.g. 'info').\n", - " \n", - " # Tensorflow summaries\n", - " summary_logdir = log_dir, # string directory to write tensorflow summaries. Default None\n", - " summary_labels=['total-loss'],\n", - " summary_frequency=10,\n", - " \n", - " # TensorFlow distributed configuration\n", - " cluster_spec=None,\n", - " parameter_server=False,\n", - " task_index=0,\n", - " device=None,\n", - " local_model=False,\n", - " replica_model=False,\n", - ")\n", - "\n", - "# I want to use a gaussian dist instead of beta, we will apply post processing to scale everything\n", - "actions_spec = environment.actions.copy()\n", - "del actions_spec[\"min_value\"]\n", - "del actions_spec[\"max_value\"]\n", - "\n", - "# Create an agent\n", - "agent = PPOAgent(\n", - " states_spec=environment.states,\n", - " actions_spec=actions_spec,\n", - " network_spec=network_spec,\n", - " config=config\n", - ")\n", - "agent" + " likelihood_ratio_clipping=0.2,\n", + " summary_spec=summary_spec,\n", + " distributed_spec=None\n", + ")" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "ExecuteTime": { + "end_time": "2018-01-23T04:19:14.046363Z", + "start_time": "2018-01-23T04:18:45.267535Z" + } + }, + "outputs": [], + "source": [] + }, { "cell_type": "markdown", "metadata": {}, @@ -718,11 +1229,11 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 17, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:38:39.044918Z", - "start_time": "2017-11-12T23:38:38.923845Z" + "end_time": "2018-01-23T04:20:27.919593Z", + "start_time": "2018-01-23T04:20:27.812166Z" }, "collapsed": true }, @@ -746,11 +1257,11 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 25, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:38:39.092835Z", - "start_time": "2017-11-12T23:38:39.049877Z" + "end_time": "2018-01-23T06:05:16.756768Z", + "start_time": "2018-01-23T06:05:16.711533Z" }, "collapsed": true }, @@ -762,11 +1273,11 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 26, "metadata": { "ExecuteTime": { - "end_time": "2017-11-12T23:38:46.320510Z", - "start_time": "2017-11-12T23:38:39.094733Z" + "end_time": "2018-01-23T06:05:22.292189Z", + "start_time": "2018-01-23T06:05:17.511348Z" }, "scrolled": true }, @@ -774,8 +1285,28 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "9e68de5a37654c2b8a128e5ce27bcbcf" - } + "model_id": "90ab253fa21a4dae8e8c1059f87191e2", + "version_major": 2, + "version_minor": 0 + }, + "text/html": [ + "

Failed to display Jupyter Widget of type HBox.

\n", + "

\n", + " If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n", + " that the widgets JavaScript is still loading. If this message persists, it\n", + " likely means that the widgets JavaScript library is either not installed or\n", + " not enabled. See the Jupyter\n", + " Widgets Documentation for setup instructions.\n", + "

\n", + "

\n", + " If you're reading this message in another frontend (for example, a static\n", + " rendering on GitHub or NBViewer),\n", + " it may mean that your frontend doesn't currently support widgets.\n", + "

\n" + ], + "text/plain": [ + "HBox(children=(IntProgress(value=0, max=1200), HTML(value='')))" + ] }, "metadata": {}, "output_type": "display_data" @@ -784,31 +1315,16 @@ "name": "stdout", "output_type": "stream", "text": [ - "TensorBoardLogger started. Run `tensorboard --logdir=/media/oldhome/wassname/Documents/projects/rl-portfolio-gh/rl-portfolio-management/logs/tensorforce_PPO_crypto_20171105_06-50-31` to visualize\n", - "ep reward: 0.00004160 [-0.00008149, 0.00046759], portfolio_value: 1.0706 mdd=-2.22% sharpe=1.8574, expl= 0.50% eps=298000 weights={'DASHBTC': 0.0, 'LTCBTC': 0.5, 'XMRBTC': 0.0}\n" + "TensorBoardLogger started. Run `tensorboard --logdir=/media/oldhome/wassname/Documents/projects/rl-portfolio-gh/rl-portfolio-management-gh/logs/tensorforce_PPO_crypto-20180123_04-18-18` to visualize\n", + "INFO:tensorflow:Saving checkpoints for 442301 into ./outputs/tensorforce-PPO/tensorforce_PPO_crypto-20180123_04-18-18/model.ckpt.\n" ] }, { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0mmean_of\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1000\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0mlog_dir\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlog_dir\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 12\u001b[0;31m \u001b[0msession\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrunner\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0magent\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msession\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 13\u001b[0m )\n\u001b[1;32m 14\u001b[0m )\n", - "\u001b[0;32m/media/oldhome/wassname/Documents/projects/tensorforce2/tensorforce0.3.1/tensorforce/execution/runner.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, timesteps, episodes, max_episode_timesteps, deterministic, episode_finished)\u001b[0m\n\u001b[1;32m 109\u001b[0m \u001b[0mterminal\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 110\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 111\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0magent\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mobserve\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mterminal\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mterminal\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreward\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mreward\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 112\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 113\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mepisode_timestep\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/media/oldhome/wassname/Documents/projects/tensorforce2/tensorforce0.3.1/tensorforce/agents/batch_agent.py\u001b[0m in \u001b[0;36mobserve\u001b[0;34m(self, terminal, reward)\u001b[0m\n\u001b[1;32m 86\u001b[0m \u001b[0mactions\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbatch_actions\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 87\u001b[0m \u001b[0mterminal\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbatch_terminal\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 88\u001b[0;31m \u001b[0mreward\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbatch_reward\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 89\u001b[0m )\n\u001b[1;32m 90\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreset_batch\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/media/oldhome/wassname/Documents/projects/tensorforce2/tensorforce0.3.1/tensorforce/models/model.py\u001b[0m in \u001b[0;36mupdate\u001b[0;34m(self, states, internals, actions, terminal, reward, return_loss_per_instance)\u001b[0m\n\u001b[1;32m 890\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate_input\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 891\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 892\u001b[0;31m \u001b[0mfetched\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmonitored_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfetches\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfetches\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfeed_dict\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 893\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 894\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mreturn_loss_per_instance\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.5.3/envs/jupyter3/lib/python3.5/site-packages/tensorflow/python/training/monitored_session.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 516\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfeed_dict\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 517\u001b[0m \u001b[0moptions\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 518\u001b[0;31m run_metadata=run_metadata)\n\u001b[0m\u001b[1;32m 519\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 520\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mshould_stop\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.5.3/envs/jupyter3/lib/python3.5/site-packages/tensorflow/python/training/monitored_session.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 816\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 817\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 818\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 819\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 820\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.5.3/envs/jupyter3/lib/python3.5/site-packages/tensorflow/python/training/monitored_session.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 970\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfeed_dict\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 971\u001b[0m \u001b[0moptions\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0moptions\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 972\u001b[0;31m run_metadata=run_metadata)\n\u001b[0m\u001b[1;32m 973\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 974\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mhook\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_hooks\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.5.3/envs/jupyter3/lib/python3.5/site-packages/tensorflow/python/training/monitored_session.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 816\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 817\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 818\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 819\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 820\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.5.3/envs/jupyter3/lib/python3.5/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 893\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 894\u001b[0m result = self._run(None, fetches, feed_dict, options_ptr,\n\u001b[0;32m--> 895\u001b[0;31m run_metadata_ptr)\n\u001b[0m\u001b[1;32m 896\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 897\u001b[0m \u001b[0mproto_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTF_GetBuffer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun_metadata_ptr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.5.3/envs/jupyter3/lib/python3.5/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_run\u001b[0;34m(self, handle, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 1122\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfinal_fetches\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mfinal_targets\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mhandle\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mfeed_dict_tensor\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1123\u001b[0m results = self._do_run(handle, final_targets, final_fetches,\n\u001b[0;32m-> 1124\u001b[0;31m feed_dict_tensor, options, run_metadata)\n\u001b[0m\u001b[1;32m 1125\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1126\u001b[0m \u001b[0mresults\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.5.3/envs/jupyter3/lib/python3.5/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_run\u001b[0;34m(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 1319\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhandle\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1320\u001b[0m return self._do_call(_run_fn, self._session, feeds, fetches, targets,\n\u001b[0;32m-> 1321\u001b[0;31m options, run_metadata)\n\u001b[0m\u001b[1;32m 1322\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1323\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_do_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_prun_fn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhandle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeeds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetches\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.5.3/envs/jupyter3/lib/python3.5/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_call\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 1325\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_do_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1326\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1327\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1328\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOpError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1329\u001b[0m \u001b[0mmessage\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcompat\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_text\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmessage\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/.pyenv/versions/3.5.3/envs/jupyter3/lib/python3.5/site-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_run_fn\u001b[0;34m(session, feed_dict, fetch_list, target_list, options, run_metadata)\u001b[0m\n\u001b[1;32m 1304\u001b[0m return tf_session.TF_Run(session, options,\n\u001b[1;32m 1305\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget_list\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1306\u001b[0;31m status, run_metadata)\n\u001b[0m\u001b[1;32m 1307\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1308\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_prun_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msession\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhandle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:tensorflow:Saving checkpoints for 442301 into ./outputs/tensorforce-PPO/tensorforce_PPO_crypto-20180123_04-18-18/model.ckpt.\n", + "[2018-01-23 14:05:19,833] Saving checkpoints for 442301 into ./outputs/tensorforce-PPO/tensorforce_PPO_crypto-20180123_04-18-18/model.ckpt.\n" ] } ], @@ -830,16 +1346,17 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2017-11-12T06:07:24.082729Z", "start_time": "2017-11-12T06:07:24.038681Z" - } + }, + "collapsed": true }, - "outputs": [], - "source": [] + "source": [ + "# History" + ] }, { "cell_type": "code", @@ -896,7 +1413,8 @@ "ExecuteTime": { "end_time": "2017-11-12T06:06:52.676576Z", "start_time": "2017-11-12T06:06:52.632828Z" - } + }, + "collapsed": true }, "outputs": [], "source": [] @@ -1728,7 +2246,8 @@ "ExecuteTime": { "end_time": "2017-11-12T23:22:30.507891Z", "start_time": "2017-11-12T23:19:11.316Z" - } + }, + "collapsed": true }, "outputs": [], "source": [ @@ -1861,7 +2380,8 @@ "ExecuteTime": { "end_time": "2017-11-12T23:47:21.291676Z", "start_time": "2017-11-12T23:47:21.237822Z" - } + }, + "collapsed": true }, "outputs": [], "source": [ @@ -1875,7 +2395,8 @@ "ExecuteTime": { "end_time": "2017-11-12T23:47:21.336956Z", "start_time": "2017-11-12T23:47:21.293447Z" - } + }, + "collapsed": true }, "outputs": [], "source": [ @@ -2044,8 +2565,37 @@ "threshold": 4, "toc_cell": false, "toc_section_display": "block", - "toc_window_display": false, + "toc_window_display": true, "widenNotebook": false + }, + "varInspector": { + "cols": { + "lenName": 16, + "lenType": 16, + "lenVar": 40 + }, + "kernels_config": { + "python": { + "delete_cmd_postfix": "", + "delete_cmd_prefix": "del ", + "library": "var_list.py", + "varRefreshCmd": "print(var_dic_list())" + }, + "r": { + "delete_cmd_postfix": ") ", + "delete_cmd_prefix": "rm(", + "library": "var_list.r", + "varRefreshCmd": "cat(var_dic_list()) " + } + }, + "types_to_exclude": [ + "module", + "function", + "builtin_function_or_method", + "instance", + "_Feature" + ], + "window_display": false } }, "nbformat": 4,