{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "### Dataset Loading and testing" ] }, { "cell_type": "code", "execution_count": 117, "metadata": { "ExecuteTime": { "end_time": "2018-08-30T09:44:54.298988Z", "start_time": "2018-08-30T09:44:54.100648Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Dataset has been loaded\n", "x-train (60000, 8)\n", "x-test (40000, 8)\n", "y-train (60000, 250)\n", "y-test (40000, 250)\n" ] } ], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import h5py\n", "from sklearn.model_selection import train_test_split\n", "\n", "#now load this dataset \n", "h5f = h5py.File('./datasets/s8_sio2tio2.h5','r')\n", "X = h5f['sizes'][:]\n", "Y = h5f['spectrum'][:]\n", "\n", "#get the ranges of the loaded data\n", "num_layers = X.shape[1]\n", "num_lpoints = Y.shape[1]\n", "size_max = np.amax(X)\n", "size_min = np.amin(X)\n", "size_av = 0.5*(size_max + size_min)\n", "\n", "#this information is not given in the dataset\n", "lam_min = 300\n", "lam_max = 1200\n", "lams = np.linspace(lam_min, lam_max, num_lpoints)\n", "\n", "#create a train - test split of the dataset\n", "x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.4, random_state=42)\n", "\n", "# normalize inputs \n", "x_train = (x_train - 50)/20 \n", "x_test = (x_test - 50)/20 \n", "\n", "print(\"Dataset has been loaded\")\n", "print(\"x-train\", x_train.shape)\n", "print(\"x-test \", x_test.shape)\n", "print(\"y-train\", y_train.shape)\n", "print(\"y-test \", y_test.shape)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Model Development" ] }, { "cell_type": "code", "execution_count": 120, "metadata": { "ExecuteTime": { "end_time": "2018-08-30T09:46:08.395744Z", "start_time": "2018-08-30T09:46:08.369094Z" }, "code_folding": [] }, "outputs": [], "source": [ "from keras import backend as K\n", "from keras.models import Sequential, Model\n", "from keras.layers import Dense, Dropout\n", "from keras.utils import np_utils, multi_gpu_model\n", "from keras.regularizers import l2\n", "from keras.wrappers.scikit_learn import KerasRegressor\n", "from keras.optimizers import Adam\n", "\n", "from sklearn.model_selection import cross_val_score, KFold\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.pipeline import Pipeline\n", "\n", "num_gpus = 2\n", "gpu_list = [\"gpu(%d)\" % i for i in range(num_gpus)]\n", "\n", "\n", "\n", "#define various models here\n", "#naive percentage loss\n", "def size_percent_loss(y_true, y_pred):\n", " y_true_a = 0.5*y_true*(size_max - size_min) + size_av\n", " y_pred_a = 0.5*y_pred*(size_max - size_min) + size_av\n", " y_err = np.abs(y_true_a - y_pred_a)/y_true_a\n", " y_err_f = K.flatten(y_err)\n", " return K.sum(y_err_f)\n", "\n", "#naive percentage loss\n", "def naive_percent_loss(y_true, y_pred):\n", " y_err = np.abs(y_true - y_pred)/y_true\n", " y_err_f = K.flatten(y_err)\n", " return K.sum(y_err_f)\n", "\n", "\n", "#function to test performance on testset \n", "def calc_mre(y_true, y_pred):\n", " y_err = 100*np.abs(y_true - y_pred)/y_true\n", " return np.mean(y_err)\n", "\n", "def naiveploss_mgpu_model():\n", " # create model\n", " model = Sequential()\n", " model = multi_gpu_model(model, gpus=num_gpus)\n", " model.add(Dense(250, input_dim=x_train.shape[1], kernel_initializer='normal', activation='relu', \n", " name='first' ))\n", " model.add(Dense(250, input_dim=x_train.shape[1], kernel_initializer='normal', activation='relu', \n", " name='second' ))\n", " model.add(Dense(250, input_dim=x_train.shape[1], kernel_initializer='normal', activation='relu', \n", " name='third' ))\n", " model.add(Dense(250, input_dim=x_train.shape[1], kernel_initializer='normal', activation='relu', \n", " name='fourth' ))\n", " model.add(Dense(250, kernel_initializer='normal', name='last'))\n", " # Compile model\n", " model.compile(loss=naive_percent_loss, optimizer='adam', context = gpu_list)\n", " return model\n", "\n", "def naiveploss_model():\n", " # create model\n", " model = Sequential()\n", " model.add(Dense(250, input_dim=x_train.shape[1], kernel_initializer='normal', activation='relu', \n", " name='first' ))\n", " model.add(Dense(250, input_dim=x_train.shape[1], kernel_initializer='normal', activation='relu', \n", " name='second' ))\n", " model.add(Dense(250, input_dim=x_train.shape[1], kernel_initializer='normal', activation='relu', \n", " name='third' ))\n", " model.add(Dense(250, input_dim=x_train.shape[1], kernel_initializer='normal', activation='relu', \n", " name='fourth' ))\n", " model.add(Dense(250, kernel_initializer='normal', name='last'))\n", " # Compile model\n", " model.compile(loss=naive_percent_loss, optimizer='adam', metrics=['accuracy'])\n", " return model\n", "\n", "import timeit\n", "#here we must have a function that calls the training routine n times and then gives avg and stddev \n", "# of the resulting figures\n", "def net_performance(modelfunc, num_trials=3, batch_size=32, num_epochs=200, num_gpus=2):\n", " models = []\n", " train_err = np.ones(num_trials)\n", " test_err = np.ones(num_trials)\n", " val_err = np.ones(num_trials)\n", " train_time = np.ones(num_trials)\n", " for tnum in np.arange(num_trials):\n", " print(\"iteration: \" + str(tnum + 1))\n", " model_curr = modelfunc()\n", " x_t, x_v, y_t, y_v = train_test_split(x_train, y_train, test_size=0.2, random_state=42)\n", " start_time = timeit.default_timer()\n", " history = model_curr.fit(x_t, y_t,\n", " batch_size=batch_size*num_gpus,\n", " epochs=num_epochs, \n", " verbose=1,\n", " validation_data=(x_v, y_v))\n", " train_time[tnum] = timeit.default_timer() - start_time\n", " models.append(model_curr)\n", " train_err[tnum] = (100.0/num_lpoints)*history.history['loss'][-1]/(batch_size*num_gpus)\n", " val_err[tnum] = (100.0/num_lpoints)*history.history['val_loss'][-1]/(batch_size*num_gpus)\n", " test_err[tnum] = calc_mre(y_test, models[tnum].predict(x_test))\n", " return train_err, val_err, test_err, train_time\n", "\n", "#staging area for new models \n", "def plot_training_history(history, factor):\n", " loss, val_loss = history.history['loss'], history.history['val_loss']\n", " loss = np.asarray(loss)/(factor)\n", " val_loss = np.asarray(val_loss)/(factor)\n", " epochs = len(loss)\n", " \n", " fig, axs = plt.subplots(1,1, figsize=(5,5))\n", " axs.semilogy(np.arange(1, epochs + 1), loss, label='train error')\n", " axs.semilogy(np.arange(1, epochs + 1), val_loss, label='validation error')\n", " axs.set_xlabel('Epoch number')\n", " axs.set_ylabel('Mean Relative Error (MRE) (%)')\n", " axs.legend(loc=\"best\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Model testing" ] }, { "cell_type": "code", "execution_count": 116, "metadata": { "ExecuteTime": { "end_time": "2018-08-29T06:41:01.668305Z", "start_time": "2018-08-29T06:14:17.995862Z" }, "code_folding": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", "first (Dense) (None, 250) 2250 \n", "_________________________________________________________________\n", "second (Dense) (None, 250) 62750 \n", "_________________________________________________________________\n", "third (Dense) (None, 250) 62750 \n", "_________________________________________________________________\n", "fourth (Dense) (None, 250) 62750 \n", "_________________________________________________________________\n", "last (Dense) (None, 250) 62750 \n", "=================================================================\n", "Total params: 253,250\n", "Trainable params: 253,250\n", "Non-trainable params: 0\n", "_________________________________________________________________\n", "Train on 48000 samples, validate on 12000 samples\n", "Epoch 1/500\n", " 3072/48000 [>.............................] - ETA: 3s - loss: 3567.9151" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/hegder/anaconda3/envs/deep/lib/python3.6/site-packages/mxnet/module/bucketing_module.py:408: UserWarning: Optimizer created manually outside Module but rescale_grad is not normalized to 1.0/batch_size/num_workers (1.0 vs. 0.015625). Is this intended?\n", " force_init=force_init)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "48000/48000 [==============================] - 3s 55us/step - loss: 758.9194 - val_loss: 282.3995\n", "Epoch 2/500\n", "48000/48000 [==============================] - 3s 54us/step - loss: 234.1059 - val_loss: 226.3511\n", "Epoch 3/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 197.5172 - val_loss: 170.8384\n", "Epoch 4/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 177.7809 - val_loss: 166.2469\n", "Epoch 5/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 174.9649 - val_loss: 158.2008\n", "Epoch 6/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 158.9374 - val_loss: 135.4285\n", "Epoch 7/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 143.9555 - val_loss: 145.0782\n", "Epoch 8/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 141.5145 - val_loss: 125.5494\n", "Epoch 9/500\n", "48000/48000 [==============================] - 3s 54us/step - loss: 131.5325 - val_loss: 114.3913\n", "Epoch 10/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 127.0139 - val_loss: 145.8169\n", "Epoch 11/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 120.9816 - val_loss: 108.5711\n", "Epoch 12/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 120.9092 - val_loss: 105.8051\n", "Epoch 13/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 107.4964 - val_loss: 116.9726\n", "Epoch 14/500\n", "48000/48000 [==============================] - 3s 54us/step - loss: 107.9405 - val_loss: 94.2575\n", "Epoch 15/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 106.8097 - val_loss: 98.0086\n", "Epoch 16/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 101.1089 - val_loss: 98.3557\n", "Epoch 17/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 94.1812 - val_loss: 81.2932\n", "Epoch 18/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 99.2974 - val_loss: 87.0627\n", "Epoch 19/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 91.1983 - val_loss: 77.0101\n", "Epoch 20/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 88.8569 - val_loss: 73.4708\n", "Epoch 21/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 86.2829 - val_loss: 78.5442\n", "Epoch 22/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 86.1501 - val_loss: 78.5875\n", "Epoch 23/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 84.0941 - val_loss: 73.4307\n", "Epoch 24/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 81.2790 - val_loss: 81.1118\n", "Epoch 25/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 81.6570 - val_loss: 83.2835\n", "Epoch 26/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 76.3102 - val_loss: 81.3871\n", "Epoch 27/500\n", "48000/48000 [==============================] - 3s 54us/step - loss: 75.5790 - val_loss: 72.6830\n", "Epoch 28/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 76.8726 - val_loss: 88.1877\n", "Epoch 29/500\n", "48000/48000 [==============================] - 3s 64us/step - loss: 73.7542 - val_loss: 64.1244\n", "Epoch 30/500\n", "48000/48000 [==============================] - 4s 74us/step - loss: 75.9571 - val_loss: 65.7299\n", "Epoch 31/500\n", "48000/48000 [==============================] - 3s 72us/step - loss: 71.8578 - val_loss: 62.0269\n", "Epoch 32/500\n", "48000/48000 [==============================] - 4s 74us/step - loss: 69.3923 - val_loss: 59.9615\n", "Epoch 33/500\n", "48000/48000 [==============================] - 4s 75us/step - loss: 69.8882 - val_loss: 66.8706\n", "Epoch 34/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 66.0103 - val_loss: 68.3661\n", "Epoch 35/500\n", "48000/48000 [==============================] - 4s 74us/step - loss: 68.8171 - val_loss: 64.0984\n", "Epoch 36/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 63.2879 - val_loss: 67.2591\n", "Epoch 37/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 66.6073 - val_loss: 66.4932\n", "Epoch 38/500\n", "48000/48000 [==============================] - 3s 67us/step - loss: 61.6001 - val_loss: 58.1518\n", "Epoch 39/500\n", "48000/48000 [==============================] - 3s 60us/step - loss: 63.4650 - val_loss: 58.2526\n", "Epoch 40/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 60.5442 - val_loss: 52.0761\n", "Epoch 41/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 60.3760 - val_loss: 70.2721\n", "Epoch 42/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 59.6158 - val_loss: 55.1620\n", "Epoch 43/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 58.2032 - val_loss: 66.1175\n", "Epoch 44/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 60.0241 - val_loss: 61.4944\n", "Epoch 45/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 59.1380 - val_loss: 58.6251\n", "Epoch 46/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 56.6451 - val_loss: 76.7981\n", "Epoch 47/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 57.2370 - val_loss: 56.7377\n", "Epoch 48/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 57.3993 - val_loss: 47.8906\n", "Epoch 49/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 54.1051 - val_loss: 50.2513\n", "Epoch 50/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 54.4506 - val_loss: 54.6104\n", "Epoch 51/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 54.7423 - val_loss: 50.7154\n", "Epoch 52/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 55.2641 - val_loss: 46.3237\n", "Epoch 53/500\n", "48000/48000 [==============================] - 3s 53us/step - loss: 52.4995 - val_loss: 64.8981\n", "Epoch 54/500\n", "48000/48000 [==============================] - 2s 50us/step - loss: 55.0455 - val_loss: 72.2689\n", "Epoch 55/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 51.8919 - val_loss: 55.9141\n", "Epoch 56/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 52.4964 - val_loss: 53.3819\n", "Epoch 57/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 51.2064 - val_loss: 43.6878\n", "Epoch 58/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 52.0763 - val_loss: 49.8289\n", "Epoch 59/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 49.5819 - val_loss: 52.2730\n", "Epoch 60/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 49.8744 - val_loss: 53.8365\n", "Epoch 61/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 50.4270 - val_loss: 62.2085\n", "Epoch 62/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 49.0481 - val_loss: 42.3448\n", "Epoch 63/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 49.3462 - val_loss: 46.9138\n", "Epoch 64/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 48.6418 - val_loss: 52.3908\n", "Epoch 65/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 48.2817 - val_loss: 47.3996\n", "Epoch 66/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 46.6689 - val_loss: 50.9673\n", "Epoch 67/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 47.2678 - val_loss: 42.2958\n", "Epoch 68/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 48.1915 - val_loss: 43.9402\n", "Epoch 69/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 46.8487 - val_loss: 45.4824\n", "Epoch 70/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 45.9850 - val_loss: 44.6649\n", "Epoch 71/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 46.5413 - val_loss: 41.5337\n", "Epoch 72/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 45.0529 - val_loss: 46.7179\n", "Epoch 73/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 47.3735 - val_loss: 45.3695\n", "Epoch 74/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 43.7383 - val_loss: 44.2392\n", "Epoch 75/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 44.5028 - val_loss: 46.4340\n", "Epoch 76/500\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "48000/48000 [==============================] - 3s 57us/step - loss: 44.7438 - val_loss: 45.3806\n", "Epoch 77/500\n", "48000/48000 [==============================] - 3s 60us/step - loss: 44.8231 - val_loss: 50.9379\n", "Epoch 78/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 43.1008 - val_loss: 39.0430\n", "Epoch 79/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 43.3039 - val_loss: 41.3852\n", "Epoch 80/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 42.3276 - val_loss: 42.0595\n", "Epoch 81/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 43.9928 - val_loss: 38.8166\n", "Epoch 82/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 42.8816 - val_loss: 42.0762\n", "Epoch 83/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 42.8535 - val_loss: 45.9878\n", "Epoch 84/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 42.2073 - val_loss: 41.6998\n", "Epoch 85/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 41.7733 - val_loss: 40.8565\n", "Epoch 86/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 41.5217 - val_loss: 42.0052\n", "Epoch 87/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 41.8329 - val_loss: 43.0343\n", "Epoch 88/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 41.6725 - val_loss: 38.8230\n", "Epoch 89/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 40.3899 - val_loss: 43.5447\n", "Epoch 90/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 40.3865 - val_loss: 42.4371\n", "Epoch 91/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 40.4715 - val_loss: 39.7570\n", "Epoch 92/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 41.1605 - val_loss: 45.8160\n", "Epoch 93/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 40.1553 - val_loss: 48.1342\n", "Epoch 94/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 39.5332 - val_loss: 42.4147\n", "Epoch 95/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 39.9351 - val_loss: 52.4520\n", "Epoch 96/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 40.9075 - val_loss: 39.6788\n", "Epoch 97/500\n", "48000/48000 [==============================] - 3s 54us/step - loss: 38.9989 - val_loss: 37.3599\n", "Epoch 98/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 39.0461 - val_loss: 37.0194\n", "Epoch 99/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 39.1487 - val_loss: 36.3221\n", "Epoch 100/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 40.2013 - val_loss: 39.2503\n", "Epoch 101/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 38.7000 - val_loss: 34.7898\n", "Epoch 102/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 39.4970 - val_loss: 41.7976\n", "Epoch 103/500\n", "48000/48000 [==============================] - 2s 52us/step - loss: 37.5595 - val_loss: 35.4554\n", "Epoch 104/500\n", "48000/48000 [==============================] - 3s 61us/step - loss: 38.2042 - val_loss: 36.9746\n", "Epoch 105/500\n", "48000/48000 [==============================] - 5s 112us/step - loss: 39.6067 - val_loss: 34.3308\n", "Epoch 106/500\n", "48000/48000 [==============================] - 3s 54us/step - loss: 37.2705 - val_loss: 37.2497\n", "Epoch 107/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 38.4841 - val_loss: 48.1946\n", "Epoch 108/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 36.9804 - val_loss: 34.5027\n", "Epoch 109/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 37.8291 - val_loss: 36.5980\n", "Epoch 110/500\n", "48000/48000 [==============================] - 3s 53us/step - loss: 37.2951 - val_loss: 35.3570\n", "Epoch 111/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 37.1593 - val_loss: 34.5034\n", "Epoch 112/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 36.7677 - val_loss: 35.9379\n", "Epoch 113/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 37.6168 - val_loss: 37.5607\n", "Epoch 114/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 37.5905 - val_loss: 37.6542\n", "Epoch 115/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 37.1746 - val_loss: 51.6980\n", "Epoch 116/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 37.6481 - val_loss: 38.7146\n", "Epoch 117/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 35.7217 - val_loss: 34.2174\n", "Epoch 118/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 36.7712 - val_loss: 45.5830\n", "Epoch 119/500\n", "48000/48000 [==============================] - 3s 61us/step - loss: 36.8695 - val_loss: 48.3276\n", "Epoch 120/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 36.6613 - val_loss: 32.7236\n", "Epoch 121/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 35.8161 - val_loss: 38.9146\n", "Epoch 122/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 35.9730 - val_loss: 32.6427\n", "Epoch 123/500\n", "48000/48000 [==============================] - 3s 61us/step - loss: 35.5381 - val_loss: 35.8074\n", "Epoch 124/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 35.7747 - val_loss: 36.5564\n", "Epoch 125/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 35.9854 - val_loss: 33.5330\n", "Epoch 126/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 35.3961 - val_loss: 31.6252\n", "Epoch 127/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 35.0023 - val_loss: 33.0239\n", "Epoch 128/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 35.6353 - val_loss: 32.8594\n", "Epoch 129/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 34.7753 - val_loss: 33.6689\n", "Epoch 130/500\n", "48000/48000 [==============================] - 3s 63us/step - loss: 34.9770 - val_loss: 32.2483\n", "Epoch 131/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 34.7891 - val_loss: 30.5284\n", "Epoch 132/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 35.0939 - val_loss: 35.9452\n", "Epoch 133/500\n", "48000/48000 [==============================] - 3s 60us/step - loss: 34.8994 - val_loss: 47.7917\n", "Epoch 134/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 34.9579 - val_loss: 36.1269\n", "Epoch 135/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 33.7780 - val_loss: 32.8155\n", "Epoch 136/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 34.4019 - val_loss: 32.3396\n", "Epoch 137/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 33.8709 - val_loss: 34.2861\n", "Epoch 138/500\n", "48000/48000 [==============================] - 4s 78us/step - loss: 34.3284 - val_loss: 30.3075\n", "Epoch 139/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 33.3427 - val_loss: 36.4149\n", "Epoch 140/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 33.8606 - val_loss: 33.0585\n", "Epoch 141/500\n", "48000/48000 [==============================] - 3s 64us/step - loss: 34.0100 - val_loss: 36.5439\n", "Epoch 142/500\n", "48000/48000 [==============================] - 3s 66us/step - loss: 33.8433 - val_loss: 31.6783\n", "Epoch 143/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 34.0964 - val_loss: 32.1927\n", "Epoch 144/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 32.9480 - val_loss: 36.0860\n", "Epoch 145/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 33.8007 - val_loss: 30.6199\n", "Epoch 146/500\n", "48000/48000 [==============================] - 3s 63us/step - loss: 33.7765 - val_loss: 32.6740\n", "Epoch 147/500\n", "48000/48000 [==============================] - 4s 76us/step - loss: 32.4666 - val_loss: 29.2658\n", "Epoch 148/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 33.1437 - val_loss: 33.4609\n", "Epoch 149/500\n", "48000/48000 [==============================] - 4s 86us/step - loss: 33.5764 - val_loss: 38.2697\n", "Epoch 150/500\n", "48000/48000 [==============================] - 3s 66us/step - loss: 32.9323 - val_loss: 39.2719\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Epoch 151/500\n", "48000/48000 [==============================] - 3s 66us/step - loss: 33.5639 - val_loss: 33.6711\n", "Epoch 152/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 34.0519 - val_loss: 33.8243\n", "Epoch 153/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 33.2443 - val_loss: 32.4102\n", "Epoch 154/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 32.3214 - val_loss: 32.2271\n", "Epoch 155/500\n", "48000/48000 [==============================] - 3s 65us/step - loss: 32.7965 - val_loss: 33.2654\n", "Epoch 156/500\n", "48000/48000 [==============================] - 4s 73us/step - loss: 32.6712 - val_loss: 30.4121\n", "Epoch 157/500\n", "48000/48000 [==============================] - 4s 86us/step - loss: 32.3887 - val_loss: 30.3289\n", "Epoch 158/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 32.5708 - val_loss: 31.8003\n", "Epoch 159/500\n", "48000/48000 [==============================] - 3s 68us/step - loss: 32.6873 - val_loss: 32.6164\n", "Epoch 160/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 31.9507 - val_loss: 31.9852\n", "Epoch 161/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 32.1831 - val_loss: 29.9821\n", "Epoch 162/500\n", "48000/48000 [==============================] - 4s 77us/step - loss: 32.6811 - val_loss: 30.3061\n", "Epoch 163/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 31.6879 - val_loss: 30.5838\n", "Epoch 164/500\n", "48000/48000 [==============================] - 3s 64us/step - loss: 32.5156 - val_loss: 31.9039\n", "Epoch 165/500\n", "48000/48000 [==============================] - 3s 67us/step - loss: 32.3211 - val_loss: 31.9761\n", "Epoch 166/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 31.2711 - val_loss: 31.8612\n", "Epoch 167/500\n", "48000/48000 [==============================] - 4s 85us/step - loss: 31.7926 - val_loss: 32.0518\n", "Epoch 168/500\n", "48000/48000 [==============================] - 4s 76us/step - loss: 32.6605 - val_loss: 30.3137\n", "Epoch 169/500\n", "48000/48000 [==============================] - 3s 61us/step - loss: 31.7806 - val_loss: 36.0920\n", "Epoch 170/500\n", "48000/48000 [==============================] - 3s 72us/step - loss: 31.9155 - val_loss: 30.8688\n", "Epoch 171/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 31.7299 - val_loss: 33.8045\n", "Epoch 172/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 31.0912 - val_loss: 32.6330\n", "Epoch 173/500\n", "48000/48000 [==============================] - 3s 72us/step - loss: 31.5934 - val_loss: 29.2543\n", "Epoch 174/500\n", "48000/48000 [==============================] - 3s 61us/step - loss: 31.0919 - val_loss: 29.6517\n", "Epoch 175/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 31.8489 - val_loss: 30.4213\n", "Epoch 176/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 31.1474 - val_loss: 28.5560\n", "Epoch 177/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 31.1532 - val_loss: 32.0265\n", "Epoch 178/500\n", "48000/48000 [==============================] - 3s 63us/step - loss: 30.8442 - val_loss: 32.3395\n", "Epoch 179/500\n", "48000/48000 [==============================] - 3s 71us/step - loss: 31.1556 - val_loss: 29.2965\n", "Epoch 180/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 31.5411 - val_loss: 29.6693\n", "Epoch 181/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 30.8590 - val_loss: 29.0298\n", "Epoch 182/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 30.9753 - val_loss: 30.3358\n", "Epoch 183/500\n", "48000/48000 [==============================] - 3s 60us/step - loss: 31.4908 - val_loss: 30.4712\n", "Epoch 184/500\n", "48000/48000 [==============================] - 3s 63us/step - loss: 30.7657 - val_loss: 28.8079\n", "Epoch 185/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 30.3248 - val_loss: 30.9328\n", "Epoch 186/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 29.8268 - val_loss: 28.8227\n", "Epoch 187/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 30.9037 - val_loss: 31.8775\n", "Epoch 188/500\n", "48000/48000 [==============================] - 3s 64us/step - loss: 31.1468 - val_loss: 29.5292\n", "Epoch 189/500\n", "48000/48000 [==============================] - 3s 63us/step - loss: 31.3807 - val_loss: 46.4606\n", "Epoch 190/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 30.0259 - val_loss: 32.8844\n", "Epoch 191/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 30.9277 - val_loss: 34.3603\n", "Epoch 192/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 30.2444 - val_loss: 29.7135\n", "Epoch 193/500\n", "48000/48000 [==============================] - 3s 67us/step - loss: 30.0756 - val_loss: 28.7181\n", "Epoch 194/500\n", "48000/48000 [==============================] - 3s 62us/step - loss: 30.8875 - val_loss: 28.3977\n", "Epoch 195/500\n", "48000/48000 [==============================] - 4s 78us/step - loss: 30.1811 - val_loss: 30.0092\n", "Epoch 196/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 29.4556 - val_loss: 29.9299\n", "Epoch 197/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 30.0434 - val_loss: 27.3243\n", "Epoch 198/500\n", "48000/48000 [==============================] - 3s 73us/step - loss: 30.1174 - val_loss: 28.6114\n", "Epoch 199/500\n", "48000/48000 [==============================] - 3s 64us/step - loss: 30.5398 - val_loss: 31.2164\n", "Epoch 200/500\n", "48000/48000 [==============================] - 4s 77us/step - loss: 29.7570 - val_loss: 31.7675\n", "Epoch 201/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 29.4689 - val_loss: 29.4691\n", "Epoch 202/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 30.5228 - val_loss: 31.4976\n", "Epoch 203/500\n", "48000/48000 [==============================] - 4s 76us/step - loss: 29.5382 - val_loss: 28.1938\n", "Epoch 204/500\n", "48000/48000 [==============================] - 3s 65us/step - loss: 29.4097 - val_loss: 30.7556\n", "Epoch 205/500\n", "48000/48000 [==============================] - 4s 75us/step - loss: 29.5495 - val_loss: 28.4626\n", "Epoch 206/500\n", "48000/48000 [==============================] - 4s 77us/step - loss: 29.9716 - val_loss: 28.3944\n", "Epoch 207/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 29.6310 - val_loss: 28.0796\n", "Epoch 208/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 29.7201 - val_loss: 28.7121\n", "Epoch 209/500\n", "48000/48000 [==============================] - 3s 65us/step - loss: 29.3876 - val_loss: 27.2770\n", "Epoch 210/500\n", "48000/48000 [==============================] - 3s 72us/step - loss: 29.8892 - val_loss: 30.2190\n", "Epoch 211/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 29.8506 - val_loss: 30.4768\n", "Epoch 212/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 29.7141 - val_loss: 31.1724\n", "Epoch 213/500\n", "48000/48000 [==============================] - 4s 77us/step - loss: 29.4103 - val_loss: 29.4219\n", "Epoch 214/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 29.0618 - val_loss: 27.8247\n", "Epoch 215/500\n", "48000/48000 [==============================] - 3s 64us/step - loss: 28.9123 - val_loss: 30.7295\n", "Epoch 216/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 29.5112 - val_loss: 26.9656\n", "Epoch 217/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 28.7855 - val_loss: 25.7204\n", "Epoch 218/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 29.9057 - val_loss: 29.6944\n", "Epoch 219/500\n", "48000/48000 [==============================] - 3s 65us/step - loss: 29.3250 - val_loss: 25.7410\n", "Epoch 220/500\n", "48000/48000 [==============================] - 3s 65us/step - loss: 28.7962 - val_loss: 27.9168\n", "Epoch 221/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 28.1851 - val_loss: 28.2614\n", "Epoch 222/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 28.4710 - val_loss: 28.0298\n", "Epoch 223/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 28.8342 - val_loss: 27.5035\n", "Epoch 224/500\n", "48000/48000 [==============================] - 3s 67us/step - loss: 28.7848 - val_loss: 27.3364\n", "Epoch 225/500\n", "48000/48000 [==============================] - 3s 62us/step - loss: 28.6719 - val_loss: 28.3957\n", "Epoch 226/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 28.7020 - val_loss: 31.7949\n", "Epoch 227/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 28.7613 - val_loss: 26.7262\n", "Epoch 228/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 28.3690 - val_loss: 27.8016\n", "Epoch 229/500\n", "48000/48000 [==============================] - 4s 76us/step - loss: 28.5267 - val_loss: 28.6025\n", "Epoch 230/500\n", "48000/48000 [==============================] - 3s 61us/step - loss: 29.2772 - val_loss: 26.7848\n", "Epoch 231/500\n", "48000/48000 [==============================] - 4s 73us/step - loss: 28.7689 - val_loss: 27.3909\n", "Epoch 232/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 28.7391 - val_loss: 30.4778\n", "Epoch 233/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 28.0696 - val_loss: 30.0936\n", "Epoch 234/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 28.0675 - val_loss: 27.0191\n", "Epoch 235/500\n", "48000/48000 [==============================] - 3s 66us/step - loss: 29.1040 - val_loss: 28.2232\n", "Epoch 236/500\n", "48000/48000 [==============================] - 3s 60us/step - loss: 28.1300 - val_loss: 25.3351\n", "Epoch 237/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 27.9211 - val_loss: 27.0696\n", "Epoch 238/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 28.0617 - val_loss: 28.3532\n", "Epoch 239/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 29.1314 - val_loss: 24.8493\n", "Epoch 240/500\n", "48000/48000 [==============================] - 4s 78us/step - loss: 27.7932 - val_loss: 27.9547\n", "Epoch 241/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 28.0816 - val_loss: 34.3463\n", "Epoch 242/500\n", "48000/48000 [==============================] - 3s 68us/step - loss: 28.5201 - val_loss: 28.5646\n", "Epoch 243/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 28.1187 - val_loss: 32.6424\n", "Epoch 244/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 27.9500 - val_loss: 30.1489\n", "Epoch 245/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 28.0650 - val_loss: 30.9230\n", "Epoch 246/500\n", "48000/48000 [==============================] - 4s 73us/step - loss: 28.5469 - val_loss: 27.6315\n", "Epoch 247/500\n", "48000/48000 [==============================] - 3s 65us/step - loss: 28.5486 - val_loss: 29.2842\n", "Epoch 248/500\n", "48000/48000 [==============================] - 4s 74us/step - loss: 27.7562 - val_loss: 26.8185\n", "Epoch 249/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 27.8331 - val_loss: 38.9245\n", "Epoch 250/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 28.1249 - val_loss: 28.8215\n", "Epoch 251/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 27.4653 - val_loss: 27.7980\n", "Epoch 252/500\n", "48000/48000 [==============================] - 3s 67us/step - loss: 28.2513 - val_loss: 28.2839\n", "Epoch 253/500\n", "48000/48000 [==============================] - 3s 62us/step - loss: 27.3659 - val_loss: 24.7860\n", "Epoch 254/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 27.4512 - val_loss: 27.7914\n", "Epoch 255/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 27.6421 - val_loss: 28.0197\n", "Epoch 256/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 27.5724 - val_loss: 26.8406\n", "Epoch 257/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 27.8258 - val_loss: 26.3358\n", "Epoch 258/500\n", "48000/48000 [==============================] - 3s 65us/step - loss: 26.8517 - val_loss: 26.5417\n", "Epoch 259/500\n", "48000/48000 [==============================] - 3s 72us/step - loss: 27.9822 - val_loss: 28.7274\n", "Epoch 260/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 28.1068 - val_loss: 30.2059\n", "Epoch 261/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 27.0613 - val_loss: 28.7184\n", "Epoch 262/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 27.5843 - val_loss: 28.2348\n", "Epoch 263/500\n", "48000/48000 [==============================] - 3s 64us/step - loss: 28.0336 - val_loss: 31.9264\n", "Epoch 264/500\n", "48000/48000 [==============================] - 3s 60us/step - loss: 27.7870 - val_loss: 30.6766\n", "Epoch 265/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 26.8912 - val_loss: 25.9200\n", "Epoch 266/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 27.3432 - val_loss: 28.9188\n", "Epoch 267/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 27.5713 - val_loss: 25.0873\n", "Epoch 268/500\n", "48000/48000 [==============================] - 4s 77us/step - loss: 27.7693 - val_loss: 29.2704\n", "Epoch 269/500\n", "48000/48000 [==============================] - 3s 61us/step - loss: 27.1511 - val_loss: 27.6360\n", "Epoch 270/500\n", "48000/48000 [==============================] - 3s 71us/step - loss: 28.1620 - val_loss: 32.2119\n", "Epoch 271/500\n", "48000/48000 [==============================] - 4s 75us/step - loss: 27.2796 - val_loss: 34.2416\n", "Epoch 272/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 27.3755 - val_loss: 26.7412\n", "Epoch 273/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 27.0626 - val_loss: 25.8120\n", "Epoch 274/500\n", "48000/48000 [==============================] - 3s 72us/step - loss: 26.7616 - val_loss: 26.6178\n", "Epoch 275/500\n", "48000/48000 [==============================] - 3s 63us/step - loss: 27.3256 - val_loss: 24.6337\n", "Epoch 276/500\n", "48000/48000 [==============================] - 4s 78us/step - loss: 27.3396 - val_loss: 28.8328\n", "Epoch 277/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 27.1361 - val_loss: 26.9522\n", "Epoch 278/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 27.5761 - val_loss: 24.1966\n", "Epoch 279/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 26.8221 - val_loss: 25.6082\n", "Epoch 280/500\n", "48000/48000 [==============================] - 3s 66us/step - loss: 27.4655 - val_loss: 35.6336\n", "Epoch 281/500\n", "48000/48000 [==============================] - 3s 61us/step - loss: 26.6420 - val_loss: 25.3262\n", "Epoch 282/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 27.0335 - val_loss: 27.8111\n", "Epoch 283/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 27.2182 - val_loss: 28.0792\n", "Epoch 284/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 26.8583 - val_loss: 26.9447\n", "Epoch 285/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 26.5332 - val_loss: 26.6167\n", "Epoch 286/500\n", "48000/48000 [==============================] - 3s 66us/step - loss: 26.6525 - val_loss: 28.0667\n", "Epoch 287/500\n", "48000/48000 [==============================] - 3s 67us/step - loss: 26.6942 - val_loss: 25.7344\n", "Epoch 288/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 27.2319 - val_loss: 30.9622\n", "Epoch 289/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 27.1583 - val_loss: 28.4200\n", "Epoch 290/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 27.1169 - val_loss: 25.9507\n", "Epoch 291/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 26.5462 - val_loss: 27.0804\n", "Epoch 292/500\n", "48000/48000 [==============================] - 3s 66us/step - loss: 26.5947 - val_loss: 25.9787\n", "Epoch 293/500\n", "48000/48000 [==============================] - 3s 71us/step - loss: 27.2102 - val_loss: 28.2789\n", "Epoch 294/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 27.0464 - val_loss: 27.1441\n", "Epoch 295/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 27.0235 - val_loss: 26.6492\n", "Epoch 296/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 26.8016 - val_loss: 27.3615\n", "Epoch 297/500\n", "48000/48000 [==============================] - 3s 71us/step - loss: 26.3844 - val_loss: 25.4974\n", "Epoch 298/500\n", "48000/48000 [==============================] - 3s 63us/step - loss: 26.5363 - val_loss: 27.4833\n", "Epoch 299/500\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "48000/48000 [==============================] - 4s 80us/step - loss: 26.4554 - val_loss: 27.6248\n", "Epoch 300/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 26.3397 - val_loss: 27.3131\n", "Epoch 301/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 26.8168 - val_loss: 26.3744\n", "Epoch 302/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 26.5952 - val_loss: 26.8149\n", "Epoch 303/500\n", "48000/48000 [==============================] - 3s 68us/step - loss: 26.6466 - val_loss: 26.5184\n", "Epoch 304/500\n", "48000/48000 [==============================] - 3s 62us/step - loss: 26.6730 - val_loss: 26.1914\n", "Epoch 305/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 26.1043 - val_loss: 26.3095\n", "Epoch 306/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 26.4369 - val_loss: 28.0487\n", "Epoch 307/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 26.2047 - val_loss: 25.1290\n", "Epoch 308/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 27.0628 - val_loss: 27.9588\n", "Epoch 309/500\n", "48000/48000 [==============================] - 3s 62us/step - loss: 26.4000 - val_loss: 25.0495\n", "Epoch 310/500\n", "48000/48000 [==============================] - 3s 65us/step - loss: 26.6680 - val_loss: 27.4073\n", "Epoch 311/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 25.7594 - val_loss: 26.0918\n", "Epoch 312/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 26.4310 - val_loss: 27.6096\n", "Epoch 313/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.9940 - val_loss: 25.8766\n", "Epoch 314/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 26.1755 - val_loss: 27.5227\n", "Epoch 315/500\n", "48000/48000 [==============================] - 3s 67us/step - loss: 26.2027 - val_loss: 26.6689\n", "Epoch 316/500\n", "48000/48000 [==============================] - 3s 69us/step - loss: 26.5112 - val_loss: 34.9266\n", "Epoch 317/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 27.1458 - val_loss: 35.4073\n", "Epoch 318/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 26.2919 - val_loss: 25.1648\n", "Epoch 319/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 25.4621 - val_loss: 24.5469\n", "Epoch 320/500\n", "48000/48000 [==============================] - 4s 75us/step - loss: 25.6382 - val_loss: 24.8913\n", "Epoch 321/500\n", "48000/48000 [==============================] - 3s 65us/step - loss: 26.3246 - val_loss: 25.1781\n", "Epoch 322/500\n", "48000/48000 [==============================] - 3s 69us/step - loss: 25.7897 - val_loss: 24.1485\n", "Epoch 323/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 26.1672 - val_loss: 24.6943\n", "Epoch 324/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 26.0591 - val_loss: 25.7453\n", "Epoch 325/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 26.0540 - val_loss: 29.9454\n", "Epoch 326/500\n", "48000/48000 [==============================] - 4s 76us/step - loss: 26.1719 - val_loss: 25.7888\n", "Epoch 327/500\n", "48000/48000 [==============================] - 3s 67us/step - loss: 25.7761 - val_loss: 28.2785\n", "Epoch 328/500\n", "48000/48000 [==============================] - 3s 70us/step - loss: 25.8034 - val_loss: 25.1032\n", "Epoch 329/500\n", "48000/48000 [==============================] - 4s 76us/step - loss: 26.5837 - val_loss: 29.9843\n", "Epoch 330/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 25.9316 - val_loss: 23.5571\n", "Epoch 331/500\n", "48000/48000 [==============================] - 4s 85us/step - loss: 25.5581 - val_loss: 25.4801\n", "Epoch 332/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 26.1687 - val_loss: 23.2701\n", "Epoch 333/500\n", "48000/48000 [==============================] - 3s 65us/step - loss: 25.4812 - val_loss: 24.3022\n", "Epoch 334/500\n", "48000/48000 [==============================] - 3s 62us/step - loss: 26.1321 - val_loss: 27.9879\n", "Epoch 335/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 25.9211 - val_loss: 24.6009\n", "Epoch 336/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.8962 - val_loss: 24.7886\n", "Epoch 337/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 26.1591 - val_loss: 26.4642\n", "Epoch 338/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 25.7101 - val_loss: 24.7220\n", "Epoch 339/500\n", "48000/48000 [==============================] - 3s 68us/step - loss: 25.4801 - val_loss: 25.5864\n", "Epoch 340/500\n", "48000/48000 [==============================] - 3s 66us/step - loss: 25.8067 - val_loss: 24.4660\n", "Epoch 341/500\n", "48000/48000 [==============================] - 4s 74us/step - loss: 25.3525 - val_loss: 25.5220\n", "Epoch 342/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 26.0832 - val_loss: 24.8281\n", "Epoch 343/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.6516 - val_loss: 27.9228\n", "Epoch 344/500\n", "48000/48000 [==============================] - 4s 78us/step - loss: 26.2552 - val_loss: 25.0830\n", "Epoch 345/500\n", "48000/48000 [==============================] - 4s 78us/step - loss: 25.4696 - val_loss: 24.8183\n", "Epoch 346/500\n", "48000/48000 [==============================] - 3s 63us/step - loss: 25.4508 - val_loss: 26.3936\n", "Epoch 347/500\n", "48000/48000 [==============================] - 3s 61us/step - loss: 26.4662 - val_loss: 25.3344\n", "Epoch 348/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.3767 - val_loss: 27.3621\n", "Epoch 349/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 25.4710 - val_loss: 24.8167\n", "Epoch 350/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 25.9814 - val_loss: 27.1792\n", "Epoch 351/500\n", "48000/48000 [==============================] - 4s 79us/step - loss: 25.6056 - val_loss: 25.2476\n", "Epoch 352/500\n", "48000/48000 [==============================] - 3s 72us/step - loss: 25.2148 - val_loss: 25.4190\n", "Epoch 353/500\n", "48000/48000 [==============================] - 3s 66us/step - loss: 25.3830 - val_loss: 24.3503\n", "Epoch 354/500\n", "48000/48000 [==============================] - 3s 73us/step - loss: 25.4887 - val_loss: 27.0137\n", "Epoch 355/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.6674 - val_loss: 25.3509\n", "Epoch 356/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.6916 - val_loss: 26.5127\n", "Epoch 357/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 25.8019 - val_loss: 25.7682\n", "Epoch 358/500\n", "48000/48000 [==============================] - 4s 78us/step - loss: 25.1548 - val_loss: 26.9366\n", "Epoch 359/500\n", "48000/48000 [==============================] - 3s 65us/step - loss: 25.8408 - val_loss: 24.5089\n", "Epoch 360/500\n", "48000/48000 [==============================] - 3s 69us/step - loss: 25.5891 - val_loss: 26.1446\n", "Epoch 361/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.3963 - val_loss: 23.5638\n", "Epoch 362/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 25.0877 - val_loss: 25.5006\n", "Epoch 363/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 25.1373 - val_loss: 24.3737\n", "Epoch 364/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.9823 - val_loss: 25.5578\n", "Epoch 365/500\n", "48000/48000 [==============================] - 3s 69us/step - loss: 25.0016 - val_loss: 30.6498\n", "Epoch 366/500\n", "48000/48000 [==============================] - 3s 64us/step - loss: 25.3704 - val_loss: 26.4628\n", "Epoch 367/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 25.3636 - val_loss: 25.5758\n", "Epoch 368/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.3202 - val_loss: 30.3198\n", "Epoch 369/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.2820 - val_loss: 25.4289\n", "Epoch 370/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 25.1450 - val_loss: 25.4830\n", "Epoch 371/500\n", "48000/48000 [==============================] - 3s 71us/step - loss: 24.9219 - val_loss: 28.5754\n", "Epoch 372/500\n", "48000/48000 [==============================] - 3s 62us/step - loss: 25.3833 - val_loss: 26.3406\n", "Epoch 373/500\n", "48000/48000 [==============================] - 3s 67us/step - loss: 25.4551 - val_loss: 24.9856\n", "Epoch 374/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 24.9592 - val_loss: 24.9252\n", "Epoch 375/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.4225 - val_loss: 23.5849\n", "Epoch 376/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 25.5829 - val_loss: 25.0419\n", "Epoch 377/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 25.0880 - val_loss: 24.5697\n", "Epoch 378/500\n", "48000/48000 [==============================] - 3s 62us/step - loss: 24.9647 - val_loss: 26.1439\n", "Epoch 379/500\n", "48000/48000 [==============================] - 3s 63us/step - loss: 24.9983 - val_loss: 24.7859\n", "Epoch 380/500\n", "48000/48000 [==============================] - 4s 75us/step - loss: 25.2252 - val_loss: 25.2141\n", "Epoch 381/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 25.4649 - val_loss: 26.1074\n", "Epoch 382/500\n", "48000/48000 [==============================] - 4s 82us/step - loss: 24.9880 - val_loss: 25.8634\n", "Epoch 383/500\n", "48000/48000 [==============================] - 4s 81us/step - loss: 24.9137 - val_loss: 26.3654\n", "Epoch 384/500\n", "48000/48000 [==============================] - 4s 75us/step - loss: 25.0010 - val_loss: 23.5831\n", "Epoch 385/500\n", "48000/48000 [==============================] - 3s 64us/step - loss: 25.0253 - val_loss: 23.9962\n", "Epoch 386/500\n", "48000/48000 [==============================] - 3s 70us/step - loss: 25.6588 - val_loss: 27.0311\n", "Epoch 387/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 24.6378 - val_loss: 33.7851\n", "Epoch 388/500\n", "48000/48000 [==============================] - 4s 83us/step - loss: 25.2229 - val_loss: 25.6175\n", "Epoch 389/500\n", "48000/48000 [==============================] - 4s 80us/step - loss: 25.0461 - val_loss: 24.6426\n", "Epoch 390/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 25.2866 - val_loss: 25.1448\n", "Epoch 391/500\n", "48000/48000 [==============================] - 4s 84us/step - loss: 24.8700 - val_loss: 23.8677\n", "Epoch 392/500\n", "48000/48000 [==============================] - 3s 66us/step - loss: 24.6462 - val_loss: 25.9215\n", "Epoch 393/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.9417 - val_loss: 24.9478\n", "Epoch 394/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 25.4799 - val_loss: 24.8938\n", "Epoch 395/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.5390 - val_loss: 25.2055\n", "Epoch 396/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.8292 - val_loss: 22.9127\n", "Epoch 397/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.8130 - val_loss: 23.9523\n", "Epoch 398/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.5261 - val_loss: 24.0215\n", "Epoch 399/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 25.0012 - val_loss: 23.5103\n", "Epoch 400/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.8611 - val_loss: 26.9617\n", "Epoch 401/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.8612 - val_loss: 24.3079\n", "Epoch 402/500\n", "48000/48000 [==============================] - 3s 54us/step - loss: 24.9283 - val_loss: 29.8781\n", "Epoch 403/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.9068 - val_loss: 27.3968\n", "Epoch 404/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.6328 - val_loss: 25.9128\n", "Epoch 405/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 25.0836 - val_loss: 23.6779\n", "Epoch 406/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.8733 - val_loss: 22.5936\n", "Epoch 407/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.8170 - val_loss: 25.1967\n", "Epoch 408/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.8383 - val_loss: 23.3664\n", "Epoch 409/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.6190 - val_loss: 24.5866\n", "Epoch 410/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 25.0210 - val_loss: 23.6595\n", "Epoch 411/500\n", "48000/48000 [==============================] - 3s 54us/step - loss: 24.8519 - val_loss: 24.2385\n", "Epoch 412/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.6965 - val_loss: 23.7055\n", "Epoch 413/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.7976 - val_loss: 24.6803\n", "Epoch 414/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.7017 - val_loss: 29.5296\n", "Epoch 415/500\n", "48000/48000 [==============================] - 3s 60us/step - loss: 24.2197 - val_loss: 24.3791\n", "Epoch 416/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 24.9260 - val_loss: 27.5808\n", "Epoch 417/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 24.6102 - val_loss: 25.1912\n", "Epoch 418/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 24.9759 - val_loss: 25.2323\n", "Epoch 419/500\n", "48000/48000 [==============================] - 3s 60us/step - loss: 24.3536 - val_loss: 24.2453\n", "Epoch 420/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 24.5379 - val_loss: 27.1667\n", "Epoch 421/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.4267 - val_loss: 23.6264\n", "Epoch 422/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 24.4987 - val_loss: 24.8965\n", "Epoch 423/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 24.9994 - val_loss: 24.5695\n", "Epoch 424/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.3521 - val_loss: 23.9964\n", "Epoch 425/500\n", "48000/48000 [==============================] - 3s 60us/step - loss: 24.0248 - val_loss: 24.9988\n", "Epoch 426/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 24.5731 - val_loss: 26.4549\n", "Epoch 427/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 24.6045 - val_loss: 28.1313\n", "Epoch 428/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 24.9536 - val_loss: 25.7807\n", "Epoch 429/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.4302 - val_loss: 22.8668\n", "Epoch 430/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.3659 - val_loss: 26.4399\n", "Epoch 431/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.8438 - val_loss: 24.1359\n", "Epoch 432/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.6488 - val_loss: 24.1880\n", "Epoch 433/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 24.2862 - val_loss: 31.4977\n", "Epoch 434/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.3095 - val_loss: 25.2159\n", "Epoch 435/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 24.7198 - val_loss: 24.6421\n", "Epoch 436/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.3197 - val_loss: 25.6976\n", "Epoch 437/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.6687 - val_loss: 24.4484\n", "Epoch 438/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.3055 - val_loss: 24.3216\n", "Epoch 439/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.4238 - val_loss: 31.1682\n", "Epoch 440/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.0392 - val_loss: 24.3243\n", "Epoch 441/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.3403 - val_loss: 25.6106\n", "Epoch 442/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.0911 - val_loss: 23.8503\n", "Epoch 443/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.8214 - val_loss: 24.3771\n", "Epoch 444/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.4066 - val_loss: 24.9156\n", "Epoch 445/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 24.2514 - val_loss: 23.7604\n", "Epoch 446/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.9740 - val_loss: 25.3457\n", "Epoch 447/500\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "48000/48000 [==============================] - 3s 56us/step - loss: 24.1495 - val_loss: 25.5476\n", "Epoch 448/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.3558 - val_loss: 23.3325\n", "Epoch 449/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.3355 - val_loss: 22.3278\n", "Epoch 450/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.0114 - val_loss: 27.5925\n", "Epoch 451/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.3896 - val_loss: 23.1899\n", "Epoch 452/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.8576 - val_loss: 24.7734\n", "Epoch 453/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.1396 - val_loss: 22.7870\n", "Epoch 454/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.0953 - val_loss: 24.4784\n", "Epoch 455/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.0795 - val_loss: 24.2511\n", "Epoch 456/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.7110 - val_loss: 25.0158\n", "Epoch 457/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.8007 - val_loss: 23.0619\n", "Epoch 458/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 24.0853 - val_loss: 23.9372\n", "Epoch 459/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.2331 - val_loss: 35.1357\n", "Epoch 460/500\n", "48000/48000 [==============================] - 3s 60us/step - loss: 24.7670 - val_loss: 23.8615\n", "Epoch 461/500\n", "48000/48000 [==============================] - 3s 60us/step - loss: 24.1786 - val_loss: 23.2704\n", "Epoch 462/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 23.9456 - val_loss: 26.2124\n", "Epoch 463/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 23.7326 - val_loss: 23.8020\n", "Epoch 464/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.2469 - val_loss: 23.7396\n", "Epoch 465/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 23.8082 - val_loss: 22.3751\n", "Epoch 466/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.5696 - val_loss: 24.1766\n", "Epoch 467/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 24.0367 - val_loss: 25.3502\n", "Epoch 468/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 23.8661 - val_loss: 23.8269\n", "Epoch 469/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 24.1412 - val_loss: 22.8217\n", "Epoch 470/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 24.0224 - val_loss: 26.1100\n", "Epoch 471/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 23.6536 - val_loss: 26.9751\n", "Epoch 472/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 23.7560 - val_loss: 25.1848\n", "Epoch 473/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.9338 - val_loss: 24.1470\n", "Epoch 474/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 24.4158 - val_loss: 24.0344\n", "Epoch 475/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.5680 - val_loss: 24.8174\n", "Epoch 476/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 23.7552 - val_loss: 23.3943\n", "Epoch 477/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 23.7860 - val_loss: 24.0824\n", "Epoch 478/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 23.4656 - val_loss: 22.3356\n", "Epoch 479/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 23.7923 - val_loss: 24.3062\n", "Epoch 480/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 24.1684 - val_loss: 27.4938\n", "Epoch 481/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.0172 - val_loss: 23.9359\n", "Epoch 482/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.6057 - val_loss: 21.9705\n", "Epoch 483/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.3820 - val_loss: 23.0423\n", "Epoch 484/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 24.4043 - val_loss: 22.9974\n", "Epoch 485/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 23.4317 - val_loss: 22.5560\n", "Epoch 486/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 23.5768 - val_loss: 25.4062\n", "Epoch 487/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 24.1513 - val_loss: 21.3901\n", "Epoch 488/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 23.6197 - val_loss: 24.5965\n", "Epoch 489/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 23.6530 - val_loss: 24.0041\n", "Epoch 490/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.3011 - val_loss: 22.8881\n", "Epoch 491/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 23.8032 - val_loss: 23.2764\n", "Epoch 492/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.9925 - val_loss: 26.6914\n", "Epoch 493/500\n", "48000/48000 [==============================] - 3s 58us/step - loss: 24.0060 - val_loss: 23.5224\n", "Epoch 494/500\n", "48000/48000 [==============================] - 3s 55us/step - loss: 23.9176 - val_loss: 23.2719\n", "Epoch 495/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.6515 - val_loss: 22.4694\n", "Epoch 496/500\n", "48000/48000 [==============================] - 3s 59us/step - loss: 23.3879 - val_loss: 29.4239\n", "Epoch 497/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 23.8020 - val_loss: 28.1702\n", "Epoch 498/500\n", "48000/48000 [==============================] - 3s 57us/step - loss: 23.4437 - val_loss: 21.4496\n", "Epoch 499/500\n", "48000/48000 [==============================] - 3s 56us/step - loss: 23.9268 - val_loss: 25.6546\n", "Epoch 500/500\n", "48000/48000 [==============================] - 3s 54us/step - loss: 23.7994 - val_loss: 24.0949\n", "0.302938464633072\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "\n", " \n", "from IPython.display import SVG\n", "from keras.utils.vis_utils import model_to_dot\n", "\n", "#SVG(model_to_dot(model).create(prog='dot', format='svg'))\n", " \n", " \n", "x_t, x_v, y_t, y_v = train_test_split(x_train, y_train, test_size=0.2, random_state=42)\n", "model = naiveploss_mgpu_model()\n", "model.summary() \n", "history = model.fit(x_t, y_t,\n", " batch_size=64,\n", " epochs=500, \n", " verbose=1,\n", " validation_data=(x_v, y_v))\n", "plot_training_history(history)\n", "\n", "y_pred = model.predict(x_test)\n", "print(calc_mre(y_test, y_pred))\n" ] }, { "cell_type": "code", "execution_count": 58, "metadata": { "ExecuteTime": { "end_time": "2018-08-27T15:59:30.682367Z", "start_time": "2018-08-27T15:59:30.460466Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "(1, 250)\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABXoAAAFNCAYAAAC+BtcHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd4lFX6xvHvmUkvBBISCARCDSVAkESKIoqAgtj7YldAZd1VV39Wdtddy9p2LbsiApa1d11FQcWC0kloEgihhR7SIIXUmTm/P1IICkhJMiS5P9fFxVvOe957MBLyzJnnNdZaRERERERERERERKTxcng7gIiIiIiIiIiIiIgcHxV6RURERERERERERBo5FXpFREREREREREREGjkVekVEREREREREREQaORV6RURERERERERERBo5FXpFREREREREREREGjkVekVERESOgDHmAWPMjKrtTsYYa4zxqdqfZYy5zrsJG4YxJsMYM7Ie5v3BGDP+EOcO+PMWEREREZFf0z+WRURERI6Atfaxw5wb05BZjpUx5gzgTWttjLeziIiIiIhI3dKKXhEREREREREREZFGToVeERERkVqMMfcaY3YYYwqNMeuMMSOqjj9kjHnzENcc0HbAGDPBGLO2ao41xpgBVcfvM8ZsrHX8osPkcFa1i6gen2KM6VB17hRjzFJjTH7V76fUuu6GWvfeZIy5uep4MDALaGeMKar61c4Y46iVK9cY874xJrzWfNcYY7ZUnXvwN/7sIowxnxtjCqpyPWKMmVfr/CFzH+S1P22MyTHGbALGHu6+IiIiIiKiQq+IiIhIDWNMD+A24GRrbShwNpBxlHNcBjwEXAu0AM4HcqtObwROA8KAvwFvGmOiDzHVn4DfAedUzXMjUFxVhP0CeB6IAP4FfGGMiai6Lgs4t+qaG4BnjDEDrLX7gDHATmttSNWvncAfgQuB04F2wB7gharX0ht4Ebim6lwEcLi2Dy8A+4C2wHVVv6r/XH4rd20Tql7DSUAScOlh7ikiIiIiIqjQKyIiIlKbG/AHehtjfK21GdbajUc5x3jgSWvtUltpg7V2C4C19gNr7U5rrcda+x6wHhh4mHkmW2vXVc2z0lqbS+Xq1vXW2jestS5r7TtAGnBe1T2+sNZurLpmLvA1lcXlQ7kZeNBau91aW0ZlkfrSqgefXQrMtNb+WHXuz4DnYJMYY5zAJcBfrbXF1to1wH9rDTls7l+4HHjWWrvNWpsH/OMw+UVEREREBBV6RURERGpYazcAd1BZ7MwyxrxrjGl3lNN0oHLl7q8YY641xqwwxuw1xuwF+gCtj3KedsCWXxzbArSvuscYY8wiY0xe1T3OOcw9AGKBT2plWktlwbtN1b22VQ+sWhWce9BZIJLKB/1uq3Ws9vZhc//CAfc9yHUiIiIiIvILKvSKiIiI1GKtfdtaO5TKAqgFnjjKKbYBXX950BgTC0ynsjVEhLW2JbAaMEczD7CzKlttHYEdxhh/4CPgaaBN1T2+rHUPe4j7jLHWtqz1K8BauwPYRWXBufo1BFHZduFgsgEXB7Z26FBr+5C5DzLXAfetGiciIiIiIoehQq+IiIhIFWNMD2PMmVUF01KghMrVrUdjBnC3MSbRVOpWVeQNprLQml11rxuoXNF7uHkeNsZ0r5qnX1U/2y+BOGPMOGOMjzHmCqA3MBPwo7L1RDbgMsaMAc6qNeduIMIYE1br2FTg0aqMGGMijTEXVJ37EDjXGDPUGOMH/J1D/PvRWusGPgYeMsYEGWN6UtmnuNrhcv/S+8AfjTExxphWwH2H+XMSERERERFU6BURERGpzR94HMgBMoEo4IGjmcBa+wHwKPA2UAh8CoRX9az9J7CQyoJrX2D+Yab6F5UFz6+BAuBlILCqT++5wF1UtlG4BzjXWptjrS2k8uFq71P5ULVxwGe1sqUB7wCbqlo1tAOeqxrztTGmEFgEDKoanwr8vuq17Kqac/thMt9G5YPmMoE3qu5VVjXXIXMfZJ7pwFfASmAZlQVkERERERE5DGPtwT7BJyIiIiJyfIwxTwBtrbXXeTuLiIiIiEhTpxW9IiIiIlInjDE9q1pMGGPMQOAm4BNv5xIRERERaQ58vB1ARERERJqMUCrbNbQDsqhsVfE/ryYSEREREWkm1LpBREREREREREREpJFT6wYRERERERERERGRRk6FXhEREREREREREZFGrl569LZu3dp26tSpPqYWERERERERERFpVFJSUnKstZHeztHQUlJSonx8fGYAfdCC0+PlAVa7XK7xiYmJWQcbUC+F3k6dOpGcnFwfU4uIiIiIiIiIiDQqxpgt3s7gDT4+PjPatm3bKzIyco/D4dCDwo6Dx+Mx2dnZvTMzM2cA5x9sjCrpIiIiIiIiIiIiUh/6REZGFqjIe/wcDoeNjIzMp3J19MHHNGAeERERERERERERaT4cKvLWnao/y0PWc1XoFRERERERERERkWbhiiuuiE1JSQmoi7nat2/fd9euXYdtjXvfffe1Pdp5n3/++Yhrr72249Fep0KviIiIiIiIiIiINAvvvffelsTExNKGut/zzz8f3VD3UqFXREREREREREREmpyCggLHGWec0a1Hjx69u3fvHj99+vRWAwcO7PHjjz8GAQQFBZ106623to+Pj+91yimnxH3//fdBAwcO7BETE9P3rbfeCoNfr64dPnx4t5kzZ4b+8l4jR47sGh8f36tbt27xTz/9dGuASZMmtS8rK3P07Nmz9/nnn98ZYMqUKeF9+/bt1bNnz97jxo2LdblcADz33HMRnTp16nPyySf3WLBgQcixvF4VekVERERERERERKTJ+fjjj1u0bdu2Yt26dWvWr1+fevHFFxfUPl9SUuIYPnx4YWpq6trg4GD35MmT2//000/pH3zwwYaHH364/dHc66233spITU1du2LFijUvvfRSm8zMTOeUKVN2+Pv7e9LS0tZ89tlnm5ctWxbw4YcfhicnJ6elpaWtcTgcdurUqRFbtmzxffzxx9stWLAg7aeffkpPT08PPJbXe9geEiIiIiIiIiIiIiLHq9N9XyTW19wZj49NOdjxAQMGlDz44IMdbr311vYXXHBB/ujRo4tqn/f19bWXXnppAUB8fHyJv7+/x9/f3w4cOLBkx44dfkeT4YknnmjzxRdftATIzMz0TU1NDWjbtu2+2mNmz54dunr16qCEhIReAKWlpY6oqCjXjz/+GDx48ODCdu3auQAuvvjivPT09KPuI3xEhV5jTEtgBtAHsMCN1tqFR3szERERERERERERkYbQr1+/smXLlq356KOPwh588MH2c+bMOWBFr4+Pj3U4KhseOBwO/P39LYDT6cTtdpvqMR6Pp+aasrKyX3VImDlzZujcuXNDk5OT00JDQz0DBw7sUVJS8qtx1lpz2WWX5b7wwgs7ah9/4403Whpjjvv1HmnrhueA2dbankACsPa47ywiIiL1qrTCza78Elxuz28PFhERERERaWIyMjJ8Q0NDPZMmTcq74447dq9YsSLoaOfo2rVreWpqapDb7WbDhg2+q1atCv7lmL179zrDwsLcoaGhnuXLlwesXLmyZoyPj48tKyszAKNHjy6YOXNmqx07dvgA7N6925menu43bNiwfYsWLQrNzMx0lpWVmU8++aTVsbze31zRa4xpAQwDrgew1pYD5cdyMxEREakfhaUVvLloKylb8ti5t5TMglLy9lV+ux4VlE7H+FM5J6kbAzq2oi7eKRYRERERETkah2qvUJ9SUlIC77///hiHw4GPj4+dMmXKlrvvvrvD0cwxatSoohdeeKGsR48e8T169Cjp3bt38S/HXHLJJfnTpk2LjIuL6921a9fShISEmpYNV111VXavXr169+nTp/izzz7bPHny5B0jRoyI83g8+Pr62ueff37riBEj9t177707Bw8e3CsyMrKiX79+xdUrio+GsdYefoAx/YFpwBoqV/OmALdba/cd6pqkpCSbnJx8tFlERETkKJWUu3lz/np2/PgqzvJCXnaPPeB8C4pY6j8JDw6+8SQyL3A47QaMZfzwnoT4q1W/iIiIiEhDMMakWGuTvJ2joa1cuTIjISEhx9s5mpKVK1e2TkhI6HSwc0fyE54PMAD4g7V2sTHmOeA+4M+1BxljJgITATp27HhcgUVEROTwKtwe3l20kc3fvcL1FR/Q0ZFNsY8/n7qHkksYAE6H4SLfFPyNC4DznQs5v3wh2Qv/w5OrbmfC+El0CD/qTy6JiIiIiIjICehICr3bge3W2sVV+x9SWeg9gLV2GpUrf0lKSjr8MmERERE5ZrlFZbz48jSuyX2eaxxZNR33g0wZ/41fRsXpD9KuZSCtQ/wxq4sp/vZ7gvLTa66PNAU8tO8R/v3vzQy++m8M6traS69ERERERERE6spvFnqttZnGmG3GmB7W2nXACCrbOIiIiEgDW59ZwPcv38cD5W/jcOx/X7XUtyU+p91On0ETwT9k/wX9LiWo36WQuRrXqvepSHmLwLIcHMZyu32TT17bwvvnPMPlQ7p74dWIiIiIiIhIXTnS5nx/AN4yxvgBm4Ab6i+SiIiIHMy81M2UvD+RiWYJVLXlL/EJw2foHwkYcjP4hx764rZ98GnbB59T/0jh678jdPcSAC5y/sSyWVfy/O7n+MMFp+pBbSIiIiIiIo2U40gGWWtXWGuTrLX9rLUXWmv31HcwERER2e+TOT/Q5r2xjDJLao7lRQ4k8I4UfM+4+/BF3tqCWxM64Qv2xY+rOTTAsYHzl93IOwvW1XVsERERERERaSBHVOgVERER73n9h58Z9tPVdHfsqDmW2+cmwm/5EkIij35CHz+CL51C+cjH8OCg3Dr5j/tC/vLFJpZszqvD5CIiIiIiItJQVOgVERE5gb2/dBt/mb2V+yomUGZ9KMOP/DEvEHHpv8Dpe+wTG4Pf0N/juvR1/hL2GB+6T8flsUx6K4Vd+SV19wJERERERESaiKCgoJMAMjIyfEePHt3lcGP//ve/RxUWFh5V7XXmzJmhw4cP73as+VToFREROUF9sWoX9328CoBvPEk8Hv537A2zCRt0dZ3dw6/PefzhxuuICPYDIKeonFveSKG0wl1n9xARERERETlRuVyuo76mU6dOFbNnz950uDEvvfRSm6KiogatvarQKyIicgL6YV0Wd7y3HI+t3I9v14I7b55IQGxind+rfctA/jNuAE5H5YPYNm7fxStvvYW1ts7vJSIiIiIi0lDWrVvn17lz5/iLL764U1xcXO/Ro0d3KSwsdLRv377v3XffHZ2YmNjjlVdeaZWamup/2mmndY+Pj++VmJjYY/ny5QEAaWlpfv379+/Zp0+fXrfffnu72vN27949HioLxRMnToyJi4vrHRcX1/vRRx+NeuSRR6KysrJ8Tz/99LhBgwbFAXz88cct+vfv37N37969xowZ0yU/P98B8OGHH7bo3LlzfGJiYo8PP/yw5fG8XhV6RURETjDL0zay761raemufPZp18hgXr9xIC0CjqNVw28Y0jWCyWN7EWOy+MjvIW7YfBfffDun3u4nIiIiIiLSEDIyMgJuueWW7PT09DWhoaGep556KhIgICDAk5KSsm7ixIl7xo8fHztlypStqampa5966qntt956a0eASZMmdRw/fnz26tWr17Zt27biYPP/85//jNyyZYt/amrqmvT09DXjx4/PnTx5clZUVFTF3Llz0xcvXpy+a9cun8ceeyz6xx9/TF+zZs3aAQMGFD/88MNtiouLzW233dbps88+27B06dJ1WVlZx/VDn8/xXCwiIiJ1a0fOXnh3HGMdafT228RdgX/nhfFnEhHiX+/3vn5ILGfMm0Hnku0AxM67i6ykeUS1bFHv9xYRERERkWZg9v3tWDQl+ojG9rkkh0tf2XLAsQ9vjGX1R61r9gdP2sXof+w83DRt27YtP+uss/YBXHPNNbnPP/98FMC11167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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import snlay as snlay\n", "#here we test edge cases where failure happens\n", "#size = np.array([70, 60, 50, 40, 30, 20, 10, 10])\n", "#size = np.array([70, 70, 70, 70, 70, 70, 70, 70])\n", "#size = np.array([30, 30, 30, 30, 30, 30, 30, 30])\n", "\n", "size = np.array([35, 65, 35, 65, 35, 65, 35, 65])\n", "#size = np.array([50, 50, 50, 50, 50, 50, 50, 50])\n", "mats = np.array([3, 4, 3, 4, 3, 4, 3, 4])\n", "spec_ac = snlay.calc_spectrum(size, mats, lams)\n", "\n", "\n", "\n", "\n", "size = (size - 50.0)/20.0\n", "\n", "spec = model.predict(np.expand_dims(size, axis = 0))\n", "print(spec.shape)\n", "spec = np.ravel(spec)\n", "\n", "\n", "fig1 = plt.figure(figsize=(22,5))\n", "ax = fig1.add_subplot(1,1,1)\n", "ax.set_title('silica coated gold')\n", "ax.set_xlabel('Wavelength (nm)')\n", "plt.plot(lams, spec_ac, linewidth=3, label='simulated')\n", "plt.plot(lams, spec, '--', linewidth=3, label='predicted')\n", "plt.plot(lams, 100*np.abs(spec_ac - spec)/spec_ac, label='error')\n", "\n", "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "### Model Benchmarking" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2018-08-24T08:36:24.025196Z", "start_time": "2018-08-24T07:15:19.871311Z" }, "code_folding": [], "hidden": true, "scrolled": true }, "outputs": [], "source": [ "#Here is where we in-depth model evaluation and benchmarking\n", "\n", "#model = naiveploss_model()\n", "train_e, val_e, test_e, train_t = net_performance(naiveploss_model, 5, 64, 500, 1)\n", "\n", "print(\"Training duration\")\n", "print(np.mean(train_t), np.std(train_t))\n", "\n", "print(\"Training error\")\n", "print(np.mean(train_e), np.std(train_e))\n", "\n", "print(\"Validation error\")\n", "print(np.mean(val_e), np.std(val_e))\n", "\n", "print(\"Testing error\")\n", "print(train_e)\n", "print(np.mean(train_e), np.std(train_e))\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": { "hidden": true }, "source": [ "\\\\7]=/ we record the timing and resource consumption \n", "'\n", "- naiveploss, \n", "\n", " Total params: 253,250, \n", " training size: 48,000 val size 12,000 test size: 40,000 \n", " \n", " 1 gpu case, 500 epochs, 64 batch size. \n", " Training duration\n", "970.6306939371977 162.52772916709793\n", "Training error\n", "0.28162434966405236 0.004849006439278184\n", "Validation error\n", "0.28847073678970336 0.01748113934849215\n", "Testing error\n", "[0.28093684 0.29020114 0.28278018 0.27629951 0.27790407]\n", "0.28162434966405236 0.004849006439278184\n", " \n", " \n", " 2 gpu case, 500 epochs, 64 batch size. \n", " Training duration\n", "1415.9011616169942 72.01714343631177\n", "Training error\n", "0.14291583093007407 0.0017661558666610126\n", "Validation error\n", "0.14036797358194988 0.005636169118478038\n", "Testing error\n", "[0.14436209 0.14525352 0.14023539 0.14201304 0.14271513]\n", "0.14291583093007407 0.0017661558666610126\n", " \n", " \n" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "### Inverse scattering " ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "ExecuteTime": { "end_time": "2018-08-28T04:46:28.710011Z", "start_time": "2018-08-28T04:46:20.687025Z" }, "hidden": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[49 60 37 39 37 43 46 35]\n", "[47. 51. 34. 46. 43. 45. 46. 35.]\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABXYAAAEyCAYAAABeToidAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzs3Xd4VFX+x/H3nZlU0gikkYQWOqGZ0FFBUcSO2NbFFXtZ10V/upZdy9rr2taGZdXF3lcUFUWKIGDoSEILJQlJSEjvU+7vjwEHFJCS5E6Sz+t58pD53jPnfiZLwvrNmXMM0zQRERERERERERERkZbDZnUAERERERERERERETk8auyKiIiIiIiIiIiItDBq7IqIiIiIiIiIiIi0MGrsioiIiIiIiIiIiLQwauyKiIiIiIiIiIiItDBq7IqIiIiIiIiIiIi0MGrsioiIiIiIiIiIiLQwauyKiIiIiIiIiIiItDBq7IqIiIiIiIiIiIi0MI6mmLRjx45m165dm2JqERERERERERGRFmXZsmXFpmnGWJ2juS1btizW4XC8AqSiBaaHywOsdblcV6Slpe3c34Amaex27dqVjIyMpphaRERERERERESkRTEMY5vVGazgcDheiY+P7xsTE1Nqs9lMq/O0JB6PxygqKupXUFDwCnDm/saoUy4iIiIiIiIiIiJNITUmJqZCTd3DZ7PZzJiYmHK8q533P6YZ84iIiIiIiIiIiEjbYVNT98jt/todsH+rxq6IiIiIiIiIiIhIC6PGroiIiIiIiIiIiLQ6xcXF9ocffrjJD62bOXNm+OzZs9s19X1+TY1dERERERERERERaXV27dplf/XVV2MPdbzH48Htdh/2febMmRO+YMGCsMN+4lFyNPcNRURERERERERERJra//3f/yXl5OQE9enTp9/o0aMr161bF1JeXm53uVzGXXfdtWPKlCll69evD5w4cWLPUaNGVS5btizss88+2/TFF19EPP300/GxsbHO7t271wUGBppvvvnm9h07djguvfTSLnl5eYEA//rXv7Z36dLF+eabb8bYbDbz/fff7/DUU09tP+WUU6qa4/WpsSsiIiIiIiIiIiJNquttX6Q1xbxbHz5t2YGuPfHEE7mnn356SFZW1jqn00llZaUtOjrak5+f7xg+fHifiy66qAxg69atwS+//PLWGTNmbN+6dWvA448/nrB8+fJ1UVFRnlGjRvXq379/LcDVV1+dfNNNNxVOmDChauPGjYETJkzomZ2d/fOf/vSnorCwMPe9995b2BSv8UDU2BUREREREREREZFWzePxGNOmTUtavHhxmM1mY+fOnYG5ubkOgISEhIYTTzyxGmDBggXthg8fXhkXF+cGmDRpUumGDRuCARYuXBixcePGkD1zVlVV2UtLSy3b6laNXREREREREREREWlSB1tZ2xxeeuml6F27djnWrFmTGRQUZCYmJg6ora21AYSGhnr2jDNN84BzmKZJRkZGZlhY2IEHNSMdniYi4qdq6htYN/c9tjw9kdIH+1Dx9GjqsxdaHUtERERERESkRYiMjHRXV1fbAMrLy+0dO3Z0BgUFmZ9//nn4jh07Avf3nGOPPbZ6yZIl4UVFRXan08lnn33Wfs+1MWPGVDzyyCO/HMa2aNGiEIDw8HB3ZWWlvalfz69pxa6IiB+pqnfx+pzVhPz8DuMrP6Ofsdf2PA35THn9JyJ7h3By/zgm9I8nOKDZ/90QERERERERaRHi4+PdaWlpVT179uw/aNCg6k2bNgWnpqb27d+/f023bt3q9vecbt26OW+88cb8oUOH9o2NjXX26tWrNjIy0g0wffr0nCuuuKJzr169+rndbmP48OGVo0aN2j558uSyc889N2XWrFlRzXl4mnGw5cVHKj093czIyGj0eUVEWrMV20v5esbjXF//CmHGfv994bj6J9luxgHQNyGC16ekEvflZTDqL5ByQnPGFRERERERkUNkGMYy0zTTrc7R3FatWrV10KBBxVbnOFzl5eW2yMhIj9PpZMKECT2mTp1a/Kc//anMiiyrVq3qOGjQoK77u6YVuyIiFnN7TJ6fs4GAefdzm/1/YOx1MTgK0i6BAeeBs463Q3ryTVYpb/y4lcz8Cr59fhp/dM+BzXMgbSpMeAgCQy16JSIiIiIiIiIt3y233NJp/vz5EfX19cbxxx9fMWXKFEuaur9HjV0REQvlldXyt3cWc9GOBznNvtR3ITrFuwp34PkQ2O6XchJw2Zgozh6SyJ9fm8eE4jm+RvCy16E8Dy56D2zaokFERERERETkSEyfPj3X6gyHQoeniYhYZEdZLee9sIid2zcwzr7ad6HXRLh6PqRfuk9Td2/R7QJ57eoTeKDzq3zlHuq7sGk2fHt3EycXEREREREREaupsSsiYoHiqnqmvLqEHeV1hCWn4j7nVTBsMPxauPAtCAr73TlCAu08NnU88wY/wfOuM30XFj0LK99uwvQiIiIiIiIiYjVtxSAi0szKa5386dWlZBdV0yc+nNenDiM8NABiF0B86mHN5bDbePCcgdwXcCuzf8rlJPty74XP/wodekLy0INPICIiIiIiIiItklbsiog0o9oGN1f+ZzHb8gvp2iGU/14+nMjQAO/Fw2zq7mEYBred2o+XY25nvSfJW3Q3wLsXeffcFREREREREZFWR41dEZFm4nR7uGbGMibseI7/hdzDO+d3IiY8qFHmDnTYeOgPo7je/Bsl5u5tHKp3epu7bmej3ENERERERESktbrppps63XXXXXH7uzZkyJA+Vt37YNTYFRFpJo/MyqLL5hlc7phFiplDwvunQ+m2Rps/JSaMqaeP5TrnNJzYvcVdm6Bg9cGfKCIiIiIiIiIHtGLFiiyrM+yPGrsiIs3gq7X5bFr0CXc73vQVOw+HyORGvc9FwzoT1nscjzvPZ2Hw8bivWwqJaY16DxEREREREZGWYvz48Sn9+/fv26NHj/6PP/54R4APP/wwol+/fn179+7db+TIkb32jM3MzAwZNmxY76SkpAH3339/7J56aGjokD2f33nnnXGpqal9e/Xq1e/GG2/sBHDttdcmPvzwwzF7xtx0002d7r777rgDjQe49dZb47t27Zo6atSoXhs3bjyit/Pq8DQRkSa2pbiaxz+YwwcBz2M3TG8xMQ0mTQdb4/5+zTAMHpk8gAlPTualsgb+vrqeK49r1FuIiIiIiIiIHJmvbu/E4ucTDmls6uRizn1t37e5fnhZF9Z+1PGXxyOuy+eUh3YcbJq33npra1xcnLuqqsoYMmRIvwsuuKDs+uuv7zp37tysPn36NBQWFtr3jN20aVPwokWL1peVldn79u2bessttxQFBQWZe65//PHHEZs2bQpevXp1pmmajB8/vsesWbPCpkyZUjJt2rTOt912WxHAZ5991v6rr77aeKDxYWFhnk8++SR6zZo165xOJ4MHD+43ZMiQmkP6uuxFjV0RkSZU2+Dmz/9dyoPm07S3VXmLEYnwh3chMLRJ7tkhLIhHzxvIZa9n8PR3G5l0TCIdwxpnL18RERERERGRluSRRx6J++KLL6IACgoKAp55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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "\n", "model_d = Sequential()\n", "model_d.add(Dense(8, input_dim=1, kernel_initializer='normal', activation='linear', \n", " name='dummy', use_bias=False))\n", "\n", "for layer in model.layers:\n", " model_d.add(layer)\n", "\n", "for layer in model_d.layers[1:]:\n", " layer.trainable = False\n", "\n", "for ind in range(1,len(model_d.layers)):\n", " model_d.layers[ind].set_weights(model.layers[ind-1].get_weights())\n", "\n", "model_d.compile(loss=naive_percent_loss, optimizer='adam') \n", " \n", " \n", "#model_d.summary()\n", "\n", "\n", "# # let us create a target spectrum first\n", "import snlay as snlay\n", "#size = np.array([60, 65, 65, 65, 35, 35, 35, 35])\n", "size = np.random.randint(30,70,8)\n", "mats = np.array([3, 4, 3, 4, 3, 4, 3, 4])\n", "target = snlay.calc_spectrum(size, mats, lams)\n", "\n", "print(size)\n", "\n", "# #do the training here\n", "xd_t = np.ones((1,1))\n", "yd_t = target.reshape(1,250)\n", "\n", "\n", "\n", "\n", "\n", "history = model_d.fit(xd_t, yd_t,\n", " batch_size=1,\n", " epochs=5000, \n", " verbose=0)\n", "\n", "# #here is the final result\n", "size_out = model_d.get_layer('dummy')\n", "wts = size_out.get_weights()\n", "wts = np.array(wts).ravel()\n", "size_res= 0.5*wts*(size_max - size_min) + size_av\n", "size_res_rounded = np.round(size_res)\n", "\n", "spec_zer = model_d.predict(xd_t).ravel()\n", "achieved = snlay.calc_spectrum(size_res_rounded, mats, lams)\n", "\n", "\n", "fig1 = plt.figure(figsize=(22,5))\n", "ax = fig1.add_subplot(1,1,1)\n", "#plt.plot(lams, spec_zer, label='new model')\n", "plt.plot(lams, target, linewidth=2, label='target')\n", "plt.plot(lams, achieved, '--', linewidth=3, label='achieved')\n", "plt.legend(bbox_to_anchor=(1.05, 1), loc=2, borderaxespad=0.)\n", "\n", "print(size_res_rounded)\n" ] }, { "cell_type": "markdown", "metadata": { "heading_collapsed": true }, "source": [ "### Model shipment" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "ExecuteTime": { "end_time": "2018-08-25T05:32:45.730860Z", "start_time": "2018-08-25T05:32:45.701134Z" }, "hidden": true }, "outputs": [], "source": [ "\n", " \n", "from keras.models import load_model\n", "\n", "#Creates a HDF5 file 'my_model.h5'\n", "model.save('my_model.h5')\n", "\n", "# Deletes the existing model\n", "#del model \n", "\n", "# Returns a compiled model identical to the previous one\n", "#model = load_model('my_model.h5')\n", "\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "hidden": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.6" } }, "nbformat": 4, "nbformat_minor": 2 }