From de819218b1c832eb82205c5946f833cb7c85907b Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Thu, 14 Oct 2021 21:06:27 +0200 Subject: [PATCH 1/2] update --- doc/pub/week41/ipynb/ipynb-week41-src.tar.gz | Bin 534110 -> 534110 bytes doc/src/week41/programs/breast.py | 161 +++++++++++++++++++ doc/src/week41/programs/test.py | 138 ++++++++++++++++ 3 files changed, 299 insertions(+) create mode 100644 doc/src/week41/programs/breast.py create mode 100644 doc/src/week41/programs/test.py diff --git a/doc/pub/week41/ipynb/ipynb-week41-src.tar.gz b/doc/pub/week41/ipynb/ipynb-week41-src.tar.gz index 4dbf8cb861dafafaf950a48f1b48a71848c66ec5..84fae8af5c4d08913accf68adc1d7186043a931a 100644 GIT binary patch delta 41 vcmcb2M&aHW1vdF^4u+WeMz&Tq##T0_RyO8VHkMX4)>by42>VtxjtDgX5sV7i delta 41 vcmcb2M&aHW1vdF^4u%Uljcl!KjIC@;t!&J#Y%Hy8tgUQ75%#TY91&^&6}<}j diff --git a/doc/src/week41/programs/breast.py b/doc/src/week41/programs/breast.py new file mode 100644 index 000000000..9dd2ada6f --- /dev/null +++ b/doc/src/week41/programs/breast.py @@ -0,0 +1,161 @@ +import tensorflow as tf +from tensorflow.keras.layers import Input +from tensorflow.keras.models import Sequential #This allows appending layers to existing models +from tensorflow.keras.layers import Dense #This allows defining the characteristics of a particular layer +from tensorflow.keras import optimizers #This allows using whichever optimiser we want (sgd,adam,RMSprop) +from tensorflow.keras import regularizers #This allows using whichever regularizer we want (l1,l2,l1_l2) +from tensorflow.keras.utils import to_categorical #This allows using categorical cross entropy as the cost function +import numpy as np +import matplotlib.pyplot as plt +import seaborn as sns +from sklearn.model_selection import train_test_split as splitter +from sklearn.datasets import load_breast_cancer +import pickle + + +np.random.seed(0) #create same seed for random number every time + +cancer=load_breast_cancer() #Download breast cancer dataset + +inputs=cancer.data #Feature matrix of 569 rows (samples) and 30 columns (parameters) +outputs=cancer.target #Label array of 569 rows (0 for benign and 1 for malignant) +labels=cancer.feature_names[0:30] + +print('The content of the breast cancer dataset is:') #Print information about the datasets +print(labels) +print('-------------------------') +print("inputs = " + str(inputs.shape)) +print("outputs = " + str(outputs.shape)) +print("labels = "+ str(labels.shape)) + +x=inputs #Reassign the Feature and Label matrices to other variables +y=outputs + +# Visualisation of dataset (for correlation analysis) + +plt.figure() +plt.scatter(x[:,0],x[:,2],s=40,c=y,cmap=plt.cm.Spectral) +plt.xlabel('Mean radius',fontweight='bold') +plt.ylabel('Mean perimeter',fontweight='bold') +plt.show() + +plt.figure() +plt.scatter(x[:,5],x[:,6],s=40,c=y, cmap=plt.cm.Spectral) +plt.xlabel('Mean compactness',fontweight='bold') +plt.ylabel('Mean concavity',fontweight='bold') +plt.show() + + +plt.figure() +plt.scatter(x[:,0],x[:,1],s=40,c=y,cmap=plt.cm.Spectral) +plt.xlabel('Mean radius',fontweight='bold') +plt.ylabel('Mean texture',fontweight='bold') +plt.show() + +plt.figure() +plt.scatter(x[:,2],x[:,1],s=40,c=y,cmap=plt.cm.Spectral) +plt.xlabel('Mean perimeter',fontweight='bold') +plt.ylabel('Mean compactness',fontweight='bold') +plt.show() + + +# Generate training and testing datasets + +#Select features relevant to classification (texture,perimeter,compactness and symmetery) +#and add to input matrix + +temp1=np.reshape(x[:,1],(len(x[:,1]),1)) +temp2=np.reshape(x[:,2],(len(x[:,2]),1)) +X=np.hstack((temp1,temp2)) +temp=np.reshape(x[:,5],(len(x[:,5]),1)) +X=np.hstack((X,temp)) +temp=np.reshape(x[:,8],(len(x[:,8]),1)) +X=np.hstack((X,temp)) + +X_train,X_test,y_train,y_test=splitter(X,y,test_size=0.1) #Split datasets into training and testing + +y_train=to_categorical(y_train) #Convert labels to categorical when using categorical cross entropy +y_test=to_categorical(y_test) + +del temp1,temp2,temp + +# Define tunable parameters" + +eta=np.logspace(-3,-1,3) #Define vector of learning rates (parameter to SGD optimiser) +lamda=0.01 #Define hyperparameter +n_layers=2 #Define number of hidden layers in the model +n_neuron=np.logspace(0,3,4,dtype=int) #Define number of neurons per layer +epochs=100 #Number of reiterations over the input data +batch_size=100 #Number of samples per gradient update + +"""Define function to return Deep Neural Network model""" + +def NN_model(inputsize,n_layers,n_neuron,eta,lamda): + model=Sequential() + for i in range(n_layers): #Run loop to add hidden layers to the model + if (i==0): #First layer requires input dimensions + model.add(Dense(n_neuron,activation='relu',kernel_regularizer=regularizers.l2(lamda),input_dim=inputsize)) + else: #Subsequent layers are capable of automatic shape inferencing + model.add(Dense(n_neuron,activation='relu',kernel_regularizer=regularizers.l2(lamda))) + model.add(Dense(2,activation='softmax')) #2 outputs - ordered and disordered (softmax for prob) + sgd=optimizers.SGD(lr=eta) + model.compile(loss='categorical_crossentropy',optimizer=sgd,metrics=['accuracy']) + return model + + +Train_accuracy=np.zeros((len(n_neuron),len(eta))) #Define matrices to store accuracy scores as a function +Test_accuracy=np.zeros((len(n_neuron),len(eta))) #of learning rate and number of hidden neurons for + +for i in range(len(n_neuron)): #run loops over hidden neurons and learning rates to calculate + for j in range(len(eta)): #accuracy scores + DNN_model=NN_model(X_train.shape[1],n_layers,n_neuron[i],eta[j],lamda) + DNN_model.fit(X_train,y_train,epochs=epochs,batch_size=batch_size,verbose=1) + Train_accuracy[i,j]=DNN_model.evaluate(X_train,y_train)[1] + Test_accuracy[i,j]=DNN_model.evaluate(X_test,y_test)[1] + + +def plot_data(x,y,data,title=None): + + # plot results + fontsize=16 + + + fig = plt.figure() + ax = fig.add_subplot(111) + cax = ax.matshow(data, interpolation='nearest', vmin=0, vmax=1) + + cbar=fig.colorbar(cax) + cbar.ax.set_ylabel('accuracy (%)',rotation=90,fontsize=fontsize) + cbar.set_ticks([0,.2,.4,0.6,0.8,1.0]) + cbar.set_ticklabels(['0%','20%','40%','60%','80%','100%']) + + # put text on matrix elements + for i, x_val in enumerate(np.arange(len(x))): + for j, y_val in enumerate(np.arange(len(y))): + c = "${0:.1f}\\%$".format( 100*data[j,i]) + ax.text(x_val, y_val, c, va='center', ha='center') + + # convert axis vaues to to string labels + x=[str(i) for i in x] + y=[str(i) for i in y] + + + ax.set_xticklabels(['']+x) + ax.set_yticklabels(['']+y) + + ax.set_xlabel('$\\mathrm{learning\\ rate}$',fontsize=fontsize) + ax.set_ylabel('$\\mathrm{hidden\\ neurons}$',fontsize=fontsize) + if title is not None: + ax.set_title(title) + + plt.tight_layout() + + plt.show() + +plot_data(eta,n_neuron,Train_accuracy, 'training') +plot_data(eta,n_neuron,Test_accuracy, 'testing') + + + + + diff --git a/doc/src/week41/programs/test.py b/doc/src/week41/programs/test.py new file mode 100644 index 000000000..24fbfd2a2 --- /dev/null +++ b/doc/src/week41/programs/test.py @@ -0,0 +1,138 @@ +# import necessary packages +import numpy as np +import matplotlib.pyplot as plt +from sklearn import datasets + + +# ensure the same random numbers appear every time +np.random.seed(0) + + +plt.rcParams['figure.figsize'] = (12,12) + + +# download MNIST dataset +digits = datasets.load_digits() + +# define inputs and labels +inputs = digits.images +labels = digits.target + +# RGB images have a depth of 3 +# our images are grayscale so they should have a depth of 1 +inputs = inputs[:,:,:,np.newaxis] + +print("inputs = (n_inputs, pixel_width, pixel_height, depth) = " + str(inputs.shape)) +print("labels = (n_inputs) = " + str(labels.shape)) + + +# choose some random images to display +n_inputs = len(inputs) +indices = np.arange(n_inputs) +random_indices = np.random.choice(indices, size=5) + +for i, image in enumerate(digits.images[random_indices]): + plt.subplot(1, 5, i+1) + plt.axis('off') + plt.imshow(image, cmap=plt.cm.gray_r, interpolation='nearest') + plt.title("Label: %d" % digits.target[random_indices[i]]) +plt.show() + +from tensorflow.keras import datasets, layers, models +from tensorflow.keras.layers import Input +from tensorflow.keras.models import Sequential #This allows appending layers to existing models +from tensorflow.keras.layers import Dense #This allows defining the characteristics of a particular layer +from tensorflow.keras import optimizers #This allows using whichever optimiser we want (sgd,adam,RMSprop) +from tensorflow.keras import regularizers #This allows using whichever regularizer we want (l1,l2,l1_l2) +from tensorflow.keras.utils import to_categorical #This allows using categorical cross entropy as the cost function +#from tensorflow.keras import Conv2D +#from tensorflow.keras import MaxPooling2D +#from tensorflow.keras import Flatten + +from sklearn.model_selection import train_test_split + +# representation of labels +labels = to_categorical(labels) + +# split into train and test data +# one-liner from scikit-learn library +train_size = 0.8 +test_size = 1 - train_size +X_train, X_test, Y_train, Y_test = train_test_split(inputs, labels, train_size=train_size, + test_size=test_size) + +def create_convolutional_neural_network_keras(input_shape, receptive_field, + n_filters, n_neurons_connected, n_categories, + eta, lmbd): + model = Sequential() + model.add(layers.Conv2D(n_filters, (receptive_field, receptive_field), input_shape=input_shape, padding='same', + activation='relu', kernel_regularizer=regularizers.l2(lmbd))) + model.add(layers.MaxPooling2D(pool_size=(2, 2))) + model.add(layers.Flatten()) + model.add(layers.Dense(n_neurons_connected, activation='relu', kernel_regularizer=regularizers.l2(lmbd))) + model.add(layers.Dense(n_categories, activation='softmax', kernel_regularizer=regularizers.l2(lmbd))) + + sgd = optimizers.SGD(lr=eta) + model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy']) + + return model + +epochs = 100 +batch_size = 100 +input_shape = X_train.shape[1:4] +receptive_field = 3 +n_filters = 10 +n_neurons_connected = 50 +n_categories = 10 + +eta_vals = np.logspace(-5, 1, 7) +lmbd_vals = np.logspace(-5, 1, 7) + +CNN_keras = np.zeros((len(eta_vals), len(lmbd_vals)), dtype=object) + +for i, eta in enumerate(eta_vals): + for j, lmbd in enumerate(lmbd_vals): + CNN = create_convolutional_neural_network_keras(input_shape, receptive_field, + n_filters, n_neurons_connected, n_categories, + eta, lmbd) + CNN.fit(X_train, Y_train, epochs=epochs, batch_size=batch_size, verbose=0) + scores = CNN.evaluate(X_test, Y_test) + + CNN_keras[i][j] = CNN + + print("Learning rate = ", eta) + print("Lambda = ", lmbd) + print("Test accuracy: %.3f" % scores[1]) + print() + +# visual representation of grid search +# uses seaborn heatmap, could probably do this in matplotlib +import seaborn as sns + +sns.set() + +train_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) +test_accuracy = np.zeros((len(eta_vals), len(lmbd_vals))) + +for i in range(len(eta_vals)): + for j in range(len(lmbd_vals)): + CNN = CNN_keras[i][j] + + train_accuracy[i][j] = CNN.evaluate(X_train, Y_train)[1] + test_accuracy[i][j] = CNN.evaluate(X_test, Y_test)[1] + + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(train_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Training Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + +fig, ax = plt.subplots(figsize = (10, 10)) +sns.heatmap(test_accuracy, annot=True, ax=ax, cmap="viridis") +ax.set_title("Test Accuracy") +ax.set_ylabel("$\eta$") +ax.set_xlabel("$\lambda$") +plt.show() + From b91376cfb656cfe18ce0e2073a8e1380c098fe92 Mon Sep 17 00:00:00 2001 From: Morten Hjorth-Jensen Date: Fri, 15 Oct 2021 07:41:35 +0200 Subject: [PATCH 2/2] update on week 41 --- doc/pub/week42/ipynb/week42.ipynb | 1486 +---------------------------- doc/src/week41/week41.do.txt | 13 + 2 files changed, 63 insertions(+), 1436 deletions(-) diff --git a/doc/pub/week42/ipynb/week42.ipynb b/doc/pub/week42/ipynb/week42.ipynb index 3de4222d7..d40dd9eca 100644 --- a/doc/pub/week42/ipynb/week42.ipynb +++ b/doc/pub/week42/ipynb/week42.ipynb @@ -329,7 +329,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -342,7 +342,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -407,7 +407,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -445,21 +445,9 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'X_train' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 17\u001b[0m \u001b[0mepochs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 18\u001b[0m \u001b[0mbatch_size\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m100\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 19\u001b[0;31m \u001b[0minput_shape\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mX_train\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;36m4\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 20\u001b[0m \u001b[0mreceptive_field\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0mn_filters\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m10\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mNameError\u001b[0m: name 'X_train' is not defined" - ] - } - ], + "outputs": [], "source": [ "def create_convolutional_neural_network_keras(input_shape, receptive_field,\n", " n_filters, n_neurons_connected, n_categories,\n", @@ -498,7 +486,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -529,7 +517,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -579,13 +567,13 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import tensorflow as tf\n", "\n", - "from tensorflow.keras import datasets, layers, models\n", + "#from tensorflow.keras import datasets, layers, models\n", "import matplotlib.pyplot as plt\n", "\n", "# We import the data set\n", @@ -606,13 +594,35 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'train_images' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m/var/folders/td/3yk470mj5p931p9dtkk0y6jw0000gn/T/ipykernel_17710/3303969810.py\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0myticks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgrid\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 10\u001b[0;31m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrain_images\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcmap\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbinary\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 11\u001b[0m \u001b[0;31m# The CIFAR labels happen to be arrays,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;31m# which is why you need the extra index\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mNameError\u001b[0m: name 'train_images' is not defined" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAHIAAABvCAYAAAAwlZQ4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAABYElEQVR4nO3UwU0DUQxAwf2IEsKZ7b+WpIicoQfTQFBYKRHwNHO1D5ae5DUzG//fy28fwGMIGSFkhJARQkYIGfF6ZPl0Os2+7086hXsul8vnzLzdmh0Kue/7dj6fH3MVh621rt/NvNYIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjBAyQsgIISOEjFgz8/PltT62bbs+7xzueJ+Zt1uDQyH5u7zWCCEjhIwQMkLICCEjhIwQMkLIiC8Hohp/BhBaQAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "class_names = ['airplane', 'automobile', 'bird', 'cat', 'deer',\n", " 'dog', 'frog', 'horse', 'ship', 'truck']\n", - "​\n", + "\n", "plt.figure(figsize=(10,10))\n", "for i in range(25):\n", " plt.subplot(5,5,i+1)\n", @@ -639,7 +649,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -677,7 +687,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -700,7 +710,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -721,7 +731,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -774,256 +784,9 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"sequential_3\"\n", - "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", - "=================================================================\n", - "simple_rnn_3 (SimpleRNN) (None, 32) 1184 \n", - "_________________________________________________________________\n", - "dense_6 (Dense) (None, 8) 264 \n", - "_________________________________________________________________\n", - "dense_7 (Dense) (None, 1) 9 \n", - "=================================================================\n", - "Total params: 1,457\n", - "Trainable params: 1,457\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n", - "Train on 800 samples\n", - "Epoch 1/100\n", - "800/800 - 1s - loss: 0.0514\n", - "Epoch 2/100\n", - "800/800 - 0s - loss: 0.0018\n", - "Epoch 3/100\n", - "800/800 - 0s - loss: 0.0014\n", - "Epoch 4/100\n", - "800/800 - 0s - loss: 0.0011\n", - "Epoch 5/100\n", - "800/800 - 0s - loss: 9.2288e-04\n", - "Epoch 6/100\n", - "800/800 - 0s - loss: 6.6099e-04\n", - "Epoch 7/100\n", - "800/800 - 0s - loss: 6.3764e-04\n", - "Epoch 8/100\n", - "800/800 - 0s - loss: 5.5979e-04\n", - "Epoch 9/100\n", - "800/800 - 0s - loss: 4.3787e-04\n", - "Epoch 10/100\n", - "800/800 - 0s - loss: 4.0324e-04\n", - "Epoch 11/100\n", - "800/800 - 0s - loss: 3.8522e-04\n", - "Epoch 12/100\n", - "800/800 - 0s - loss: 3.1503e-04\n", - "Epoch 13/100\n", - "800/800 - 0s - loss: 2.7446e-04\n", - "Epoch 14/100\n", - "800/800 - 0s - loss: 2.6675e-04\n", - "Epoch 15/100\n", - "800/800 - 0s - loss: 2.6732e-04\n", - "Epoch 16/100\n", - "800/800 - 0s - loss: 2.2674e-04\n", - "Epoch 17/100\n", - "800/800 - 0s - loss: 2.1244e-04\n", - "Epoch 18/100\n", - "800/800 - 0s - loss: 2.2549e-04\n", - "Epoch 19/100\n", - "800/800 - 0s - loss: 1.9280e-04\n", - "Epoch 20/100\n", - "800/800 - 0s - loss: 1.8731e-04\n", - "Epoch 21/100\n", - "800/800 - 0s - loss: 1.9714e-04\n", - "Epoch 22/100\n", - "800/800 - 0s - loss: 1.9504e-04\n", - "Epoch 23/100\n", - "800/800 - 0s - loss: 1.6790e-04\n", - "Epoch 24/100\n", - "800/800 - 0s - loss: 1.9574e-04\n", - "Epoch 25/100\n", - "800/800 - 0s - loss: 1.8750e-04\n", - "Epoch 26/100\n", - "800/800 - 0s - loss: 1.6123e-04\n", - "Epoch 27/100\n", - "800/800 - 0s - loss: 1.7403e-04\n", - "Epoch 28/100\n", - "800/800 - 0s - loss: 1.7009e-04\n", - "Epoch 29/100\n", - "800/800 - 0s - loss: 1.7947e-04\n", - "Epoch 30/100\n", - "800/800 - 0s - loss: 1.6500e-04\n", - "Epoch 31/100\n", - "800/800 - 0s - loss: 1.8887e-04\n", - "Epoch 32/100\n", - "800/800 - 0s - loss: 1.6606e-04\n", - "Epoch 33/100\n", - "800/800 - 0s - loss: 1.7915e-04\n", - "Epoch 34/100\n", - "800/800 - 0s - loss: 1.4721e-04\n", - "Epoch 35/100\n", - "800/800 - 0s - loss: 1.5625e-04\n", - "Epoch 36/100\n", - "800/800 - 0s - loss: 1.7096e-04\n", - "Epoch 37/100\n", - "800/800 - 0s - loss: 1.6003e-04\n", - "Epoch 38/100\n", - "800/800 - 0s - loss: 1.4871e-04\n", - "Epoch 39/100\n", - "800/800 - 0s - loss: 1.5593e-04\n", - "Epoch 40/100\n", - "800/800 - 0s - loss: 1.7317e-04\n", - "Epoch 41/100\n", - "800/800 - 0s - loss: 1.4376e-04\n", - "Epoch 42/100\n", - "800/800 - 0s - loss: 1.6535e-04\n", - "Epoch 43/100\n", - "800/800 - 0s - loss: 1.7260e-04\n", - "Epoch 44/100\n", - "800/800 - 0s - loss: 1.3047e-04\n", - "Epoch 45/100\n", - "800/800 - 0s - loss: 1.5961e-04\n", - "Epoch 46/100\n", - "800/800 - 0s - loss: 1.3984e-04\n", - "Epoch 47/100\n", - "800/800 - 0s - loss: 1.3803e-04\n", - "Epoch 48/100\n", - "800/800 - 0s - loss: 1.5756e-04\n", - "Epoch 49/100\n", - "800/800 - 0s - loss: 1.2493e-04\n", - "Epoch 50/100\n", - "800/800 - 0s - loss: 1.4878e-04\n", - "Epoch 51/100\n", - "800/800 - 0s - loss: 1.5015e-04\n", - "Epoch 52/100\n", - "800/800 - 0s - loss: 1.5677e-04\n", - "Epoch 53/100\n", - "800/800 - 0s - loss: 1.3344e-04\n", - "Epoch 54/100\n", - "800/800 - 0s - loss: 1.5097e-04\n", - "Epoch 55/100\n", - "800/800 - 0s - loss: 1.2382e-04\n", - "Epoch 56/100\n", - "800/800 - 0s - loss: 1.7050e-04\n", - "Epoch 57/100\n", - "800/800 - 0s - loss: 1.2556e-04\n", - "Epoch 58/100\n", - "800/800 - 0s - loss: 1.3869e-04\n", - "Epoch 59/100\n", - "800/800 - 0s - loss: 1.1679e-04\n", - "Epoch 60/100\n", - "800/800 - 0s - loss: 1.3685e-04\n", - "Epoch 61/100\n", - "800/800 - 0s - loss: 1.3343e-04\n", - "Epoch 62/100\n", - "800/800 - 0s - loss: 1.3688e-04\n", - "Epoch 63/100\n", - "800/800 - 0s - loss: 1.3404e-04\n", - "Epoch 64/100\n", - "800/800 - 0s - loss: 1.5220e-04\n", - "Epoch 65/100\n", - "800/800 - 0s - loss: 1.1903e-04\n", - "Epoch 66/100\n", - "800/800 - 0s - loss: 1.4193e-04\n", - "Epoch 67/100\n", - "800/800 - 0s - loss: 1.2046e-04\n", - "Epoch 68/100\n", - "800/800 - 0s - loss: 1.2802e-04\n", - "Epoch 69/100\n", - "800/800 - 0s - loss: 1.4217e-04\n", - "Epoch 70/100\n", - "800/800 - 0s - loss: 1.2776e-04\n", - "Epoch 71/100\n", - "800/800 - 0s - loss: 1.3739e-04\n", - "Epoch 72/100\n", - "800/800 - 0s - loss: 1.2671e-04\n", - "Epoch 73/100\n", - "800/800 - 0s - loss: 1.4373e-04\n", - "Epoch 74/100\n", - "800/800 - 0s - loss: 1.1278e-04\n", - "Epoch 75/100\n", - "800/800 - 0s - loss: 1.3868e-04\n", - "Epoch 76/100\n", - "800/800 - 0s - loss: 1.2244e-04\n", - "Epoch 77/100\n", - "800/800 - 0s - loss: 1.3907e-04\n", - "Epoch 78/100\n", - "800/800 - 0s - loss: 1.0773e-04\n", - "Epoch 79/100\n", - "800/800 - 0s - loss: 1.3242e-04\n", - "Epoch 80/100\n", - "800/800 - 0s - loss: 1.3939e-04\n", - "Epoch 81/100\n", - "800/800 - 0s - loss: 1.1780e-04\n", - "Epoch 82/100\n", - "800/800 - 0s - loss: 1.2618e-04\n", - "Epoch 83/100\n", - "800/800 - 0s - loss: 1.1762e-04\n", - "Epoch 84/100\n", - "800/800 - 0s - loss: 1.2867e-04\n", - "Epoch 85/100\n", - "800/800 - 0s - loss: 1.2770e-04\n", - "Epoch 86/100\n", - "800/800 - 0s - loss: 1.2059e-04\n", - "Epoch 87/100\n", - "800/800 - 0s - loss: 1.1521e-04\n", - "Epoch 88/100\n", - "800/800 - 0s - loss: 1.2102e-04\n", - "Epoch 89/100\n", - "800/800 - 0s - loss: 1.3655e-04\n", - "Epoch 90/100\n", - "800/800 - 0s - loss: 9.8586e-05\n", - "Epoch 91/100\n", - "800/800 - 0s - loss: 1.2793e-04\n", - "Epoch 92/100\n", - "800/800 - 0s - loss: 1.2712e-04\n", - "Epoch 93/100\n", - "800/800 - 0s - loss: 1.2134e-04\n", - "Epoch 94/100\n", - "800/800 - 0s - loss: 1.0156e-04\n", - "Epoch 95/100\n", - "800/800 - 0s - loss: 1.2183e-04\n", - "Epoch 96/100\n", - "800/800 - 0s - loss: 1.4013e-04\n", - "Epoch 97/100\n", - "800/800 - 0s - loss: 1.2038e-04\n", - "Epoch 98/100\n", - "800/800 - 0s - loss: 1.3983e-04\n", - "Epoch 99/100\n", - "800/800 - 0s - loss: 1.1230e-04\n", - "Epoch 100/100\n", - "800/800 - 0s - loss: 1.1429e-04\n", - "0.0004728160643389856\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# Start importing packages\n", "import pandas as pd\n", @@ -1109,7 +872,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1186,7 +949,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -1273,381 +1036,9 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"model\"\n", - "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", - "=================================================================\n", - "input_1 (InputLayer) [(None, 2, 1)] 0 \n", - "_________________________________________________________________\n", - "RNN (SimpleRNN) (None, 200) 40400 \n", - "_________________________________________________________________\n", - "dense (Dense) (None, 1) 201 \n", - "=================================================================\n", - "Total params: 40,601\n", - "Trainable params: 40,601\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n", - "Train on 9 samples, validate on 1 samples\n", - "Epoch 1/150\n", - "9/9 [==============================] - 1s 76ms/sample - loss: 0.2402 - val_loss: 0.3869\n", - "Epoch 2/150\n", - "9/9 [==============================] - 0s 748us/sample - loss: 0.1266 - val_loss: 0.1450\n", - "Epoch 3/150\n", - "9/9 [==============================] - 0s 695us/sample - loss: 0.0504 - val_loss: 0.0223\n", - "Epoch 4/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0097 - val_loss: 0.0039\n", - "Epoch 5/150\n", - "9/9 [==============================] - 0s 3ms/sample - loss: 6.4447e-04 - val_loss: 0.0570\n", - "Epoch 6/150\n", - "9/9 [==============================] - 0s 3ms/sample - loss: 0.0139 - val_loss: 0.1296\n", - "Epoch 7/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0338 - val_loss: 0.1763\n", - "Epoch 8/150\n", - "9/9 [==============================] - 0s 3ms/sample - loss: 0.0465 - val_loss: 0.1823\n", - "Epoch 9/150\n", - "9/9 [==============================] - 0s 893us/sample - loss: 0.0475 - val_loss: 0.1556\n", - "Epoch 10/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0393 - val_loss: 0.1122\n", - "Epoch 11/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0269 - val_loss: 0.0673\n", - "Epoch 12/150\n", - "9/9 [==============================] - 0s 699us/sample - loss: 0.0148 - val_loss: 0.0312\n", - "Epoch 13/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0060 - val_loss: 0.0089\n", - "Epoch 14/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0016 - val_loss: 3.3912e-04\n", - "Epoch 15/150\n", - "9/9 [==============================] - 0s 879us/sample - loss: 0.0013 - val_loss: 0.0022\n", - "Epoch 16/150\n", - "9/9 [==============================] - 0s 730us/sample - loss: 0.0038 - val_loss: 0.0097\n", - "Epoch 17/150\n", - "9/9 [==============================] - 0s 808us/sample - loss: 0.0076 - val_loss: 0.0181\n", - "Epoch 18/150\n", - "9/9 [==============================] - 0s 958us/sample - loss: 0.0111 - val_loss: 0.0239\n", - "Epoch 19/150\n", - "9/9 [==============================] - 0s 748us/sample - loss: 0.0133 - val_loss: 0.0256\n", - "Epoch 20/150\n", - "9/9 [==============================] - 0s 892us/sample - loss: 0.0137 - val_loss: 0.0230\n", - "Epoch 21/150\n", - "9/9 [==============================] - 0s 772us/sample - loss: 0.0125 - val_loss: 0.0174\n", - "Epoch 22/150\n", - "9/9 [==============================] - 0s 694us/sample - loss: 0.0102 - val_loss: 0.0106\n", - "Epoch 23/150\n", - "9/9 [==============================] - 0s 685us/sample - loss: 0.0072 - val_loss: 0.0046\n", - "Epoch 24/150\n", - "9/9 [==============================] - 0s 913us/sample - loss: 0.0043 - val_loss: 8.0742e-04\n", - "Epoch 25/150\n", - "9/9 [==============================] - 0s 860us/sample - loss: 0.0021 - val_loss: 1.3698e-04\n", - "Epoch 26/150\n", - "9/9 [==============================] - 0s 958us/sample - loss: 8.4772e-04 - val_loss: 0.0025\n", - "Epoch 27/150\n", - "9/9 [==============================] - 0s 778us/sample - loss: 6.0774e-04 - val_loss: 0.0071\n", - "Epoch 28/150\n", - "9/9 [==============================] - 0s 854us/sample - loss: 0.0012 - val_loss: 0.0124\n", - "Epoch 29/150\n", - "9/9 [==============================] - 0s 887us/sample - loss: 0.0022 - val_loss: 0.0171\n", - "Epoch 30/150\n", - "9/9 [==============================] - 0s 886us/sample - loss: 0.0033 - val_loss: 0.0198\n", - "Epoch 31/150\n", - "9/9 [==============================] - 0s 793us/sample - loss: 0.0039 - val_loss: 0.0200\n", - "Epoch 32/150\n", - "9/9 [==============================] - 0s 931us/sample - loss: 0.0041 - val_loss: 0.0179\n", - "Epoch 33/150\n", - "9/9 [==============================] - 0s 867us/sample - loss: 0.0036 - val_loss: 0.0141\n", - "Epoch 34/150\n", - "9/9 [==============================] - 0s 851us/sample - loss: 0.0028 - val_loss: 0.0096\n", - "Epoch 35/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0018 - val_loss: 0.0055\n", - "Epoch 36/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 9.3775e-04 - val_loss: 0.0023\n", - "Epoch 37/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 3.7408e-04 - val_loss: 5.3772e-04\n", - "Epoch 38/150\n", - "9/9 [==============================] - 0s 737us/sample - loss: 1.6695e-04 - val_loss: 7.8647e-08\n", - "Epoch 39/150\n", - "9/9 [==============================] - 0s 705us/sample - loss: 2.7229e-04 - val_loss: 3.6125e-04\n", - "Epoch 40/150\n", - "9/9 [==============================] - 0s 729us/sample - loss: 5.7101e-04 - val_loss: 0.0011\n", - "Epoch 41/150\n", - "9/9 [==============================] - 0s 926us/sample - loss: 9.1568e-04 - val_loss: 0.0019\n", - "Epoch 42/150\n", - "9/9 [==============================] - 0s 933us/sample - loss: 0.0012 - val_loss: 0.0022\n", - "Epoch 43/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0013 - val_loss: 0.0021\n", - "Epoch 44/150\n", - "9/9 [==============================] - 0s 852us/sample - loss: 0.0012 - val_loss: 0.0017\n", - "Epoch 45/150\n", - "9/9 [==============================] - 0s 816us/sample - loss: 9.3627e-04 - val_loss: 9.8664e-04\n", - "Epoch 46/150\n", - "9/9 [==============================] - 0s 931us/sample - loss: 6.2403e-04 - val_loss: 3.8188e-04\n", - "Epoch 47/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 3.2660e-04 - val_loss: 3.9207e-05\n", - "Epoch 48/150\n", - "9/9 [==============================] - 0s 950us/sample - loss: 1.1524e-04 - val_loss: 5.1660e-05\n", - "Epoch 49/150\n", - "9/9 [==============================] - 0s 901us/sample - loss: 2.6645e-05 - val_loss: 3.8494e-04\n", - "Epoch 50/150\n", - "9/9 [==============================] - 0s 654us/sample - loss: 5.6145e-05 - val_loss: 9.0012e-04\n", - "Epoch 51/150\n", - "9/9 [==============================] - 0s 709us/sample - loss: 1.6422e-04 - val_loss: 0.0014\n", - "Epoch 52/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 2.9340e-04 - val_loss: 0.0017\n", - "Epoch 53/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 3.8915e-04 - val_loss: 0.0018\n", - "Epoch 54/150\n", - "9/9 [==============================] - 0s 965us/sample - loss: 4.1744e-04 - val_loss: 0.0016\n", - "Epoch 55/150\n", - "9/9 [==============================] - 0s 973us/sample - loss: 3.7302e-04 - val_loss: 0.0012\n", - "Epoch 56/150\n", - "9/9 [==============================] - 0s 742us/sample - loss: 2.7672e-04 - val_loss: 7.1274e-04\n", - "Epoch 57/150\n", - "9/9 [==============================] - 0s 710us/sample - loss: 1.6404e-04 - val_loss: 3.1516e-04\n", - "Epoch 58/150\n", - "9/9 [==============================] - 0s 829us/sample - loss: 7.0575e-05 - val_loss: 7.0400e-05\n", - "Epoch 59/150\n", - "9/9 [==============================] - 0s 899us/sample - loss: 1.9775e-05 - val_loss: 2.8230e-07\n", - "Epoch 60/150\n", - "9/9 [==============================] - 0s 816us/sample - loss: 1.6980e-05 - val_loss: 6.8329e-05\n", - "Epoch 61/150\n", - "9/9 [==============================] - 0s 834us/sample - loss: 5.0708e-05 - val_loss: 2.0270e-04\n", - "Epoch 62/150\n", - "9/9 [==============================] - 0s 942us/sample - loss: 9.9443e-05 - val_loss: 3.2668e-04\n", - "Epoch 63/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.4064e-04 - val_loss: 3.8528e-04\n", - "Epoch 64/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.5855e-04 - val_loss: 3.5985e-04\n", - "Epoch 65/150\n", - "9/9 [==============================] - 0s 929us/sample - loss: 1.4844e-04 - val_loss: 2.6773e-04\n", - "Epoch 66/150\n", - "9/9 [==============================] - 0s 808us/sample - loss: 1.1637e-04 - val_loss: 1.4952e-04\n", - "Epoch 67/150\n", - "9/9 [==============================] - 0s 785us/sample - loss: 7.5303e-05 - val_loss: 5.0371e-05\n", - "Epoch 68/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 3.9458e-05 - val_loss: 2.4146e-06\n", - "Epoch 69/150\n", - "9/9 [==============================] - 0s 757us/sample - loss: 1.9015e-05 - val_loss: 1.4619e-05\n", - "Epoch 70/150\n", - "9/9 [==============================] - 0s 826us/sample - loss: 1.7072e-05 - val_loss: 7.2547e-05\n", - "Epoch 71/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 2.9580e-05 - val_loss: 1.4686e-04\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 72/150\n", - "9/9 [==============================] - 0s 857us/sample - loss: 4.7932e-05 - val_loss: 2.0623e-04\n", - "Epoch 73/150\n", - "9/9 [==============================] - 0s 771us/sample - loss: 6.2884e-05 - val_loss: 2.2919e-04\n", - "Epoch 74/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 6.8132e-05 - val_loss: 2.1050e-04\n", - "Epoch 75/150\n", - "9/9 [==============================] - 0s 708us/sample - loss: 6.2238e-05 - val_loss: 1.6050e-04\n", - "Epoch 76/150\n", - "9/9 [==============================] - 0s 889us/sample - loss: 4.8366e-05 - val_loss: 9.8577e-05\n", - "Epoch 77/150\n", - "9/9 [==============================] - 0s 840us/sample - loss: 3.2296e-05 - val_loss: 4.4432e-05\n", - "Epoch 78/150\n", - "9/9 [==============================] - 0s 869us/sample - loss: 1.9727e-05 - val_loss: 1.0770e-05\n", - "Epoch 79/150\n", - "9/9 [==============================] - 0s 753us/sample - loss: 1.4077e-05 - val_loss: 2.4313e-08\n", - "Epoch 80/150\n", - "9/9 [==============================] - 0s 804us/sample - loss: 1.5541e-05 - val_loss: 5.7214e-06\n", - "Epoch 81/150\n", - "9/9 [==============================] - 0s 840us/sample - loss: 2.1567e-05 - val_loss: 1.7056e-05\n", - "Epoch 82/150\n", - "9/9 [==============================] - 0s 740us/sample - loss: 2.8329e-05 - val_loss: 2.4330e-05\n", - "Epoch 83/150\n", - "9/9 [==============================] - 0s 747us/sample - loss: 3.2443e-05 - val_loss: 2.2877e-05\n", - "Epoch 84/150\n", - "9/9 [==============================] - 0s 723us/sample - loss: 3.2219e-05 - val_loss: 1.4200e-05\n", - "Epoch 85/150\n", - "9/9 [==============================] - 0s 730us/sample - loss: 2.8039e-05 - val_loss: 4.2480e-06\n", - "Epoch 86/150\n", - "9/9 [==============================] - 0s 751us/sample - loss: 2.1851e-05 - val_loss: 1.1093e-08\n", - "Epoch 87/150\n", - "9/9 [==============================] - 0s 854us/sample - loss: 1.6117e-05 - val_loss: 6.0833e-06\n", - "Epoch 88/150\n", - "9/9 [==============================] - 0s 760us/sample - loss: 1.2736e-05 - val_loss: 2.2631e-05\n", - "Epoch 89/150\n", - "9/9 [==============================] - 0s 710us/sample - loss: 1.2357e-05 - val_loss: 4.5442e-05\n", - "Epoch 90/150\n", - "9/9 [==============================] - 0s 745us/sample - loss: 1.4315e-05 - val_loss: 6.7822e-05\n", - "Epoch 91/150\n", - "9/9 [==============================] - 0s 759us/sample - loss: 1.7126e-05 - val_loss: 8.3294e-05\n", - "Epoch 92/150\n", - "9/9 [==============================] - 0s 811us/sample - loss: 1.9233e-05 - val_loss: 8.7945e-05\n", - "Epoch 93/150\n", - "9/9 [==============================] - 0s 829us/sample - loss: 1.9671e-05 - val_loss: 8.1520e-05\n", - "Epoch 94/150\n", - "9/9 [==============================] - 0s 800us/sample - loss: 1.8371e-05 - val_loss: 6.6964e-05\n", - "Epoch 95/150\n", - "9/9 [==============================] - 0s 877us/sample - loss: 1.6035e-05 - val_loss: 4.8896e-05\n", - "Epoch 96/150\n", - "9/9 [==============================] - 0s 766us/sample - loss: 1.3699e-05 - val_loss: 3.1748e-05\n", - "Epoch 97/150\n", - "9/9 [==============================] - 0s 853us/sample - loss: 1.2237e-05 - val_loss: 1.8402e-05\n", - "Epoch 98/150\n", - "9/9 [==============================] - 0s 790us/sample - loss: 1.2004e-05 - val_loss: 9.7389e-06\n", - "Epoch 99/150\n", - "9/9 [==============================] - 0s 742us/sample - loss: 1.2776e-05 - val_loss: 5.0838e-06\n", - "Epoch 100/150\n", - "9/9 [==============================] - 0s 807us/sample - loss: 1.3944e-05 - val_loss: 3.1372e-06\n", - "Epoch 101/150\n", - "9/9 [==============================] - 0s 746us/sample - loss: 1.4843e-05 - val_loss: 2.8800e-06\n", - "Epoch 102/150\n", - "9/9 [==============================] - 0s 707us/sample - loss: 1.5054e-05 - val_loss: 4.0295e-06\n", - "Epoch 103/150\n", - "9/9 [==============================] - 0s 874us/sample - loss: 1.4539e-05 - val_loss: 6.9329e-06\n", - "Epoch 104/150\n", - "9/9 [==============================] - 0s 710us/sample - loss: 1.3595e-05 - val_loss: 1.2056e-05\n", - "Epoch 105/150\n", - "9/9 [==============================] - 0s 840us/sample - loss: 1.2663e-05 - val_loss: 1.9409e-05\n", - "Epoch 106/150\n", - "9/9 [==============================] - 0s 750us/sample - loss: 1.2105e-05 - val_loss: 2.8216e-05\n", - "Epoch 107/150\n", - "9/9 [==============================] - 0s 838us/sample - loss: 1.2058e-05 - val_loss: 3.7000e-05\n", - "Epoch 108/150\n", - "9/9 [==============================] - 0s 714us/sample - loss: 1.2408e-05 - val_loss: 4.4034e-05\n", - "Epoch 109/150\n", - "9/9 [==============================] - 0s 818us/sample - loss: 1.2882e-05 - val_loss: 4.7904e-05\n", - "Epoch 110/150\n", - "9/9 [==============================] - 0s 832us/sample - loss: 1.3207e-05 - val_loss: 4.7988e-05\n", - "Epoch 111/150\n", - "9/9 [==============================] - 0s 775us/sample - loss: 1.3224e-05 - val_loss: 4.4586e-05\n", - "Epoch 112/150\n", - "9/9 [==============================] - 0s 864us/sample - loss: 1.2949e-05 - val_loss: 3.8736e-05\n", - "Epoch 113/150\n", - "9/9 [==============================] - 0s 780us/sample - loss: 1.2533e-05 - val_loss: 3.1827e-05\n", - "Epoch 114/150\n", - "9/9 [==============================] - 0s 842us/sample - loss: 1.2168e-05 - val_loss: 2.5136e-05\n", - "Epoch 115/150\n", - "9/9 [==============================] - 0s 773us/sample - loss: 1.1989e-05 - val_loss: 1.9550e-05\n", - "Epoch 116/150\n", - "9/9 [==============================] - 0s 810us/sample - loss: 1.2024e-05 - val_loss: 1.5486e-05\n", - "Epoch 117/150\n", - "9/9 [==============================] - 0s 722us/sample - loss: 1.2196e-05 - val_loss: 1.2993e-05\n", - "Epoch 118/150\n", - "9/9 [==============================] - 0s 944us/sample - loss: 1.2379e-05 - val_loss: 1.1939e-05\n", - "Epoch 119/150\n", - "9/9 [==============================] - 0s 765us/sample - loss: 1.2467e-05 - val_loss: 1.2159e-05\n", - "Epoch 120/150\n", - "9/9 [==============================] - 0s 812us/sample - loss: 1.2419e-05 - val_loss: 1.3513e-05\n", - "Epoch 121/150\n", - "9/9 [==============================] - 0s 854us/sample - loss: 1.2267e-05 - val_loss: 1.5843e-05\n", - "Epoch 122/150\n", - "9/9 [==============================] - 0s 822us/sample - loss: 1.2091e-05 - val_loss: 1.8891e-05\n", - "Epoch 123/150\n", - "9/9 [==============================] - 0s 716us/sample - loss: 1.1968e-05 - val_loss: 2.2255e-05\n", - "Epoch 124/150\n", - "9/9 [==============================] - 0s 931us/sample - loss: 1.1937e-05 - val_loss: 2.5414e-05\n", - "Epoch 125/150\n", - "9/9 [==============================] - 0s 694us/sample - loss: 1.1987e-05 - val_loss: 2.7838e-05\n", - "Epoch 126/150\n", - "9/9 [==============================] - 0s 794us/sample - loss: 1.2071e-05 - val_loss: 2.9127e-05\n", - "Epoch 127/150\n", - "9/9 [==============================] - 0s 803us/sample - loss: 1.2132e-05 - val_loss: 2.9105e-05\n", - "Epoch 128/150\n", - "9/9 [==============================] - 0s 755us/sample - loss: 1.2140e-05 - val_loss: 2.7874e-05\n", - "Epoch 129/150\n", - "9/9 [==============================] - 0s 788us/sample - loss: 1.2092e-05 - val_loss: 2.5760e-05\n", - "Epoch 130/150\n", - "9/9 [==============================] - 0s 773us/sample - loss: 1.2018e-05 - val_loss: 2.3197e-05\n", - "Epoch 131/150\n", - "9/9 [==============================] - 0s 736us/sample - loss: 1.1955e-05 - val_loss: 2.0619e-05\n", - "Epoch 132/150\n", - "9/9 [==============================] - 0s 938us/sample - loss: 1.1928e-05 - val_loss: 1.8380e-05\n", - "Epoch 133/150\n", - "9/9 [==============================] - 0s 712us/sample - loss: 1.1940e-05 - val_loss: 1.6699e-05\n", - "Epoch 134/150\n", - "9/9 [==============================] - 0s 780us/sample - loss: 1.1974e-05 - val_loss: 1.5686e-05\n", - "Epoch 135/150\n", - "9/9 [==============================] - 0s 702us/sample - loss: 1.2007e-05 - val_loss: 1.5359e-05\n", - "Epoch 136/150\n", - "9/9 [==============================] - 0s 751us/sample - loss: 1.2019e-05 - val_loss: 1.5673e-05\n", - "Epoch 137/150\n", - "9/9 [==============================] - 0s 761us/sample - loss: 1.2004e-05 - val_loss: 1.6536e-05\n", - "Epoch 138/150\n", - "9/9 [==============================] - 0s 880us/sample - loss: 1.1974e-05 - val_loss: 1.7804e-05\n", - "Epoch 139/150\n", - "9/9 [==============================] - 0s 966us/sample - loss: 1.1944e-05 - val_loss: 1.9291e-05\n", - "Epoch 140/150\n", - "9/9 [==============================] - 0s 769us/sample - loss: 1.1928e-05 - val_loss: 2.0776e-05\n", - "Epoch 141/150\n", - "9/9 [==============================] - 0s 730us/sample - loss: 1.1930e-05 - val_loss: 2.2031e-05\n", - "Epoch 142/150\n", - "9/9 [==============================] - 0s 885us/sample - loss: 1.1944e-05 - val_loss: 2.2875e-05\n", - "Epoch 143/150\n", - "9/9 [==============================] - 0s 721us/sample - loss: 1.1959e-05 - val_loss: 2.3206e-05\n", - "Epoch 144/150\n", - "9/9 [==============================] - 0s 769us/sample - loss: 1.1965e-05 - val_loss: 2.3012e-05\n", - "Epoch 145/150\n", - "9/9 [==============================] - 0s 803us/sample - loss: 1.1960e-05 - val_loss: 2.2382e-05\n", - "Epoch 146/150\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "9/9 [==============================] - 0s 793us/sample - loss: 1.1946e-05 - val_loss: 2.1463e-05\n", - "Epoch 147/150\n", - "9/9 [==============================] - 0s 853us/sample - loss: 1.1933e-05 - val_loss: 2.0436e-05\n", - "Epoch 148/150\n", - "9/9 [==============================] - 0s 804us/sample - loss: 1.1924e-05 - val_loss: 1.9467e-05\n", - "Epoch 149/150\n", - "9/9 [==============================] - 0s 715us/sample - loss: 1.1924e-05 - val_loss: 1.8698e-05\n", - "Epoch 150/150\n", - "9/9 [==============================] - 0s 717us/sample - loss: 1.1930e-05 - val_loss: 1.8213e-05\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "MSE: 4.058867016844987e-05\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time: 2.6944892699830234\n" - ] - } - ], + "outputs": [], "source": [ "def test_rnn (x1, y_test, plot_min, plot_max):\n", " \"\"\"\n", @@ -1763,377 +1154,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"model_1\"\n", - "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", - "=================================================================\n", - "input_2 (InputLayer) [(None, 2, 1)] 0 \n", - "_________________________________________________________________\n", - "RNN1 (SimpleRNN) (None, 2, 500) 251000 \n", - "_________________________________________________________________\n", - "RNN2 (SimpleRNN) (None, 500) 500500 \n", - "_________________________________________________________________\n", - "dense (Dense) (None, 1) 501 \n", - "=================================================================\n", - "Total params: 752,001\n", - "Trainable params: 752,001\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n", - "Train on 9 samples, validate on 1 samples\n", - "Epoch 1/150\n", - "9/9 [==============================] - 1s 144ms/sample - loss: 0.9308 - val_loss: 5.2922\n", - "Epoch 2/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 7.4592 - val_loss: 0.4159\n", - "Epoch 3/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.1833 - val_loss: 1.7606\n", - "Epoch 4/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.8576 - val_loss: 4.9398\n", - "Epoch 5/150\n", - "9/9 [==============================] - 0s 3ms/sample - loss: 3.2772 - val_loss: 3.7854\n", - "Epoch 6/150\n", - "9/9 [==============================] - 0s 4ms/sample - loss: 2.3581 - val_loss: 1.2405\n", - "Epoch 7/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.5185 - val_loss: 0.0361\n", - "Epoch 8/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0965 - val_loss: 0.2449\n", - "Epoch 9/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.8848 - val_loss: 0.6068\n", - "Epoch 10/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.4868 - val_loss: 0.4607\n", - "Epoch 11/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.2558 - val_loss: 0.0942\n", - "Epoch 12/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.5748 - val_loss: 0.0386\n", - "Epoch 13/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0934 - val_loss: 0.4789\n", - "Epoch 14/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.1143 - val_loss: 1.1294\n", - "Epoch 15/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.4510 - val_loss: 1.5341\n", - "Epoch 16/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.7068 - val_loss: 1.4615\n", - "Epoch 17/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.6594 - val_loss: 1.0237\n", - "Epoch 18/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.3886 - val_loss: 0.5085\n", - "Epoch 19/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.1262 - val_loss: 0.1506\n", - "Epoch 20/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0432 - val_loss: 0.0113\n", - "Epoch 21/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.1421 - val_loss: 0.0064\n", - "Epoch 22/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.2946 - val_loss: 0.0209\n", - "Epoch 23/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.3638 - val_loss: 0.0080\n", - "Epoch 24/150\n", - "9/9 [==============================] - 0s 4ms/sample - loss: 0.3042 - val_loss: 0.0037\n", - "Epoch 25/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.1728 - val_loss: 0.0714\n", - "Epoch 26/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0661 - val_loss: 0.2337\n", - "Epoch 27/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0456 - val_loss: 0.4439\n", - "Epoch 28/150\n", - "9/9 [==============================] - 0s 3ms/sample - loss: 0.1012 - val_loss: 0.6127\n", - "Epoch 29/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.1716 - val_loss: 0.6665\n", - "Epoch 30/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.1970 - val_loss: 0.5910\n", - "Epoch 31/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.1617 - val_loss: 0.4320\n", - "Epoch 32/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0970 - val_loss: 0.2603\n", - "Epoch 33/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0496 - val_loss: 0.1296\n", - "Epoch 34/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0458 - val_loss: 0.0560\n", - "Epoch 35/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0763 - val_loss: 0.0264\n", - "Epoch 36/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.1094 - val_loss: 0.0218\n", - "Epoch 37/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.1173 - val_loss: 0.0359\n", - "Epoch 38/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0960 - val_loss: 0.0754\n", - "Epoch 39/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0636 - val_loss: 0.1459\n", - "Epoch 40/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0434 - val_loss: 0.2377\n", - "Epoch 41/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0461 - val_loss: 0.3245\n", - "Epoch 42/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0636 - val_loss: 0.3760\n", - "Epoch 43/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0783 - val_loss: 0.3751\n", - "Epoch 44/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0781 - val_loss: 0.3266\n", - "Epoch 45/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0641 - val_loss: 0.2525\n", - "Epoch 46/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0483 - val_loss: 0.1786\n", - "Epoch 47/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0418 - val_loss: 0.1226\n", - "Epoch 48/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0469 - val_loss: 0.0900\n", - "Epoch 49/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0566 - val_loss: 0.0791\n", - "Epoch 50/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0615 - val_loss: 0.0871\n", - "Epoch 51/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0577 - val_loss: 0.1129\n", - "Epoch 52/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0491 - val_loss: 0.1538\n", - "Epoch 53/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0426 - val_loss: 0.2023\n", - "Epoch 54/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0425 - val_loss: 0.2456\n", - "Epoch 55/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0472 - val_loss: 0.2706\n", - "Epoch 56/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0514 - val_loss: 0.2700\n", - "Epoch 57/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0513 - val_loss: 0.2463\n", - "Epoch 58/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0473 - val_loss: 0.2093\n", - "Epoch 59/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0430 - val_loss: 0.1712\n", - "Epoch 60/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0417 - val_loss: 0.1413\n", - "Epoch 61/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0437 - val_loss: 0.1243\n", - "Epoch 62/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0463 - val_loss: 0.1210\n", - "Epoch 63/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0470 - val_loss: 0.1306\n", - "Epoch 64/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0452 - val_loss: 0.1508\n", - "Epoch 65/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0427 - val_loss: 0.1771\n", - "Epoch 66/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0416 - val_loss: 0.2028\n", - "Epoch 67/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0424 - val_loss: 0.2206\n", - "Epoch 68/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0440 - val_loss: 0.2256\n", - "Epoch 69/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0445 - val_loss: 0.2171\n", - "Epoch 70/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0436 - val_loss: 0.1991\n", - "Epoch 71/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0422 - val_loss: 0.1779\n", - "Epoch 72/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0415 - val_loss: 0.1595\n", - "Epoch 73/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0420 - val_loss: 0.1479\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 74/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0428 - val_loss: 0.1449\n", - "Epoch 75/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0431 - val_loss: 0.1502\n", - "Epoch 76/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0426 - val_loss: 0.1622\n", - "Epoch 77/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0418 - val_loss: 0.1773\n", - "Epoch 78/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0415 - val_loss: 0.1914\n", - "Epoch 79/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0418 - val_loss: 0.2005\n", - "Epoch 80/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0422 - val_loss: 0.2020\n", - "Epoch 81/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0423 - val_loss: 0.1962\n", - "Epoch 82/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0419 - val_loss: 0.1855\n", - "Epoch 83/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0415 - val_loss: 0.1736\n", - "Epoch 84/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0414 - val_loss: 0.1639\n", - "Epoch 85/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0416 - val_loss: 0.1588\n", - "Epoch 86/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0418 - val_loss: 0.1589\n", - "Epoch 87/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0418 - val_loss: 0.1640\n", - "Epoch 88/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0416 - val_loss: 0.1721\n", - "Epoch 89/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0414 - val_loss: 0.1808\n", - "Epoch 90/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0414 - val_loss: 0.1875\n", - "Epoch 91/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0415 - val_loss: 0.1902\n", - "Epoch 92/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0416 - val_loss: 0.1884\n", - "Epoch 93/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0415 - val_loss: 0.1831\n", - "Epoch 94/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0414 - val_loss: 0.1762\n", - "Epoch 95/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0413 - val_loss: 0.1700\n", - "Epoch 96/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0413 - val_loss: 0.1662\n", - "Epoch 97/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0414 - val_loss: 0.1656\n", - "Epoch 98/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0414 - val_loss: 0.1680\n", - "Epoch 99/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0413 - val_loss: 0.1726\n", - "Epoch 100/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0412 - val_loss: 0.1777\n", - "Epoch 101/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0412 - val_loss: 0.1817\n", - "Epoch 102/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0412 - val_loss: 0.1834\n", - "Epoch 103/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0413 - val_loss: 0.1824\n", - "Epoch 104/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0412 - val_loss: 0.1792\n", - "Epoch 105/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0412 - val_loss: 0.1752\n", - "Epoch 106/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0411 - val_loss: 0.1716\n", - "Epoch 107/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0411 - val_loss: 0.1695\n", - "Epoch 108/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0411 - val_loss: 0.1694\n", - "Epoch 109/150\n", - "9/9 [==============================] - 0s 3ms/sample - loss: 0.0411 - val_loss: 0.1711\n", - "Epoch 110/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0411 - val_loss: 0.1739\n", - "Epoch 111/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0411 - val_loss: 0.1768\n", - "Epoch 112/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0411 - val_loss: 0.1788\n", - "Epoch 113/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0411 - val_loss: 0.1793\n", - "Epoch 114/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0411 - val_loss: 0.1783\n", - "Epoch 115/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0410 - val_loss: 0.1762\n", - "Epoch 116/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0410 - val_loss: 0.1737\n", - "Epoch 117/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0410 - val_loss: 0.1718\n", - "Epoch 118/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0410 - val_loss: 0.1710\n", - "Epoch 119/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0410 - val_loss: 0.1714\n", - "Epoch 120/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0410 - val_loss: 0.1728\n", - "Epoch 121/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0409 - val_loss: 0.1746\n", - "Epoch 122/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0409 - val_loss: 0.1761\n", - "Epoch 123/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0409 - val_loss: 0.1768\n", - "Epoch 124/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0409 - val_loss: 0.1765\n", - "Epoch 125/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0409 - val_loss: 0.1754\n", - "Epoch 126/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0409 - val_loss: 0.1740\n", - "Epoch 127/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0408 - val_loss: 0.1726\n", - "Epoch 128/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0408 - val_loss: 0.1719\n", - "Epoch 129/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0408 - val_loss: 0.1719\n", - "Epoch 130/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0408 - val_loss: 0.1725\n", - "Epoch 131/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0408 - val_loss: 0.1735\n", - "Epoch 132/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0408 - val_loss: 0.1745\n", - "Epoch 133/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0407 - val_loss: 0.1750\n", - "Epoch 134/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0407 - val_loss: 0.1749\n", - "Epoch 135/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0407 - val_loss: 0.1743\n", - "Epoch 136/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0407 - val_loss: 0.1734\n", - "Epoch 137/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0407 - val_loss: 0.1726\n", - "Epoch 138/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0407 - val_loss: 0.1720\n", - "Epoch 139/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0407 - val_loss: 0.1720\n", - "Epoch 140/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0406 - val_loss: 0.1723\n", - "Epoch 141/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0406 - val_loss: 0.1729\n", - "Epoch 142/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0406 - val_loss: 0.1734\n", - "Epoch 143/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0406 - val_loss: 0.1737\n", - "Epoch 144/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0406 - val_loss: 0.1736\n", - "Epoch 145/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0406 - val_loss: 0.1732\n", - "Epoch 146/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0405 - val_loss: 0.1726\n", - "Epoch 147/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0405 - val_loss: 0.1721\n", - "Epoch 148/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0405 - val_loss: 0.1718\n", - "Epoch 149/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0405 - val_loss: 0.1717\n", - "Epoch 150/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0405 - val_loss: 0.1719\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "MSE: 0.32999046353248707\n" - ] - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD4CAYAAADhNOGaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nO3dd3hUVfrA8e+byYQkJAQSQi+hSq+RYgBFRWkKKCiwIDYQxcKu7oplFXfVxbK6ooCiSFEWbCAo/ATr0kuAAKEHCCG00JNA+pzfHxlCSIGEmWQmmffzPPPMveecO/flAnkz99xzjhhjUEop5bm8XB2AUkop19JEoJRSHk4TgVJKeThNBEop5eE0ESillIfzdnUA16Nq1aomLCzs+g5OTITMTKfGo1Sp8faGSpVcHYUqozZt2nTKGBOat7xMJoKwsDAiIyOv7+D586FGDecGpFRpOX4chg51dRSqjBKRQwWV660hpZTycE5JBCLSW0T2iEiMiEwooF5EZLK9fpuIdCjqsUoppUqWw4lARCzAFKAP0AIYJiIt8jTrAzSxv8YA04pxrFJKqRLkjD6CTkCMMeYAgIjMBwYAO3O1GQDMMdnzWawTkcoiUhMIK8KxSikPkJGRQXx8PKmpqa4Opczz9fWlTp06WK3WIrV3RiKoDRzOtR8PdC5Cm9pFPFYp5QHi4+MJDAwkLCwMEXF1OGWWMYbTp08THx9PgwYNinSMM/oICvobyzuTXWFtinJs9geIjBGRSBGJPHnyZDFDVEq5u9TUVEJCQjQJOEhECAkJKdY3K2ckgnigbq79OsDRIrYpyrEAGGOmG2PCjTHhoaH5HoMtkg9/3ce35xL47OgSkjIvXtdnKKVKjiYB5yjudXRGItgINBGRBiLiAwwFFudpsxh4wP70UBfgvDHmWBGPdYqYhCT+/fNeHon/g9H73iV0zb0M3/kWa85Ho1NxK6U8mcOJwBiTCTwJLAN2AV8bY3aIyFgRGWtvthQ4AMQAnwJPXO1YR2MqyNeR8RgySPb+DYA0k8q8kz8REfUUYese5O24+SSkny2JUyulyohz584xdepUV4dR6pwyjsAYs9QY09QY08gY84a97GNjzMf2bWOMGWevb22MibzasSXh7ra1CG92EJucz1cXlx7H8wc/oebaIfTe+gpLT68jy2SVVChKKTdVWCLIyirfPw88ZmRxq9pBvDfwHv5aZSDBlpAC29jIYtm5lfSLfoFqq4fy/IHPOJBSYJeFUqocmjBhAvv376ddu3bceOON9OzZk+HDh9O6dWtiY2Np1apVTtt3332XiRMnArB//3569+5Nx44d6d69O7t373bRn+D6lMm5hq5X/cr1ebva/bzZ+kmWndnA5Pil/HJuLTbyZ/szWad4+/Bc3j48lxsD2vF07b7cG9oDP0sFF0SulGcJm7CkxD47dlK/QusmTZpEdHQ0UVFR/PHHH/Tr14/o6GgaNGhAbGxsoceNGTOGjz/+mCZNmrB+/XqeeOIJfvvttxKIvmR4VCK4xFss9AvpSr+QrpxIP8Os48uZcmQph9MPF9h+Y3IUI/dE8di+yQwLvY2/1B1Ii4phpRu0UqrUderU6ZrP4icnJ7NmzRqGDBmSU5aWllbSoTmVRyaC3Kr7BPN8vaH8re79rE3cwYdHlrDg1B+km/zP4F60JTPjxCJmnFjELUGdeaX+/dxSuZ0+8qZUOVWxYsWcbW9vb2w2W87+pef0bTYblStXJioqqtTjcxaPTwSXiAg3BbXipqBWJGU+xfyE35gcv5TolF0Ftv/j/Hr+2LaeG3yb8Pew+7gv9BasXno5lXKGq92+KUmBgYEkJSUVWFe9enUSEhI4ffo0AQEB/Pjjj/Tu3ZtKlSrRoEEDvvnmG4YMGYIxhm3bttG2bdtSjv76eUxncXEEevszulZ/tneaSnT45zxZcwiBXkEFtt2Tuo8Ru9+g1trhvB33FYmZF0o5WqWUs4SEhBAREUGrVq3461//ekWd1WrllVdeoXPnzvTv359mzZrl1M2dO5cZM2bQtm1bWrZsyaJFi0o7dIdIWRxMFR4ebkp7YZp0WwYLTq7k9UPfsCOl8CcC7g56gC9bPUigt94uUiWgHC9Ms2vXLpo3b+7qMMqNgq6niGwyxoTnbavfCIrIx8vK0Oq3sv3GqaxsN5lelSPIO1WSGB82H7+Dm/64yJu70zmaYiv4w5RSyo1oIigmEaFbUGuWt32dPTfO5sHqd2HFB4CKWbdioTJJmTA9NoMeK1IYvzWV6MQsjqadwmY0MSil3I/2bjqgqX9dZjb7C283fJgPjywiyNadpUeF/Reyb7dlGvj+WBYLj2Vyzv9ZqvgIL9cbwsgavajg5ePi6JVSKpt+I3CCUJ/K/KPBKJ5t1JCfu/kxo0MFOle5fGlTvTaRaOI4lHaI0fvepc7aEZxJT3ZhxEopdZkmAifzEuG2at581dmPxV19uauGhUTvBVe0uZDWmHvXefHdkQwybWWvs14pVb5oIihBbYIs/LuNhTtDq+KV61JXzhjKwYuGZ7enc+vKFL6OzyBDE4JSykU0EZQwHy8r37f+Owc6z+WxmvfQzq8HVS2NcurjUgx/i06n58oU3t6/lzcPzSM5K8WFESulnOGPP/6gf//+ACxevJhJkyYV2vZ6p7+eOHEi77777nXHeIkmglJS37cGHzd9is03TmTVzf4818RK5VzrSsenGF6L/ZKXYqdTc81Q/nlorg5OU8oNXc+U1HfffTcTJkwotN7V6yDoU0OlTESoZIUnG/nwYH0rc+Iy+PRgBicy47hoWQVAsi2RV2I/4624r3iuzmD+XPcegrwDXBy5UqVLXnPuoEzz6rVvv8bGxtK7d286d+7Mli1baNq0KXPmzKFFixY8/PDDLF++nCeffJLg4GBeffVV0tLSaNSoETNnziQgIICffvqJ8ePHU7VqVTp06JDzubNmzSIyMpKPPvqIEydOMHbsWA4cOADAtGnTmDx5cs7017169eKdd97hnXfe4euvvyYtLY1Bgwbx2muvAfDGG28wZ84c6tatS2hoKB07dnT42ug3AhcK8BaeaOjDqpv9CQtZCHLlP9QLtiRei5tJzTVDeenATM5mFDwHilLKefbs2cOYMWPYtm0blSpVyvlN3dfXl1WrVnH77bfz+uuv88svv7B582bCw8N57733SE1NZfTo0fzwww+sXLmS48ePF/j5Tz/9NDfffDNbt25l8+bNtGzZkkmTJtGoUSOioqJ45513WL58Ofv27WPDhg1ERUWxadMmVqxYwaZNm5g/fz5btmxhwYIFbNy40Sl/Zk0EbqCit/Bj2yeZUHckfuKfrz7FXODNw3OotXYoE/bP4ExGoguiVMoz1K1bl4iICABGjBjBqlXZ39Tvv/9+ANatW8fOnTuJiIigXbt2zJ49m0OHDrF7924aNGhAkyZNEBFGjBhR4Of/9ttvPP744wBYLBaCgvLPY7Z8+XKWL19O+/bt6dChA7t372bfvn2sXLmSQYMG4e/vT6VKlbj77rud8mfWROAmgq2V+FfDhzl601f8vd6D+HvlvxWUai7yVvyX1Fk7jIkH52inslIlIO+08pf2L01JbYyhV69eREVFERUVxc6dO5kxY0aBx14vYwwvvPBCzjliYmJ45JFHnHqO3DQRuJnK3gH8o8Eojnadx8T6D1PRKzBfmxRzkdfiZlJ7zTDeO/wtabZ0F0SqVMkyrxqnvooqLi6OtWvXAjBv3jy6det2RX2XLl1YvXo1MTExAFy8eJG9e/fSrFkzDh48yP79+3OOLchtt93GtGnTgOyO58TExHzTX9955518/vnnJCdnDzw9cuQICQkJ9OjRg4ULF5KSkkJSUhI//PBDkf9cV6OJwE0FeQfwathIjnWdz+thowucBjvRdp5nD0yh7tqRfHZsKZmmfC+wrVRpaN68ObNnz6ZNmzacOXMm5zbOJaGhocyaNYthw4bRpk0bunTpwu7du/H19WX69On069ePbt26Ub9+/QI//4MPPuD333+ndevWdOzYkR07duSb/vqOO+5g+PDhdO3aldatWzN48GCSkpLo0KED999/P+3atePee++le/fuTvkzOzQNtYgEA18BYUAscJ8x5myeNnWBOUANwAZMN8Z8YK+bCIwGTtqbv2iMWXqt87piGmpXS85K4YP4hfwrbj4XbAV3Gtfzqcu7jR7m3tAeeInm+HJJp6EuUbGxsfTv35/o6GiXxuEMpTkN9QTgV2NME+BX+35emcCzxpjmQBdgnIi0yFX/vjGmnf11zSTgqQIsfrxUfzjxXf/L83VG4CO++drEpR/mvl2v0WLDWJad2UBZXGtCKVX6HE0EA4DZ9u3ZwMC8DYwxx4wxm+3bScAuoLaD5/VYlb0DmNToEeK6zGVszXuwYM3XZk/qPnpvf54bN49n9fntLohSqbIpLCysXHwbKC5HE0F1Y8wxyP6BD1S7WmMRCQPaA+tzFT8pIttE5HMRqXKVY8eISKSIRJ48ebKwZh6juk8w05o+xf7OcxgW2hsp4K9yU/I2ukU9za1RE9iaHOOCKJUqHv0W6xzFvY7XTAQi8ouIRBfwGlCcE4lIAPAdMN4Yc+lB+GlAI6AdcAz4d2HHG2OmG2PCjTHhoaGhxTl1uVbftwb/bfE8O2+cSd8qPQps8/v59YzbuYIjumKacmO+vr6cPn1ak4GDjDGcPn0aX9/8t48Lc80pJowxtxdWJyInRKSmMeaYiNQEEgppZyU7Ccw1xuTMyWyMOZGrzafAj0WOXF2hmX89lrR5jU1JexgfM4NViZdHHHqZSsSduYueK1IYUc+bJxv5EOyjayor91KnTh3i4+PRb/yO8/X1pU6dOkVu7+hcQ4uBUcAk+/uivA0ke/TDDGCXMea9PHU1L91aAgYBnndzzsk6Bt7AyvZv879zUTy971O2XdxJUMZ9eOFPuoHPD2XyzZFMnmho5aH6VnwtmhCUe7BarTRo0MDVYXgkR/sIJgG9RGQf0Mu+j4jUEpFLTwBFACOBW0Ukyv7qa697W0S2i8g2oCfwZwfjUXY3V25HVPhHLGn1L75rdw/tgi7/VSdlwlt7M+i5MpmOG59nxrGlZOkYBKU8lkPjCFzFE8cROMoYw/KELN7am84B+5rKyZZfOO3zHwAa+zZkapPH6RWc7xFj5U7K8TgCVfJKahyBKiNEhDure7Mswo9/tvChik8q56xf5NTHpB5g7K4l7EvWDmWlPI0mAg9j9RJG1rPyzzaxiOSaxdR4k5Y8kjtXpfBCdBoJaZoQlPIUmgg8VP+qHYnpPId7Qm4DoFLm3Xib6tiAefGZ3LIihQ9i0rmYWfZuHSqlikdXKPNg9X1r8F2rl4lMGkJ6RnWm7vdi1ensbwIXs+D9mAzmHs6kYtBkhlRvzpha/fEWi4ujVko5m34jUIQH3sBNwZX5ItyXWR0rcEPA5UdKD2VE8UfSMsbF/IfG6x7mx9NrdcCPUuWMJgKVQ0S4JdSbpRF+vNXKh9AKhnPWz3PqD6XHcVf0i9y05Vm2Jx9wYaRKKWfSRKDysYhwfx0rH3U4jrHE56tfl7SFtptG88ju/3Aq47wLIlRKOZMmAlWozkGNOdj5C4aF9gauHIFssPH5iUXUXzeC9w9/R4Yt0zVBKqUcpolAXVXtCqH8t8XzRHWczk2BHfLVX7Ql85cDH9Fk/SMsO7PBBREqpRyliUAVSduAxqxq/y7ft/wntay18tUfSo+j9/bnuS3qBfZePOyCCJVS10sTgSoyEWFA1W4c6DKTNxuMwVf887X57fw6Wmx8mKf2TeV8ZrILolRKFZcmAlVsFbx8eKHeMA52+YLhoX3I23+QRSYfHf2GemtH8MnRH3RCO6XcnCYCdd1q+AQzt8XfiOwwjfYVW+arT7SdZ+y+92ix4TFWnNvqggiVUkWhiUA5rGPgDWzq+CHzmv2dqt75V4/bm7qfm7eO567tEzmUetwFESqlrkYTgXIKEWFo9Vs51GUOL9UbhVUq5Gvz45n/0Xj9KF48MJOLWakuiFIpVRCda0g5lb/Fl9cbPMhjNfvy9L5P+P7Mb1fUZ5LOvw7P4fPjy5lxw9P0C+nqokhVURljSMtKIzk9mZSMFDJsGWTaMsm0ZZKRlWs7V3n9oPo0CWmS77PSs9L5ctuXOftWLysj244s8Ly/HfyNA2dLdgS71cvKqHajinT+nmE9aRTcKF+7o0lHWbpvab5yZyvs/M6giUCViLq+1VjY+u+sOj+QMXs+YlfK3ivqT2Qc5x97jtCsjY1GAfrFtLQkpiUyZcMULmRc4EL6hez33NuFvNtM8aYlf6HbC7x525v5ylMzU3lk8SM5+4E+gYUmgumbpvPVjq+K9wcspkCfwEITQd7zz7t3XoE/iPec2sPoH0aXWIzXOr8zaCJQJapbUGuib5zGzOM/8ez+zzifdRYAH1sjjifeQe/VKTwaZuWpRlb8vXX95JKWkpHCi7+9WOLnydSR5mWK/iqmSpyXePFIzb4c6jKHx2veixcWQtIfR7CQYWDawQxuW5XCkuOZOrNpCavoU7FUzqOJoGzRbwSq1AR5BzC16ZO8XH8oZ9Oq8MrOdDady77lcCzVMC4qjS7B6aT7f8xbDUfSxL+OiyMuf/yt+QcBFoWPxYeK1or4W/3xsfjg7eWd87JarJe3vbK3Gwc3LvBzrF5WHmr3UM6+r7dvoefsGdaTAJ+A64q3qIpz/oZVGhbYrmZgTR5p/0iBdc5U2PmdwaHF60UkGPgKCANigfuMMWcLaBcLJAFZQOalxZOLenxeunh9+WAzhgVHM/nXnnROp2eXnfWeRaL1WyxY+Uud+5gYNgJ/S+H/WT2OExavf+nXl6jgXYGK1opU9KmY8x7gE5Cv7NK7t5f+zlgeFLZ4vaN/uxOAX40xk0Rkgn3/+ULa9jTGnHLgeFXOeIkwuLaVXtW8eX9fOp8djiXR+3sAssjgnfi5HE3x5ouWoxDR/gNneeO2N1wdgnIzjvYRDABm27dnAwNL+XhVDgRZhYktKtC73u8gl+8tW0wIK+L7MyIylZjk4j21opQqOkcTQXVjzDEA+3u1QtoZYLmIbBKRMddxvPIAnzZ7jC+bvUQVSzAAVTIewQs/Vp+20Xt1Cv/ak05ypnYmF0fU8ShWx60u9uOfyrNc89aQiPwCFHRT/aVinCfCGHNURKoBP4vIbmPMimIcjz2BjAGoV69ecQ5VZYSI8Kfqt3NXSFc+PfozSck9mROXhQ3INPDJwQy+P5rJy828CfTdyS1V2rk6ZLc3adUkvtrxFbUCa3Fv83t5qtNTBQ70Up7tmt8IjDG3G2NaFfBaBJwQkZoA9veEQj7jqP09AVgIdLJXFel4+7HTjTHhxpjw0ND889mo8qOSd0WerTeQiS18WRLhx41VLv8zPZFmeDB6CT23/ZneW//O4dRC/8l4vJSMFH7c+yOQPfr1ww0fcupi3m46pRy/NbQYuDQsbxSwKG8DEakoIoGXtoE7gOiiHq88W/NAL77u5Mv7bSoQWkHI4jznrDMBWHZuFU02PMg7h78mU6e6zmfZ/mVcyLiQs187sDad63R2YUTKXTmaCCYBvURkH9DLvo+I1BKRS5NvVAdWichWYAOwxBjz09WOVyo3EWFQLW9+7eZHSOVZ2CQppy7NpPC3A9NoueExNiTucmGU7qdWYC2GtRqW8yz8vc3vxUt0DKnKz6FxBK6i4wg819bkGEbu+jfbL+4uoFZ4qPpdvNd4NJW9S3YgkstcxziClIwUlu9fTpOQJrQIbVFCgamyoLBxBPrrgSpT2gY0Jip8Ch81Ho+f5J0uwTDzxGIarBvFvBO/6nQVdn5WPwY0G6BJQBVKE4Eqc7zEi3G1B3CwyxwGhdyWr/5c1hmG736dHlF/IybliAsiVKps0USgyqzqPsEsaPUyP7d5l9rWWvnqVyVG0nzDQ7xycA5ptnQXRKhU2aCJQJV5t1fpSEyXmbxQ9wEsWK+oyySDf8bNpMn6R/njXJSLIlTKvWkiUOWCr5cPbzZ8iB03fkbngPwDzQ6nH6bn1j9z3443OZl+zgURlp45W+fw8/6fycjKcHUoqozQRKDKlRv867G2w3vMvuEFKnkF5av/5tTPNFj/ALOOLyuXnckZWRmM/2k8d3x5BzX/XZNHFz/KmZQzrg5LuTlNBKrcEREeqHEHB7vMYWS1fvnqL9iSeGjPJLpv+SsHUo66IMKS83vs75xNzZ7J/XTKab7f/T2VKlRycVTK3WkiUOVWsLUSc5o/x+p2H9KwQli++tVJm2i28WHeivuq3IxM/mbHN1fsD2o2SNcSUNekiUCVezcFtWJ3p0/5Z9hovPG5oi7DpDHh4Me02fgEW5L2uShC58i0ZbJw98Iryga3GOyiaFRZoolAeQSrlzcv1x/Ork6fF9iZvCtlL0OjPyepDE9z/b/Y/3E65XTOfhXfKtza4FYXRqTKCk0EyqM09qvN2g7v8WnTv+LvdXkaCjF+XEgcQ6+VKfySUDYXXv9257dX7A9sNhCrxVpIa6Uu00SgPI6I8GjNvuzvPJu7gm8BoHLGA3ibahxPMzy6OY1xUamcTCs73w6ybFks2L3gijK9LaSKShOB8lg1fIJZ3PpVfmn9LjNaDiIkV/fBkuNZ3L7qIl/HZ7Du/E63f9R0ZdxKEi5cXpshqEIQtzXIP/2GUgXRRKA83m3BHRlUqwK/dPNncO3LT9icz4Cndm6ga9Q4em19ya0Xwcl7W+juG+6mgncFF0WjyhpNBErZVfER3m1dgS/DfanrJ9hI5Yz1QwB+Pb+WJhse5L8nfnNxlPnZjI3vdn13RdmQFkNcFI0qizQRKJVHt6oWlnfzI6zqV2R6ncgpT7Ol8uG+KkSfd68xB6vjVnM8+XjOfqBPIL0a9XJhRKqs0USgVAH8LMLHzfvS1v/yHP6BWf05ltyUAetSeWdvOmk29+g3yHtb6K4b7sLX29dF0aiySBOBUoVoUTGMzeEfMrnRM9Sy1qd61kgAsgxMOZBB/zUpbDnn2m8HBd0WGtxcnxZSxaOJQKmr8BIvnqozkLiuM/g5IoROVS7/l9mXbLh3XSrPRR/iH7FfkmEr/fEH6+LXcSTp8uI7Fa0V6d24d6nHoco2TQRKFYFFLIRV9GJ+J1/+2cIHf0t2eRY2Pkp4j1cPzaD1xsfZmhxTqnHlvS3Uv2l//Kx+pRqDKvs0EShVDF4ijKxnZVmEH91CvEi2/ESaZRsAe1Jj6LBpLC8emEm6reTXAjDG5EsEOohMXQ+HEoGIBIvIzyKyz/5epYA2N4hIVK5XooiMt9dNFJEjuer6OhKPUqWlrr8XMzta8fa/cpI3G1n86/Acmm8YQ2TSnhKNYePRjRxOPJyz7+ftR5/GfUr0nKp8cvQbwQTgV2NME+BX+/4VjDF7jDHtjDHtgI7ARSD3/573L9UbY5Y6GI9Spcbq5U30jVMZENwzX92BtFg6bX6Cv8R8QmoJrZecd8rpvk36UtGnYomcS5VvjiaCAcBs+/ZsYOA12t8G7DfGHHLwvEq5hVCfynzf+hUWtPgHlS3BV9QZbLx/ZD43rH+UNeejnXpeYwzf7rrytpAOIlPXy9FEUN0YcwzA/l7tGu2HAvPylD0pIttE5POCbi1dIiJjRCRSRCJPnjzpWNRKOdmg0O7s7zyT+6rmH8gVl36YiKinGbd3ChezUp1yvs3HNhN7LjZn39fbl75N9M6quj7XTAQi8ouIRBfwGlCcE4mID3A3kPv77DSgEdAOOAb8u7DjjTHTjTHhxpjw0NDQ4pxaqVIRbK3EVy1f5MdWbxLiXTVPrWHqsW9psv4RVpzb6vC58nYS927cm8AKgQ5/rvJM10wExpjbjTGtCngtAk6ISE0A+/vVZuXqA2w2xuSM2TfGnDDGZBljbMCnQCfH/jhKuV6/kK7s7zyTEdXy/4Z+NOMoN2/9M0/s/YiUrLTr+nxjDN/svLJ/QAeRKUc4emtoMTDKvj0KWHSVtsPIc1voUhKxGwQ490aqUi4S5B3AF83/yvLW71DNu3qeWsO0Y99xw4bRrE/cWezP3npiK/vP7s/Z97H40L9pfwcjVp7M0UQwCeglIvuAXvZ9RKSWiOQ8ASQi/vb6BXmOf1tEtovINqAn8GcH41HKrfQKDiem8+c8Wj3/ndTD6YfpuuUpntv/KWnFeLJoy7EtVyxIf2ejOwnyDXJKvMozibsvuFGQ8PBwExkZeX0Hz58PNWo4NyCliuD3s1sYuvMtEjJP5Ktr5NuAb1u+SLuAxlf/kOPHYehQzqScYdHuRXy761v+1PpPDG89vISiVuWJiGwyxoTnLdeRxUqVkp5V2hPT+XNGVuuXr25/6kE6bhrLKwfnFGnOomC/YB5q/xBLhi/RJKAcpolAqVIU6O3PnObPsbTVJIItIVfU2cjin3EzaRc5jp0XYl0ToPJImgiUcoE+IZ2J6TyTwQWMO9iZspe2kWPYknTABZEpT6SJQCkXqWIN5JuWL/Jdi9eo5HVlZ681qx3PR1V3u9XQVPmkiUApF7sntAcxnWfRt0p3ALxMIMHpT7H3Agxcl8p/YtLJsBkS0s9SFh/uUO7P+9pNlFIlLdSnMj+2fo3/JvzKutMWfo4PJtUGmQb+E5PBLwlZ7LM8S3pWMoOXb2Zwi8F0qt0JEXF16Koc0MdHlXJDBy/YeG57GpvO2QDIkCMc9X0sp94iFo49e4zQijrdiio6fXxUqTKkQUUvvu7sy4s3+OAjYJNEAjIvP3bapXZ3TQLKaTQRKOWmLCKMaWDlx5v8aFOxHimWtTl1++Na8fXGw9pnoJxCE4FSbq5poBd/bhaHt1cKAD62xvik3cbfvtvGY19s4nTy9U1ep9QlmgiUKgN6h4RzJmIB86u/xU0BnyBYAVi+8wR3/mcFv+3OP22FUkWliUCpMsLf4sv9leux9JmbeaBr/ZzyU8npPDwrkhcXbudC2rWnp1AqL00ESpUxfj4W/jGgFbMeupHQwAo55f9dH0e/ySvZHHfWhdGpskgTgVJl1C03VGPZ+B70bnn5cejY0xcZ8vFa3vt5LxlZNhdGp8oSTQRKlWHBFX2YNqID7w5pS0CF7PGhWTbD5F/3MXjaGvafTHZxhG99WDsAABQkSURBVKos0ESgVBknIgzuWIf/e6Y7ncKCc8q3xp+n3+SVfLHukD5mqq5KE4FS5UTdYH/mjenChD7NsFqyp55IzbDx9++jeWjWRhISU10coXJXmgiUKkcsXsLYmxuxaFw3mlYPyCn/Y89J7vzPCn6KPubC6JS70kSgVDnUolYlFj/ZjUe7NcgpO3sxg7Ffbua5b7aSrI+Zqlw0EShVTvlaLbzcvwX/fbQzNYN8c8q/3RRP/8kr2Xr4nAujU+7EoUQgIkNEZIeI2EQk34x2udr1FpE9IhIjIhNylQeLyM8iss/+XsWReJRS+d3UuCo/je/B3W1r5ZTFnr7IvdPWMPWPGLJs2pHs6Rz9RhAN3AOsKKyBiFiAKUAfoAUwTERa2KsnAL8aY5oAv9r3lVJOFuRnZfKw9rx//+XHTDNthrd/2sOIz9Zz7HyKiyNUruRQIjDG7DLG7LlGs05AjDHmgDEmHZgPDLDXDQBm27dnAwMdiUcpdXWD2tdh6dPdaV+vck7Z2gOn6f2fldqR7MFKo4+gNnA41368vQygujHmGID9vVopxKOUR6sX4s/Xj3Xl6Vsb42Vf4Ox8SnZH8gsLtnMxXTuSPc01E4GI/CIi0QW8Blzr2EsfUUBZsW9KisgYEYkUkciTJ08W93ClVC5Wixd/ueMG5o/pSq1cHcnzNsTR/8NVRB8578LoVGm7ZiIwxtxujGlVwGtREc8RD9TNtV8HOGrfPiEiNQHs7wlXiWO6MSbcGBMeGqorMynlDJ0aBPN/z/SgX5uaOWUHTl5g0NTVfLriADbtSPYIpXFraCPQREQaiIgPMBRYbK9bDIyyb48CippclFJOEuRv5aNh7Xl7cBv8fSwAZGQZ3li6i1EzN+iIZA/g6OOjg0QkHugKLBGRZfbyWiKyFMAYkwk8CSwDdgFfG2N22D9iEtBLRPYBvez7SqlSJiLcF16XJU93p02doJzylftO0fuDlfyyUxe+Kc+kLE5GFR4ebiIjI6/v4PnzoUaNa7dTyh0dPw5Dh5boKdIzbbz/y14+/t9+cv94GNmlPi/1a46v1VKi51clR0Q2GWPyjfnSkcVKqSv4eHvxfO9mzH20MzUqXe5I/mLdIe76cBW7jiW6MDpVEjQRKKUKdFOjqvzfM925s2X1nLJ9CckMmLKaL3Vq63JFE4FSqlBVKvrw8YiO/Oue1vjZbwmlZ9p4+ftonpi7mfMpGS6OUDmDJgKl1FWJCMM61eOHp7rRrEZgTvn/RR+n7we6RnJ5oIlAKVUkjasF8P24CEZ0qZdTduRcCvd9vJaP/7dfxxyUYZoIlFJF5mu18PrA1kz7UwcCfS9PXjfp/3bz4KyNnEpOc3GE6npoIlBKFVuf1jXzTV63Yu9J+nywktUxp1wYmboemgiUUtelbnD25HVjb26UU3YyKY0RM9bz7rI9ZGbZXBidKg5NBEqp62a1eDGhTzPmPNyJqgE+ABgDH/0ew9Dp6zh6Ttc5KAs0ESilHNajaShLn+lOROOQnLLIQ2fp88FKlu847sLIVFFoIlBKOUW1QF/mPNyZv955Axb7QgfnUzIY88UmJi7eQVpmlosjVIXRRKCUchqLlzCuZ2O+GtPlinUOZq2J5Z6pazh46oILo1OF0USglHK68LBglj7TnTtaXJ6eYsfRRPpPXsn3W464MDJVEE0ESqkSUdnfh09GduS1u1viY8n+UXMhPYvxX0XxwoLtpGborSJ3oYlAKVViRIRRN4WxcNxNNKxaMad83oY47pm6hli9VeQWNBEopUpcy1pBLH6qG3e1rZVTtvNYIv0/XMXS7cdcGJkCTQRKqVISUMGbyUPb8frAVjm3ipLTMnli7mZ9qsjFNBEopUqNiDCiS30WPHET9YL9c8pnrYnlvo/XcvjMRRdG57k0ESilSl2r2kH8+HQ3ere8vGzs1vjz9Ju8kp91feRSp4lAKeUSlXytTBvRgVf6t8DbPgAtMTWT0XMieXPpLjJ0rqJSo4lAKeUyIsLD3Rrw9diu1K7sl1M+fcUBhk5fx7HzOldRaXAoEYjIEBHZISI2EQkvpE1dEfldRHbZ2z6Tq26iiBwRkSj7q68j8SilyqYO9arw41PduLVZtZyyTYfO0veDlfyxJ8GFkXkGR78RRAP3ACuu0iYTeNYY0xzoAowTkRa56t83xrSzv5Y6GI9SqoyqUtGHzx4IZ0KfZjlzFZ29mMFDszbqtNYlzKFEYIzZZYzZc402x4wxm+3bScAuoLYj51VKlU9eXsLYmxsxf0wXqleqAFye1nrEjPUkJKa6OMLyqVT7CEQkDGgPrM9V/KSIbBORz0WkylWOHSMikSISefLkyRKOVCnlSjeGBbPk6e50b1I1p2zdgTP0nbyKNft1BTRnu2YiEJFfRCS6gNeA4pxIRAKA74DxxphEe/E0oBHQDjgG/Luw440x040x4caY8NDQ0OKcWilVBlUNqMCshzrxl15Nkew7RZxKTmPEZ+uZ9sd+jDGuDbAc8b5WA2PM7Y6eRESsZCeBucaYBbk++0SuNp8CPzp6LqVU+WHxEp6+rQkd61fhmflbOJWcjs3AWz/tZkvcWd69ry2VfK2uDrPMK/FbQyIiwAxglzHmvTx1NXPtDiK781kppa4Q0bgqS57uTnj9y3ePl+88wYCPVrP7eOJVjlRF4ejjo4NEJB7oCiwRkWX28loicukJoAhgJHBrAY+Jvi0i20VkG9AT+LMj8Silyq/qlXyZN6YLD0c0yCk7eOoCg6as0TUOHHTNW0NXY4xZCCwsoPwo0Ne+vQqQQo4f6cj5lVKexWrx4pW7WtC+XmWe/24bF9OzSMnIXuNgS9xZXurXAh9vHSdbXHrFlFJlzl1ta7FoXAQNQy+vcTB77SGGTl+ro5GvgyYCpVSZ1KR6IIvGRdCn1eWJ6zbHnaO/PmJabJoIlFJlVqCvlal/6sBLfZvnjEY+fSGdEZ+t5+P/6SOmRaWJQClVpokIo3s0ZO6jnakakD0a2WZg0v/tZuyXm0hMzXBxhO5PE4FSqlzo0jCEJU93u+IR02U7sh8x3XM8yYWRuT9NBEqpcuPSI6YPRYTllB08dYGBU1azKEofMS2MJgKlVLlitXjx6l0tmTysPf4+FgBSMrJ4Zn4UExfvID1TZzHNSxOBUqpcurttLb7P84jprDWxDPt0nc5imocmAqVUudXU/ohp7rWRNx06y10frWJz3FkXRuZeNBEopcq1QPvayC/0aYb9CVNOJKYx9JN1zN8Q59rg3IQmAqVUuSciPHZzI2Y/3InK/tmzlaZn2ZiwYDsvLdzu8f0GmgiUUh6je5NQfniyG81qBOaUzV0f5/H9BpoIlFIepW6wPwueuIn+bS7Pgu/p/QaaCJRSHsffx5sPh7UvsN/gq42e12+giUAp5ZFy9xsE+V3uN3j+u+28/L1n9RtoIlBKebSC+g2+XBfH8E/XkZDkGf0GmgiUUh6vXkj+foPIQ2e568NVbPGAfgNNBEopReH9Bvd7QL+BJgKllLK71G8w6yHP6jfQRKCUUnn0aOpZ/QYOJQIRGSIiO0TEJiLhV2kXKyLbRSRKRCJzlQeLyM8iss/+XqWwz1BKqdJ0qd+gX55+g7s/XM32+PMujMz5HP1GEA3cA6woQtuexph2xpjcCWMC8Ksxpgnwq31fKaXcgr+PNx8Na8+EXP0GxxNTGfLJGn7YetS1wTmRQ4nAGLPLGLPHgY8YAMy2b88GBjoSj1JKOZuIMPbmRsx8qBOBvt4ApGbYeGreFt5dtgebreyvi1xafQQGWC4im0RkTK7y6saYYwD292qlFI9SShXLzU1DWTQugoZVL69v8NHvMYz9chMX0jJdGJnjrpkIROQXEYku4DWgGOeJMMZ0APoA40SkR3EDFZExIhIpIpEnT54s7uFKKeWwhqEBLBwXQY+moTlly3ee4N5pazh85qILI3PMNROBMeZ2Y0yrAl6LinoSY8xR+3sCsBDoZK86ISI1AezvCVf5jOnGmHBjTHhoaGhhzZRSqkQF+Vn5fFQ4j3ZrkFO2+3gSA6asZv2B0y6M7PqV+K0hEakoIoGXtoE7yO5kBlgMjLJvjwKKnFyUUspVvC1evNy/BW8PboOPJfvH6JkL6fzps/XMK4OL3Tj6+OggEYkHugJLRGSZvbyWiCy1N6sOrBKRrcAGYIkx5id73SSgl4jsA3rZ95VSqky4L7wu88Z0pmqADwCZNsMLC7bz6qJoMrPKzuAzMabs9XiHh4ebyMjIazcsyPz5UKPGtdsp5Y6OH4ehQ10dhcrjyLkURs+OZOexxJyyiMYhTBnegcr+Pi6M7EoisinPI/yAjixWSimH1a7sx7ePd6Vv68u/ZK6OOc3AKauJSUhyYWRFo4lAKaWcIHvwWQfG394kpyz29EUGTVnD77sLfQ7GLWgiUEopJ/HyEsbf3pRpf+qAn9UCQFJaJg/P3sj0Fftx11vxmgiUUsrJ+rSuybePd6V2ZT8AjIE3l+7m2W+2kpqR5eLo8tNEoJRSJaBlrSAWPRlBeP3Lc2ku2HyE4Z+u41Rymgsjy08TgVJKlZCqARWYO7oz94XXySnbHHeOgVNWs/eE+3QiayJQSqkSVMHbwlv3tuHlfs0R+wym8WdTuHfqGv631z2my9FEoJRSJUxEeLR7Qz57IBx/n1ydyLM28sW6Qy6OThOBUkqVmtuaV+fbsTdRM8gXgCyb4e/fR/PaDzvIcuF01poIlFKqFLWoVYlF4yJoUycop2zm6lhGz4kk2UXTWWsiUEqpUlatki9fjelKn1aXRyL/tjuBwdPWcORcSqnHo4lAKaVcwM/HwpThHXj8lkY5ZbuPJzHgo9VsPXyuVGPRRKCUUi7i5SU837sZbw9ug9WS/UjRqeQ07p++lqXbj5VeHKV2JqWUUgW6L7wuXzzSmcr+ViB7TeQn5m5myu8xpTIthSYCpZRyA10ahrDwiQga5FoT+Z1le3jum22kZ5bs2gaaCJRSyk00qFqRhU/cRJeGwTll322OZ8SM9Zy9kF5i59VEoJRSbqSyvw9zHu7MkI6Xp6XYcPAMg6au5sDJ5BI5pyYCpZRyMz7eXrw9uA3P926WUxZ7+iKDpq5hzf5TTj+fJgKllHJDIsLjtzTi4xEd8LVm/6g+n5LBAzM28FP0caeeSxOBUkq5sd6tavL1Y12pFlgBgJAAH9rWDbrGUcWjiUAppdxcmzqV+X5cBB3rV+GzB26kZpCfUz/foUQgIkNEZIeI2EQkvJA2N4hIVK5XooiMt9dNFJEjuer6OhKPUkqVV7Uq+/Ht2K60ruPcbwMA3g4eHw3cA3xSWANjzB6gHYCIWIAjwMJcTd43xrzrYBxKKVXuyaUFDZzMoURgjNkFxQruNmC/Mcb1E3ArpZQCSr+PYCgwL0/ZkyKyTUQ+F5EqBR0EICJjRCRSRCJPnnSPVX2UUqo8uGYiEJFfRCS6gNeA4pxIRHyAu4FvchVPAxqRfevoGPDvwo43xkw3xoQbY8JDQ0OLc2qllFJXcc1bQ8aY2510rj7AZmPMiVyfnbMtIp8CPzrpXEoppYqoNG8NDSPPbSERqZlrdxDZnc9KKaVKkaOPjw4SkXigK7BERJbZy2uJyNJc7fyBXsCCPB/xtohsF5FtQE/gz47Eo5RSqvikNOa6djYROQm465NHVQHnTwbiPBqfYzQ+x2h8jnMkxvrGmHydrGUyEbgzEYk0xhQ4uM4daHyO0fgco/E5riRi1CkmlFLKw2kiUEopD6eJwPmmuzqAa9D4HKPxOUbjc5zTY9Q+AqWU8nD6jUAppTycJgKllPJwmgicSERi7QPkokQk0g3i+VxEEkQkOldZsIj8LCL77O+FTvTnovjcZo0KEakrIr+LyC77uhvP2Mvd4hpeJT63uIYi4isiG0Rkqz2+1+zl7nL9CovPLa5frjgtIrJFRH607zv9+mkfgROJSCwQboxxiwEpItIDSAbmGGNa2cveBs4YYyaJyASgijHmeTeKbyKQ7A5rVNinQKlpjNksIoHAJmAg8CBucA2vEt99uME1lOz56SsaY5JFxAqsAp4hew0Td7h+hcXXGze4fpeIyF+AcKCSMaZ/Sfwf1m8E5ZgxZgVwJk/xAGC2fXs22T84XKKQ+NyGMeaYMWazfTsJ2AXUxk2u4VXicwsmW7J912p/Gdzn+hUWn9sQkTpAP+CzXMVOv36aCJzLAMtFZJOIjHF1MIWobow5Btk/SIBqLo6nIEVao6I0iUgY0B5YjxtewzzxgZtcQ/ttjSggAfjZGONW16+Q+MBNrh/wH+BvgC1XmdOvnyYC54owxnQge8rtcfZbH6p4irxGRWkRkQDgO2C8MSbR1fHkVUB8bnMNjTFZxph2QB2gk4i0clUsBSkkPre4fiLSH0gwxmwq6XNpInAiY8xR+3sC2esyd3JtRAU6Yb+3fOkec4KL47mCMeaE/T+nDfgUF19D+73j74C5xphLs+e6zTUsKD53u4b2mM4Bf5B9/91trt8lueNzo+sXAdxt73ucD9wqIl9SAtdPE4GTiEhFe4cdIlIRuAP3XF9hMTDKvj0KWOTCWPIRN1qjwt6ZOAPYZYx5L1eVW1zDwuJzl2soIqEiUtm+7QfcDuzGfa5fgfG5y/UzxrxgjKljjAkje5nf34wxIyiB66dPDTmJiDQk+1sAZK/89l9jzBsuDAkRmQfcQva0tSeAV4Hvga+BekAcMMQY45IO20Liu4Xsr+QGiAUeu3Q/1AXxdQNWAtu5fI/2RbLvw7v8Gl4lvmG4wTUUkTZkd2ZayP6l82tjzD9EJAT3uH6FxfcFbnD9chORW4Dn7E8NOf36aSJQSikPp7eGlFLKw2kiUEopD6eJQCmlPJwmAqWU8nCaCJRSysNpIlBKKQ+niUAppTzc/wO1A7TzKTe5IwAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time: 4.114079531747848\n" - ] - } - ], + "outputs": [], "source": [ "def rnn_2layers(length_of_sequences, batch_size = None, stateful = False):\n", " \"\"\"\n", @@ -2247,418 +1270,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Model: \"model_2\"\n", - "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", - "=================================================================\n", - "input_3 (InputLayer) [(None, 2, 1)] 0 \n", - "_________________________________________________________________\n", - "dnn (Dense) (None, 2, 125) 250 \n", - "_________________________________________________________________\n", - "dnn1 (Dense) (None, 2, 125) 15750 \n", - "_________________________________________________________________\n", - "RNN1 (GRU) (None, 2, 250) 282750 \n", - "_________________________________________________________________\n", - "RNN (GRU) (None, 250) 376500 \n", - "_________________________________________________________________\n", - "dense (Dense) (None, 1) 251 \n", - "=================================================================\n", - "Total params: 675,501\n", - "Trainable params: 675,501\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n", - "Train on 9 samples, validate on 1 samples\n", - "Epoch 1/150\n", - "9/9 [==============================] - 3s 335ms/sample - loss: 0.2450 - val_loss: 0.6009\n", - "Epoch 2/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.1844 - val_loss: 0.4407\n", - "Epoch 3/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.1280 - val_loss: 0.2754\n", - "Epoch 4/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0726 - val_loss: 0.1180\n", - "Epoch 5/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0256 - val_loss: 0.0122\n", - "Epoch 6/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0062 - val_loss: 0.0182\n", - "Epoch 7/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0340 - val_loss: 0.0463\n", - "Epoch 8/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0533 - val_loss: 0.0251\n", - "Epoch 9/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0386 - val_loss: 0.0018\n", - "Epoch 10/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0170 - val_loss: 0.0069\n", - "Epoch 11/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0062 - val_loss: 0.0362\n", - "Epoch 12/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0074 - val_loss: 0.0714\n", - "Epoch 13/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0145 - val_loss: 0.0968\n", - "Epoch 14/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0209 - val_loss: 0.1061\n", - "Epoch 15/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0236 - val_loss: 0.0993\n", - "Epoch 16/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0219 - val_loss: 0.0804\n", - "Epoch 17/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0171 - val_loss: 0.0552\n", - "Epoch 18/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0111 - val_loss: 0.0303\n", - "Epoch 19/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0061 - val_loss: 0.0114\n", - "Epoch 20/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0039 - val_loss: 0.0017\n", - "Epoch 21/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0048 - val_loss: 1.7121e-04\n", - "Epoch 22/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0077 - val_loss: 0.0021\n", - "Epoch 23/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0099 - val_loss: 0.0026\n", - "Epoch 24/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0096 - val_loss: 0.0010\n", - "Epoch 25/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0069 - val_loss: 7.4865e-06\n", - "Epoch 26/150\n", - "9/9 [==============================] - 0s 3ms/sample - loss: 0.0037 - val_loss: 0.0019\n", - "Epoch 27/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0018 - val_loss: 0.0070\n", - "Epoch 28/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0017 - val_loss: 0.0131\n", - "Epoch 29/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0028 - val_loss: 0.0172\n", - "Epoch 30/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0039 - val_loss: 0.0176\n", - "Epoch 31/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0042 - val_loss: 0.0143\n", - "Epoch 32/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0035 - val_loss: 0.0088\n", - "Epoch 33/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0022 - val_loss: 0.0036\n", - "Epoch 34/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 8.5005e-04 - val_loss: 4.4203e-04\n", - "Epoch 35/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.9905e-04 - val_loss: 2.7989e-04\n", - "Epoch 36/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 4.0486e-04 - val_loss: 0.0022\n", - "Epoch 37/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0011 - val_loss: 0.0042\n", - "Epoch 38/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 0.0016 - val_loss: 0.0045\n", - "Epoch 39/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 0.0015 - val_loss: 0.0032\n", - "Epoch 40/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 9.0520e-04 - val_loss: 0.0013\n", - "Epoch 41/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.7366e-04 - val_loss: 1.8062e-04\n", - "Epoch 42/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 7.9785e-05 - val_loss: 5.6714e-05\n", - "Epoch 43/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 3.6778e-04 - val_loss: 4.3541e-04\n", - "Epoch 44/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 7.7541e-04 - val_loss: 6.0918e-04\n", - "Epoch 45/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 9.4925e-04 - val_loss: 3.9626e-04\n", - "Epoch 46/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 7.9547e-04 - val_loss: 6.2396e-05\n", - "Epoch 47/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 4.6406e-04 - val_loss: 7.4306e-05\n", - "Epoch 48/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.9191e-04 - val_loss: 6.7534e-04\n", - "Epoch 49/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.3472e-04 - val_loss: 0.0016\n", - "Epoch 50/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.6807e-04 - val_loss: 0.0024\n", - "Epoch 51/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.2605e-04 - val_loss: 0.0024\n", - "Epoch 52/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 4.5007e-04 - val_loss: 0.0018\n", - "Epoch 53/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 3.1897e-04 - val_loss: 8.9950e-04\n", - "Epoch 54/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.4287e-04 - val_loss: 2.3903e-04\n", - "Epoch 55/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.7967e-05 - val_loss: 3.1655e-06\n", - "Epoch 56/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 7.3665e-05 - val_loss: 7.2757e-05\n", - "Epoch 57/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.6136e-04 - val_loss: 1.9493e-04\n", - "Epoch 58/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 2.2035e-04 - val_loss: 1.9998e-04\n", - "Epoch 59/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.0127e-04 - val_loss: 9.4887e-05\n", - "Epoch 60/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.2360e-04 - val_loss: 5.1504e-06\n", - "Epoch 61/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 4.9139e-05 - val_loss: 3.8941e-05\n", - "Epoch 62/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.8798e-05 - val_loss: 1.8634e-04\n", - "Epoch 63/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 6.4377e-05 - val_loss: 3.3108e-04\n", - "Epoch 64/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.1325e-04 - val_loss: 3.5745e-04\n", - "Epoch 65/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.2908e-04 - val_loss: 2.5042e-04\n", - "Epoch 66/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.0075e-04 - val_loss: 9.8608e-05\n", - "Epoch 67/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 5.6099e-05 - val_loss: 7.8389e-06\n", - "Epoch 68/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 3.1440e-05 - val_loss: 1.4748e-05\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 69/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.0217e-05 - val_loss: 7.2811e-05\n", - "Epoch 70/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 6.5820e-05 - val_loss: 1.0793e-04\n", - "Epoch 71/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 8.0192e-05 - val_loss: 8.5110e-05\n", - "Epoch 72/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 6.9576e-05 - val_loss: 3.0754e-05\n", - "Epoch 73/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 4.3596e-05 - val_loss: 1.5006e-07\n", - "Epoch 74/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.3801e-05 - val_loss: 2.4427e-05\n", - "Epoch 75/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.2519e-05 - val_loss: 8.4345e-05\n", - "Epoch 76/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 3.4223e-05 - val_loss: 1.3076e-04\n", - "Epoch 77/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 4.3072e-05 - val_loss: 1.2920e-04\n", - "Epoch 78/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 3.8694e-05 - val_loss: 8.6107e-05\n", - "Epoch 79/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.4764e-05 - val_loss: 3.5628e-05\n", - "Epoch 80/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.3666e-05 - val_loss: 6.0901e-06\n", - "Epoch 81/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.3351e-05 - val_loss: 6.5202e-08\n", - "Epoch 82/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.0531e-05 - val_loss: 2.3852e-06\n", - "Epoch 83/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.5462e-05 - val_loss: 1.4359e-06\n", - "Epoch 84/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.2309e-05 - val_loss: 2.7095e-07\n", - "Epoch 85/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.3926e-05 - val_loss: 8.9544e-06\n", - "Epoch 86/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 8.1545e-06 - val_loss: 2.9798e-05\n", - "Epoch 87/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 7.9122e-06 - val_loss: 5.1986e-05\n", - "Epoch 88/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.1202e-05 - val_loss: 6.0481e-05\n", - "Epoch 89/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.3116e-05 - val_loss: 4.9656e-05\n", - "Epoch 90/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.1011e-05 - val_loss: 2.7833e-05\n", - "Epoch 91/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 6.6973e-06 - val_loss: 8.9163e-06\n", - "Epoch 92/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.0061e-06 - val_loss: 6.4231e-07\n", - "Epoch 93/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.6626e-06 - val_loss: 5.3801e-07\n", - "Epoch 94/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 6.8445e-06 - val_loss: 1.6904e-06\n", - "Epoch 95/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 7.5918e-06 - val_loss: 7.6062e-07\n", - "Epoch 96/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 5.9006e-06 - val_loss: 9.0495e-08\n", - "Epoch 97/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 3.3952e-06 - val_loss: 3.1808e-06\n", - "Epoch 98/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 2.2665e-06 - val_loss: 9.5475e-06\n", - "Epoch 99/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 2.9746e-06 - val_loss: 1.4636e-05\n", - "Epoch 100/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.0707e-06 - val_loss: 1.4411e-05\n", - "Epoch 101/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 3.9976e-06 - val_loss: 9.2965e-06\n", - "Epoch 102/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.7187e-06 - val_loss: 3.3834e-06\n", - "Epoch 103/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.4985e-06 - val_loss: 2.8700e-07\n", - "Epoch 104/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.3560e-06 - val_loss: 2.5170e-07\n", - "Epoch 105/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.0148e-06 - val_loss: 1.0536e-06\n", - "Epoch 106/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 2.4210e-06 - val_loss: 9.4288e-07\n", - "Epoch 107/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 2.0210e-06 - val_loss: 2.0043e-07\n", - "Epoch 108/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.2760e-06 - val_loss: 9.3241e-08\n", - "Epoch 109/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 9.1140e-07 - val_loss: 1.0255e-06\n", - "Epoch 110/150\n", - "9/9 [==============================] - 0s 3ms/sample - loss: 1.1163e-06 - val_loss: 2.0734e-06\n", - "Epoch 111/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 1.5079e-06 - val_loss: 2.1360e-06\n", - "Epoch 112/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.5815e-06 - val_loss: 1.1905e-06\n", - "Epoch 113/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.2618e-06 - val_loss: 2.1615e-07\n", - "Epoch 114/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 9.0721e-07 - val_loss: 4.4045e-08\n", - "Epoch 115/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 8.5203e-07 - val_loss: 5.2731e-07\n", - "Epoch 116/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.0535e-06 - val_loss: 8.8510e-07\n", - "Epoch 117/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.2045e-06 - val_loss: 6.6195e-07\n", - "Epoch 118/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 1.1108e-06 - val_loss: 1.7027e-07\n", - "Epoch 119/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 8.8165e-07 - val_loss: 1.3454e-08\n", - "Epoch 120/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 7.5757e-07 - val_loss: 3.5848e-07\n", - "Epoch 121/150\n", - "9/9 [==============================] - 0s 2ms/sample - loss: 8.2259e-07 - val_loss: 7.9404e-07\n", - "Epoch 122/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 9.3780e-07 - val_loss: 8.4859e-07\n", - "Epoch 123/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 9.3325e-07 - val_loss: 4.9981e-07\n", - "Epoch 124/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 8.0209e-07 - val_loss: 1.1783e-07\n", - "Epoch 125/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 6.8127e-07 - val_loss: 1.2367e-09\n", - "Epoch 126/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 6.7296e-07 - val_loss: 9.0101e-08\n", - "Epoch 127/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 7.3688e-07 - val_loss: 1.3718e-07\n", - "Epoch 128/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 7.6058e-07 - val_loss: 5.4509e-08\n", - "Epoch 129/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 6.9898e-07 - val_loss: 3.0727e-09\n", - "Epoch 130/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 6.1337e-07 - val_loss: 1.5863e-07\n", - "Epoch 131/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 5.8245e-07 - val_loss: 4.7443e-07\n", - "Epoch 132/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 6.0891e-07 - val_loss: 7.1950e-07\n", - "Epoch 133/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 6.3010e-07 - val_loss: 7.2092e-07\n", - "Epoch 134/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 6.0220e-07 - val_loss: 5.1706e-07\n", - "Epoch 135/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 5.4799e-07 - val_loss: 2.7801e-07\n", - "Epoch 136/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 5.1885e-07 - val_loss: 1.2662e-07\n", - "Epoch 137/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 5.2879e-07 - val_loss: 7.3679e-08\n", - "Epoch 138/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 5.4436e-07 - val_loss: 9.2370e-08\n", - "Epoch 139/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 5.3233e-07 - val_loss: 1.9250e-07\n", - "Epoch 140/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.9874e-07 - val_loss: 3.9243e-07\n", - "Epoch 141/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.7515e-07 - val_loss: 6.4432e-07\n", - "Epoch 142/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.7633e-07 - val_loss: 8.3209e-07\n", - "Epoch 143/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.8560e-07 - val_loss: 8.5983e-07\n", - "Epoch 144/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.8017e-07 - val_loss: 7.3240e-07\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Epoch 145/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.5959e-07 - val_loss: 5.4099e-07\n", - "Epoch 146/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.4210e-07 - val_loss: 3.8153e-07\n", - "Epoch 147/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.3915e-07 - val_loss: 3.0024e-07\n", - "Epoch 148/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.4251e-07 - val_loss: 3.0372e-07\n", - "Epoch 149/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.3802e-07 - val_loss: 3.8797e-07\n", - "Epoch 150/150\n", - "9/9 [==============================] - 0s 1ms/sample - loss: 4.2399e-07 - val_loss: 5.3906e-07\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "MSE: 6.359714873271884e-05\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Time: 6.279334420338273\n", - "Model: \"model_3\"\n", - "_________________________________________________________________\n", - "Layer (type) Output Shape Param # \n", - "=================================================================\n", - "input_4 (InputLayer) [(None, 1, 1)] 0 \n", - "_________________________________________________________________\n", - "RNN (SimpleRNN) (None, 200) 40400 \n", - "_________________________________________________________________\n", - "dense (Dense) (None, 1) 201 \n", - "=================================================================\n", - "Total params: 40,601\n", - "Trainable params: 40,601\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n" - ] - }, - { - "ename": "ValueError", - "evalue": "Error when checking input: expected input_4 to have 3 dimensions, but got array with shape (12, 1)", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 155\u001b[0m \u001b[0;31m# validation split. Setting verbose to True prints information about each training iteration.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 156\u001b[0m hist = model.fit(X_train, y_train, batch_size=None, epochs=150, \n\u001b[0;32m--> 157\u001b[0;31m verbose=True,validation_split=0.05)\n\u001b[0m\u001b[1;32m 158\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 159\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/tensorflow_core/python/keras/engine/training.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, max_queue_size, workers, use_multiprocessing, **kwargs)\u001b[0m\n\u001b[1;32m 817\u001b[0m \u001b[0mmax_queue_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmax_queue_size\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 818\u001b[0m \u001b[0mworkers\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mworkers\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 819\u001b[0;31m use_multiprocessing=use_multiprocessing)\n\u001b[0m\u001b[1;32m 820\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 821\u001b[0m def evaluate(self,\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/tensorflow_core/python/keras/engine/training_v2.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, model, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, validation_freq, max_queue_size, workers, use_multiprocessing, **kwargs)\u001b[0m\n\u001b[1;32m 233\u001b[0m \u001b[0mmax_queue_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mmax_queue_size\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 234\u001b[0m \u001b[0mworkers\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mworkers\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 235\u001b[0;31m use_multiprocessing=use_multiprocessing)\n\u001b[0m\u001b[1;32m 236\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 237\u001b[0m \u001b[0mtotal_samples\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_get_total_number_of_samples\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtraining_data_adapter\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/tensorflow_core/python/keras/engine/training_v2.py\u001b[0m in \u001b[0;36m_process_training_inputs\u001b[0;34m(model, x, y, batch_size, epochs, sample_weights, class_weights, steps_per_epoch, validation_split, validation_data, validation_steps, shuffle, distribution_strategy, max_queue_size, workers, use_multiprocessing)\u001b[0m\n\u001b[1;32m 550\u001b[0m \u001b[0mbatch_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mbatch_size\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 551\u001b[0m \u001b[0mcheck_steps\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 552\u001b[0;31m steps=steps_per_epoch)\n\u001b[0m\u001b[1;32m 553\u001b[0m (x, y, sample_weights,\n\u001b[1;32m 554\u001b[0m \u001b[0mval_x\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mval_y\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/tensorflow_core/python/keras/engine/training.py\u001b[0m in \u001b[0;36m_standardize_user_data\u001b[0;34m(self, x, y, sample_weight, class_weight, batch_size, check_steps, steps_name, steps, validation_split, shuffle, extract_tensors_from_dataset)\u001b[0m\n\u001b[1;32m 2381\u001b[0m \u001b[0mis_dataset\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mis_dataset\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2382\u001b[0m \u001b[0mclass_weight\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mclass_weight\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2383\u001b[0;31m batch_size=batch_size)\n\u001b[0m\u001b[1;32m 2384\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2385\u001b[0m def _standardize_tensors(self, x, y, sample_weight, run_eagerly, dict_inputs,\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/tensorflow_core/python/keras/engine/training.py\u001b[0m in \u001b[0;36m_standardize_tensors\u001b[0;34m(self, x, y, sample_weight, run_eagerly, dict_inputs, is_dataset, class_weight, batch_size)\u001b[0m\n\u001b[1;32m 2408\u001b[0m \u001b[0mfeed_input_shapes\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2409\u001b[0m \u001b[0mcheck_batch_axis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;31m# Don't enforce the batch size.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2410\u001b[0;31m exception_prefix='input')\n\u001b[0m\u001b[1;32m 2411\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2412\u001b[0m \u001b[0;31m# Get typespecs for the input data and sanitize it if necessary.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/tensorflow_core/python/keras/engine/training_utils.py\u001b[0m in \u001b[0;36mstandardize_input_data\u001b[0;34m(data, names, shapes, check_batch_axis, exception_prefix)\u001b[0m\n\u001b[1;32m 571\u001b[0m \u001b[0;34m': expected '\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mnames\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m' to have '\u001b[0m \u001b[0;34m+\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 572\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mshape\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;34m' dimensions, but got array '\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 573\u001b[0;31m 'with shape ' + str(data_shape))\n\u001b[0m\u001b[1;32m 574\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mcheck_batch_axis\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 575\u001b[0m \u001b[0mdata_shape\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata_shape\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mValueError\u001b[0m: Error when checking input: expected input_4 to have 3 dimensions, but got array with shape (12, 1)" - ] - } - ], + "outputs": [], "source": [ "def lstm_2layers(length_of_sequences, batch_size = None, stateful = False):\n", " \"\"\"\n", @@ -2862,7 +1476,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -2876,7 +1490,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.5" + "version": "3.8.12" } }, "nbformat": 4, diff --git a/doc/src/week41/week41.do.txt b/doc/src/week41/week41.do.txt index 64edc3703..a013e6005 100644 --- a/doc/src/week41/week41.do.txt +++ b/doc/src/week41/week41.do.txt @@ -1654,6 +1654,19 @@ plot_data(eta,n_neuron,Test_accuracy, 'testing') !ec +!split +===== The Mathematics of Neural Networks ===== + +Text will be added here, see handwritten notes for Friday October 15. They contain a discussion on +o Activation functions and vanishing gradients +o Brief summary of gradient methods +o Approximation theorems, in particular the *universal approximation theorem* for neural networks by Cybenko and Hornik + +I strongly recommend Michael Nielsen's intuitive approach to the neural networks and the universal approximation theorem, see the slides at URL:"http://neuralnetworksanddeeplearning.com/chap4.html". + + + + !split ===== Fine-tuning neural network hyperparameters =====