{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Kerasを使った関数近似のサンプルコード\n", "- sin関数に従って作ったランダムデータから,sin関数をニューラルネットで学習します." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 学習に使うsin関数に従ったランダムデータの作成\n", "- 学習データ 800件, テストデータ 200件" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [], "source": [ "%matplotlib inline\n", "\n", "import seaborn\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", "X = np.random.random(1000) * 10 - 5\n", "Y = np.sin(X)\n", "\n", "training_num = 800\n", "idx = np.arange(1000)\n", "np.random.shuffle(idx)\n", "training_idx = idx[:training_num]\n", "test_idx = idx[training_num:]\n", "\n", "trainingX, testX = X[training_idx], X[test_idx]\n", "trainingY, testY = np.sin(trainingX), np.sin(testX)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### sin関数を学習するためのニューラルネットワークの形状を定義" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "____________________________________________________________________________________________________\n", "Layer (type) Output Shape Param # Connected to \n", "====================================================================================================\n", "dense_4 (Dense) (None, 30) 60 dense_input_2[0][0] \n", "____________________________________________________________________________________________________\n", "activation_3 (Activation) (None, 30) 0 dense_4[0][0] \n", "____________________________________________________________________________________________________\n", "dense_5 (Dense) (None, 30) 930 activation_3[0][0] \n", "____________________________________________________________________________________________________\n", "activation_4 (Activation) (None, 30) 0 dense_5[0][0] \n", "____________________________________________________________________________________________________\n", "dense_6 (Dense) (None, 1) 31 activation_4[0][0] \n", "====================================================================================================\n", "Total params: 1021\n", "____________________________________________________________________________________________________\n" ] } ], "source": [ "from keras.models import Sequential\n", "from keras.layers.core import Dense, Activation\n", "\n", "model = Sequential()\n", "model.add(Dense(30, input_shape=(1,)))\n", "model.add(Activation(\"sigmoid\"))\n", "model.add(Dense(30))\n", "model.add(Activation(\"sigmoid\"))\n", "model.add(Dense(1))\n", "model.summary()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 学習データを使って,sin関数を学習\n", "- ミニバッチ確率的勾配降下法を**100iteration**回して,どの程度学習できるか試してみる" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 720 samples, validate on 80 samples\n", "Epoch 1/100\n", "0s - loss: 1.0418 - val_loss: 0.7496\n", "Epoch 2/100\n", "0s - loss: 0.5749 - val_loss: 0.6715\n", "Epoch 3/100\n", "0s - loss: 0.5439 - val_loss: 0.6627\n", "Epoch 4/100\n", "0s - loss: 0.5405 - val_loss: 0.6615\n", "Epoch 5/100\n", "0s - loss: 0.5395 - val_loss: 0.6593\n", "Epoch 6/100\n", "0s - loss: 0.5387 - val_loss: 0.6575\n", "Epoch 7/100\n", "0s - loss: 0.5387 - val_loss: 0.6570\n", "Epoch 8/100\n", "0s - loss: 0.5374 - val_loss: 0.6584\n", "Epoch 9/100\n", "0s - loss: 0.5363 - val_loss: 0.6572\n", "Epoch 10/100\n", "0s - loss: 0.5352 - val_loss: 0.6563\n", "Epoch 11/100\n", "0s - loss: 0.5346 - val_loss: 0.6561\n", "Epoch 12/100\n", "0s - loss: 0.5337 - val_loss: 0.6550\n", "Epoch 13/100\n", "0s - loss: 0.5336 - val_loss: 0.6540\n", "Epoch 14/100\n", "0s - loss: 0.5333 - val_loss: 0.6532\n", "Epoch 15/100\n", "0s - loss: 0.5320 - val_loss: 0.6530\n", "Epoch 16/100\n", "0s - loss: 0.5310 - val_loss: 0.6531\n", "Epoch 17/100\n", "0s - loss: 0.5305 - val_loss: 0.6533\n", "Epoch 18/100\n", "0s - loss: 0.5301 - val_loss: 0.6512\n", "Epoch 19/100\n", "0s - loss: 0.5297 - val_loss: 0.6515\n", "Epoch 20/100\n", "0s - loss: 0.5292 - val_loss: 0.6508\n", "Epoch 21/100\n", "0s - loss: 0.5286 - val_loss: 0.6516\n", "Epoch 22/100\n", "0s - loss: 0.5281 - val_loss: 0.6517\n", "Epoch 23/100\n", "0s - loss: 0.5294 - val_loss: 0.6501\n", "Epoch 24/100\n", "0s - loss: 0.5277 - val_loss: 0.6493\n", "Epoch 25/100\n", "0s - loss: 0.5277 - val_loss: 0.6505\n", "Epoch 26/100\n", "0s - loss: 0.5265 - val_loss: 0.6489\n", "Epoch 27/100\n", "0s - loss: 0.5258 - val_loss: 0.6500\n", "Epoch 28/100\n", "0s - loss: 0.5256 - val_loss: 0.6491\n", "Epoch 29/100\n", "0s - loss: 0.5249 - val_loss: 0.6497\n", "Epoch 30/100\n", "0s - loss: 0.5247 - val_loss: 0.6485\n", "Epoch 31/100\n", "0s - loss: 0.5246 - val_loss: 0.6474\n", "Epoch 32/100\n", "0s - loss: 0.5246 - val_loss: 0.6474\n", "Epoch 33/100\n", "0s - loss: 0.5240 - val_loss: 0.6476\n", "Epoch 34/100\n", "0s - loss: 0.5238 - val_loss: 0.6471\n", "Epoch 35/100\n", "0s - loss: 0.5232 - val_loss: 0.6468\n", "Epoch 36/100\n", "0s - loss: 0.5233 - val_loss: 0.6455\n", "Epoch 37/100\n", "0s - loss: 0.5224 - val_loss: 0.6458\n", "Epoch 38/100\n", "0s - loss: 0.5227 - val_loss: 0.6460\n", "Epoch 39/100\n", "0s - loss: 0.5232 - val_loss: 0.6444\n", "Epoch 40/100\n", "0s - loss: 0.5225 - val_loss: 0.6447\n", "Epoch 41/100\n", "0s - loss: 0.5219 - val_loss: 0.6463\n", "Epoch 42/100\n", "0s - loss: 0.5212 - val_loss: 0.6481\n", "Epoch 43/100\n", "0s - loss: 0.5213 - val_loss: 0.6470\n", "Epoch 44/100\n", "0s - loss: 0.5204 - val_loss: 0.6451\n", "Epoch 45/100\n", "0s - loss: 0.5201 - val_loss: 0.6450\n", "Epoch 46/100\n", "0s - loss: 0.5200 - val_loss: 0.6437\n", "Epoch 47/100\n", "0s - loss: 0.5201 - val_loss: 0.6441\n", "Epoch 48/100\n", "0s - loss: 0.5205 - val_loss: 0.6444\n", "Epoch 49/100\n", "0s - loss: 0.5199 - val_loss: 0.6437\n", "Epoch 50/100\n", "0s - loss: 0.5190 - val_loss: 0.6452\n", "Epoch 51/100\n", "0s - loss: 0.5191 - val_loss: 0.6444\n", "Epoch 52/100\n", "0s - loss: 0.5203 - val_loss: 0.6457\n", "Epoch 53/100\n", "0s - loss: 0.5189 - val_loss: 0.6425\n", "Epoch 54/100\n", "0s - loss: 0.5196 - val_loss: 0.6428\n", "Epoch 55/100\n", "0s - loss: 0.5189 - val_loss: 0.6437\n", "Epoch 56/100\n", "0s - loss: 0.5184 - val_loss: 0.6431\n", "Epoch 57/100\n", "0s - loss: 0.5198 - val_loss: 0.6425\n", "Epoch 58/100\n", "0s - loss: 0.5180 - val_loss: 0.6425\n", "Epoch 59/100\n", "0s - loss: 0.5178 - val_loss: 0.6429\n", "Epoch 60/100\n", "0s - loss: 0.5177 - val_loss: 0.6426\n", "Epoch 61/100\n", "0s - loss: 0.5174 - val_loss: 0.6427\n", "Epoch 62/100\n", "0s - loss: 0.5172 - val_loss: 0.6436\n", "Epoch 63/100\n", "0s - loss: 0.5171 - val_loss: 0.6432\n", "Epoch 64/100\n", "0s - loss: 0.5169 - val_loss: 0.6415\n", "Epoch 65/100\n", "0s - loss: 0.5176 - val_loss: 0.6416\n", "Epoch 66/100\n", "0s - loss: 0.5172 - val_loss: 0.6426\n", "Epoch 67/100\n", "0s - loss: 0.5165 - val_loss: 0.6426\n", "Epoch 68/100\n", "0s - loss: 0.5167 - val_loss: 0.6417\n", "Epoch 69/100\n", "0s - loss: 0.5165 - val_loss: 0.6419\n", "Epoch 70/100\n", "0s - loss: 0.5168 - val_loss: 0.6409\n", "Epoch 71/100\n", "0s - loss: 0.5167 - val_loss: 0.6410\n", "Epoch 72/100\n", "0s - loss: 0.5161 - val_loss: 0.6433\n", "Epoch 73/100\n", "0s - loss: 0.5162 - val_loss: 0.6414\n", "Epoch 74/100\n", "0s - loss: 0.5157 - val_loss: 0.6419\n", "Epoch 75/100\n", "0s - loss: 0.5161 - val_loss: 0.6423\n", "Epoch 76/100\n", "0s - loss: 0.5155 - val_loss: 0.6428\n", "Epoch 77/100\n", "0s - loss: 0.5158 - val_loss: 0.6442\n", "Epoch 78/100\n", "0s - loss: 0.5163 - val_loss: 0.6426\n", "Epoch 79/100\n", "0s - loss: 0.5156 - val_loss: 0.6429\n", "Epoch 80/100\n", "0s - loss: 0.5152 - val_loss: 0.6409\n", "Epoch 81/100\n", "0s - loss: 0.5153 - val_loss: 0.6421\n", "Epoch 82/100\n", "0s - loss: 0.5153 - val_loss: 0.6437\n", "Epoch 83/100\n", "0s - loss: 0.5156 - val_loss: 0.6414\n", "Epoch 84/100\n", "0s - loss: 0.5149 - val_loss: 0.6414\n", "Epoch 85/100\n", "0s - loss: 0.5151 - val_loss: 0.6427\n", "Epoch 86/100\n", "0s - loss: 0.5157 - val_loss: 0.6410\n", "Epoch 87/100\n", "0s - loss: 0.5154 - val_loss: 0.6404\n", "Epoch 88/100\n", "0s - loss: 0.5158 - val_loss: 0.6413\n", "Epoch 89/100\n", "0s - loss: 0.5144 - val_loss: 0.6414\n", "Epoch 90/100\n", "0s - loss: 0.5155 - val_loss: 0.6413\n", "Epoch 91/100\n", "0s - loss: 0.5164 - val_loss: 0.6416\n", "Epoch 92/100\n", "0s - loss: 0.5149 - val_loss: 0.6403\n", "Epoch 93/100\n", "0s - loss: 0.5149 - val_loss: 0.6399\n", "Epoch 94/100\n", "0s - loss: 0.5147 - val_loss: 0.6397\n", "Epoch 95/100\n", "0s - loss: 0.5143 - val_loss: 0.6427\n", "Epoch 96/100\n", "0s - loss: 0.5150 - val_loss: 0.6420\n", "Epoch 97/100\n", "0s - loss: 0.5141 - val_loss: 0.6414\n", "Epoch 98/100\n", "0s - loss: 0.5148 - val_loss: 0.6427\n", "Epoch 99/100\n", "0s - loss: 0.5139 - val_loss: 0.6424\n", "Epoch 100/100\n", "0s - loss: 0.5149 - val_loss: 0.6416\n" ] } ], "source": [ "model.compile(loss=\"mse\", optimizer=\"sgd\")\n", "history = model.fit(trainingX, trainingY, batch_size=128, nb_epoch=100, validation_split=0.1, verbose=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ニューラルネットワークがsin関数をどの程度学習できたか確認してみる\n", "- 左図 : 学習中の予測誤差の変化をプロットしたもの (x軸: iteration, y軸: 予測誤差)\n", "- 右図 : ニューラルネットが学習した関数の形状 (赤: 正しいsin関数, 青: ニューラルネットの学習した関数)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n1yv7FUgpXwJ84H8UR8asinW/WCxlo5aLZfhHjhL/7ndXbLfcHOuKegllv34b+O0N9WpF3WIpC7Ve\nLCP30I8jpmdwzyqc6RRhUwvBnZLcQz8e9dBqFpv7xWKpYQrFMlZqrwVRD3t3kH3kH9fsk0Y1Yotk\nWCw1zGppdmsl/W4tu46qFSvqFksNs1qa3ZpIv3vtGt6rryBSKVO5Ke86spWbbg0r6hZLDbPaqsua\nWI15/vyKzau5lCylYX3qFksNU0i/6508gXvxAsCywg9VS6q2XUfVik29a7HUA/EEwdvumt+siQiY\nlhaYmFnWHIXrqJ58+7ZIhsVS49RsBMyBA/DW8LLmSruOnMEBYk///aLKS87lS+Tuf391X79VsPnU\nLZYap2YjYHbuJOzZjnP5Et7pl3AuXzIpdysspN7JE7iXLiEyGTNhm6+85J08UdFxlAvrfrFYahzd\n3GIiSFZor2quXcMZHiLcs5dwz17A5FR3BgcqKuyFuYhS26sda6lbLDVOzUbA2OiXTcGGNFosNU7Y\nuwP/0GF0SwsI0C0t+IcOV78/uEqiX1aLFqqZKKIlWPeLxVIH1GQB6iqJfvGPHUekp5eV0/OPHa/o\nOMqFFXWLpU6oubC8Kol+CXt3kLv/gdq6dmtgFx9ZLHVATWZr3LkT/9DhqhDTmnzSWQVrqVssdUCt\nxqrXk5hWC3ai1GKpA2o2Vt1Sdqz7xWKJgMce8/jKV1zGxgSdnZoPfjDgIx/xb/p8NRmrfu0asZOv\nRu56qTes+8ViqTCPPebxuc/F5rcHBgSf/rTL17/ucOiQpq8v5NixkN7e0n8nwb6+RT714vZqxBkc\ngMtnEakMUCNzADWCFXWLpcJ85Svu/OtsFiYnBbOz8MYbHgcO+Hz72y5PPOFx4wbcuOEQhoLWVs3B\ngwH/9J/CnXeKZYJfyNZYDZOOpeCdPAHDV/FuTORDCHvQnV1VPwdQC1j3i8VSYcbGxPzr2VlBNmte\nZzIwPAxvvOFy4wZMTwu0hrk5GB4WKOXx5S9DQ0MDnZ2wd6/mHe8IefBBnyNHwpqZdHQGB4i98ALM\npnCnptHxOM7Idfy7fwjE+sdb1iYiSz2SXi2WqqCzU3PjhlGvIIAwNO3JJAwMuMzNQSolCEOzP5cz\n79EafB/m5gQzM3D9uuDUKYe//EuX7dsD9u4V7NypOXIk5NixYEPum0rinTyBmBgDEZoEWnNZxPAw\n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\nYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "predictY = model.predict(testX)\n", "plt.subplot(121)\n", "plt.plot(np.arange(len(history.history[\"loss\"])), history.history[\"loss\"], color=\"r\", alpha=0.3, label=\"loss\")\n", "plt.plot(np.arange(len(history.history[\"val_loss\"])), history.history[\"val_loss\"], color=\"b\", alpha=0.3, label=\"val_loss\")\n", "plt.subplot(122)\n", "plt.plot(testX, predictY, \"bo\", alpha=0.3)\n", "plt.plot(testX, testY, \"ro\", alpha=0.3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 学習データを使って,sin関数を学習\n", "- ミニバッチ確率的勾配降下法を**さらに1000 iteration**回して,どの程度学習できるか試してみる" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train on 720 samples, validate on 80 samples\n", "Epoch 1/1000\n", "0s - loss: 0.5141 - val_loss: 0.6403\n", "Epoch 2/1000\n", "0s - loss: 0.5139 - val_loss: 0.6405\n", "Epoch 3/1000\n", "0s - loss: 0.5139 - val_loss: 0.6416\n", "Epoch 4/1000\n", "0s - loss: 0.5140 - val_loss: 0.6401\n", "Epoch 5/1000\n", "0s - loss: 0.5141 - val_loss: 0.6396\n", "Epoch 6/1000\n", "0s - loss: 0.5146 - val_loss: 0.6402\n", "Epoch 7/1000\n", "0s - loss: 0.5139 - val_loss: 0.6419\n", "Epoch 8/1000\n", "0s - loss: 0.5135 - val_loss: 0.6415\n", "Epoch 9/1000\n", "0s - loss: 0.5140 - val_loss: 0.6414\n", "Epoch 10/1000\n", "0s - loss: 0.5136 - val_loss: 0.6425\n", "Epoch 11/1000\n", "0s - loss: 0.5137 - val_loss: 0.6428\n", "Epoch 12/1000\n", "0s - loss: 0.5136 - val_loss: 0.6417\n", "Epoch 13/1000\n", "0s - loss: 0.5141 - val_loss: 0.6407\n", "Epoch 14/1000\n", "0s - loss: 0.5132 - val_loss: 0.6402\n", "Epoch 15/1000\n", "0s - loss: 0.5131 - val_loss: 0.6409\n", "Epoch 16/1000\n", "0s - loss: 0.5132 - val_loss: 0.6411\n", "Epoch 17/1000\n", "0s - loss: 0.5147 - val_loss: 0.6433\n", "Epoch 18/1000\n", "0s - loss: 0.5131 - val_loss: 0.6412\n", "Epoch 19/1000\n", "0s - loss: 0.5132 - val_loss: 0.6405\n", "Epoch 20/1000\n", "0s - loss: 0.5134 - val_loss: 0.6402\n", "Epoch 21/1000\n", "0s - loss: 0.5142 - val_loss: 0.6403\n", "Epoch 22/1000\n", "0s - loss: 0.5129 - val_loss: 0.6406\n", "Epoch 23/1000\n", "0s - loss: 0.5140 - val_loss: 0.6412\n", "Epoch 24/1000\n", "0s - loss: 0.5128 - val_loss: 0.6403\n", "Epoch 25/1000\n", "0s - loss: 0.5134 - val_loss: 0.6406\n", "Epoch 26/1000\n", "0s - loss: 0.5129 - val_loss: 0.6395\n", "Epoch 27/1000\n", "0s - loss: 0.5129 - val_loss: 0.6390\n", "Epoch 28/1000\n", "0s - loss: 0.5130 - val_loss: 0.6408\n", "Epoch 29/1000\n", "0s - loss: 0.5132 - val_loss: 0.6432\n", "Epoch 30/1000\n", "0s - loss: 0.5139 - val_loss: 0.6442\n", "Epoch 31/1000\n", "0s - loss: 0.5146 - val_loss: 0.6415\n", "Epoch 32/1000\n", "0s - loss: 0.5134 - val_loss: 0.6408\n", "Epoch 33/1000\n", "0s - loss: 0.5130 - val_loss: 0.6425\n", "Epoch 34/1000\n", "0s - loss: 0.5130 - val_loss: 0.6424\n", "Epoch 35/1000\n", "0s - loss: 0.5131 - val_loss: 0.6429\n", "Epoch 36/1000\n", "0s - loss: 0.5132 - val_loss: 0.6412\n", "Epoch 37/1000\n", "0s - loss: 0.5124 - val_loss: 0.6400\n", "Epoch 38/1000\n", "0s - loss: 0.5138 - val_loss: 0.6410\n", "Epoch 39/1000\n", "0s - loss: 0.5125 - val_loss: 0.6422\n", "Epoch 40/1000\n", "0s - loss: 0.5126 - val_loss: 0.6408\n", "Epoch 41/1000\n", "0s - loss: 0.5123 - val_loss: 0.6405\n", "Epoch 42/1000\n", "0s - loss: 0.5125 - val_loss: 0.6409\n", "Epoch 43/1000\n", "0s - loss: 0.5124 - val_loss: 0.6400\n", "Epoch 44/1000\n", "0s - loss: 0.5124 - val_loss: 0.6394\n", "Epoch 45/1000\n", "0s - loss: 0.5123 - val_loss: 0.6392\n", "Epoch 46/1000\n", "0s - loss: 0.5135 - val_loss: 0.6381\n", "Epoch 47/1000\n", "0s - loss: 0.5125 - val_loss: 0.6395\n", "Epoch 48/1000\n", "0s - loss: 0.5122 - val_loss: 0.6397\n", "Epoch 49/1000\n", "0s - loss: 0.5125 - val_loss: 0.6384\n", "Epoch 50/1000\n", "0s - loss: 0.5123 - val_loss: 0.6390\n", "Epoch 51/1000\n", "0s - loss: 0.5124 - val_loss: 0.6391\n", "Epoch 52/1000\n", "0s - loss: 0.5128 - val_loss: 0.6394\n", "Epoch 53/1000\n", "0s - loss: 0.5119 - val_loss: 0.6404\n", "Epoch 54/1000\n", "0s - loss: 0.5123 - val_loss: 0.6410\n", "Epoch 55/1000\n", "0s - loss: 0.5121 - val_loss: 0.6390\n", "Epoch 56/1000\n", "0s - loss: 0.5121 - val_loss: 0.6393\n", "Epoch 57/1000\n", "0s - loss: 0.5120 - val_loss: 0.6388\n", "Epoch 58/1000\n", "0s - loss: 0.5119 - val_loss: 0.6398\n", "Epoch 59/1000\n", "0s - loss: 0.5117 - val_loss: 0.6403\n", "Epoch 60/1000\n", "0s - loss: 0.5122 - val_loss: 0.6404\n", "Epoch 61/1000\n", "0s - loss: 0.5117 - val_loss: 0.6391\n", "Epoch 62/1000\n", "0s - loss: 0.5122 - val_loss: 0.6427\n", "Epoch 63/1000\n", "0s - loss: 0.5122 - val_loss: 0.6400\n", "Epoch 64/1000\n", "0s - loss: 0.5120 - val_loss: 0.6389\n", "Epoch 65/1000\n", "0s - loss: 0.5116 - val_loss: 0.6389\n", "Epoch 66/1000\n", "0s - loss: 0.5131 - val_loss: 0.6374\n", "Epoch 67/1000\n", "0s - loss: 0.5123 - val_loss: 0.6386\n", "Epoch 68/1000\n", "0s - loss: 0.5117 - val_loss: 0.6413\n", "Epoch 69/1000\n", "0s - loss: 0.5117 - val_loss: 0.6388\n", "Epoch 70/1000\n", "0s - loss: 0.5114 - val_loss: 0.6391\n", "Epoch 71/1000\n", "0s - loss: 0.5119 - val_loss: 0.6431\n", "Epoch 72/1000\n", "0s - loss: 0.5117 - val_loss: 0.6397\n", "Epoch 73/1000\n", "0s - loss: 0.5114 - val_loss: 0.6402\n", "Epoch 74/1000\n", "0s - loss: 0.5117 - val_loss: 0.6405\n", "Epoch 75/1000\n", "0s - loss: 0.5115 - val_loss: 0.6398\n", "Epoch 76/1000\n", "0s - loss: 0.5116 - val_loss: 0.6388\n", "Epoch 77/1000\n", "0s - loss: 0.5121 - val_loss: 0.6399\n", "Epoch 78/1000\n", "0s - loss: 0.5116 - val_loss: 0.6389\n", "Epoch 79/1000\n", "0s - loss: 0.5111 - val_loss: 0.6385\n", "Epoch 80/1000\n", "0s - loss: 0.5112 - val_loss: 0.6403\n", "Epoch 81/1000\n", "0s - loss: 0.5115 - val_loss: 0.6384\n", "Epoch 82/1000\n", "0s - loss: 0.5121 - val_loss: 0.6390\n", "Epoch 83/1000\n", "0s - loss: 0.5112 - val_loss: 0.6394\n", "Epoch 84/1000\n", "0s - loss: 0.5119 - val_loss: 0.6434\n", "Epoch 85/1000\n", "0s - loss: 0.5119 - val_loss: 0.6383\n", "Epoch 86/1000\n", "0s - loss: 0.5124 - val_loss: 0.6394\n", "Epoch 87/1000\n", "0s - loss: 0.5118 - val_loss: 0.6398\n", "Epoch 88/1000\n", "0s - loss: 0.5114 - val_loss: 0.6405\n", "Epoch 89/1000\n", "0s - loss: 0.5115 - val_loss: 0.6411\n", "Epoch 90/1000\n", "0s - loss: 0.5114 - val_loss: 0.6398\n", "Epoch 91/1000\n", "0s - loss: 0.5110 - val_loss: 0.6403\n", "Epoch 92/1000\n", "0s - loss: 0.5111 - val_loss: 0.6380\n", "Epoch 93/1000\n", "0s - loss: 0.5110 - val_loss: 0.6413\n", "Epoch 94/1000\n", "0s - loss: 0.5109 - val_loss: 0.6373\n", "Epoch 95/1000\n", "0s - loss: 0.5117 - val_loss: 0.6397\n", "Epoch 96/1000\n", "0s - loss: 0.5112 - val_loss: 0.6376\n", "Epoch 97/1000\n", "0s - loss: 0.5115 - val_loss: 0.6378\n", "Epoch 98/1000\n", "0s - loss: 0.5107 - val_loss: 0.6377\n", "Epoch 99/1000\n", "0s - loss: 0.5108 - val_loss: 0.6384\n", "Epoch 100/1000\n", "0s - loss: 0.5108 - val_loss: 0.6381\n", "Epoch 101/1000\n", "0s - loss: 0.5113 - val_loss: 0.6376\n", "Epoch 102/1000\n", "0s - loss: 0.5118 - val_loss: 0.6378\n", "Epoch 103/1000\n", "0s - loss: 0.5116 - val_loss: 0.6386\n", "Epoch 104/1000\n", "0s - loss: 0.5105 - val_loss: 0.6401\n", "Epoch 105/1000\n", "0s - loss: 0.5108 - val_loss: 0.6385\n", "Epoch 106/1000\n", "0s - loss: 0.5103 - val_loss: 0.6404\n", "Epoch 107/1000\n", "0s - loss: 0.5109 - val_loss: 0.6403\n", "Epoch 108/1000\n", "0s - loss: 0.5103 - val_loss: 0.6376\n", "Epoch 109/1000\n", "0s - loss: 0.5103 - val_loss: 0.6377\n", "Epoch 110/1000\n", "0s - loss: 0.5104 - val_loss: 0.6383\n", "Epoch 111/1000\n", "0s - loss: 0.5102 - val_loss: 0.6375\n", "Epoch 112/1000\n", "0s - loss: 0.5102 - val_loss: 0.6368\n", "Epoch 113/1000\n", "0s - loss: 0.5106 - val_loss: 0.6374\n", "Epoch 114/1000\n", "0s - loss: 0.5112 - val_loss: 0.6383\n", "Epoch 115/1000\n", "0s - loss: 0.5102 - val_loss: 0.6374\n", "Epoch 116/1000\n", "0s - loss: 0.5104 - val_loss: 0.6375\n", "Epoch 117/1000\n", "0s - loss: 0.5101 - val_loss: 0.6380\n", "Epoch 118/1000\n", "0s - loss: 0.5102 - val_loss: 0.6381\n", "Epoch 119/1000\n", "0s - loss: 0.5113 - val_loss: 0.6362\n", "Epoch 120/1000\n", "0s - loss: 0.5107 - val_loss: 0.6373\n", "Epoch 121/1000\n", "0s - loss: 0.5100 - val_loss: 0.6379\n", "Epoch 122/1000\n", "0s - loss: 0.5102 - val_loss: 0.6395\n", "Epoch 123/1000\n", "0s - loss: 0.5098 - val_loss: 0.6371\n", "Epoch 124/1000\n", "0s - loss: 0.5107 - val_loss: 0.6378\n", "Epoch 125/1000\n", "0s - loss: 0.5106 - val_loss: 0.6370\n", "Epoch 126/1000\n", "0s - loss: 0.5101 - val_loss: 0.6375\n", "Epoch 127/1000\n", "0s - loss: 0.5098 - val_loss: 0.6398\n", "Epoch 128/1000\n", "0s - loss: 0.5115 - val_loss: 0.6377\n", "Epoch 129/1000\n", "0s - loss: 0.5103 - val_loss: 0.6365\n", "Epoch 130/1000\n", "0s - loss: 0.5097 - val_loss: 0.6356\n", "Epoch 131/1000\n", "0s - loss: 0.5103 - val_loss: 0.6358\n", "Epoch 132/1000\n", "0s - loss: 0.5098 - val_loss: 0.6367\n", "Epoch 133/1000\n", "0s - loss: 0.5096 - val_loss: 0.6367\n", "Epoch 134/1000\n", "0s - loss: 0.5096 - val_loss: 0.6374\n", "Epoch 135/1000\n", "0s - loss: 0.5099 - val_loss: 0.6359\n", "Epoch 136/1000\n", "0s - loss: 0.5102 - val_loss: 0.6355\n", "Epoch 137/1000\n", "0s - loss: 0.5098 - val_loss: 0.6367\n", "Epoch 138/1000\n", "0s - loss: 0.5098 - val_loss: 0.6362\n", "Epoch 139/1000\n", "0s - loss: 0.5097 - val_loss: 0.6380\n", "Epoch 140/1000\n", "0s - loss: 0.5099 - val_loss: 0.6379\n", "Epoch 141/1000\n", "0s - loss: 0.5103 - val_loss: 0.6372\n", "Epoch 142/1000\n", "0s - loss: 0.5095 - val_loss: 0.6392\n", "Epoch 143/1000\n", "0s - loss: 0.5093 - val_loss: 0.6366\n", "Epoch 144/1000\n", "0s - loss: 0.5095 - val_loss: 0.6354\n", "Epoch 145/1000\n", "0s - loss: 0.5099 - val_loss: 0.6375\n", "Epoch 146/1000\n", "0s - loss: 0.5095 - val_loss: 0.6393\n", "Epoch 147/1000\n", "0s - loss: 0.5093 - val_loss: 0.6391\n", "Epoch 148/1000\n", "0s - loss: 0.5091 - val_loss: 0.6383\n", "Epoch 149/1000\n", "0s - loss: 0.5094 - val_loss: 0.6393\n", "Epoch 150/1000\n", "0s - loss: 0.5093 - val_loss: 0.6360\n", "Epoch 151/1000\n", "0s - loss: 0.5099 - val_loss: 0.6355\n", "Epoch 152/1000\n", "0s - loss: 0.5090 - val_loss: 0.6364\n", "Epoch 153/1000\n", "0s - loss: 0.5095 - val_loss: 0.6352\n", "Epoch 154/1000\n", "0s - loss: 0.5091 - val_loss: 0.6369\n", "Epoch 155/1000\n", "0s - loss: 0.5089 - val_loss: 0.6372\n", "Epoch 156/1000\n", "0s - loss: 0.5089 - val_loss: 0.6365\n", "Epoch 157/1000\n", "0s - loss: 0.5089 - val_loss: 0.6353\n", "Epoch 158/1000\n", "0s - loss: 0.5091 - val_loss: 0.6359\n", "Epoch 159/1000\n", "0s - loss: 0.5089 - val_loss: 0.6349\n", "Epoch 160/1000\n", "0s - loss: 0.5089 - val_loss: 0.6372\n", "Epoch 161/1000\n", "0s - loss: 0.5103 - val_loss: 0.6355\n", "Epoch 162/1000\n", "0s - loss: 0.5093 - val_loss: 0.6361\n", "Epoch 163/1000\n", "0s - loss: 0.5094 - val_loss: 0.6361\n", "Epoch 164/1000\n", "0s - loss: 0.5084 - val_loss: 0.6360\n", "Epoch 165/1000\n", "0s - loss: 0.5084 - val_loss: 0.6362\n", "Epoch 166/1000\n", "0s - loss: 0.5085 - val_loss: 0.6367\n", "Epoch 167/1000\n", "0s - loss: 0.5084 - val_loss: 0.6379\n", "Epoch 168/1000\n", "0s - loss: 0.5091 - val_loss: 0.6354\n", "Epoch 169/1000\n", "0s - loss: 0.5082 - val_loss: 0.6372\n", "Epoch 170/1000\n", "0s - loss: 0.5087 - val_loss: 0.6354\n", "Epoch 171/1000\n", "0s - loss: 0.5089 - val_loss: 0.6353\n", "Epoch 172/1000\n", "0s - loss: 0.5080 - val_loss: 0.6347\n", "Epoch 173/1000\n", "0s - loss: 0.5081 - val_loss: 0.6351\n", "Epoch 174/1000\n", "0s - loss: 0.5084 - val_loss: 0.6348\n", "Epoch 175/1000\n", "0s - loss: 0.5082 - val_loss: 0.6349\n", "Epoch 176/1000\n", "0s - loss: 0.5089 - val_loss: 0.6353\n", "Epoch 177/1000\n", "0s - loss: 0.5081 - val_loss: 0.6364\n", "Epoch 178/1000\n", "0s - loss: 0.5087 - val_loss: 0.6362\n", "Epoch 179/1000\n", "0s - loss: 0.5081 - val_loss: 0.6356\n", "Epoch 180/1000\n", "0s - loss: 0.5082 - val_loss: 0.6347\n", "Epoch 181/1000\n", "0s - loss: 0.5077 - val_loss: 0.6353\n", "Epoch 182/1000\n", "0s - loss: 0.5082 - val_loss: 0.6346\n", "Epoch 183/1000\n", "0s - loss: 0.5078 - val_loss: 0.6351\n", "Epoch 184/1000\n", "0s - loss: 0.5080 - val_loss: 0.6353\n", "Epoch 185/1000\n", "0s - loss: 0.5082 - val_loss: 0.6344\n", "Epoch 186/1000\n", "0s - loss: 0.5075 - val_loss: 0.6332\n", "Epoch 187/1000\n", "0s - loss: 0.5077 - val_loss: 0.6346\n", "Epoch 188/1000\n", "0s - loss: 0.5076 - val_loss: 0.6342\n", "Epoch 189/1000\n", "0s - loss: 0.5076 - val_loss: 0.6345\n", "Epoch 190/1000\n", "0s - loss: 0.5077 - val_loss: 0.6363\n", "Epoch 191/1000\n", "0s - loss: 0.5075 - val_loss: 0.6360\n", "Epoch 192/1000\n", "0s - loss: 0.5071 - val_loss: 0.6336\n", "Epoch 193/1000\n", "0s - loss: 0.5073 - val_loss: 0.6344\n", "Epoch 194/1000\n", "0s - loss: 0.5073 - val_loss: 0.6333\n", "Epoch 195/1000\n", "0s - loss: 0.5071 - val_loss: 0.6336\n", "Epoch 196/1000\n", "0s - loss: 0.5074 - val_loss: 0.6346\n", "Epoch 197/1000\n", "0s - loss: 0.5073 - val_loss: 0.6343\n", "Epoch 198/1000\n", "0s - loss: 0.5071 - val_loss: 0.6329\n", "Epoch 199/1000\n", "0s - loss: 0.5076 - val_loss: 0.6348\n", "Epoch 200/1000\n", "0s - loss: 0.5073 - val_loss: 0.6333\n", "Epoch 201/1000\n", "0s - loss: 0.5071 - val_loss: 0.6325\n", "Epoch 202/1000\n", "0s - loss: 0.5068 - val_loss: 0.6329\n", "Epoch 203/1000\n", "0s - loss: 0.5065 - val_loss: 0.6341\n", "Epoch 204/1000\n", "0s - loss: 0.5064 - val_loss: 0.6354\n", "Epoch 205/1000\n", "0s - loss: 0.5067 - val_loss: 0.6337\n", "Epoch 206/1000\n", "0s - loss: 0.5069 - val_loss: 0.6338\n", "Epoch 207/1000\n", "0s - loss: 0.5066 - val_loss: 0.6329\n", "Epoch 208/1000\n", "0s - loss: 0.5068 - val_loss: 0.6332\n", "Epoch 209/1000\n", "0s - loss: 0.5072 - val_loss: 0.6341\n", "Epoch 210/1000\n", "0s - loss: 0.5067 - val_loss: 0.6334\n", "Epoch 211/1000\n", "0s - loss: 0.5068 - val_loss: 0.6329\n", "Epoch 212/1000\n", "0s - loss: 0.5060 - val_loss: 0.6338\n", "Epoch 213/1000\n", "0s - loss: 0.5065 - val_loss: 0.6349\n", "Epoch 214/1000\n", "0s - loss: 0.5063 - val_loss: 0.6327\n", "Epoch 215/1000\n", "0s - loss: 0.5061 - val_loss: 0.6315\n", "Epoch 216/1000\n", "0s - loss: 0.5059 - val_loss: 0.6319\n", "Epoch 217/1000\n", "0s - loss: 0.5059 - val_loss: 0.6319\n", "Epoch 218/1000\n", "0s - loss: 0.5056 - val_loss: 0.6321\n", "Epoch 219/1000\n", "0s - loss: 0.5061 - val_loss: 0.6323\n", "Epoch 220/1000\n", "0s - loss: 0.5056 - val_loss: 0.6328\n", "Epoch 221/1000\n", "0s - loss: 0.5068 - val_loss: 0.6321\n", "Epoch 222/1000\n", "0s - loss: 0.5056 - val_loss: 0.6307\n", "Epoch 223/1000\n", "0s - loss: 0.5065 - val_loss: 0.6324\n", "Epoch 224/1000\n", "0s - loss: 0.5061 - val_loss: 0.6328\n", "Epoch 225/1000\n", "0s - loss: 0.5055 - val_loss: 0.6320\n", "Epoch 226/1000\n", "0s - loss: 0.5063 - val_loss: 0.6307\n", "Epoch 227/1000\n", "0s - loss: 0.5069 - val_loss: 0.6312\n", "Epoch 228/1000\n", "0s - loss: 0.5055 - val_loss: 0.6303\n", "Epoch 229/1000\n", "0s - loss: 0.5053 - val_loss: 0.6318\n", "Epoch 230/1000\n", "0s - loss: 0.5056 - val_loss: 0.6314\n", "Epoch 231/1000\n", "0s - loss: 0.5052 - val_loss: 0.6295\n", "Epoch 232/1000\n", "0s - loss: 0.5059 - val_loss: 0.6303\n", "Epoch 233/1000\n", "0s - loss: 0.5049 - val_loss: 0.6317\n", "Epoch 234/1000\n", "0s - loss: 0.5051 - val_loss: 0.6317\n", "Epoch 235/1000\n", "0s - loss: 0.5055 - val_loss: 0.6314\n", "Epoch 236/1000\n", "0s - loss: 0.5045 - val_loss: 0.6310\n", "Epoch 237/1000\n", "0s - loss: 0.5046 - val_loss: 0.6327\n", "Epoch 238/1000\n", "0s - loss: 0.5047 - val_loss: 0.6316\n", "Epoch 239/1000\n", "0s - loss: 0.5062 - val_loss: 0.6324\n", "Epoch 240/1000\n", "0s - loss: 0.5059 - val_loss: 0.6308\n", "Epoch 241/1000\n", "0s - loss: 0.5042 - val_loss: 0.6306\n", "Epoch 242/1000\n", "0s - loss: 0.5051 - val_loss: 0.6285\n", "Epoch 243/1000\n", "0s - loss: 0.5048 - val_loss: 0.6292\n", "Epoch 244/1000\n", "0s - loss: 0.5048 - val_loss: 0.6316\n", "Epoch 245/1000\n", "0s - loss: 0.5050 - val_loss: 0.6326\n", "Epoch 246/1000\n", "0s - loss: 0.5041 - val_loss: 0.6302\n", "Epoch 247/1000\n", "0s - loss: 0.5038 - val_loss: 0.6311\n", "Epoch 248/1000\n", "0s - loss: 0.5039 - val_loss: 0.6298\n", "Epoch 249/1000\n", "0s - loss: 0.5037 - val_loss: 0.6288\n", "Epoch 250/1000\n", "0s - loss: 0.5036 - val_loss: 0.6295\n", "Epoch 251/1000\n", "0s - loss: 0.5040 - val_loss: 0.6294\n", "Epoch 252/1000\n", "0s - loss: 0.5035 - val_loss: 0.6293\n", "Epoch 253/1000\n", "0s - loss: 0.5045 - val_loss: 0.6313\n", "Epoch 254/1000\n", "0s - loss: 0.5034 - val_loss: 0.6286\n", "Epoch 255/1000\n", "0s - loss: 0.5039 - val_loss: 0.6293\n", "Epoch 256/1000\n", "0s - loss: 0.5031 - val_loss: 0.6294\n", "Epoch 257/1000\n", "0s - loss: 0.5030 - val_loss: 0.6281\n", "Epoch 258/1000\n", "0s - loss: 0.5029 - val_loss: 0.6284\n", "Epoch 259/1000\n", "0s - loss: 0.5034 - val_loss: 0.6284\n", "Epoch 260/1000\n", "0s - loss: 0.5031 - val_loss: 0.6296\n", "Epoch 261/1000\n", "0s - loss: 0.5031 - val_loss: 0.6291\n", "Epoch 262/1000\n", "0s - loss: 0.5028 - val_loss: 0.6292\n", "Epoch 263/1000\n", "0s - loss: 0.5025 - val_loss: 0.6285\n", "Epoch 264/1000\n", "0s - loss: 0.5034 - val_loss: 0.6297\n", "Epoch 265/1000\n", "0s - loss: 0.5033 - val_loss: 0.6309\n", "Epoch 266/1000\n", "0s - loss: 0.5028 - val_loss: 0.6277\n", "Epoch 267/1000\n", "0s - loss: 0.5022 - val_loss: 0.6277\n", "Epoch 268/1000\n", "0s - loss: 0.5024 - val_loss: 0.6280\n", "Epoch 269/1000\n", "0s - loss: 0.5020 - val_loss: 0.6285\n", "Epoch 270/1000\n", "0s - loss: 0.5032 - val_loss: 0.6300\n", "Epoch 271/1000\n", "0s - loss: 0.5030 - val_loss: 0.6278\n", "Epoch 272/1000\n", "0s - loss: 0.5017 - val_loss: 0.6282\n", "Epoch 273/1000\n", "0s - loss: 0.5018 - val_loss: 0.6264\n", "Epoch 274/1000\n", "0s - loss: 0.5023 - val_loss: 0.6267\n", "Epoch 275/1000\n", "0s - loss: 0.5014 - val_loss: 0.6284\n", "Epoch 276/1000\n", "0s - loss: 0.5013 - val_loss: 0.6268\n", "Epoch 277/1000\n", "0s - loss: 0.5019 - val_loss: 0.6270\n", "Epoch 278/1000\n", "0s - loss: 0.5013 - val_loss: 0.6265\n", "Epoch 279/1000\n", "0s - loss: 0.5013 - val_loss: 0.6269\n", "Epoch 280/1000\n", "0s - loss: 0.5013 - val_loss: 0.6263\n", "Epoch 281/1000\n", "0s - loss: 0.5010 - val_loss: 0.6256\n", "Epoch 282/1000\n", "0s - loss: 0.5009 - val_loss: 0.6255\n", "Epoch 283/1000\n", "0s - loss: 0.5008 - val_loss: 0.6280\n", "Epoch 284/1000\n", "0s - loss: 0.5015 - val_loss: 0.6268\n", "Epoch 285/1000\n", "0s - loss: 0.5017 - val_loss: 0.6254\n", "Epoch 286/1000\n", "0s - loss: 0.5012 - val_loss: 0.6243\n", "Epoch 287/1000\n", "0s - loss: 0.5008 - val_loss: 0.6267\n", "Epoch 288/1000\n", "0s - loss: 0.5002 - val_loss: 0.6261\n", "Epoch 289/1000\n", "0s - loss: 0.5006 - val_loss: 0.6265\n", "Epoch 290/1000\n", "0s - loss: 0.5004 - val_loss: 0.6242\n", "Epoch 291/1000\n", "0s - loss: 0.5001 - val_loss: 0.6244\n", "Epoch 292/1000\n", "0s - loss: 0.4999 - val_loss: 0.6252\n", "Epoch 293/1000\n", "0s - loss: 0.5000 - val_loss: 0.6241\n", "Epoch 294/1000\n", "0s - loss: 0.4998 - val_loss: 0.6255\n", "Epoch 295/1000\n", "0s - loss: 0.4998 - val_loss: 0.6257\n", "Epoch 296/1000\n", "0s - loss: 0.4995 - val_loss: 0.6235\n", "Epoch 297/1000\n", "0s - loss: 0.4997 - val_loss: 0.6247\n", "Epoch 298/1000\n", "0s - loss: 0.4997 - val_loss: 0.6241\n", "Epoch 299/1000\n", "0s - loss: 0.4990 - val_loss: 0.6241\n", "Epoch 300/1000\n", "0s - loss: 0.4990 - val_loss: 0.6253\n", "Epoch 301/1000\n", "0s - loss: 0.4994 - val_loss: 0.6247\n", "Epoch 302/1000\n", "0s - loss: 0.4992 - val_loss: 0.6228\n", "Epoch 303/1000\n", "0s - loss: 0.4987 - val_loss: 0.6226\n", "Epoch 304/1000\n", "0s - loss: 0.4993 - val_loss: 0.6241\n", "Epoch 305/1000\n", "0s - loss: 0.4993 - val_loss: 0.6233\n", "Epoch 306/1000\n", "0s - loss: 0.4993 - val_loss: 0.6249\n", "Epoch 307/1000\n", "0s - loss: 0.4988 - val_loss: 0.6245\n", "Epoch 308/1000\n", "0s - loss: 0.4989 - val_loss: 0.6227\n", "Epoch 309/1000\n", "0s - loss: 0.4981 - val_loss: 0.6221\n", "Epoch 310/1000\n", "0s - loss: 0.4979 - val_loss: 0.6220\n", "Epoch 311/1000\n", "0s - loss: 0.4978 - val_loss: 0.6230\n", "Epoch 312/1000\n", "0s - loss: 0.4977 - val_loss: 0.6228\n", "Epoch 313/1000\n", "0s - loss: 0.4975 - val_loss: 0.6222\n", "Epoch 314/1000\n", "0s - loss: 0.4972 - val_loss: 0.6232\n", "Epoch 315/1000\n", "0s - loss: 0.4971 - val_loss: 0.6214\n", "Epoch 316/1000\n", "0s - loss: 0.4986 - val_loss: 0.6235\n", "Epoch 317/1000\n", "0s - loss: 0.4971 - val_loss: 0.6206\n", "Epoch 318/1000\n", "0s - loss: 0.4972 - val_loss: 0.6220\n", "Epoch 319/1000\n", "0s - loss: 0.4972 - val_loss: 0.6205\n", "Epoch 320/1000\n", "0s - loss: 0.4976 - val_loss: 0.6225\n", "Epoch 321/1000\n", "0s - loss: 0.4963 - val_loss: 0.6203\n", "Epoch 322/1000\n", "0s - loss: 0.4971 - val_loss: 0.6196\n", "Epoch 323/1000\n", "0s - loss: 0.4967 - val_loss: 0.6202\n", "Epoch 324/1000\n", "0s - loss: 0.4961 - val_loss: 0.6211\n", "Epoch 325/1000\n", "0s - loss: 0.4963 - val_loss: 0.6228\n", "Epoch 326/1000\n", "0s - loss: 0.4973 - val_loss: 0.6241\n", "Epoch 327/1000\n", "0s - loss: 0.4964 - val_loss: 0.6202\n", "Epoch 328/1000\n", "0s - loss: 0.4958 - val_loss: 0.6189\n", "Epoch 329/1000\n", "0s - loss: 0.4959 - val_loss: 0.6181\n", "Epoch 330/1000\n", "0s - loss: 0.4954 - val_loss: 0.6192\n", "Epoch 331/1000\n", "0s - loss: 0.4955 - val_loss: 0.6190\n", "Epoch 332/1000\n", "0s - loss: 0.4950 - val_loss: 0.6178\n", "Epoch 333/1000\n", "0s - loss: 0.4951 - val_loss: 0.6182\n", "Epoch 334/1000\n", "0s - loss: 0.4957 - val_loss: 0.6191\n", "Epoch 335/1000\n", "0s - loss: 0.4955 - val_loss: 0.6179\n", "Epoch 336/1000\n", "0s - loss: 0.4949 - val_loss: 0.6187\n", "Epoch 337/1000\n", "0s - loss: 0.4943 - val_loss: 0.6180\n", "Epoch 338/1000\n", "0s - loss: 0.4938 - val_loss: 0.6172\n", "Epoch 339/1000\n", "0s - loss: 0.4953 - val_loss: 0.6162\n", "Epoch 340/1000\n", "0s - loss: 0.4951 - val_loss: 0.6163\n", "Epoch 341/1000\n", "0s - loss: 0.4935 - val_loss: 0.6181\n", "Epoch 342/1000\n", "0s - loss: 0.4933 - val_loss: 0.6179\n", "Epoch 343/1000\n", "0s - loss: 0.4933 - val_loss: 0.6154\n", "Epoch 344/1000\n", "0s - loss: 0.4935 - val_loss: 0.6175\n", "Epoch 345/1000\n", "0s - loss: 0.4933 - val_loss: 0.6155\n", "Epoch 346/1000\n", "0s - loss: 0.4941 - val_loss: 0.6175\n", "Epoch 347/1000\n", "0s - loss: 0.4933 - val_loss: 0.6164\n", "Epoch 348/1000\n", "0s - loss: 0.4928 - val_loss: 0.6155\n", "Epoch 349/1000\n", "0s - loss: 0.4924 - val_loss: 0.6150\n", "Epoch 350/1000\n", "0s - loss: 0.4922 - val_loss: 0.6154\n", "Epoch 351/1000\n", "0s - loss: 0.4921 - val_loss: 0.6153\n", "Epoch 352/1000\n", "0s - loss: 0.4919 - val_loss: 0.6155\n", "Epoch 353/1000\n", "0s - loss: 0.4925 - val_loss: 0.6146\n", "Epoch 354/1000\n", "0s - loss: 0.4919 - val_loss: 0.6151\n", "Epoch 355/1000\n", "0s - loss: 0.4913 - val_loss: 0.6159\n", "Epoch 356/1000\n", "0s - loss: 0.4925 - val_loss: 0.6134\n", "Epoch 357/1000\n", "0s - loss: 0.4909 - val_loss: 0.6134\n", "Epoch 358/1000\n", "0s - loss: 0.4911 - val_loss: 0.6138\n", "Epoch 359/1000\n", "0s - loss: 0.4907 - val_loss: 0.6143\n", "Epoch 360/1000\n", "0s - loss: 0.4906 - val_loss: 0.6138\n", "Epoch 361/1000\n", "0s - loss: 0.4907 - val_loss: 0.6125\n", "Epoch 362/1000\n", "0s - loss: 0.4906 - val_loss: 0.6114\n", "Epoch 363/1000\n", "0s - loss: 0.4899 - val_loss: 0.6120\n", "Epoch 364/1000\n", "0s - loss: 0.4903 - val_loss: 0.6112\n", "Epoch 365/1000\n", "0s - loss: 0.4903 - val_loss: 0.6122\n", "Epoch 366/1000\n", "0s - loss: 0.4893 - val_loss: 0.6113\n", "Epoch 367/1000\n", "0s - loss: 0.4899 - val_loss: 0.6109\n", "Epoch 368/1000\n", "0s - loss: 0.4890 - val_loss: 0.6109\n", "Epoch 369/1000\n", "0s - loss: 0.4891 - val_loss: 0.6094\n", "Epoch 370/1000\n", "0s - loss: 0.4890 - val_loss: 0.6092\n", "Epoch 371/1000\n", "0s - loss: 0.4886 - val_loss: 0.6114\n", "Epoch 372/1000\n", "0s - loss: 0.4884 - val_loss: 0.6092\n", "Epoch 373/1000\n", "0s - loss: 0.4890 - val_loss: 0.6088\n", "Epoch 374/1000\n", "0s - loss: 0.4881 - val_loss: 0.6106\n", "Epoch 375/1000\n", "0s - loss: 0.4878 - val_loss: 0.6118\n", "Epoch 376/1000\n", "0s - loss: 0.4873 - val_loss: 0.6094\n", "Epoch 377/1000\n", "0s - loss: 0.4883 - val_loss: 0.6099\n", "Epoch 378/1000\n", "0s - loss: 0.4885 - val_loss: 0.6096\n", "Epoch 379/1000\n", "0s - loss: 0.4873 - val_loss: 0.6097\n", "Epoch 380/1000\n", "0s - loss: 0.4868 - val_loss: 0.6099\n", "Epoch 381/1000\n", "0s - loss: 0.4865 - val_loss: 0.6087\n", "Epoch 382/1000\n", "0s - loss: 0.4863 - val_loss: 0.6082\n", "Epoch 383/1000\n", "0s - loss: 0.4864 - val_loss: 0.6073\n", "Epoch 384/1000\n", "0s - loss: 0.4863 - val_loss: 0.6108\n", "Epoch 385/1000\n", "0s - loss: 0.4857 - val_loss: 0.6080\n", "Epoch 386/1000\n", "0s - loss: 0.4856 - val_loss: 0.6086\n", "Epoch 387/1000\n", "0s - loss: 0.4854 - val_loss: 0.6069\n", "Epoch 388/1000\n", "0s - loss: 0.4849 - val_loss: 0.6071\n", "Epoch 389/1000\n", "0s - loss: 0.4847 - val_loss: 0.6053\n", "Epoch 390/1000\n", "0s - loss: 0.4848 - val_loss: 0.6064\n", "Epoch 391/1000\n", "0s - loss: 0.4844 - val_loss: 0.6060\n", "Epoch 392/1000\n", "0s - loss: 0.4839 - val_loss: 0.6057\n", "Epoch 393/1000\n", "0s - loss: 0.4839 - val_loss: 0.6040\n", "Epoch 394/1000\n", "0s - loss: 0.4838 - val_loss: 0.6044\n", "Epoch 395/1000\n", "0s - loss: 0.4833 - val_loss: 0.6054\n", "Epoch 396/1000\n", "0s - loss: 0.4833 - val_loss: 0.6040\n", "Epoch 397/1000\n", "0s - loss: 0.4832 - val_loss: 0.6072\n", "Epoch 398/1000\n", "0s - loss: 0.4832 - val_loss: 0.6041\n", "Epoch 399/1000\n", "0s - loss: 0.4822 - val_loss: 0.6035\n", "Epoch 400/1000\n", "0s - loss: 0.4825 - val_loss: 0.6041\n", "Epoch 401/1000\n", "0s - loss: 0.4819 - val_loss: 0.6027\n", "Epoch 402/1000\n", "0s - loss: 0.4824 - val_loss: 0.6010\n", "Epoch 403/1000\n", "0s - loss: 0.4820 - val_loss: 0.6015\n", "Epoch 404/1000\n", "0s - loss: 0.4814 - val_loss: 0.6026\n", "Epoch 405/1000\n", "0s - loss: 0.4807 - val_loss: 0.6009\n", "Epoch 406/1000\n", "0s - loss: 0.4810 - val_loss: 0.5998\n", "Epoch 407/1000\n", "0s - loss: 0.4805 - val_loss: 0.6022\n", "Epoch 408/1000\n", "0s - loss: 0.4807 - val_loss: 0.5998\n", "Epoch 409/1000\n", "0s - loss: 0.4801 - val_loss: 0.5998\n", "Epoch 410/1000\n", "0s - loss: 0.4797 - val_loss: 0.5990\n", "Epoch 411/1000\n", "0s - loss: 0.4793 - val_loss: 0.5986\n", "Epoch 412/1000\n", "0s - loss: 0.4792 - val_loss: 0.6002\n", "Epoch 413/1000\n", "0s - loss: 0.4795 - val_loss: 0.5984\n", "Epoch 414/1000\n", "0s - loss: 0.4784 - val_loss: 0.5985\n", "Epoch 415/1000\n", "0s - loss: 0.4790 - val_loss: 0.5973\n", "Epoch 416/1000\n", "0s - loss: 0.4785 - val_loss: 0.5971\n", "Epoch 417/1000\n", "0s - loss: 0.4783 - val_loss: 0.5966\n", "Epoch 418/1000\n", "0s - loss: 0.4775 - val_loss: 0.5984\n", "Epoch 419/1000\n", "0s - loss: 0.4777 - val_loss: 0.5982\n", "Epoch 420/1000\n", "0s - loss: 0.4770 - val_loss: 0.5961\n", "Epoch 421/1000\n", "0s - loss: 0.4766 - val_loss: 0.5970\n", "Epoch 422/1000\n", "0s - loss: 0.4768 - val_loss: 0.5956\n", "Epoch 423/1000\n", "0s - loss: 0.4761 - val_loss: 0.5955\n", "Epoch 424/1000\n", "0s - loss: 0.4762 - val_loss: 0.5958\n", "Epoch 425/1000\n", "0s - loss: 0.4761 - val_loss: 0.5956\n", "Epoch 426/1000\n", "0s - loss: 0.4751 - val_loss: 0.5954\n", "Epoch 427/1000\n", "0s - loss: 0.4749 - val_loss: 0.5926\n", "Epoch 428/1000\n", "0s - loss: 0.4750 - val_loss: 0.5933\n", "Epoch 429/1000\n", "0s - loss: 0.4743 - val_loss: 0.5925\n", "Epoch 430/1000\n", "0s - loss: 0.4739 - val_loss: 0.5915\n", "Epoch 431/1000\n", "0s - loss: 0.4743 - val_loss: 0.5909\n", "Epoch 432/1000\n", "0s - loss: 0.4732 - val_loss: 0.5918\n", "Epoch 433/1000\n", "0s - loss: 0.4737 - val_loss: 0.5935\n", "Epoch 434/1000\n", "0s - loss: 0.4737 - val_loss: 0.5918\n", "Epoch 435/1000\n", "0s - loss: 0.4731 - val_loss: 0.5911\n", "Epoch 436/1000\n", "0s - loss: 0.4736 - val_loss: 0.5889\n", "Epoch 437/1000\n", "0s - loss: 0.4720 - val_loss: 0.5903\n", "Epoch 438/1000\n", "0s - loss: 0.4718 - val_loss: 0.5919\n", "Epoch 439/1000\n", "0s - loss: 0.4719 - val_loss: 0.5881\n", "Epoch 440/1000\n", "0s - loss: 0.4709 - val_loss: 0.5902\n", "Epoch 441/1000\n", "0s - loss: 0.4706 - val_loss: 0.5879\n", "Epoch 442/1000\n", "0s - loss: 0.4700 - val_loss: 0.5880\n", "Epoch 443/1000\n", "0s - loss: 0.4700 - val_loss: 0.5884\n", "Epoch 444/1000\n", "0s - loss: 0.4700 - val_loss: 0.5865\n", "Epoch 445/1000\n", "0s - loss: 0.4692 - val_loss: 0.5868\n", "Epoch 446/1000\n", "0s - loss: 0.4692 - val_loss: 0.5866\n", "Epoch 447/1000\n", "0s - loss: 0.4698 - val_loss: 0.5845\n", "Epoch 448/1000\n", "0s - loss: 0.4685 - val_loss: 0.5856\n", "Epoch 449/1000\n", "0s - loss: 0.4682 - val_loss: 0.5869\n", "Epoch 450/1000\n", "0s - loss: 0.4678 - val_loss: 0.5841\n", "Epoch 451/1000\n", "0s - loss: 0.4678 - val_loss: 0.5849\n", "Epoch 452/1000\n", "0s - loss: 0.4682 - val_loss: 0.5845\n", "Epoch 453/1000\n", "0s - loss: 0.4669 - val_loss: 0.5840\n", "Epoch 454/1000\n", "0s - loss: 0.4668 - val_loss: 0.5840\n", "Epoch 455/1000\n", "0s - loss: 0.4659 - val_loss: 0.5821\n", "Epoch 456/1000\n", "0s - loss: 0.4657 - val_loss: 0.5826\n", "Epoch 457/1000\n", "0s - loss: 0.4658 - val_loss: 0.5806\n", "Epoch 458/1000\n", "0s - loss: 0.4651 - val_loss: 0.5803\n", "Epoch 459/1000\n", "0s - loss: 0.4645 - val_loss: 0.5811\n", "Epoch 460/1000\n", "0s - loss: 0.4645 - val_loss: 0.5818\n", "Epoch 461/1000\n", "0s - loss: 0.4636 - val_loss: 0.5789\n", "Epoch 462/1000\n", "0s - loss: 0.4633 - val_loss: 0.5811\n", "Epoch 463/1000\n", "0s - loss: 0.4628 - val_loss: 0.5777\n", "Epoch 464/1000\n", "0s - loss: 0.4628 - val_loss: 0.5774\n", "Epoch 465/1000\n", "0s - loss: 0.4629 - val_loss: 0.5774\n", "Epoch 466/1000\n", "0s - loss: 0.4624 - val_loss: 0.5765\n", "Epoch 467/1000\n", "0s - loss: 0.4621 - val_loss: 0.5760\n", "Epoch 468/1000\n", "0s - loss: 0.4620 - val_loss: 0.5758\n", "Epoch 469/1000\n", "0s - loss: 0.4612 - val_loss: 0.5749\n", "Epoch 470/1000\n", "0s - loss: 0.4606 - val_loss: 0.5771\n", "Epoch 471/1000\n", "0s - loss: 0.4601 - val_loss: 0.5748\n", "Epoch 472/1000\n", "0s - loss: 0.4601 - val_loss: 0.5737\n", "Epoch 473/1000\n", "0s - loss: 0.4599 - val_loss: 0.5737\n", "Epoch 474/1000\n", "0s - loss: 0.4588 - val_loss: 0.5763\n", "Epoch 475/1000\n", "0s - loss: 0.4590 - val_loss: 0.5748\n", "Epoch 476/1000\n", "0s - loss: 0.4580 - val_loss: 0.5722\n", "Epoch 477/1000\n", "0s - loss: 0.4579 - val_loss: 0.5720\n", "Epoch 478/1000\n", "0s - loss: 0.4571 - val_loss: 0.5714\n", "Epoch 479/1000\n", "0s - loss: 0.4571 - val_loss: 0.5715\n", "Epoch 480/1000\n", "0s - loss: 0.4568 - val_loss: 0.5697\n", "Epoch 481/1000\n", "0s - loss: 0.4559 - val_loss: 0.5690\n", "Epoch 482/1000\n", "0s - loss: 0.4561 - val_loss: 0.5680\n", "Epoch 483/1000\n", "0s - loss: 0.4552 - val_loss: 0.5678\n", "Epoch 484/1000\n", "0s - loss: 0.4548 - val_loss: 0.5687\n", "Epoch 485/1000\n", "0s - loss: 0.4550 - val_loss: 0.5710\n", "Epoch 486/1000\n", "0s - loss: 0.4542 - val_loss: 0.5668\n", "Epoch 487/1000\n", "0s - loss: 0.4533 - val_loss: 0.5684\n", "Epoch 488/1000\n", "0s - loss: 0.4531 - val_loss: 0.5673\n", "Epoch 489/1000\n", "0s - loss: 0.4525 - val_loss: 0.5653\n", "Epoch 490/1000\n", "0s - loss: 0.4519 - val_loss: 0.5645\n", "Epoch 491/1000\n", "0s - loss: 0.4513 - val_loss: 0.5648\n", "Epoch 492/1000\n", "0s - loss: 0.4521 - val_loss: 0.5632\n", "Epoch 493/1000\n", "0s - loss: 0.4508 - val_loss: 0.5659\n", "Epoch 494/1000\n", "0s - loss: 0.4505 - val_loss: 0.5629\n", "Epoch 495/1000\n", "0s - loss: 0.4506 - val_loss: 0.5628\n", "Epoch 496/1000\n", "0s - loss: 0.4508 - val_loss: 0.5600\n", "Epoch 497/1000\n", "0s - loss: 0.4500 - val_loss: 0.5593\n", "Epoch 498/1000\n", "0s - loss: 0.4498 - val_loss: 0.5597\n", "Epoch 499/1000\n", "0s - loss: 0.4484 - val_loss: 0.5596\n", "Epoch 500/1000\n", "0s - loss: 0.4474 - val_loss: 0.5605\n", "Epoch 501/1000\n", "0s - loss: 0.4472 - val_loss: 0.5585\n", "Epoch 502/1000\n", "0s - loss: 0.4467 - val_loss: 0.5584\n", "Epoch 503/1000\n", "0s - loss: 0.4459 - val_loss: 0.5576\n", "Epoch 504/1000\n", "0s - loss: 0.4466 - val_loss: 0.5602\n", "Epoch 505/1000\n", "0s - loss: 0.4450 - val_loss: 0.5554\n", "Epoch 506/1000\n", "0s - loss: 0.4456 - val_loss: 0.5544\n", "Epoch 507/1000\n", "0s - loss: 0.4440 - val_loss: 0.5548\n", "Epoch 508/1000\n", "0s - loss: 0.4437 - val_loss: 0.5551\n", "Epoch 509/1000\n", "0s - loss: 0.4432 - val_loss: 0.5547\n", "Epoch 510/1000\n", "0s - loss: 0.4425 - val_loss: 0.5530\n", "Epoch 511/1000\n", "0s - loss: 0.4425 - val_loss: 0.5524\n", "Epoch 512/1000\n", "0s - loss: 0.4420 - val_loss: 0.5516\n", "Epoch 513/1000\n", "0s - loss: 0.4413 - val_loss: 0.5509\n", "Epoch 514/1000\n", "0s - loss: 0.4408 - val_loss: 0.5506\n", "Epoch 515/1000\n", "0s - loss: 0.4399 - val_loss: 0.5504\n", "Epoch 516/1000\n", "0s - loss: 0.4400 - val_loss: 0.5489\n", "Epoch 517/1000\n", "0s - loss: 0.4394 - val_loss: 0.5503\n", "Epoch 518/1000\n", "0s - loss: 0.4391 - val_loss: 0.5482\n", "Epoch 519/1000\n", "0s - loss: 0.4387 - val_loss: 0.5461\n", "Epoch 520/1000\n", "0s - loss: 0.4384 - val_loss: 0.5470\n", "Epoch 521/1000\n", "0s - loss: 0.4366 - val_loss: 0.5455\n", "Epoch 522/1000\n", "0s - loss: 0.4377 - val_loss: 0.5445\n", "Epoch 523/1000\n", "0s - loss: 0.4367 - val_loss: 0.5440\n", "Epoch 524/1000\n", "0s - loss: 0.4349 - val_loss: 0.5440\n", "Epoch 525/1000\n", "0s - loss: 0.4346 - val_loss: 0.5431\n", "Epoch 526/1000\n", "0s - loss: 0.4344 - val_loss: 0.5435\n", "Epoch 527/1000\n", "0s - loss: 0.4335 - val_loss: 0.5412\n", "Epoch 528/1000\n", "0s - loss: 0.4336 - val_loss: 0.5412\n", "Epoch 529/1000\n", "0s - loss: 0.4323 - val_loss: 0.5417\n", "Epoch 530/1000\n", "0s - loss: 0.4318 - val_loss: 0.5400\n", "Epoch 531/1000\n", "0s - loss: 0.4311 - val_loss: 0.5386\n", "Epoch 532/1000\n", "0s - loss: 0.4311 - val_loss: 0.5386\n", "Epoch 533/1000\n", "0s - loss: 0.4304 - val_loss: 0.5386\n", "Epoch 534/1000\n", "0s - loss: 0.4300 - val_loss: 0.5382\n", "Epoch 535/1000\n", "0s - loss: 0.4292 - val_loss: 0.5375\n", "Epoch 536/1000\n", "0s - loss: 0.4288 - val_loss: 0.5364\n", "Epoch 537/1000\n", "0s - loss: 0.4286 - val_loss: 0.5350\n", "Epoch 538/1000\n", "0s - loss: 0.4276 - val_loss: 0.5346\n", "Epoch 539/1000\n", "0s - loss: 0.4270 - val_loss: 0.5343\n", "Epoch 540/1000\n", "0s - loss: 0.4264 - val_loss: 0.5330\n", "Epoch 541/1000\n", "0s - loss: 0.4254 - val_loss: 0.5317\n", "Epoch 542/1000\n", "0s - loss: 0.4252 - val_loss: 0.5323\n", "Epoch 543/1000\n", "0s - loss: 0.4247 - val_loss: 0.5308\n", "Epoch 544/1000\n", "0s - loss: 0.4236 - val_loss: 0.5312\n", "Epoch 545/1000\n", "0s - loss: 0.4236 - val_loss: 0.5309\n", "Epoch 546/1000\n", "0s - loss: 0.4235 - val_loss: 0.5289\n", "Epoch 547/1000\n", "0s - loss: 0.4219 - val_loss: 0.5283\n", "Epoch 548/1000\n", "0s - loss: 0.4213 - val_loss: 0.5261\n", "Epoch 549/1000\n", "0s - loss: 0.4208 - val_loss: 0.5264\n", "Epoch 550/1000\n", "0s - loss: 0.4207 - val_loss: 0.5251\n", "Epoch 551/1000\n", "0s - loss: 0.4201 - val_loss: 0.5240\n", "Epoch 552/1000\n", "0s - loss: 0.4186 - val_loss: 0.5246\n", "Epoch 553/1000\n", "0s - loss: 0.4184 - val_loss: 0.5242\n", "Epoch 554/1000\n", "0s - loss: 0.4175 - val_loss: 0.5215\n", "Epoch 555/1000\n", "0s - loss: 0.4168 - val_loss: 0.5204\n", "Epoch 556/1000\n", "0s - loss: 0.4168 - val_loss: 0.5202\n", "Epoch 557/1000\n", "0s - loss: 0.4162 - val_loss: 0.5203\n", "Epoch 558/1000\n", "0s - loss: 0.4151 - val_loss: 0.5187\n", "Epoch 559/1000\n", "0s - loss: 0.4147 - val_loss: 0.5170\n", "Epoch 560/1000\n", "0s - loss: 0.4138 - val_loss: 0.5168\n", "Epoch 561/1000\n", "0s - loss: 0.4134 - val_loss: 0.5171\n", "Epoch 562/1000\n", "0s - loss: 0.4128 - val_loss: 0.5162\n", "Epoch 563/1000\n", "0s - loss: 0.4119 - val_loss: 0.5141\n", "Epoch 564/1000\n", "0s - loss: 0.4110 - val_loss: 0.5126\n", "Epoch 565/1000\n", "0s - loss: 0.4116 - val_loss: 0.5117\n", "Epoch 566/1000\n", "0s - loss: 0.4101 - val_loss: 0.5125\n", "Epoch 567/1000\n", "0s - loss: 0.4104 - val_loss: 0.5129\n", "Epoch 568/1000\n", "0s - loss: 0.4083 - val_loss: 0.5127\n", "Epoch 569/1000\n", "0s - loss: 0.4078 - val_loss: 0.5110\n", "Epoch 570/1000\n", "0s - loss: 0.4067 - val_loss: 0.5101\n", "Epoch 571/1000\n", "0s - loss: 0.4063 - val_loss: 0.5092\n", "Epoch 572/1000\n", "0s - loss: 0.4058 - val_loss: 0.5059\n", "Epoch 573/1000\n", "0s - loss: 0.4048 - val_loss: 0.5047\n", "Epoch 574/1000\n", "0s - loss: 0.4046 - val_loss: 0.5038\n", "Epoch 575/1000\n", "0s - loss: 0.4051 - val_loss: 0.5035\n", "Epoch 576/1000\n", "0s - loss: 0.4024 - val_loss: 0.5030\n", "Epoch 577/1000\n", "0s - loss: 0.4018 - val_loss: 0.5021\n", "Epoch 578/1000\n", "0s - loss: 0.4012 - val_loss: 0.5021\n", "Epoch 579/1000\n", "0s - loss: 0.4007 - val_loss: 0.4999\n", "Epoch 580/1000\n", "0s - loss: 0.4002 - val_loss: 0.4991\n", "Epoch 581/1000\n", "0s - loss: 0.4006 - val_loss: 0.5008\n", "Epoch 582/1000\n", "0s - loss: 0.3982 - val_loss: 0.4988\n", "Epoch 583/1000\n", "0s - loss: 0.3979 - val_loss: 0.4980\n", "Epoch 584/1000\n", "0s - loss: 0.3977 - val_loss: 0.4978\n", "Epoch 585/1000\n", "0s - loss: 0.3962 - val_loss: 0.4949\n", "Epoch 586/1000\n", "0s - loss: 0.3952 - val_loss: 0.4929\n", "Epoch 587/1000\n", "0s - loss: 0.3944 - val_loss: 0.4937\n", "Epoch 588/1000\n", "0s - loss: 0.3938 - val_loss: 0.4921\n", "Epoch 589/1000\n", "0s - loss: 0.3930 - val_loss: 0.4909\n", "Epoch 590/1000\n", "0s - loss: 0.3928 - val_loss: 0.4890\n", "Epoch 591/1000\n", "0s - loss: 0.3915 - val_loss: 0.4899\n", "Epoch 592/1000\n", "0s - loss: 0.3909 - val_loss: 0.4872\n", "Epoch 593/1000\n", "0s - loss: 0.3904 - val_loss: 0.4862\n", "Epoch 594/1000\n", "0s - loss: 0.3896 - val_loss: 0.4867\n", "Epoch 595/1000\n", "0s - loss: 0.3883 - val_loss: 0.4859\n", "Epoch 596/1000\n", "0s - loss: 0.3878 - val_loss: 0.4837\n", "Epoch 597/1000\n", "0s - loss: 0.3867 - val_loss: 0.4832\n", "Epoch 598/1000\n", "0s - loss: 0.3855 - val_loss: 0.4826\n", "Epoch 599/1000\n", "0s - loss: 0.3847 - val_loss: 0.4813\n", "Epoch 600/1000\n", "0s - loss: 0.3840 - val_loss: 0.4796\n", "Epoch 601/1000\n", "0s - loss: 0.3836 - val_loss: 0.4805\n", "Epoch 602/1000\n", "0s - loss: 0.3824 - val_loss: 0.4782\n", "Epoch 603/1000\n", "0s - loss: 0.3819 - val_loss: 0.4797\n", "Epoch 604/1000\n", "0s - loss: 0.3810 - val_loss: 0.4766\n", "Epoch 605/1000\n", "0s - loss: 0.3803 - val_loss: 0.4744\n", "Epoch 606/1000\n", "0s - loss: 0.3798 - val_loss: 0.4744\n", "Epoch 607/1000\n", "0s - loss: 0.3782 - val_loss: 0.4731\n", "Epoch 608/1000\n", "0s - loss: 0.3774 - val_loss: 0.4725\n", "Epoch 609/1000\n", "0s - loss: 0.3771 - val_loss: 0.4725\n", "Epoch 610/1000\n", "0s - loss: 0.3759 - val_loss: 0.4700\n", "Epoch 611/1000\n", "0s - loss: 0.3750 - val_loss: 0.4682\n", "Epoch 612/1000\n", "0s - loss: 0.3750 - val_loss: 0.4680\n", "Epoch 613/1000\n", "0s - loss: 0.3740 - val_loss: 0.4665\n", "Epoch 614/1000\n", "0s - loss: 0.3729 - val_loss: 0.4668\n", "Epoch 615/1000\n", "0s - loss: 0.3719 - val_loss: 0.4641\n", "Epoch 616/1000\n", "0s - loss: 0.3711 - val_loss: 0.4639\n", "Epoch 617/1000\n", "0s - loss: 0.3698 - val_loss: 0.4634\n", "Epoch 618/1000\n", "0s - loss: 0.3694 - val_loss: 0.4627\n", "Epoch 619/1000\n", "0s - loss: 0.3689 - val_loss: 0.4603\n", "Epoch 620/1000\n", "0s - loss: 0.3673 - val_loss: 0.4601\n", "Epoch 621/1000\n", "0s - loss: 0.3662 - val_loss: 0.4580\n", "Epoch 622/1000\n", "0s - loss: 0.3652 - val_loss: 0.4583\n", "Epoch 623/1000\n", "0s - loss: 0.3650 - val_loss: 0.4567\n", "Epoch 624/1000\n", "0s - loss: 0.3641 - val_loss: 0.4557\n", "Epoch 625/1000\n", "0s - loss: 0.3627 - val_loss: 0.4549\n", "Epoch 626/1000\n", "0s - loss: 0.3617 - val_loss: 0.4533\n", "Epoch 627/1000\n", "0s - loss: 0.3608 - val_loss: 0.4522\n", "Epoch 628/1000\n", "0s - loss: 0.3598 - val_loss: 0.4503\n", "Epoch 629/1000\n", "0s - loss: 0.3596 - val_loss: 0.4491\n", "Epoch 630/1000\n", "0s - loss: 0.3582 - val_loss: 0.4497\n", "Epoch 631/1000\n", "0s - loss: 0.3577 - val_loss: 0.4482\n", "Epoch 632/1000\n", "0s - loss: 0.3574 - val_loss: 0.4466\n", "Epoch 633/1000\n", "0s - loss: 0.3556 - val_loss: 0.4457\n", "Epoch 634/1000\n", "0s - loss: 0.3545 - val_loss: 0.4433\n", "Epoch 635/1000\n", "0s - loss: 0.3543 - val_loss: 0.4427\n", "Epoch 636/1000\n", "0s - loss: 0.3533 - val_loss: 0.4415\n", "Epoch 637/1000\n", "0s - loss: 0.3515 - val_loss: 0.4404\n", "Epoch 638/1000\n", "0s - loss: 0.3510 - val_loss: 0.4387\n", "Epoch 639/1000\n", "0s - loss: 0.3496 - val_loss: 0.4374\n", "Epoch 640/1000\n", "0s - loss: 0.3498 - val_loss: 0.4390\n", "Epoch 641/1000\n", "0s - loss: 0.3482 - val_loss: 0.4375\n", "Epoch 642/1000\n", "0s - loss: 0.3480 - val_loss: 0.4359\n", "Epoch 643/1000\n", "0s - loss: 0.3459 - val_loss: 0.4339\n", "Epoch 644/1000\n", "0s - loss: 0.3449 - val_loss: 0.4316\n", "Epoch 645/1000\n", "0s - loss: 0.3440 - val_loss: 0.4304\n", "Epoch 646/1000\n", "0s - loss: 0.3434 - val_loss: 0.4291\n", "Epoch 647/1000\n", "0s - loss: 0.3421 - val_loss: 0.4295\n", "Epoch 648/1000\n", "0s - loss: 0.3408 - val_loss: 0.4269\n", "Epoch 649/1000\n", "0s - loss: 0.3398 - val_loss: 0.4259\n", "Epoch 650/1000\n", "0s - loss: 0.3391 - val_loss: 0.4241\n", "Epoch 651/1000\n", "0s - loss: 0.3383 - val_loss: 0.4228\n", "Epoch 652/1000\n", "0s - loss: 0.3368 - val_loss: 0.4216\n", "Epoch 653/1000\n", "0s - loss: 0.3359 - val_loss: 0.4207\n", "Epoch 654/1000\n", "0s - loss: 0.3348 - val_loss: 0.4218\n", "Epoch 655/1000\n", "0s - loss: 0.3339 - val_loss: 0.4187\n", "Epoch 656/1000\n", "0s - loss: 0.3329 - val_loss: 0.4168\n", "Epoch 657/1000\n", "0s - loss: 0.3320 - val_loss: 0.4164\n", "Epoch 658/1000\n", "0s - loss: 0.3311 - val_loss: 0.4160\n", "Epoch 659/1000\n", "0s - loss: 0.3300 - val_loss: 0.4152\n", "Epoch 660/1000\n", "0s - loss: 0.3289 - val_loss: 0.4136\n", "Epoch 661/1000\n", "0s - loss: 0.3283 - val_loss: 0.4100\n", "Epoch 662/1000\n", "0s - loss: 0.3279 - val_loss: 0.4095\n", "Epoch 663/1000\n", "0s - loss: 0.3258 - val_loss: 0.4094\n", "Epoch 664/1000\n", "0s - loss: 0.3248 - val_loss: 0.4081\n", "Epoch 665/1000\n", "0s - loss: 0.3241 - val_loss: 0.4056\n", "Epoch 666/1000\n", "0s - loss: 0.3229 - val_loss: 0.4065\n", "Epoch 667/1000\n", "0s - loss: 0.3215 - val_loss: 0.4029\n", "Epoch 668/1000\n", "0s - loss: 0.3205 - val_loss: 0.4012\n", "Epoch 669/1000\n", "0s - loss: 0.3201 - val_loss: 0.4000\n", "Epoch 670/1000\n", "0s - loss: 0.3188 - val_loss: 0.3996\n", "Epoch 671/1000\n", "0s - loss: 0.3177 - val_loss: 0.3977\n", "Epoch 672/1000\n", "0s - loss: 0.3161 - val_loss: 0.3960\n", "Epoch 673/1000\n", "0s - loss: 0.3155 - val_loss: 0.3954\n", "Epoch 674/1000\n", "0s - loss: 0.3149 - val_loss: 0.3939\n", "Epoch 675/1000\n", "0s - loss: 0.3132 - val_loss: 0.3933\n", "Epoch 676/1000\n", "0s - loss: 0.3119 - val_loss: 0.3914\n", "Epoch 677/1000\n", "0s - loss: 0.3110 - val_loss: 0.3907\n", "Epoch 678/1000\n", "0s - loss: 0.3109 - val_loss: 0.3910\n", "Epoch 679/1000\n", "0s - loss: 0.3093 - val_loss: 0.3882\n", "Epoch 680/1000\n", "0s - loss: 0.3076 - val_loss: 0.3861\n", "Epoch 681/1000\n", "0s - loss: 0.3067 - val_loss: 0.3843\n", "Epoch 682/1000\n", "0s - loss: 0.3056 - val_loss: 0.3829\n", "Epoch 683/1000\n", "0s - loss: 0.3043 - val_loss: 0.3813\n", "Epoch 684/1000\n", "0s - loss: 0.3034 - val_loss: 0.3801\n", "Epoch 685/1000\n", "0s - loss: 0.3021 - val_loss: 0.3787\n", "Epoch 686/1000\n", "0s - loss: 0.3018 - val_loss: 0.3769\n", "Epoch 687/1000\n", "0s - loss: 0.3000 - val_loss: 0.3770\n", "Epoch 688/1000\n", "0s - loss: 0.2989 - val_loss: 0.3749\n", "Epoch 689/1000\n", "0s - loss: 0.2976 - val_loss: 0.3735\n", "Epoch 690/1000\n", "0s - loss: 0.2970 - val_loss: 0.3734\n", "Epoch 691/1000\n", "0s - loss: 0.2954 - val_loss: 0.3720\n", "Epoch 692/1000\n", "0s - loss: 0.2962 - val_loss: 0.3689\n", "Epoch 693/1000\n", "0s - loss: 0.2934 - val_loss: 0.3674\n", "Epoch 694/1000\n", "0s - loss: 0.2921 - val_loss: 0.3661\n", "Epoch 695/1000\n", "0s - loss: 0.2909 - val_loss: 0.3647\n", "Epoch 696/1000\n", "0s - loss: 0.2895 - val_loss: 0.3647\n", "Epoch 697/1000\n", "0s - loss: 0.2889 - val_loss: 0.3620\n", "Epoch 698/1000\n", "0s - loss: 0.2877 - val_loss: 0.3604\n", "Epoch 699/1000\n", "0s - loss: 0.2867 - val_loss: 0.3594\n", "Epoch 700/1000\n", "0s - loss: 0.2850 - val_loss: 0.3574\n", "Epoch 701/1000\n", "0s - loss: 0.2840 - val_loss: 0.3568\n", "Epoch 702/1000\n", "0s - loss: 0.2827 - val_loss: 0.3554\n", "Epoch 703/1000\n", "0s - loss: 0.2815 - val_loss: 0.3537\n", "Epoch 704/1000\n", "0s - loss: 0.2807 - val_loss: 0.3526\n", "Epoch 705/1000\n", "0s - loss: 0.2796 - val_loss: 0.3508\n", "Epoch 706/1000\n", "0s - loss: 0.2784 - val_loss: 0.3495\n", "Epoch 707/1000\n", "0s - loss: 0.2770 - val_loss: 0.3481\n", "Epoch 708/1000\n", "0s - loss: 0.2762 - val_loss: 0.3469\n", "Epoch 709/1000\n", "0s - loss: 0.2753 - val_loss: 0.3452\n", "Epoch 710/1000\n", "0s - loss: 0.2736 - val_loss: 0.3435\n", "Epoch 711/1000\n", "0s - loss: 0.2722 - val_loss: 0.3421\n", "Epoch 712/1000\n", "0s - loss: 0.2711 - val_loss: 0.3410\n", "Epoch 713/1000\n", "0s - loss: 0.2705 - val_loss: 0.3416\n", "Epoch 714/1000\n", "0s - loss: 0.2689 - val_loss: 0.3377\n", "Epoch 715/1000\n", "0s - loss: 0.2674 - val_loss: 0.3362\n", "Epoch 716/1000\n", "0s - loss: 0.2666 - val_loss: 0.3348\n", "Epoch 717/1000\n", "0s - loss: 0.2655 - val_loss: 0.3326\n", "Epoch 718/1000\n", "0s - loss: 0.2645 - val_loss: 0.3318\n", "Epoch 719/1000\n", "0s - loss: 0.2631 - val_loss: 0.3305\n", "Epoch 720/1000\n", "0s - loss: 0.2620 - val_loss: 0.3295\n", "Epoch 721/1000\n", "0s - loss: 0.2607 - val_loss: 0.3278\n", "Epoch 722/1000\n", "0s - loss: 0.2594 - val_loss: 0.3262\n", "Epoch 723/1000\n", "0s - loss: 0.2583 - val_loss: 0.3258\n", "Epoch 724/1000\n", "0s - loss: 0.2570 - val_loss: 0.3232\n", "Epoch 725/1000\n", "0s - loss: 0.2563 - val_loss: 0.3209\n", "Epoch 726/1000\n", "0s - loss: 0.2550 - val_loss: 0.3198\n", "Epoch 727/1000\n", "0s - loss: 0.2534 - val_loss: 0.3193\n", "Epoch 728/1000\n", "0s - loss: 0.2522 - val_loss: 0.3174\n", "Epoch 729/1000\n", "0s - loss: 0.2509 - val_loss: 0.3158\n", "Epoch 730/1000\n", "0s - loss: 0.2499 - val_loss: 0.3141\n", "Epoch 731/1000\n", "0s - loss: 0.2486 - val_loss: 0.3123\n", "Epoch 732/1000\n", "0s - loss: 0.2474 - val_loss: 0.3112\n", "Epoch 733/1000\n", "0s - loss: 0.2464 - val_loss: 0.3095\n", "Epoch 734/1000\n", "0s - loss: 0.2452 - val_loss: 0.3085\n", "Epoch 735/1000\n", "0s - loss: 0.2444 - val_loss: 0.3067\n", "Epoch 736/1000\n", "0s - loss: 0.2425 - val_loss: 0.3048\n", "Epoch 737/1000\n", "0s - loss: 0.2417 - val_loss: 0.3049\n", "Epoch 738/1000\n", "0s - loss: 0.2402 - val_loss: 0.3015\n", "Epoch 739/1000\n", "0s - loss: 0.2390 - val_loss: 0.3000\n", "Epoch 740/1000\n", "0s - loss: 0.2379 - val_loss: 0.2988\n", "Epoch 741/1000\n", "0s - loss: 0.2375 - val_loss: 0.2968\n", "Epoch 742/1000\n", "0s - loss: 0.2357 - val_loss: 0.2965\n", "Epoch 743/1000\n", "0s - loss: 0.2339 - val_loss: 0.2943\n", "Epoch 744/1000\n", "0s - loss: 0.2329 - val_loss: 0.2930\n", "Epoch 745/1000\n", "0s - loss: 0.2314 - val_loss: 0.2917\n", "Epoch 746/1000\n", "0s - loss: 0.2303 - val_loss: 0.2904\n", "Epoch 747/1000\n", "0s - loss: 0.2292 - val_loss: 0.2883\n", "Epoch 748/1000\n", "0s - loss: 0.2280 - val_loss: 0.2872\n", "Epoch 749/1000\n", "0s - loss: 0.2268 - val_loss: 0.2858\n", "Epoch 750/1000\n", "0s - loss: 0.2257 - val_loss: 0.2843\n", "Epoch 751/1000\n", "0s - loss: 0.2246 - val_loss: 0.2829\n", "Epoch 752/1000\n", "0s - loss: 0.2231 - val_loss: 0.2817\n", "Epoch 753/1000\n", "0s - loss: 0.2220 - val_loss: 0.2796\n", "Epoch 754/1000\n", "0s - loss: 0.2212 - val_loss: 0.2780\n", "Epoch 755/1000\n", "0s - loss: 0.2195 - val_loss: 0.2766\n", "Epoch 756/1000\n", "0s - loss: 0.2181 - val_loss: 0.2754\n", "Epoch 757/1000\n", "0s - loss: 0.2170 - val_loss: 0.2741\n", "Epoch 758/1000\n", "0s - loss: 0.2157 - val_loss: 0.2719\n", "Epoch 759/1000\n", "0s - loss: 0.2145 - val_loss: 0.2709\n", "Epoch 760/1000\n", "0s - loss: 0.2135 - val_loss: 0.2697\n", "Epoch 761/1000\n", "0s - loss: 0.2122 - val_loss: 0.2674\n", "Epoch 762/1000\n", "0s - loss: 0.2109 - val_loss: 0.2662\n", "Epoch 763/1000\n", "0s - loss: 0.2099 - val_loss: 0.2642\n", "Epoch 764/1000\n", "0s - loss: 0.2090 - val_loss: 0.2631\n", "Epoch 765/1000\n", "0s - loss: 0.2076 - val_loss: 0.2615\n", "Epoch 766/1000\n", "0s - loss: 0.2069 - val_loss: 0.2604\n", "Epoch 767/1000\n", "0s - loss: 0.2049 - val_loss: 0.2586\n", "Epoch 768/1000\n", "0s - loss: 0.2039 - val_loss: 0.2571\n", "Epoch 769/1000\n", "0s - loss: 0.2028 - val_loss: 0.2558\n", "Epoch 770/1000\n", "0s - loss: 0.2013 - val_loss: 0.2544\n", "Epoch 771/1000\n", "0s - loss: 0.2002 - val_loss: 0.2530\n", "Epoch 772/1000\n", "0s - loss: 0.1990 - val_loss: 0.2508\n", "Epoch 773/1000\n", "0s - loss: 0.1978 - val_loss: 0.2497\n", "Epoch 774/1000\n", "0s - loss: 0.1967 - val_loss: 0.2478\n", "Epoch 775/1000\n", "0s - loss: 0.1955 - val_loss: 0.2472\n", "Epoch 776/1000\n", "0s - loss: 0.1941 - val_loss: 0.2456\n", "Epoch 777/1000\n", "0s - loss: 0.1934 - val_loss: 0.2440\n", "Epoch 778/1000\n", "0s - loss: 0.1919 - val_loss: 0.2430\n", "Epoch 779/1000\n", "0s - loss: 0.1906 - val_loss: 0.2405\n", "Epoch 780/1000\n", "0s - loss: 0.1900 - val_loss: 0.2399\n", "Epoch 781/1000\n", "0s - loss: 0.1887 - val_loss: 0.2376\n", "Epoch 782/1000\n", "0s - loss: 0.1870 - val_loss: 0.2366\n", "Epoch 783/1000\n", "0s - loss: 0.1860 - val_loss: 0.2347\n", "Epoch 784/1000\n", "0s - loss: 0.1846 - val_loss: 0.2345\n", "Epoch 785/1000\n", "0s - loss: 0.1835 - val_loss: 0.2320\n", "Epoch 786/1000\n", "0s - loss: 0.1828 - val_loss: 0.2308\n", "Epoch 787/1000\n", "0s - loss: 0.1812 - val_loss: 0.2296\n", "Epoch 788/1000\n", "0s - loss: 0.1801 - val_loss: 0.2282\n", "Epoch 789/1000\n", "0s - loss: 0.1791 - val_loss: 0.2271\n", "Epoch 790/1000\n", "0s - loss: 0.1778 - val_loss: 0.2251\n", "Epoch 791/1000\n", "0s - loss: 0.1775 - val_loss: 0.2237\n", "Epoch 792/1000\n", "0s - loss: 0.1754 - val_loss: 0.2223\n", "Epoch 793/1000\n", "0s - loss: 0.1745 - val_loss: 0.2208\n", "Epoch 794/1000\n", "0s - loss: 0.1733 - val_loss: 0.2196\n", "Epoch 795/1000\n", "0s - loss: 0.1720 - val_loss: 0.2176\n", "Epoch 796/1000\n", "0s - loss: 0.1709 - val_loss: 0.2178\n", "Epoch 797/1000\n", "0s - loss: 0.1702 - val_loss: 0.2159\n", "Epoch 798/1000\n", "0s - loss: 0.1687 - val_loss: 0.2134\n", "Epoch 799/1000\n", "0s - loss: 0.1679 - val_loss: 0.2118\n", "Epoch 800/1000\n", "0s - loss: 0.1666 - val_loss: 0.2103\n", "Epoch 801/1000\n", "0s - loss: 0.1651 - val_loss: 0.2092\n", "Epoch 802/1000\n", "0s - loss: 0.1640 - val_loss: 0.2079\n", "Epoch 803/1000\n", "0s - loss: 0.1628 - val_loss: 0.2071\n", "Epoch 804/1000\n", "0s - loss: 0.1621 - val_loss: 0.2052\n", "Epoch 805/1000\n", "0s - loss: 0.1609 - val_loss: 0.2042\n", "Epoch 806/1000\n", "0s - loss: 0.1596 - val_loss: 0.2022\n", "Epoch 807/1000\n", "0s - loss: 0.1589 - val_loss: 0.2008\n", "Epoch 808/1000\n", "0s - loss: 0.1576 - val_loss: 0.1995\n", "Epoch 809/1000\n", "0s - loss: 0.1564 - val_loss: 0.1980\n", "Epoch 810/1000\n", "0s - loss: 0.1554 - val_loss: 0.1968\n", "Epoch 811/1000\n", "0s - loss: 0.1540 - val_loss: 0.1951\n", "Epoch 812/1000\n", "0s - loss: 0.1532 - val_loss: 0.1942\n", "Epoch 813/1000\n", "0s - loss: 0.1517 - val_loss: 0.1925\n", "Epoch 814/1000\n", "0s - loss: 0.1507 - val_loss: 0.1919\n", "Epoch 815/1000\n", "0s - loss: 0.1496 - val_loss: 0.1901\n", "Epoch 816/1000\n", "0s - loss: 0.1485 - val_loss: 0.1884\n", "Epoch 817/1000\n", "0s - loss: 0.1476 - val_loss: 0.1880\n", "Epoch 818/1000\n", "0s - loss: 0.1465 - val_loss: 0.1864\n", "Epoch 819/1000\n", "0s - loss: 0.1453 - val_loss: 0.1851\n", "Epoch 820/1000\n", "0s - loss: 0.1443 - val_loss: 0.1835\n", "Epoch 821/1000\n", "0s - loss: 0.1433 - val_loss: 0.1822\n", "Epoch 822/1000\n", "0s - loss: 0.1423 - val_loss: 0.1806\n", "Epoch 823/1000\n", "0s - loss: 0.1414 - val_loss: 0.1790\n", "Epoch 824/1000\n", "0s - loss: 0.1402 - val_loss: 0.1782\n", "Epoch 825/1000\n", "0s - loss: 0.1390 - val_loss: 0.1775\n", "Epoch 826/1000\n", "0s - loss: 0.1381 - val_loss: 0.1755\n", "Epoch 827/1000\n", "0s - loss: 0.1371 - val_loss: 0.1742\n", "Epoch 828/1000\n", "0s - loss: 0.1360 - val_loss: 0.1732\n", "Epoch 829/1000\n", "0s - loss: 0.1348 - val_loss: 0.1722\n", "Epoch 830/1000\n", "0s - loss: 0.1340 - val_loss: 0.1709\n", "Epoch 831/1000\n", "0s - loss: 0.1330 - val_loss: 0.1689\n", "Epoch 832/1000\n", "0s - loss: 0.1318 - val_loss: 0.1676\n", "Epoch 833/1000\n", "0s - loss: 0.1310 - val_loss: 0.1676\n", "Epoch 834/1000\n", "0s - loss: 0.1305 - val_loss: 0.1656\n", "Epoch 835/1000\n", "0s - loss: 0.1292 - val_loss: 0.1641\n", "Epoch 836/1000\n", "0s - loss: 0.1280 - val_loss: 0.1625\n", "Epoch 837/1000\n", "0s - loss: 0.1270 - val_loss: 0.1615\n", "Epoch 838/1000\n", "0s - loss: 0.1260 - val_loss: 0.1602\n", "Epoch 839/1000\n", "0s - loss: 0.1250 - val_loss: 0.1597\n", "Epoch 840/1000\n", "0s - loss: 0.1241 - val_loss: 0.1579\n", "Epoch 841/1000\n", "0s - loss: 0.1230 - val_loss: 0.1569\n", "Epoch 842/1000\n", "0s - loss: 0.1222 - val_loss: 0.1557\n", "Epoch 843/1000\n", "0s - loss: 0.1212 - val_loss: 0.1550\n", "Epoch 844/1000\n", "0s - loss: 0.1207 - val_loss: 0.1530\n", "Epoch 845/1000\n", "0s - loss: 0.1193 - val_loss: 0.1524\n", "Epoch 846/1000\n", "0s - loss: 0.1184 - val_loss: 0.1512\n", "Epoch 847/1000\n", "0s - loss: 0.1177 - val_loss: 0.1499\n", "Epoch 848/1000\n", "0s - loss: 0.1164 - val_loss: 0.1486\n", "Epoch 849/1000\n", "0s - loss: 0.1155 - val_loss: 0.1471\n", "Epoch 850/1000\n", "0s - loss: 0.1146 - val_loss: 0.1459\n", "Epoch 851/1000\n", "0s - loss: 0.1139 - val_loss: 0.1453\n", "Epoch 852/1000\n", "0s - loss: 0.1128 - val_loss: 0.1441\n", "Epoch 853/1000\n", "0s - loss: 0.1120 - val_loss: 0.1428\n", "Epoch 854/1000\n", "0s - loss: 0.1110 - val_loss: 0.1424\n", "Epoch 855/1000\n", "0s - loss: 0.1104 - val_loss: 0.1403\n", "Epoch 856/1000\n", "0s - loss: 0.1091 - val_loss: 0.1390\n", "Epoch 857/1000\n", "0s - loss: 0.1086 - val_loss: 0.1383\n", "Epoch 858/1000\n", "0s - loss: 0.1073 - val_loss: 0.1373\n", "Epoch 859/1000\n", "0s - loss: 0.1066 - val_loss: 0.1358\n", "Epoch 860/1000\n", "0s - loss: 0.1057 - val_loss: 0.1346\n", "Epoch 861/1000\n", "0s - loss: 0.1050 - val_loss: 0.1335\n", "Epoch 862/1000\n", "0s - loss: 0.1040 - val_loss: 0.1329\n", "Epoch 863/1000\n", "0s - loss: 0.1032 - val_loss: 0.1318\n", "Epoch 864/1000\n", "0s - loss: 0.1023 - val_loss: 0.1308\n", "Epoch 865/1000\n", "0s - loss: 0.1014 - val_loss: 0.1294\n", "Epoch 866/1000\n", "0s - loss: 0.1007 - val_loss: 0.1286\n", "Epoch 867/1000\n", "0s - loss: 0.0998 - val_loss: 0.1280\n", "Epoch 868/1000\n", "0s - loss: 0.0991 - val_loss: 0.1267\n", "Epoch 869/1000\n", "0s - loss: 0.0982 - val_loss: 0.1254\n", "Epoch 870/1000\n", "0s - loss: 0.0975 - val_loss: 0.1243\n", "Epoch 871/1000\n", "0s - loss: 0.0966 - val_loss: 0.1233\n", "Epoch 872/1000\n", "0s - loss: 0.0959 - val_loss: 0.1229\n", "Epoch 873/1000\n", "0s - loss: 0.0952 - val_loss: 0.1213\n", "Epoch 874/1000\n", "0s - loss: 0.0944 - val_loss: 0.1208\n", "Epoch 875/1000\n", "0s - loss: 0.0935 - val_loss: 0.1196\n", "Epoch 876/1000\n", "0s - loss: 0.0926 - val_loss: 0.1184\n", "Epoch 877/1000\n", "0s - loss: 0.0921 - val_loss: 0.1176\n", "Epoch 878/1000\n", "0s - loss: 0.0913 - val_loss: 0.1165\n", "Epoch 879/1000\n", "0s - loss: 0.0904 - val_loss: 0.1155\n", "Epoch 880/1000\n", "0s - loss: 0.0896 - val_loss: 0.1143\n", "Epoch 881/1000\n", "0s - loss: 0.0890 - val_loss: 0.1140\n", "Epoch 882/1000\n", "0s - loss: 0.0882 - val_loss: 0.1126\n", "Epoch 883/1000\n", "0s - loss: 0.0874 - val_loss: 0.1116\n", "Epoch 884/1000\n", "0s - loss: 0.0868 - val_loss: 0.1106\n", "Epoch 885/1000\n", "0s - loss: 0.0863 - val_loss: 0.1097\n", "Epoch 886/1000\n", "0s - loss: 0.0853 - val_loss: 0.1091\n", "Epoch 887/1000\n", "0s - loss: 0.0844 - val_loss: 0.1081\n", "Epoch 888/1000\n", "0s - loss: 0.0839 - val_loss: 0.1070\n", "Epoch 889/1000\n", "0s - loss: 0.0830 - val_loss: 0.1067\n", "Epoch 890/1000\n", "0s - loss: 0.0825 - val_loss: 0.1056\n", "Epoch 891/1000\n", "0s - loss: 0.0819 - val_loss: 0.1043\n", "Epoch 892/1000\n", "0s - loss: 0.0814 - val_loss: 0.1034\n", "Epoch 893/1000\n", "0s - loss: 0.0805 - val_loss: 0.1028\n", "Epoch 894/1000\n", "0s - loss: 0.0797 - val_loss: 0.1018\n", "Epoch 895/1000\n", "0s - loss: 0.0790 - val_loss: 0.1009\n", "Epoch 896/1000\n", "0s - loss: 0.0785 - val_loss: 0.1007\n", "Epoch 897/1000\n", "0s - loss: 0.0779 - val_loss: 0.0995\n", "Epoch 898/1000\n", "0s - loss: 0.0771 - val_loss: 0.0987\n", "Epoch 899/1000\n", "0s - loss: 0.0764 - val_loss: 0.0980\n", "Epoch 900/1000\n", "0s - loss: 0.0761 - val_loss: 0.0974\n", "Epoch 901/1000\n", "0s - loss: 0.0752 - val_loss: 0.0961\n", "Epoch 902/1000\n", "0s - loss: 0.0746 - val_loss: 0.0953\n", "Epoch 903/1000\n", "0s - loss: 0.0740 - val_loss: 0.0945\n", "Epoch 904/1000\n", "0s - loss: 0.0732 - val_loss: 0.0937\n", "Epoch 905/1000\n", "0s - loss: 0.0729 - val_loss: 0.0929\n", "Epoch 906/1000\n", "0s - loss: 0.0721 - val_loss: 0.0921\n", "Epoch 907/1000\n", "0s - loss: 0.0716 - val_loss: 0.0914\n", "Epoch 908/1000\n", "0s - loss: 0.0709 - val_loss: 0.0909\n", "Epoch 909/1000\n", "0s - loss: 0.0704 - val_loss: 0.0900\n", "Epoch 910/1000\n", "0s - loss: 0.0698 - val_loss: 0.0889\n", "Epoch 911/1000\n", "0s - loss: 0.0692 - val_loss: 0.0884\n", "Epoch 912/1000\n", "0s - loss: 0.0688 - val_loss: 0.0875\n", "Epoch 913/1000\n", "0s - loss: 0.0681 - val_loss: 0.0868\n", "Epoch 914/1000\n", "0s - loss: 0.0675 - val_loss: 0.0864\n", "Epoch 915/1000\n", "0s - loss: 0.0670 - val_loss: 0.0854\n", "Epoch 916/1000\n", "0s - loss: 0.0665 - val_loss: 0.0849\n", "Epoch 917/1000\n", "0s - loss: 0.0658 - val_loss: 0.0843\n", "Epoch 918/1000\n", "0s - loss: 0.0653 - val_loss: 0.0832\n", "Epoch 919/1000\n", "0s - loss: 0.0648 - val_loss: 0.0825\n", "Epoch 920/1000\n", "0s - loss: 0.0642 - val_loss: 0.0820\n", "Epoch 921/1000\n", "0s - loss: 0.0638 - val_loss: 0.0815\n", "Epoch 922/1000\n", "0s - loss: 0.0634 - val_loss: 0.0807\n", "Epoch 923/1000\n", "0s - loss: 0.0626 - val_loss: 0.0798\n", "Epoch 924/1000\n", "0s - loss: 0.0622 - val_loss: 0.0792\n", "Epoch 925/1000\n", "0s - loss: 0.0622 - val_loss: 0.0786\n", "Epoch 926/1000\n", "0s - loss: 0.0613 - val_loss: 0.0781\n", "Epoch 927/1000\n", "0s - loss: 0.0607 - val_loss: 0.0779\n", "Epoch 928/1000\n", "0s - loss: 0.0603 - val_loss: 0.0769\n", "Epoch 929/1000\n", "0s - loss: 0.0597 - val_loss: 0.0760\n", "Epoch 930/1000\n", "0s - loss: 0.0593 - val_loss: 0.0754\n", "Epoch 931/1000\n", "0s - loss: 0.0588 - val_loss: 0.0753\n", "Epoch 932/1000\n", "0s - loss: 0.0583 - val_loss: 0.0742\n", "Epoch 933/1000\n", "0s - loss: 0.0578 - val_loss: 0.0736\n", "Epoch 934/1000\n", "0s - loss: 0.0574 - val_loss: 0.0732\n", "Epoch 935/1000\n", "0s - loss: 0.0571 - val_loss: 0.0724\n", "Epoch 936/1000\n", "0s - loss: 0.0565 - val_loss: 0.0719\n", "Epoch 937/1000\n", "0s - loss: 0.0561 - val_loss: 0.0712\n", "Epoch 938/1000\n", "0s - loss: 0.0557 - val_loss: 0.0709\n", "Epoch 939/1000\n", "0s - loss: 0.0553 - val_loss: 0.0703\n", "Epoch 940/1000\n", "0s - loss: 0.0547 - val_loss: 0.0701\n", "Epoch 941/1000\n", "0s - loss: 0.0544 - val_loss: 0.0692\n", "Epoch 942/1000\n", "0s - loss: 0.0539 - val_loss: 0.0684\n", "Epoch 943/1000\n", "0s - loss: 0.0535 - val_loss: 0.0679\n", "Epoch 944/1000\n", "0s - loss: 0.0531 - val_loss: 0.0675\n", "Epoch 945/1000\n", "0s - loss: 0.0527 - val_loss: 0.0668\n", "Epoch 946/1000\n", "0s - loss: 0.0523 - val_loss: 0.0663\n", "Epoch 947/1000\n", "0s - loss: 0.0518 - val_loss: 0.0661\n", "Epoch 948/1000\n", "0s - loss: 0.0515 - val_loss: 0.0655\n", "Epoch 949/1000\n", "0s - loss: 0.0512 - val_loss: 0.0648\n", "Epoch 950/1000\n", "0s - loss: 0.0507 - val_loss: 0.0643\n", "Epoch 951/1000\n", "0s - loss: 0.0503 - val_loss: 0.0637\n", "Epoch 952/1000\n", "0s - loss: 0.0499 - val_loss: 0.0632\n", "Epoch 953/1000\n", "0s - loss: 0.0495 - val_loss: 0.0627\n", "Epoch 954/1000\n", "0s - loss: 0.0493 - val_loss: 0.0623\n", "Epoch 955/1000\n", "0s - loss: 0.0489 - val_loss: 0.0622\n", "Epoch 956/1000\n", "0s - loss: 0.0487 - val_loss: 0.0614\n", "Epoch 957/1000\n", "0s - loss: 0.0482 - val_loss: 0.0608\n", "Epoch 958/1000\n", "0s - loss: 0.0480 - val_loss: 0.0604\n", "Epoch 959/1000\n", "0s - loss: 0.0474 - val_loss: 0.0599\n", "Epoch 960/1000\n", "0s - loss: 0.0471 - val_loss: 0.0596\n", "Epoch 961/1000\n", "0s - loss: 0.0468 - val_loss: 0.0591\n", "Epoch 962/1000\n", "0s - loss: 0.0465 - val_loss: 0.0588\n", "Epoch 963/1000\n", "0s - loss: 0.0461 - val_loss: 0.0581\n", "Epoch 964/1000\n", "0s - loss: 0.0457 - val_loss: 0.0577\n", "Epoch 965/1000\n", "0s - loss: 0.0455 - val_loss: 0.0572\n", "Epoch 966/1000\n", "0s - loss: 0.0451 - val_loss: 0.0568\n", "Epoch 967/1000\n", "0s - loss: 0.0448 - val_loss: 0.0564\n", "Epoch 968/1000\n", "0s - loss: 0.0446 - val_loss: 0.0559\n", "Epoch 969/1000\n", "0s - loss: 0.0442 - val_loss: 0.0556\n", "Epoch 970/1000\n", "0s - loss: 0.0439 - val_loss: 0.0553\n", "Epoch 971/1000\n", "0s - loss: 0.0436 - val_loss: 0.0548\n", "Epoch 972/1000\n", "0s - loss: 0.0433 - val_loss: 0.0544\n", "Epoch 973/1000\n", "0s - loss: 0.0431 - val_loss: 0.0539\n", "Epoch 974/1000\n", "0s - loss: 0.0427 - val_loss: 0.0535\n", "Epoch 975/1000\n", "0s - loss: 0.0424 - val_loss: 0.0533\n", "Epoch 976/1000\n", "0s - loss: 0.0421 - val_loss: 0.0530\n", "Epoch 977/1000\n", "0s - loss: 0.0419 - val_loss: 0.0526\n", "Epoch 978/1000\n", "0s - loss: 0.0416 - val_loss: 0.0521\n", "Epoch 979/1000\n", "0s - loss: 0.0413 - val_loss: 0.0517\n", "Epoch 980/1000\n", "0s - loss: 0.0410 - val_loss: 0.0513\n", "Epoch 981/1000\n", "0s - loss: 0.0408 - val_loss: 0.0510\n", "Epoch 982/1000\n", "0s - loss: 0.0405 - val_loss: 0.0506\n", "Epoch 983/1000\n", "0s - loss: 0.0402 - val_loss: 0.0504\n", "Epoch 984/1000\n", "0s - loss: 0.0400 - val_loss: 0.0499\n", "Epoch 985/1000\n", "0s - loss: 0.0398 - val_loss: 0.0496\n", "Epoch 986/1000\n", "0s - loss: 0.0394 - val_loss: 0.0492\n", "Epoch 987/1000\n", "0s - loss: 0.0393 - val_loss: 0.0489\n", "Epoch 988/1000\n", "0s - loss: 0.0390 - val_loss: 0.0486\n", "Epoch 989/1000\n", "0s - loss: 0.0388 - val_loss: 0.0484\n", "Epoch 990/1000\n", "0s - loss: 0.0385 - val_loss: 0.0479\n", "Epoch 991/1000\n", "0s - loss: 0.0383 - val_loss: 0.0476\n", "Epoch 992/1000\n", "0s - loss: 0.0381 - val_loss: 0.0472\n", "Epoch 993/1000\n", "0s - loss: 0.0379 - val_loss: 0.0470\n", "Epoch 994/1000\n", "0s - loss: 0.0376 - val_loss: 0.0466\n", "Epoch 995/1000\n", "0s - loss: 0.0374 - val_loss: 0.0463\n", "Epoch 996/1000\n", "0s - loss: 0.0372 - val_loss: 0.0461\n", "Epoch 997/1000\n", "0s - loss: 0.0369 - val_loss: 0.0458\n", "Epoch 998/1000\n", "0s - loss: 0.0368 - val_loss: 0.0454\n", "Epoch 999/1000\n", "0s - loss: 0.0365 - val_loss: 0.0453\n", "Epoch 1000/1000\n", "0s - loss: 0.0363 - val_loss: 0.0448\n" ] } ], "source": [ "history = model.fit(trainingX, trainingY, batch_size=128, nb_epoch=1000, validation_split=0.1, verbose=2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### ニューラルネットワークがsin関数をどの程度学習できたか確認してみる\n", "- 左図 : 学習中の予測誤差の変化をプロットしたもの (x軸: iteration, y軸: 予測誤差)\n", "- 右図 : ニューラルネットが学習した関数の形状 (赤: 正しいsin関数, 青: ニューラルネットの学習した関数)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "predictY = model.predict(testX)\n", "plt.subplot(121)\n", "plt.plot(np.arange(len(history.history[\"loss\"])), history.history[\"loss\"], color=\"r\", alpha=0.3, label=\"loss\")\n", "plt.plot(np.arange(len(history.history[\"val_loss\"])), history.history[\"val_loss\"], color=\"b\", alpha=0.3, label=\"val_loss\")\n", "plt.subplot(122)\n", "plt.plot(testX, predictY, \"bo\", alpha=0.3)\n", "plt.plot(testX, testY, \"ro\", alpha=0.3)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# まとめ\n", "- ニューラルネットでsin関数を学習した\n", " - plateauと呼ばれる,学習の停滞を確認できた\n", " - 400 iteration辺りまで,validation errorが0.65とほとんど学習が進んでいなかった\n", " - 400 iterationすぎてから,急劇に validation errorが下がり始め,学習が進み始めた" ] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.11" } }, "nbformat": 4, "nbformat_minor": 0 }