{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
},
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"base_dir = 'D:\\\\GitHub\\\\Optimization-and-Learning\\\\data\\\\neural_networks'\n",
"\n",
"%run ../initscript.py\n",
"import pandas as pd\n",
"import numpy as np\n",
"import scipy.stats as st\n",
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"from ipywidgets import *\n",
"%matplotlib inline\n",
"import tensorflow as tf\n",
"tf.logging.set_verbosity(tf.logging.ERROR)\n",
"\n",
"# import sys\n",
"# sys.path.append('modules')\n",
"# import NeuralNet as nn\n",
"\n",
"from keras import optimizers\n",
"from keras import backend as K\n",
"from keras import models\n",
"from keras import layers\n",
"from keras import initializers\n",
"from keras.utils import to_categorical\n",
"\n",
"def sinusoidal(x):\n",
" return np.sin(np.pi * x)\n",
"\n",
"def heaviside(x):\n",
" return 0.5 * (np.sign(x) + 1)\n",
"\n",
"toggle()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Neural Networks\n",
"\n",
"The linear model takes general form\n",
"\\begin{align*}\n",
"\\mathbf{f}(\\mathbf{x},\\mathbf{w}) = f \\left( \\sum_{i=0}^{m} w_i \\phi_i(\\mathbf{x})\\right)\n",
"\\end{align*}\n",
"\n",
"where\n",
"\n",
"- $f(\\cdot)$ is a nonlinear activation function (such as $\\sigma$) in the case of classification,\n",
"\n",
"- $f(\\cdot)$ is the\tidentity in the case of regression.\n",
"\n",
"Our goal is to extend this model by making the basis functions $\\phi_i(\\mathbf{x})$ depend on parameters and then to allow these parameters to be adjusted, along with the coefficients $\\{w_j\\}$ during training.\n",
"\n",
"This leads to the basic neural network model, which can be described a series of functional transformations. Consider a two-layer network diagram:\n",
"\n",
"\n",
"\n",
"- We call it two-layer network because it is the number of layers of adaptive weights.\n",
"\n",
"- The network has no closed directed cycles so that outputs are deterministic functions of the inputs.\n",
"\n",
"The corresponding network function is\n",
"\n",
"\\begin{align*}\n",
"y_k(\\mathbf{x},\\mathbf{w}) = f \\overbrace{\\left( \\sum_{j=0}^{\\ell_2} w^{(2)}_{kj} h\\underbrace{\\left( \\sum_{i=0}^{\\ell_1} w^{(1)}_{ji} x_i\\right)}_{a_j}\\right)}^{a_k}\n",
"\\end{align*}\n",
"\n",
"The quantities $a_j$, $a_k$ are *activations*. $h(\\cdot)$ is called *activation* function which is differentiable and nonlinear.\n",
"\n",
"Due to symmetry, multiple distinct choices for the weight vector $\\mathbf{w}$ can give the same mapping function."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Keras\n",
"\n",
"Keras is a deep-learning framework for Python that provides a convenient way to define and train almost any kind of deep-learning model.\n",
"\n",
"Let's look at an example of applying neural network on the MINST dataset to classify handwritten digits.\n",
"\n",
"There is a set of 60,000 training images, plus 10,000 test images, assembled by the National Institute of Standards and Technology (NIST). Each image is a gray scale 28 $\\times$ 28 pixels handwritten digits. we’re trying to classify images into their 10 categories (0 through 9)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"training images:(60000, 28, 28), test images:(10000, 28, 28)\n"
]
}
],
"source": [
"from keras.datasets import mnist\n",
"(train_images, train_labels), (test_images, test_labels) = mnist.load_data()\n",
"print('training images:{}, test images:{}'.format(train_images.shape, test_images.shape))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def showimg(data, idx):\n",
" span = 5\n",
" if data=='train':\n",
" if idx+span\n",
"\n",
"- Scalars: 0 dimensional tensors\n",
"\n",
"- Vectors: 1 dimensional tensors\n",
"\n",
"- Matrix: 2 dimensional tensors\n",
"\n",
"Let's make data tensors more concrete with real-world examples:\n",
"\n",
"- Vector data — 2D tensors of shape (samples, features)\n",
"\n",
"- Timeseries data or sequence data — 3D tensors of shape (samples, timesteps, features)\n",
"\n",
"- Images — 4D tensors of shape (samples, height, width, channels) or (samples, channels, height, width)\n",
"\n",
"- Video — 5D tensors of shape (samples, frames, height, width, channels) or (samples, frames, channels, height, width)\n",
"\n",
"The core building block of neural networks is the *layer*, a data-processing module working as a filter for data. Specifically, layers extract representations out of the data fed into them in a more useful form which is often called features.\n",
"\n",
"Most of deep learning consists of chaining together simple layers that will implement a form of progressive data distillation. A deep-learning model is like a sieve for data processing, made of a succession of increasingly refined data filters the layers.\n",
"\n",
"```python\n",
"network = models.Sequential()\n",
"network.add(layers.Dense(512, activation='relu', input_shape=(28 * 28,)))\n",
"network.add(layers.Dense(10, activation='softmax'))\n",
"```\n",
"\n",
"Here, our network consists of a sequence of two densely connected (fully connected) layers. The second (and last) layer is a\n",
"10-way softmax layer, which means it will return an array of 10 probability scores (summing to 1). Each score will be the probability that the current digit image belongs to one of our 10 digit classes."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Compilation\n",
"\n",
"Before training the network, we need to perform a compilation step by setting up:\n",
"\n",
"- An optimizer: the mechanism to improve its performance on the training data\n",
"\n",
"- A loss function: the measurement of its performance on the training data\n",
"\n",
"- Metrics to monitor during training and testing\n",
"\n",
"```python\n",
"network.compile(optimizer='rmsprop',\n",
" loss='categorical_crossentropy',\n",
" metrics=['accuracy'])\n",
"```\n",
"\n",
"### Data Preparation\n",
"\n",
"Before training, we preprocess our data by reshaping and scaling it. We also need to categorically encode the labels so that "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"train_images_reshape = train_images.reshape((60000, 28 * 28))\n",
"train_images_reshape = train_images_reshape.astype('float32') / 255\n",
"test_images_reshape = test_images.reshape((10000, 28 * 28))\n",
"test_images_reshape = test_images_reshape.astype('float32') / 255\n",
"\n",
"train_labels_cat = to_categorical(train_labels)\n",
"test_labels_cat = to_categorical(test_labels)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Training the Network\n",
"\n",
"We train the network as follows\n",
"```python\n",
"network.fit(train_images_reshape, train_labels_cat, epochs=5, batch_size=128, verbose=1);\n",
"```\n",
"\n",
"The network will start to iterate on the training data in mini-batch of 128 samples, 5 times over (each iteration over all the training data is called an *epoch*). At each iteration, the network will compute the gradient of the weights with regard to the loss on the batch, and update the weights accordingly. After these 5 epochs, the network will have performed 2345 = 5 $\\times$ ceil(60000 $\\div$ 128) gradient updates.\n",
"\n",
"Batch size impacts learning significantly. If your batch size is big enough, this will provide a stable enough estimate of what the gradient of the full dataset would be. By taking samples from your dataset, you estimate the gradient while reducing computational cost significantly. \n",
"\n",
"The lower you go, the less accurate your estimate will be, however in some cases these noisy gradients can actually help escape local minimum. When it is too low, your network weights can just jump around if your data is noisy and it might be unable to learn or it converges very slowly, thus negatively impacting total computation time."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def train_MNIST():\n",
" # We can run this function to see the trainning output.\n",
" model = models.Sequential()\n",
" model.add(layers.Dense(512, activation='relu', input_shape=(28 * 28,)))\n",
" model.add(layers.Dense(10, activation='softmax'))\n",
" model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])\n",
" model.fit(train_images_reshape, train_labels_cat, epochs=5, batch_size=128, verbose=1);\n",
" model.save(base_dir+\"\\\\minst.h5\")\n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"10000/10000 [==============================] - 0s 48us/step\n",
"Test accuracy is 97.99%\n"
]
}
],
"source": [
"model = models.load_model(base_dir+\"\\\\minst.h5\")\n",
"test_loss, test_acc = model.evaluate(test_images_reshape, test_labels_cat)\n",
"print('Test accuracy is {}%'.format(round(test_acc*100,2)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The test set accuracy turns out to be 97.99%"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Prediction\n",
"\n",
"We perform prediction on the test dataset."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def misclassifiedimg(index):\n",
" predicted = model.predict_classes(test_images_reshape)\n",
" result = abs(predicted - test_labels)\n",
" misclassified = np.where(result>0)[0]\n",
" print('Total number of misclassified images is {}'.format(misclassified.shape[0]),\n",
" 'Examples of misclassified images {}-{}'.format(index, index+4))\n",
"\n",
" plt.figure(figsize=(13,3))\n",
" for i in range(5):\n",
" plt.subplot(1, 5, i + 1)\n",
" idx = misclassified[i+index]\n",
" digit = test_images[idx]\n",
" plt.imshow(digit, cmap=plt.cm.binary)\n",
" plt.title('Predicted:{}, Label:{}'.format(predicted[idx], test_labels[idx]), fontsize = 12)\n",
" plt.show()\n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "dc4a05f64e094af4af7141dfef497be4",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(IntText(value=7, description='Index:'), Output()), _dom_classes=('widget-interact',))"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"interact(misclassifiedimg, index = widgets.IntText(value=7, description='Index:', disabled=False));"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"K.clear_session()\n",
"del model"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Feedfoward Neural Networks"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Feedfoward Neural Networks (Deep feedforward networks, multilayer perceptrons (MLPs)) are the quintessential deep learning models. We demonstrate the capability of a two-layer network to model a broad range of functions, such as $x^2$, $\\sin(x)$, $\\text{abs}(x)$ and $\\text{heaviside}(x)$."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def create_data(func, n=50):\n",
" x = np.linspace(-1, 1, n)[:, None]\n",
" return x, func(x)\n",
"func_list = [np.square, sinusoidal, np.abs, heaviside]\n",
"\n",
"def train_feedfowardNN():\n",
" for i, func in enumerate(func_list):\n",
" x_train, y_train = create_data(func)\n",
" model = models.Sequential()\n",
" model.add(layers.Dense(3, activation='tanh', input_shape=(1,), name='mid_layer'))\n",
" model.add(layers.Dense(1))\n",
" model.compile(optimizer='Adam', loss='mean_squared_error', metrics=['mse'])\n",
" model.fit(x_train, y_train, epochs=10000, batch_size=1, verbose=0);\n",
" y = model.predict(x_test)\n",
" intermediate_output = models.Model(inputs=model.input,\n",
" outputs=model.get_layer('mid_layer').output).predict(x_test)\n",
" df = pd.DataFrame(data=np.concatenate((y, intermediate_output), axis=1),\n",
" columns=['y', 'unit1', 'unit2', 'unit3'])\n",
" df.to_csv(base_dir+'\\\\results_{}.csv'.format(i), header=True, index=False)\n",
" K.clear_session()\n",
" del model\n",
"toggle()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The prediction results and outputs for 3 hidden units are shown in the graph."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"x_test = np.linspace(-1, 1, 1000)\n",
"plt.figure(figsize=(12, 9))\n",
"for i, func in enumerate(func_list):\n",
" plt.subplot(2, 2, i+1)\n",
" x_train, y_train = create_data(func)\n",
" df = pd.read_csv(base_dir+'\\\\results_{}.csv'.format(i))\n",
" \n",
" plt.title(\"func = {}\".format(func.__name__))\n",
" plt.scatter(x_train, y_train, s=5, label='func')\n",
" plt.plot(x_test, df.y, color=\"r\", label='fitting')\n",
" for j in range(3):\n",
" plt.plot(x_test, df['unit'+str(j+1)], linestyle='dashed', label=r\"hidden unit-{}\".format(j))\n",
"plt.legend(bbox_to_anchor=(1.02, 0.55), loc=2, borderaxespad=0.5)\n",
"plt.show()\n",
"toggle()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Network Training"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We minimize the error function (generally nonconvex)\n",
"\\begin{align*}\n",
"E(\\mathbf{w}) = \\frac{1}{2} \\sum_{i=1}^{n} \\lVert \\mathbf{f}(\\mathbf{x}_i, \\mathbf{w}) - \\mathbf{y}_i \\rVert^2 = \\sum_{i=1}^{n} E_i(\\mathbf{w})\n",
"\\end{align*}\n",
"\n",
"Error Backpropagation is applied to derive $\\frac{\\partial E_i}{\\partial w_{ji}}$:\n",
"\n",
"- Apply an input vector $\\mathbf{x}_n$ to the network and forward propagate through the network to find the activations of all the hidden and output units where\n",
"\n",
"\\begin{align*}\n",
"z_j = h(a_j), \\text{ and } a_j = \\sum_i w_{ji} z_i\n",
"\\end{align*}\n",
"\n",
"In the recursion, $z_i = x_i$ for the input and $z_j = y_k$ for the output.\n",
"\n",
"- Evaluate $\\delta_k = y_k - t_k$ for all the output units where\n",
"\n",
"\\begin{align*}\n",
"\\delta_j \\equiv \\frac{\\partial E_i}{\\partial a_j}\n",
"\\end{align*}\n",
"\n",
"- Obtain $\\delta_j$ for each hidden unit in the network by backpropagation:\n",
"\\begin{align*}\n",
"\\delta_j \\equiv \\frac{\\partial E_i}{\\partial a_j} = \\sum_{k} \\frac{\\partial E_i}{\\partial a_k} \\frac{\\partial a_k}{\\partial a_j} = h^\\prime(a_j) \\sum_{k} w_{kj} \\delta_k\n",
"\\end{align*}\n",
"\n",
"Note that the recursion starts from the output and goes through the network backward.\n",
"\n",
"- Evaluate the required derivatives\n",
"\n",
"\\begin{align*}\n",
"\\frac{\\partial E_i}{\\partial w_{ji}} = \\frac{\\partial E_i}{\\partial a_{j}} \\frac{\\partial a_j}{\\partial w_{ji}} = \\delta_j z_i\n",
"\\end{align*}\n",
"\n",
"The technique of backpropagation can also be applied to the calculation of Jacobian and Hessian matrix where\n",
"\n",
"\\begin{align*}\n",
"J_{ki} \\equiv \\frac{\\partial y_k}{\\partial x_i}, \\text{ and } \\mathbf{H} \\sim \\frac{\\partial^2 E}{\\partial w_{ji} \\partial w_{lk}}\n",
"\\end{align*}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We consider a simple task: learning the XOR function to demonstrate the training process.\n",
"\n",
"The XOR function (\"exclusive or\") is an operation on two binary values such that\n",
"\n",
"\\begin{align*}\n",
"f(x_1, x_2) = \\left\\{ \\begin{aligned}\n",
"&0 && \\text{ if } x_1 = x_2 \\\\\n",
"&1 && \\text{ otherwise.}\n",
"\\end{aligned} \\right.\n",
"\\end{align*}"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.linear_model import LinearRegression\n",
"\n",
"x_train = np.array([[0, 0],[0, 1],[1, 0],[1, 1]])\n",
"t_train = np.array([0, 1, 1, 0])\n",
"x0, x1 = np.meshgrid(np.linspace(0, 1, 100), np.linspace(0, 1, 100))\n",
"x_test = np.array([x0, x1]).reshape(2, -1).T\n",
"t = LinearRegression().fit(x_train, t_train).predict(x_test)\n",
"\n",
"plt.figure(figsize=(5, 4))\n",
"plt.scatter(x_train[:, 0], x_train[:, 1], c=t_train)\n",
"levels = np.linspace(0, 1, 5)\n",
"plt.contourf(x0, x1, np.asarray(t).reshape(100, 100), levels, alpha=0.2)\n",
"plt.colorbar()\n",
"plt.show()\n",
"toggle()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The dots indicate the target values of inputs. It is clear that linear function cannot describe the feature, because any hyperplane will have both target values 0 and 1 on one-side. This is demonstrated by a linear regression model."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"We provide details on learning the XOR function by using a simple neural network.\n",
"\n",
"We have\n",
"\n",
"- input\n",
"\n",
"\\begin{align}\n",
"\\mathbf{x} = \\left( \\begin{array}{l}\n",
"0 \\\\\n",
"0 \\\\\n",
"1 \\\\\n",
"\\end{array} \\right) \\text{ or }\n",
"\\left( \\begin{array}{l}\n",
"0 \\\\\n",
"1 \\\\\n",
"1 \\\\\n",
"\\end{array} \\right) \\text{ or }\n",
"\\left( \\begin{array}{l}\n",
"1 \\\\\n",
"0 \\\\\n",
"1 \\\\\n",
"\\end{array} \\right) \\text{ or }\n",
"\\left( \\begin{array}{l}\n",
"1 \\\\\n",
"1 \\\\\n",
"1 \\\\\n",
"\\end{array} \\right) \\nonumber\n",
"\\end{align}\n",
"\n",
"- hidden layer\n",
"\n",
"\\begin{align}\n",
"a^1_{j} = {\\mathbf{w}^1_j}^T \\mathbf{x} \\text{, } \\mathbf{a}^1 = (a^1_{j} :\\forall j)^T \\text{ and } z_{j} = h(a^1_{j}) \\text{, } \\mathbf{z} = (z_{j}: \\forall j)^T \\nonumber\n",
"\\end{align}\n",
"\n",
"- output\n",
"\n",
"\\begin{align}\n",
"a^2_{k} = {\\mathbf{w}^2_{k}}^T \\mathbf{z} \\text{ and } y = y_k = h(a^2_{k}) \\nonumber\n",
"\\end{align}\n",
"\n",
"Note that, in this case, $k = \\{1\\}$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Feed-Forward \n",
"\n",
"To apply stochastic gradient decent, we consider one instance and its error function\n",
"\n",
"\\begin{align}\n",
"E_i = \\frac{1}{2} \\left( y - t \\right)^2 \\nonumber\n",
"\\end{align}\n",
"\n",
"\\begin{align}\n",
"\\mathbf{z} = h\\left({\\mathbf{W}^1}^T \\mathbf{x} \\right) \\text{ and } y = h\\left({\\mathbf{w}^2}^T \\mathbf{z}\\right) \\nonumber\n",
"\\end{align}\n",
"\n",
"where\n",
"\n",
"\\begin{align}\n",
"\\mathbf{W}^{1} = (\\mathbf{w}^1_{j} : \\forall j) \\nonumber\n",
"\\end{align}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Derivatives \n",
"\n",
"Let $h = \\tanh$.\n",
"\n",
"\\begin{align}\n",
"\\sigma^\\prime(x) &= \\sigma(x) (1- \\sigma(x)) \\nonumber\\\\\n",
"\\tanh^\\prime(x) &= 1 -\\tanh^2(x) \\nonumber\n",
"\\end{align}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" Error Backpropagation \n",
"\n",
"\\begin{align}\n",
"\\delta^2_{k} &\\equiv \\frac{\\partial E_i}{\\partial a^2_k} = \\frac{\\partial E_i}{\\partial y} \\frac{\\partial y}{\\partial a^2_k} = (y-t) h^\\prime(a^2_k) = (y-t) (1- h^2(a^2_k)) = (y-t) (1- y^2) \\nonumber \\\\\n",
"\\delta^1_{j} &\\equiv \\frac{\\partial E_i}{\\partial a^1_{j}} = \\sum_k \\frac{\\partial E_i}{\\partial a^2_{k}} \\frac{\\partial a^2_{k}}{\\partial z_j} \\frac{\\partial z_j}{\\partial a^1_{j}} = h^\\prime(a^1_{j}) \\sum_{k} \\delta^2_{k} w^2_{k,j} = (1-z_j^2) \\sum_{k} \\delta^2_{k} w^2_{k,j} \\nonumber\n",
"\\end{align}\n",
"\n",
"\\begin{align}\n",
"\\frac{\\partial E_i}{\\partial \\mathbf{w}^2_k} & = \\frac{\\partial E_i}{\\partial a^2_k} \\frac{\\partial a^2_k}{\\partial \\mathbf{w}^2_k} = \\delta^2_{k} \\mathbf{z} \\nonumber \\\\\n",
"\\frac{\\partial E_i}{\\partial \\mathbf{w}^1_j} & = \\frac{\\partial E_i}{\\partial a^1_j} \\frac{\\partial a^1_j}{\\partial \\mathbf{w}^1_j} = \\delta^1_{j} \\mathbf{x} \\nonumber\n",
"\\end{align}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The code realize the neural network and backpropagation algorithm. The plot shows that the XOR function is correctly learned by our neural network."
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def sigmoid(x):\n",
" return 1.0/(1.0 + np.exp(-x))\n",
"\n",
"def sigmoid_prime(x):\n",
" return x*(1.0-x)\n",
"\n",
"def tanh(x):\n",
" return np.tanh(x)\n",
"\n",
"def tanh_prime(x):\n",
" return 1.0 - x**2\n",
"\n",
"class NeuralNetwork:\n",
" def __init__(self, layers, activation='tanh'):\n",
" if activation == 'sigmoid':\n",
" self.activation = sigmoid\n",
" self.activation_prime = sigmoid_prime\n",
" elif activation == 'tanh':\n",
" self.activation = tanh\n",
" self.activation_prime = tanh_prime\n",
" \n",
" # Set weights\n",
" self.weights = []\n",
" # layers = [2,2,1]\n",
" # range of weight values (-1,1)\n",
" # input and hidden layers - random((2+1, 2+1)) : 3 x 3\n",
" for i in range(1, len(layers) - 1):\n",
" r = 2*np.random.random((layers[i-1] + 1, layers[i] + 1)) -1\n",
" self.weights.append(r)\n",
" # output layer - random((2+1, 1)) : 3 x 1\n",
" r = 2*np.random.random( (layers[i] + 1, layers[i+1])) - 1\n",
" self.weights.append(r)\n",
"\n",
" def fit(self, X, t, learning_rate=0.2, epochs=100000):\n",
" ones = np.atleast_2d(np.ones(X.shape[0]))\n",
" X = np.concatenate((ones.T, X), axis=1)\n",
" # Add the bias unit to the input layer X, so that\n",
" # X = [[1. 0. 0.]\n",
" # [1. 0. 1.]\n",
" # [1. 1. 0.]\n",
" # [1. 1. 1.]]\n",
" \n",
" for k in range(epochs):\n",
" i = np.random.randint(X.shape[0])\n",
" z = [X[i]]\n",
" \n",
" for l in range(len(self.weights)):\n",
" z.append(self.activation(np.array(self.weights[l]).T @ np.array(z[l])))\n",
"\n",
" # backpropagation\n",
" # output layer y = z[-1]\n",
" error = z[-1] - t[i]\n",
" deltas = [error * self.activation_prime(z[-1])]\n",
" for l in range(len(self.weights) - 1, 0, -1): \n",
" deltas.append(np.dot(self.weights[l], deltas[-1]) * self.activation_prime(z[l]))\n",
" deltas.reverse()\n",
"\n",
" for i in range(len(self.weights)):\n",
" self.weights[i] -= learning_rate * np.array(z[i])[:,None].dot(np.array(deltas[i])[:,None].T)\n",
"\n",
" if k % 10000 == 0: print('epochs:{}, error={}'.format(k, error))\n",
"\n",
" def predict(self, X): \n",
" ones = np.atleast_2d(np.ones(X.shape[0]))\n",
" y = np.concatenate((ones.T, X), axis=1)\n",
" for l in range(0, len(self.weights)):\n",
" y = self.activation(np.dot(y, self.weights[l]))\n",
" return y\n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"epochs:0, error=[-0.07482236]\n",
"epochs:10000, error=[0.00031893]\n",
"epochs:20000, error=[0.00029467]\n",
"epochs:30000, error=[-0.00716532]\n",
"epochs:40000, error=[-0.00477388]\n",
"epochs:50000, error=[-0.00421749]\n",
"epochs:60000, error=[-1.54676533e-07]\n",
"epochs:70000, error=[2.76519559e-05]\n",
"epochs:80000, error=[4.02423604e-05]\n",
"epochs:90000, error=[-0.00302211]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"nn = NeuralNetwork([2,2,1], activation='tanh')\n",
"nn.fit(x_train, t_train)\n",
"np.set_printoptions(suppress=True)\n",
"# print(np.append(x_train, nn.predict(x_train), axis=1))\n",
"plt.figure(figsize=(5, 4))\n",
"plt.scatter(x_train[:, 0], x_train[:, 1], c=t_train)\n",
"x0, x1 = np.meshgrid(np.linspace(0, 1, 100), np.linspace(0, 1, 100))\n",
"x_test = np.array([x0, x1]).reshape(2, -1).T\n",
"levels = np.linspace(0, 1, 5)\n",
"plt.contourf(x0, x1, np.asarray(nn.predict(x_test)).reshape(100, 100), levels, alpha=0.2)\n",
"plt.colorbar()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Regression"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We are attempting to predict the median price of homes in a given Boston suburb in the mid-1970s, given a few data points about the suburb at the time, such as the crime rate, the local property tax rate, etc.\n",
"\n",
"The dataset has very few data points, only 506 in total, split between 404 training samples and 102 test samples, and each \"feature\" in the input data (e.g. the crime rate is a feature) has a different scale. For instance some values are proportions, which take a values between 0 and 1, others take values between 1 and 12, others between 0 and 100."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"from keras.datasets import boston_housing\n",
"(train_data, train_targets), (test_data, test_targets) = boston_housing.load_data()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((404, 13),\n",
" (102, 13),\n",
" array([15.2, 42.3, 50. , 21.1, 17.7, 18.5, 11.3, 15.6, 15.6, 14.4]))"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_data.shape, test_data.shape, train_targets[:10]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The data comprises 13 features as follows:\n",
"\n",
"- Per capita crime rate.\n",
"\n",
"- Proportion of residential land zoned for lots over 25,000 square feet.\n",
"\n",
"- Proportion of non-retail business acres per town.\n",
"\n",
"- Charles River dummy variable (= 1 if tract bounds river; 0 otherwise).\n",
"\n",
"- Nitric oxides concentration (parts per 10 million).\n",
"\n",
"- Average number of rooms per dwelling.\n",
"\n",
"- Proportion of owner-occupied units built prior to 1940.\n",
"\n",
"- Weighted distances to five Boston employment centres.\n",
"\n",
"- Index of accessibility to radial highways.\n",
"\n",
"- Full-value property-tax rate per $10,000.\n",
"\n",
"- Pupil-teacher ratio by town.\n",
"\n",
"- $1000 \\times (B_k - 0.63)^2$ where $B_k$ is the proportion of Black people by town.\n",
"\n",
"- \\% lower status of the population.\n",
"\n",
"The targets are the median values of owner-occupied homes, in thousands of dollars. The prices are typically between $10,000 and $50,000."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Preparing the data\n",
"\n",
"It would be problematic to feed into a neural network values that all take wildly different ranges. The network might be able to automatically adapt to such heterogeneous data, but it would definitely make learning more difficult. A widespread best practice to deal with such data is to do feature-wise normalization: for each feature in the input data (a column in the input data matrix), we will subtract the mean of the feature and divide by the standard deviation, so that the feature will be centered around 0 and will have a unit standard deviation. "
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"mean = train_data.mean(axis=0)\n",
"train_data -= mean\n",
"std = train_data.std(axis=0)\n",
"train_data /= std\n",
"\n",
"test_data -= mean\n",
"test_data /= std"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that the quantities that **we use for normalizing the test data have been computed using the training data**. We should never use in our workflow any quantity computed on the test data, even for something as simple as data normalization."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Building the network\n",
"\n",
"When little training data is available, it’s preferable to use a small network with few hidden layers (typically only one or two), in order to avoid severe overfitting."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"def build_model():\n",
" model = models.Sequential()\n",
" model.add(layers.Dense(64, activation='relu',\n",
" input_shape=(train_data.shape[1],)))\n",
" model.add(layers.Dense(64, activation='relu'))\n",
" model.add(layers.Dense(1))\n",
" model.compile(optimizer='rmsprop', loss='mse', metrics=['mae'])\n",
" return model"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The network ends with a single unit, and no activation (i.e. it will be linear layer). This is a typical setup for scalar regression (i.e. regression where we are trying to predict a single continuous value).\n",
"\n",
"We compile the network with the mse loss function -- Mean Squared Error and monitor a new metric during training: mae -- Mean Absolute Error. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### K-fold Validation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To evaluate our network while we keep adjusting its parameters (such as the number of epochs used for training), we could simply split the data into a training set and a validation set. However, because we have so few data points, the validation set would end up being very small (e.g. about 100 examples). A consequence is that our validation scores may change a lot depending on which data points we choose to use for validation and which we choose for training, i.e. the validation scores may have a high variance with regard to the validation split. This would prevent us from reliably evaluating our model.\n",
"\n",
"The best practice in such situations is to use K-fold cross-validation. It consists of splitting the available data into K partitions (typically K=4 or 5), then instantiating K identical models, and training each one on K-1 partitions while evaluating on the remaining partition. The validation score for the model used would then be the average of the K validation scores obtained.\n",
"\n",
"\n",
"\n",
"Let's train the network for 300 epochs. To keep a record of how well the model did at each epoch, we save the per-epoch validation score log."
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def k_fold_validate():\n",
" k = 4\n",
" num_val_samples = len(train_data) // k\n",
" num_epochs = 300\n",
" all_scores = []\n",
" all_mae_histories = []\n",
" for i in range(k):\n",
" print('processing fold #', i)\n",
" # Prepare the validation data: data from partition # k\n",
" val_data = train_data[i * num_val_samples: (i + 1) * num_val_samples]\n",
" val_targets = train_targets[i * num_val_samples: (i + 1) * num_val_samples]\n",
"\n",
" # Prepare the training data: data from all other partitions\n",
" partial_train_data = np.concatenate(\n",
" [train_data[:i * num_val_samples],\n",
" train_data[(i + 1) * num_val_samples:]],\n",
" axis=0)\n",
" partial_train_targets = np.concatenate(\n",
" [train_targets[:i * num_val_samples],\n",
" train_targets[(i + 1) * num_val_samples:]],\n",
" axis=0)\n",
"\n",
" model = build_model()\n",
" # Train the model (in silent mode, verbose=0)\n",
" history = model.fit(partial_train_data, partial_train_targets,\n",
" validation_data=(val_data, val_targets),\n",
" epochs=num_epochs, batch_size=1, verbose=0)\n",
" # Evaluate the model on the validation data\n",
" val_mse, val_mae = model.evaluate(val_data, val_targets, verbose=0)\n",
" all_scores.append(val_mae)\n",
"\n",
" mae_history = history.history['val_mean_absolute_error']\n",
" all_mae_histories.append(mae_history)\n",
"\n",
" df = pd.DataFrame(data=np.array(all_mae_histories).T, columns=['mae0', 'mae1', 'mae2', 'mae3'])\n",
" df.to_csv(base_dir+'\\\\house.csv', header=True, index=False)\n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0 2.410330\n",
" 1 3.169268\n",
" 2 2.872851\n",
" 3 2.974952\n",
" Name: score, dtype: float64, 2.856850517268228)"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(base_dir+'\\\\house_scores.csv')\n",
"df.score, np.mean(df.score)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As you can notice, the different runs show rather different validation scores. Their average is a much more reliable metric than any single of these scores."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can compute the average of the per-epoch MAE scores for all folds. We also plot an exponential moving average of the average MAE curve to better demonstrate the overfitting."
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(base_dir+'\\\\house.csv')\n",
"average_mae_history = np.mean(df, axis=1)\n",
"# exponential smoothing a curve\n",
"def smooth_curve(points, factor=0.9):\n",
" smoothed_points = []\n",
" for point in points:\n",
" if smoothed_points:\n",
" previous = smoothed_points[-1]\n",
" smoothed_points.append(previous * factor + point * (1 - factor))\n",
" else:\n",
" smoothed_points.append(point)\n",
" return smoothed_points\n",
"smooth_mae_history = smooth_curve(average_mae_history)\n",
"\n",
"fig = plt.figure(figsize=(10,5))\n",
"plt.plot(range(1, len(average_mae_history) + 1), average_mae_history, label='MAE')\n",
"plt.plot(range(1, len(smooth_mae_history) + 1), smooth_mae_history, label='Smoothed MAE')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Validation MAE')\n",
"plt.ylim(2.2, 3.2)\n",
"plt.title('Average MAE')\n",
"plt.legend()\n",
"plt.show()\n",
"toggle()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It seems that validation MAE stops improving significantly after 50-60 epochs. Past that point, we start overfitting."
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"102/102 [==============================] - 0s 3ms/step\n"
]
},
{
"data": {
"text/plain": [
"2.7497070256401512"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = build_model()\n",
"# Train it on the entirety of the data.\n",
"model.fit(train_data, train_targets, epochs=50, batch_size=16, verbose=0)\n",
"test_mse_score, test_mae_score = model.evaluate(test_data, test_targets)\n",
"K.clear_session()\n",
"del model\n",
"test_mae_score"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Our predictions on the testing data are still off by more than $2,700. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Classification"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We consider movie-review binary classification problem with positive or negative reviews based on IMDB dataset and a multi-class classification problem on Reuters dataset."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### IMDB dataset\n",
"\n",
"IMDB dataset is a set of 50,000 highly-polarized reviews from the Internet Movie Database. They are split into 25,000 reviews for training and 25,000 reviews for testing, each set consisting in 50% negative and 50% positive reviews.\n",
"\n",
"The argument `num_words=10000` restricts the data to the 10,000 most frequently occurring words found in the data."
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Revise np.load because of keras error msg \"Object arrays cannot be loaded when allow_pickle=False\"\n",
"np_load_old = np.load\n",
"# modify the default parameters of np.load\n",
"np.load = lambda *a,**k: np_load_old(*a, allow_pickle=True, **k)\n",
"\n",
"# call load_data with allow_pickle implicitly set to true\n",
"from keras.datasets import imdb\n",
"(train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)\n",
"\n",
"# restore np.load for future normal usage\n",
"np.load = np_load_old\n",
"toggle()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Training data is stored as numberic array. For example,"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[1, 14, 22, 16, 43, 530, 973, 1622, 1385, 65]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"train_data[0][:10]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Therefore, we need a dictionary mapping words to an interger index:\n",
"```python\n",
"word_index = imdb.get_word_index()\n",
"```\n",
"Then we reverse it to have a dictionary mapping integer indices to words\n",
"```python\n",
"reverse_word_index = dict([(value, key) for (key, value) in word_index.items()]) \n",
"```\n",
"At last, we can decode the review (note that our indices were offset by 3 because 0, 1 and 2 are reserved indices for \"padding\", \"start of sequence\", and \"unknown\").\n",
"\n",
"For example, we can deconde the first 10 words as follows."
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Deconde review train_data[0][:10]]:\n",
" ? this film was just brilliant casting location scenery story\n"
]
},
{
"data": {
"text/plain": [
"'Example of dictionary:\\n'"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"{11: 'this',\n",
" 12: 'that',\n",
" 13: 'was',\n",
" 14: 'as',\n",
" 15: 'for',\n",
" 16: 'with',\n",
" 17: 'movie',\n",
" 18: 'but',\n",
" 19: 'film',\n",
" 20: 'on'}"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"word_index = imdb.get_word_index()\n",
"reverse_word_index = dict([(value, key) for (key, value) in word_index.items()])\n",
"print(\"Deconde review train_data[0][:10]]:\\n\",\n",
" ' '.join([reverse_word_index.get(i - 3, '?') for i in train_data[0][:10]]))\n",
"\n",
"display('Example of dictionary:\\n',dict(sorted(reverse_word_index.items())[10:20]))"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "1d652b788c33478d93221ef114501dbd",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"interactive(children=(IntSlider(value=10, description='Index of Review:', max=30, style=SliderStyle(descriptio…"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def show_review(index):\n",
" decoded_review = ' '.join([reverse_word_index.get(i - 3, '?') for i in train_data[index]])\n",
" print('Review:\\n', decoded_review)\n",
" print('Number of words:', len(decoded_review.split()))\n",
" print('Indices for all ?s:', [train_data[index][i] for i, w in enumerate(decoded_review.split()) if w == '?']) \n",
"\n",
"style = {'description_width': 'initial'}\n",
"interact(show_review, index=widgets.IntSlider(min=0,max=30,step=1,value=10,description='Index of Review:',style=style));"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Preparing the data\n",
"We cannot feed lists of integers into a neural network. We have to turn our lists into tensors. There are two ways we could do that:\n",
"\n",
"- We could pad our lists so that they all have the same length, and turn them into an integer tensor of shape (samples, word_indices), then use as first layer in our network a layer capable of handling such integer tensors (the Embedding layer, which we will cover later).\n",
"\n",
"\n",
"\n",
"- We could one-hot-encode our lists to turn them into vectors of 0s and 1s. Concretely, this would mean for instance turning the sequence [3, 5] into a 10,000-dimensional vector that would be all-zeros except for indices 3 and 5, which would be ones. Then we could use as first layer in our network a Dense layer, capable of handling floating point vector data.\n",
"\n",
"We will go with the latter solution. Let's vectorize our data manually for maximum clarity. An example for vectorize array\n",
"\n",
"\\begin{array}{rll}\n",
"[[1 & 2 & 5], \\\\\n",
"[3 & 5]]\n",
"\\end{array}"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[0., 1., 1., 0., 0., 1., 0., 0., 0., 0.],\n",
" [0., 0., 0., 1., 0., 1., 0., 0., 0., 0.]])"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def vectorize_sequences(sequences, dimension=10000):\n",
" # Create an all-zero matrix of shape (len(sequences), dimension)\n",
" results = np.zeros((len(sequences), dimension))\n",
" for i, sequence in enumerate(sequences):\n",
" results[i, sequence] = 1. # set specific indices of results[i] to 1s\n",
" return results\n",
"\n",
"vectorize_sequences([[1,2,5],[3,5]], dimension=10)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [],
"source": [
"x_train = vectorize_sequences(train_data)\n",
"x_test = vectorize_sequences(test_data)\n",
"y_train = np.asarray(train_labels).astype('float32')\n",
"y_test = np.asarray(test_labels).astype('float32')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So far, Our input data is simply vectors with values 0 or 1, and our labels are scalars (1s and 0s). The easiest setup you will ever encounter. Fully connected (Dense) layers with `relu` activation typically performs well on such a dataset."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Building the network"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Our network architecture includes:\n",
"\n",
"- Two intermediate layers with 16 hidden units each, and \n",
"\n",
"\n",
"\n",
"- a third layer which will output the scalar prediction regarding the sentiment of the current review. \n",
"\n",
"The intermediate layers will use `relu` as their \"activation function\", and the final layer will use a `sigmoid` activation so as to output a probability (a score between 0 and 1, indicating how likely the sample is to have the target \"1\", i.e. how likely the review is to be positive).\n",
"\n",
"\n",
"\n",
"**Hidden unit** is a single dimension in the representation space of the layer. Each Dense layer with a relu activation implements the following chain of tensor operations:\n",
"\n",
"\\begin{align*}\n",
"\\text{output = relu (dot($W$, input) + $b$)}\n",
"\\end{align*}\n",
"\n",
"Having 16 hidden units means that the weight matrix W will have shape (input_dimension, 16), i.e. the dot product with W will project the input data onto a 16-dimensional representation space. \n",
"\n",
"Intuitively, the dimensionality of your representation space is **how much freedom you are allowing the network to have when learning internal representations**. \n",
"\n",
"Having more hidden units (a higher-dimensional representation space) allows your network to learn more complex representations, but it\n",
"\n",
"- makes your network more computationally expensive and \n",
"\n",
"- may lead to overfitting"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"The rmsprop optimizer is generally a good enough choice of optimizer whatever your problem.\n",
"\n",
"Since we are facing a binary classification problem, we end our network with a single-unit layer with a sigmoid activation. It is better to use the binary_crossentropy loss, although you have other viable choices, for instance, you could use loss function: mean_squared_error. But crossentropy is usually the best choice when you are dealing with models that output probabilities.\n",
"\n",
"If we want to configure the parameters of optimizer, or pass a custom loss function or metric function. This can be done by passing an optimizer class instance as the optimizer argument or passing function objects as the loss or metrics arguments:\n",
"\n",
"```python\n",
"from keras import optimizers\n",
"from keras import losses\n",
"from keras import metrics\n",
"\n",
"model.compile(optimizer=optimizers.RMSprop(lr=0.001),\n",
" loss=losses.binary_crossentropy,\n",
" metrics=[metrics.binary_accuracy])\n",
"```\n",
"\n",
"\n",
"\n",
"In order to monitor during training the accuracy of the model on data that it has never seen before, we will create a validation set by setting apart 10,000 samples from the original training data."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def train_imdb_1():\n",
" model = models.Sequential()\n",
" model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))\n",
" model.add(layers.Dense(16, activation='relu'))\n",
" model.add(layers.Dense(1, activation='sigmoid'))\n",
" model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy'])\n",
"\n",
" x_val = x_train[:10000]\n",
" partial_x_train = x_train[10000:]\n",
" y_val = y_train[:10000]\n",
" partial_y_train = y_train[10000:]\n",
"\n",
" history = model.fit(partial_x_train, partial_y_train, epochs=20, batch_size=512,\n",
" validation_data=(x_val, y_val), verbose=0);\n",
" model.save(base_dir+\"\\\\imdb_1.h5\")\n",
" df = pd.DataFrame.from_dict(data=history.history, orient='columns')\n",
" df.to_csv(base_dir+'\\\\history_imdb.csv', header=True, index=False)\n",
" K.clear_session()\n",
" del model\n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"25000/25000 [==============================] - 4s 150us/step\n",
"model achieves an accuracy of 85.36% for testing data\n"
]
}
],
"source": [
"model = models.load_model(base_dir+\"\\\\imdb_1.h5\")\n",
"results = model.evaluate(x_test, y_test)\n",
"print('model achieves an accuracy of {}% for testing data'.format(round(results[1]*100,2)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Validating the Approach"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`model.fit()` returns a `history` object. This object has a member history, which is a dictionary containing data about everything that happened during training. The dictionary has 4 keys \"val_loss\", \"val_acc\", \"loss\", \"acc\" which are loss/accuracy percentages for validation and training datasets. We plot the training and validation loss, as well as the training and validation accuracy"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/png": "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rrkm3/MqVaoEwPLly7nwwgvzrHvq1Kn51jNixAg2RqVdzzzzTH777beChJ6vu+66i4ceemiv6xERSQrvvQdNmsCYMXD//fDll3DUUfGOSmSHZG2PiOyt7OERS5eGzmvZwyP2NgGR1zCI4hoesWRJWEhpyRIlHiQ5KPlQDHr06MGoUaN2KRs1ahQ9evQo0PmHHXYYb7/9dpGvn/PDfty4cVStWrXI9YmISJRff4WePeH886F2bZg2DW67DcqWjXdkIrtQe0QkdxoeIVI6KPlQDC688ELGjh3LH3/8AcCSJUtYvnw57du337HOdatWrWjWrBnvv//+bucvWbKEpk2bArBp0ya6d+9O8+bN+ctf/sKmTZt2HHf11VeTlpZGkyZNGDp0KACPP/44y5cvp2PHjnTs2BGAevXqsXr1agAeeeQRmjZtStOmTRkxYsSO6x1zzDFceeWVNGnShDPOOGOX6+RmxowZtG3blubNm3P++efz66+/7rh+48aNad68Od27dwfgX//6Fy1btqRly5Yce+yxrF+/vsivrYhIXI0dG1ayeP11GDoUvv46zPUgUgola3tkzJgxHH/88Rx77LGcdtpprFy5EoDff/+dXr160axZM5o3b84777wDwMcff0yrVq1o0aIFp556arG8tpLYNDxCpJRw94T6ad26tec0d+7c3cpK2plnnunvvfeeu7vfd999fsstt7i7+9atW33t2rXu7r5q1Spv0KCBb9++3d3d999/f3d3X7x4sTdp0sTd3R9++GHv1auXu7vPnDnTy5Yt61OmTHF39zVr1ri7e1ZWlp988sk+c+ZMd3evW7eur1q1akcs2dtTp071pk2b+u+//+7r16/3xo0b+zfffOOLFy/2smXL+vTp093dvVu3bv7qq6/u9pyGDh3qDz74oLu7N2vWzD///HN3d7/jjjv8+uuvd3f3Qw891Ddv3uzu7r/++qu7u5999tn+5Zdfurv7+vXrfevWrbvVXRr+ZiIiefruO/czz3QH98aN3SPvw6UdMNVLwWd1KvyoPVJy7ZFffvllR6zPPfec33TTTe7uftttt+1oj2Qf9/PPP3vt2rV90aJFu8SaU2n4W0nJqVs3vJ3n/KlbN96RiSSnvNojybfU5g03hAnAilPLlhDJ0uclu6vjueeey6hRo3jxxReBkNwZNGgQkyZNokyZMvz000+sXLmSQw45JNd6Jk2axHXXXQdA8+bNad68+Y59o0ePZuTIkWRlZbFixQrmzp27y/6cvvzyS84//3z2339/ALp27coXX3zBOeecQ/369WnZsiUArVu3ZsmSJXnWs3btWn777TdOPvlkAC677DK6deu2I8b09HTOO+88zjvvPABOOOEEbrrpJtLT0+natSu1a9fO97UTESk1fv8d7r0XHn4Y9t0XHnooTChZvny8I5NEo/bIDnvbHsnMzOQvf/kLK1asYMuWLdSvXx+ATz/9dJdhJtWqVWPMmDGcdNJJO46pXr16vq+XpIZhw3ZdEhM0PEIkHjTsopicd955TJgwgW+++YZNmzbRqlUrADIyMli1ahXTpk1jxowZHHzwwWzevDnfusxst7LFixfz0EMPMWHCBGbNmsVZZ521x3pC0il3++67747fy5YtS1ZWVr515eXDDz/k2muvZdq0abRu3ZqsrCwGDhzI888/z6ZNm2jbti3z588vUt0iIiXGHUaNgkaN4L77oHt3WLAAbr5ZiQdJKMnYHhkwYAD9+/dn9uzZPPvsszuu5+67xZhbmYiGR4iUDsnX82EPdwRipVKlSnTo0IHevXvvMrHT2rVrOeiggyhXrhwTJ05k6dKl+dZz0kknkZGRQceOHZkzZw6zZs0CYN26dey///5UqVKFlStX8tFHH9GhQwcAKleuzPr166lRo8ZudV1++eUMHDgQd+fdd9/l1VdfLfRzq1KlCtWqVeOLL77gxBNP5NVXX+Xkk09m+/bt/Pjjj3Ts2JH27dvz+uuv8/vvv7NmzRqaNWtGs2bN+M9//sP8+fNp1KhRoa8rIlIiZs8OvRv+9S9o1QpGj4Y//SneUUmiU3tkl7r2pj2ydu1aatWqBcArr7yyo/yMM87gySef3DGHxK+//kq7du249tprWbx4MfXr1+eXX35R74cEk5ERJoJctiysGjFsWPEkCdLTlWwQibfkSz7EUY8ePejatesuXQDT09Pp0qULaWlptGzZco9fwq+++mp69epF8+bNadmyJW3atAGgRYsWHHvssTRp0oQjjjiCE044Ycc5ffv2pXPnzhx66KFMnDhxR3mrVq24/PLLd9TRp08fjj322HyHWOTllVdeoV+/fmzcuJEjjjiCl156iW3btnHJJZewdu1a3J0bb7yRqlWrcscddzBx4kTKli1L48aN6dy5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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(base_dir+'\\\\history_imdb.csv')\n",
"history = df.to_dict()\n",
"\n",
"acc = list(history['acc'].values())\n",
"val_acc = list(history['val_acc'].values())\n",
"loss = list(history['loss'].values())\n",
"val_loss = list(history['val_loss'].values())\n",
"epochs = range(len(acc))\n",
"\n",
"fig = plt.figure(figsize=(18,5))\n",
"plt.subplot(1, 2, 1)\n",
"plt.plot(epochs, loss, 'bo', label='Training loss')\n",
"plt.plot(epochs, val_loss, 'r', label='Validation loss')\n",
"plt.title('Training and validation loss')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Loss')\n",
"plt.legend()\n",
"\n",
"plt.subplot(1, 2, 2)\n",
"plt.plot(epochs, acc, 'bo', label='Training acc')\n",
"plt.plot(epochs, val_acc, 'r', label='Validation acc')\n",
"plt.title('Training and validation accuracy')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Loss')\n",
"plt.legend()\n",
"plt.show()\n",
"toggle()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The training loss decreases with every epoch and the training accuracy increases with every epoch. That's what you would expect when running gradient descent optimization -- the quantity you are trying to minimize should get lower with every iteration. \n",
"\n",
"However, this isn't the case for the validation loss and accuracy: they seem to peak at the fourth epoch. \n",
"\n",
"Overfitting: a model that performs better on the training data isn't necessarily a model that will do better on data it has never seen before. We ended up learning representations that are specific to the training data and do not generalize to data outside of the training set.\n",
"\n",
"In this case, to prevent overfitting, we could simply stop training after 4 epochs."
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def train_imdb_2():\n",
" model = models.Sequential()\n",
" model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))\n",
" model.add(layers.Dense(16, activation='relu'))\n",
" model.add(layers.Dense(1, activation='sigmoid'))\n",
" model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['accuracy'])\n",
" model.fit(x_train, y_train, epochs=4, batch_size=512, verbose=0)\n",
" model.save(base_dir+\"\\\\imdb_2.h5\")\n",
" K.clear_session()\n",
" del model \n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"25000/25000 [==============================] - 4s 143us/step\n",
"\n",
" model achieves an accuracy of 88.32% for testing data\n"
]
}
],
"source": [
"model = models.load_model(base_dir+\"\\\\imdb_2.h5\")\n",
"results = model.evaluate(x_test, y_test)\n",
"print('\\n model achieves an accuracy of {}% for testing data'.format(round(results[1]*100,2)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Prediction\n",
"\n",
"After having trained a network, we can generate the likelihood of reviews being positive by using the predict method"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0.19963935],\n",
" [0.9995559 ],\n",
" [0.8614843 ],\n",
" ...,\n",
" [0.09901541],\n",
" [0.07926401],\n",
" [0.50504327]], dtype=float32)"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model.predict(x_test)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are some Further experiments can be tried:\n",
"\n",
"- We were using 2 hidden layers. Try to use 1 or 3 hidden layers and see how it affects validation and test accuracy.\n",
"\n",
"- Try to use layers with more hidden units or less hidden units: 32 units, 64 units...\n",
"\n",
"- Try to use the mse loss function instead of binary_crossentropy.\n",
"\n",
"- Try to use the tanh activation (an activation that was popular in the early days of neural networks) instead of relu."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Reuters Dataset"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For IMDB dataset, we classify vector inputs into two mutually exclusive classes using a densely-connected neural network. In this section, we will build a network to classify Reuters newswires into 46 different mutually-exclusive topics. Since we have many classes, this problem is an instance of multi-class classification.\n",
"\n",
"Reuters dataset, a set of short newswires and their topics, published by Reuters in 1986. It's a very simple, widely used toy dataset for text classification. There are 46 different topics; some topics are more represented than others, but each topic has at least 10 examples in the training set.\n",
"\n",
"We have 8,982 training examples and 2,246 test examples. As with the IMDB reviews, each example is a list of integers (word indices)."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np_load_old = np.load\n",
"np.load = lambda *a,**k: np_load_old(*a, allow_pickle=True, **k)\n",
"from keras.datasets import reuters\n",
"from keras.utils.np_utils import to_categorical\n",
"(train_data, train_labels), (test_data, test_labels) = reuters.load_data(num_words=10000)\n",
"np.load = np_load_old\n",
"\n",
"x_train = vectorize_sequences(train_data)\n",
"x_test = vectorize_sequences(test_data)\n",
"y_train = to_categorical(train_labels)\n",
"y_test = to_categorical(test_labels)\n",
"\n",
"# we set apart 1000 samples in the training data as validation set\n",
"partial_x_train = x_train[1000:]\n",
"x_val = x_train[:1000]\n",
"partial_y_train = y_train[1000:]\n",
"y_val = y_train[:1000]\n",
"\n",
"toggle()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Similar to the IMDB dataset, we prepare the data by vectorizing the data with the exact same code, building the network and validating the approach.\n",
"\n",
"However, there is a new constraint that changes our network architecture: the number of output classes has gone from 2 to 46, i.e. the dimensionality of the output space is much larger.\n",
"\n",
"- In a stack of Dense layers, each layer can only access information present in the output of the previous layer. If one layer drops some information relevant to the classification problem, this information can never be recovered by later layers. \n",
"\n",
" Therefore, we cannot use 16-dimensional intermediate layers as for IMDB dataset, because a 16-dimensional space may be too limited to learn to separate 46 different classes. Such small layers may act as information bottlenecks, permanently dropping relevant information. For this reason we will use larger layers with 64 units.\n",
"\n",
" We can see what happens when we introduce an information bottleneck by having intermediate layers significantly less than 46-dimensional, e.g. 4-dimensional by changing the code\n",
"```python\n",
"model.add(layers.Dense(64, activation='relu'))\n",
"```\n",
"\n",
" to\n",
"```python\n",
"model.add(layers.Dense(4, activation='relu'))\n",
"```\n",
"\n",
"- The last layer uses a softmax activation. It means that the network will output a probability distribution over the 46 different output classes, i.e. for every input sample, the network will produce a 46-dimensional output vector where `output[i]` is the probability that the sample belongs to class i. The 46 scores will sum to 1.\n",
"\n",
"\n",
"\n",
"- The best loss function to use in this case is categorical_crossentropy."
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def train_reuters_1():\n",
" model = models.Sequential()\n",
" model.add(layers.Dense(64, activation='relu', input_shape=(10000,)))\n",
" model.add(layers.Dense(64, activation='relu'))\n",
" model.add(layers.Dense(46, activation='softmax'))\n",
" model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])\n",
"\n",
" history = model.fit(partial_x_train, partial_y_train, epochs=20, batch_size=512,\n",
" validation_data=(x_val, y_val), verbose=0)\n",
" model.save(base_dir+\"\\\\reuters_1.h5\")\n",
" df = pd.DataFrame.from_dict(data=history.history, orient='columns')\n",
" df.to_csv(base_dir+'\\\\history_reuters1.csv', header=True, index=False)\n",
" K.clear_session()\n",
" del model\n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2246/2246 [==============================] - 0s 197us/step\n",
"model achieves an accuracy of 77.83% for testing data\n"
]
}
],
"source": [
"model = models.load_model(base_dir+\"\\\\reuters_1.h5\")\n",
"results = model.evaluate(x_test, y_test)\n",
"print('model achieves an accuracy of {}% for testing data'.format(round(results[1]*100,2)))"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABB8AAAFNCAYAAABIRsfzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3xUZfbH8c8JIEhXQOkJiqtSEkpAXJBiWxHX3iD2grrquupaFnR1VdS1IupPl7VrFN11XXUt2LBgg1Bti7rSQYxINbTA+f3xTMgkJCGRTG4m+b5fr/uamTt37j0zySTPPfc8z2PujoiIiIiIiIhIoqREHYCIiIiIiIiI1GxKPoiIiIiIiIhIQin5ICIiIiIiIiIJpeSDiIiIiIiIiCSUkg8iIiIiIiIiklBKPoiIiIiIiIhIQin5ILKDzKyOma01s46VuW2UzKyzmVX6PLxmdrCZzYt7PMfMDijPtr/gWA+Z2ahf+voy9nuTmT1W2fsVERFRm6JC+036NoVIbVM36gBEqpqZrY172BDYAGyOPT7P3bMrsj933ww0ruxtawN337sy9mNm5wCnuPvguH2fUxn7FhERKY3aFNWH2hQi1Z+SD1LruPvWf9SxLPg57v5WadubWV13z6+K2ERERCR5qE0hyUy/j1LV1O1CpJhYWf2zZvaMma0BTjGz/c3sEzNbaWZLzWycmdWLbV/XzNzM0mKPn4o9/5qZrTGzj82sU0W3jT0/1My+NrNVZnavmX1oZmeUEnd5YjzPzL41sxVmNi7utXXM7G4zW25m/wMOK+PzucbMJhRbd7+Z3RW7f46ZfRV7P/+LXUEobV+LzGxw7H5DM3syFtsXQO8SjvtdbL9fmNmRsfXdgfuAA2Llpz/GfbbXx73+/Nh7X25m/zazNuX5bLbHzI6OxbPSzN4xs73jnhtlZkvMbLWZ/TfuvfYzs+mx9cvM7PbyHk9ERJKH2hRqU5TVpijrcy6Ix8zeMrOfzOx7M7sy7jjXxj6T1WaWY2ZtrYQuLmY2ueDnHPs8348d5yfgGjPby8wmxd7Lj7HPrVnc61Nj7zE39vw9ZtYgFvO+cdu1MbM8M2tR2vsVUfJBpGTHAE8DzYBngXzgEqAl0J/wj/S8Ml4/ArgW2BVYANxY0W3NbDfgOeCK2HHnAn3L2E95Yjyc8A+4J6EBdHBs/QXAoUBG7BgnlnGcp4EjzKxRLM66wAmx9QDLgGFAU+Bc4F4zSy9jfwVuADoAe8TiPL3Y81/H3lczYAzwtJnt7u6fARcBH7h7Y3dvWXzHZnZobP/HA+2AJUDxUtjSPptSxf7pPgVcDLQC3gJeNrN6ZtaV8Pn3cvemwFDCzxfgXuD22PrOwD+3dywREUlaalOUrra3KUr9nGMJgLeAl4E2wK+Ad2OvuyJ2/MOA5sA5wPqyPpA4vwa+IrRb/goYcFPsGF0In9m1sRjqAq8A3wJphM/0OXdfT/h9OiVuvyOAie6+vJxxSC2k5INIySa7+8vuvsXd17n7VHf/1N3z3f07YDwwqIzX/9Pdc9x9E+EfUo9fsO0RwEx3fzH23N3Aj6XtpJwx3uLuq9x9HuEfWMGxTgTudvdFsX8at5ZxnO+Az4GjYqsOAVa6e07s+Zfd/TsP3gHeBkocAKqYE4Gb3H2Fu88nXHmIP+5z7r409jN5GpgHZJZjvwBZwEPuPjP2D/NqYJCZtY/bprTPpiwnAy+5+zuxn9GthAbSfoQGRQOgq4Wyxrmxzw5gE7CXmbVw9zXu/mk534eIiCQftSlKP06tblNs53M+Eljo7ve4+wZ3X+3uU2LPnQOMcvdvYu9hprv/VM74F7j7A+6+Ofb7+LW7v+3uG939B8LvRkEM+xMSI1e5+8+x7T+MPfc4MMLMLPb4VODJcsYgtZSSDyIlWxj/wMz2MbNXYiVvqwkZ722y4XG+j7ufR9kDQpW2bdv4ONzdgUWl7aScMZbrWMD8MuKFcEVieOz+COIy/mZ2hJl9GisRXEm4+lHWZ1WgTVkxmNkZZjYrVua3EtinnPuF8P627s/dVwMrCFcsClTkZ1bafrcQfkbt3H0OcDnh5/CDhZLb1rFNzyRcXZhjZlPM7PByvg8REUk+alOUrda2KbbzOXcgVByUpAPwv3LGW1zx38fWZvacmS2OxfBYsRjmeRjctIhYEiIfGGBm3YCOhCoJkVIp+SBSsuJTQv2NkJnvHCuV/zOhTC2RlgJbs+ixzHK70jffoRiXEv7BFNjetF3PAgfHsvxHESuPNLOdCV0IbgF2d/fmwBvljOP70mIwsz2ABwilnC1i+/1v3H63N4XXEiA1bn9NgF2AxeWIqyL7TSH8zBYDuPtT7t4f6ATUIXwuuPscdz8Z2A24E3jezBrsYCwiIlI9qU1Rttrcpijrc14I7FnK60p77udYTA3j1rUutk3x9/dXwiwt3WMxnFEshlQzq1NKHE8Qul6cSuiOsaGU7UQAJR9EyqsJsAr4OdbPv6y+mZXlP0AvM/ttrM/dJYT+eYmI8TngD2bWLjZQ0FVlbezuy4DJwKPAHHf/JvZUfWAnIBfYbGZHAAdVIIZRZtbcwpzlF8U915jwzzKX0GY6h3CVosAyoL3FDdJUzDPA2WaWbmb1CQ2ZD9y91Ks+FYj5SDMbHDv2FcAa4FMz29fMhsSOty62bCa8gVPNrGWsUmJV7L1t2cFYREQkOahNEaeWtynK+pxfAjqa2UVmtpOZNTWzgnE6HgJuMrM9LehhZrsSki7fE8aZqGNmI4lLlJQRw8/AKjPrAPwx7rmPgeXAzRYG8dzZzPrHPf8kYeyJEYREhEiZlHwQKZ/LCYMVrSFkqZ9N9AFj/4xPAu4i/OHfE5hByE5XdowPEPpRfgZMpXwDID4NHEzhoFC4+0rgUuAF4CfCP6T/lDOG6whXS+YBrxH3T8zdZwPjgCmxbfYB4sdJeBP4BlhmZvGljgWvf51QyvhC7PUdCX02d4i7f0H4zB8gNGIOA46M9aetD9xG6FP7PeGqyDWxlx4OfGVh5PM7gJPcfeOOxiMiIklBbYpt1dY2Ramfs7uvIoyBcRzwA2GQzIKxGG4H/k34nFcTxopoEOtOcy4witD+6FzsvZXkOsLAoKsICY/n42LIJ4wXsi+hCmIB4edQ8Pw8ws95o7t/VMH3LrWQhd9REanuYiVvS4Dj3f2DqOMRERGR5KQ2hVQWM3sC+M7dr486Fqn+VPkgUo2Z2WFm1ixW1nctYWCfKdt5mYiIiEgRalNIZYuNn3EU8EjUsUhyUPJBpHobAHxHKJ07DDhag/mIiIjIL6A2hVQaM7sFmAXc7O4Loo5HkoO6XYiIiIiIiIhIQqnyQUREREREREQSSskHEREREREREUmoulEHUFEtW7b0tLS0qMMQERGpdqZNm/aju7eKOo7aQO0RERGRkpXWHkm65ENaWho5OTlRhyEiIlLtmNn8qGOoLdQeERERKVlp7RF1uxARERERERGRhFLyQUREREREREQSSskHEREREREREUmopBvzQUREKt+mTZtYtGgR69evjzoUKYcGDRrQvn176tWrF3UoEkffo+Sg74+ISDSUfBARERYtWkSTJk1IS0vDzKIOR8rg7ixfvpxFixbRqVOnqMOROPoeVX/6/oiIREfdLkREhPXr19OiRQudMCUBM6NFixa6ul4N6XtU/en7IyISHSUfREQEQCdMSUQ/q+pLP5vqTz8jEZFo1OrkQ3Y2pKVBSkq4zc6OOiIRkdpp+fLl9OjRgx49etC6dWvatWu39fHGjRvLtY8zzzyTOXPmlLnN/fffT3Yl/bEfMGAAM2fOrJR9iVSGZPweiYhINKI4F661Yz5kZ8PIkZCXFx7Pnx8eA2RlRReXiEht1KJFi60n8tdffz2NGzfmj3/8Y5Ft3B13JyWl5Lz5o48+ut3jXHjhhTserEg1pe+RiMj2ZWfD6NGwYAF07AhjxlTO+V8y7Teqc+FaW/kwenThh10gLy+sFxGRslVVtvzbb7+lW7dunH/++fTq1YulS5cycuRIMjMz6dq1KzfccMPWbQsqEfLz82nevDlXX301GRkZ7L///vzwww8AXHPNNYwdO3br9ldffTV9+/Zl77335qOPPgLg559/5rjjjiMjI4Phw4eTmZm53QqHp556iu7du9OtWzdGjRoFQH5+PqeeeurW9ePGjQPg7rvvpkuXLmRkZHDKKadU+mcmyUPfI7juuuvo06fP1vjcHYCvv/6aAw88kIyMDHr16sW8efMAuPnmm+nevTsZGRmMVqNNRCqo4KR7/nxwLzzp3tG/v8m236jOhROWfDCzDmY2ycy+MrMvzOySErYZbGarzGxmbPlzouIpbsGCiq0XEZEgUf8IS/Pll19y9tlnM2PGDNq1a8ett95KTk4Os2bN4s033+TLL7/c5jWrVq1i0KBBzJo1i/33359HHnmkxH27O1OmTOH222/fegJ277330rp1a2bNmsXVV1/NjBkzyoxv0aJFXHPNNUyaNIkZM2bw4Ycf8p///Idp06bx448/8tlnn/H5559z2mmnAXDbbbcxc+ZMZs2axX333beDn44kK32PgksuuYSpU6fy2WefsWrVKl5//XUAhg8fzqWXXsqsWbP46KOP2G233Xj55Zd57bXXmDJlCrNmzeLyyy+vpE9HpPZIVNIzEftNxD4TddKdbPuN6lw4kZUP+cDl7r4v0A+40My6lLDdB+7eI7bcUMLzCdGxY8XWi4hIUNXZ8j333JM+ffpsffzMM8/Qq1cvevXqxVdffVXiSdPOO+/M0KFDAejdu/fWq6bFHXvssdtsM3nyZE4++WQAMjIy6Nq1a5nxffrppxx44IG0bNmSevXqMWLECN5//306d+7MnDlzuOSSS5g4cSLNmjUDoGvXrpxyyilkZ2dTr169Cn0WUnPoexS8/fbb9O3bl4yMDN577z2++OILVqxYwY8//shvf/tbABo0aEDDhg156623OOuss9h5550B2HXXXSv+QYgkiUSdzCfL1flExZqok+5k229U58IJSz64+1J3nx67vwb4CmiXqONV1Jgx0LBh0XUNG4b1IiJSuqrOljdq1Gjr/W+++YZ77rmHd955h9mzZ3PYYYeVOGXeTjvttPV+nTp1yM/PL3Hf9evX32abgrLv8ipt+xYtWjB79mwGDBjAuHHjOO+88wCYOHEi559/PlOmTCEzM5PNmzdX6HhSM+h7BHl5eVx00UW88MILzJ49m7POOmtrHCXNSOHumqlCqp1kShIk09X5RMWaqJPuZNtvVOfCVTLmg5mlAT2BT0t4en8zm2Vmr5lZ2ZeXKlFWFowfD6mpYBZux4/XYJMiItsTZeXY6tWradKkCU2bNmXp0qVMnDix0o8xYMAAnnvuOQA+++yzEq8Ix+vXrx+TJk1i+fLl5OfnM2HCBAYNGkRubi7uzgknnMBf/vIXpk+fzubNm1m0aBEHHnggt99+O7m5ueQVb11JraDvEaxbt46UlBRatmzJmjVreP755wHYZZddaNmyJS+//DIA69evJy8vj0MPPZSHH36YdevWAfDTTz9VetwiFZFsSYJkujqfqFgTddKdbPuN6lw44ckHM2sMPA/8wd1XF3t6OpDq7hnAvcC/S9nHSDPLMbOc3NzcSostKwvmzYMtW8KtEg8iItsXZeVYr1696NKlC926dePcc8+lf//+lX6Miy++mMWLF5Oens6dd95Jt27dtnaZKEn79u254YYbGDx4MD169KBfv34MGzaMhQsXMnDgQHr06MG5557LzTffTH5+PiNGjCA9PZ1evXpx1VVX0aRJk0p/D1L96XsUqoNOP/10unXrxjHHHMN+++239bns7GzuvPNO0tPTGTBgALm5uRxxxBEcdthhZGZm0qNHD+6+++5Kj1tqrmQaPyDZSu0Tsd9ExZqok+5k22/Bvqv8XLhgyqVELEA9YCJwWTm3nwe0LGub3r17u4iIVK4vv/yyQts/9ZR7aqq7Wbh96qmEhBWJTZs2+bp169zd/euvv/a0tDTftGlTxFFtq6SfGZDjCfy/rqXs9oi+R4Wq+/eooj8rSW5PPeXesKF7qE8IS8OGO/6dMyu6z4LFbMf2m5pa8n5TU3dsv4n6HBKx30TFKlWjtPZI3UQlNSx0ynsY+Mrd7yplm9bAMnd3M+tLqMRYnqiYRESkcmRl1dxqsbVr13LQQQeRn5+Pu/O3v/2NunUT9u9SajF9j0SqRlkVCjvyHezYMXS1KGn9jhgzJnTfiI+5skrtIbzvBQtCnGPGVM7V+creb6JilWgl8r9Af+BU4DMzK5jYeRTQEcDdHwSOBy4ws3xgHXByLFMiIiISiebNmzNt2rSowxBJavoeyS+VnV35J5yJHD8gmZIEBftOxAl8IvZbkxO0tVXCkg/uPhkoc0hid78P0CTnIiIiIiK1XMEAjgUn8wUDOEL1rFBIxiSBSJSqZLYLERERERGRsiRqAMdEDvCqAexFyk/JBxERERERiVyiukdENa2giBSlkX9ERERERCRyieoeAerGIFIdqPJBREQiN3jwYCZOnFhk3dixY/nd735X5usaN24MwJIlSzj++ONL3XdOTk6Z+xk7dix5cbW+hx9+OCtXrixP6GW6/vrrueOOO3Z4PyLlUVO/R1J7JLJ7hIhET8kHERGJ3PDhw5kwYUKRdRMmTGD48OHlen3btm355z//+YuPX/yk6dVXX6V58+a/eH8iUdD3SKpadjakpUFKSrjNzt6x/al7hEjNpuSDiIhE7vjjj+c///kPGzZsAGDevHksWbKEAQMGsHbtWg466CB69epF9+7defHFF7d5/bx58+jWrRsA69at4+STTyY9PZ2TTjqJdevWbd3uggsuIDMzk65du3LdddcBMG7cOJYsWcKQIUMYMmQIAGlpafz4448A3HXXXXTr1o1u3boxduzYrcfbd999Offcc+natSuHHnpokeOUZObMmfTr14/09HSOOeYYVqxYsfX4Xbp0IT09nZNPPhmA9957jx49etCjRw969uzJmjVrfvFnK7VHTf0evfzyy+y333707NmTgw8+mGXLlgGwdu1azjzzTLp37056ejrPP/88AK+//jq9evUiIyODgw46qFI+W9lWwcwU8+eDe+HMFJWRgNAAjiI1lLsn1dK7d28XEZHK9eWXX0Ydgh9++OH+73//293db7nlFv/jH//o7u6bNm3yVatWubt7bm6u77nnnr5lyxZ3d2/UqJG7u8+dO9e7du3q7u533nmnn3nmme7uPmvWLK9Tp45PnTrV3d2XL1/u7u75+fk+aNAgnzVrlru7p6amem5u7tZYCh7n5OR4t27dfO3atb5mzRrv0qWLT58+3efOnet16tTxGTNmuLv7CSec4E8++eQ27+m6667z22+/3d3du3fv7u+++667u1977bV+ySWXuLt7mzZtfP369e7uvmLFCnd3P+KII3zy5Mnu7r5mzRrftGnTNvsu6WcG5Hg1+F9dG5aS2iP6HiXme/TTTz9tjfXvf/+7X3bZZe7ufuWVV279HhVs98MPP3j79u39u+++KxJrcdXhZ5XsUlPdQ9qh6JKaGnVkIhK10tojGnBSRESK+sMfYObMyt1njx4Qu9pZmoKS8aOOOooJEybwyCOPACFJPmrUKN5//31SUlJYvHgxy5Yto3Xr1iXu5/333+f3v/89AOnp6aSnp2997rnnnmP8+PHk5+ezdOlSvvzyyyLPFzd58mSOOeYYGjVqBMCxxx7LBx98wJFHHkmnTp3o0aMHAL1792bevHml7mfVqlWsXLmSQYMGAXD66adzwgknbI0xKyuLo48+mqOPPhqA/v37c9lll5GVlcWxxx5L+/bty/zspBrS92irHf0eLVq0iJNOOomlS5eyceNGOnXqBMBbb71VpJvJLrvswssvv8zAgQO3brPrrruW+XnJL5eomSlEpOZStwsREakWjj76aN5++22mT5/OunXr6NWrFwDZ2dnk5uYybdo0Zs6cye6778769evL3JeZbbNu7ty53HHHHbz99tvMnj2bYcOGbXc/IXlfsvr162+9X6dOHfLz88vcV2leeeUVLrzwQqZNm0bv3r3Jz8/n6quv5qGHHmLdunX069eP//73v79o31L71MTv0cUXX8xFF13EZ599xt/+9retx3P3bWIsaZ1U/tgMUPoMFJUxM4WI1EyqfBARkaK2c2U1URo3bszgwYM566yzigyQt2rVKnbbbTfq1avHpEmTmF/SPGxxBg4cSHZ2NkOGDOHzzz9n9uzZAKxevZpGjRrRrFkzli1bxmuvvcbgwYMBaNKkCWvWrKFly5bb7OuMM87g6quvxt154YUXePLJJyv83po1a8Yuu+zCBx98wAEHHMCTTz7JoEGD2LJlCwsXLmTIkCEMGDCAp59+mrVr17J8+XK6d+9O9+7d+fjjj/nvf//LPvvsU+HjSoT0PSqyrx35Hq1atYp27doB8Pjjj29df+ihh3LfffdtHUNixYoV7L///lx44YXMnTuXTp068dNPP9X66oeCsRkKxgItGJsBdmw8hTFjiu4XNDOFiJRNlQ8iIlJtDB8+nFmzZm0deBEgKyuLnJwcMjMzyc7O3u5J+AUXXMDatWtJT0/ntttuo2/fvgBkZGTQs2dPunbtyllnnUX//v23vmbkyJEMHTp060B5BXr16sUZZ5xB37592W+//TjnnHPo2bPnL3pvjz/+OFdccQXp6enMnDmTP//5z2zevJlTTjmF7t2707NnTy699FKaN2/O2LFj6datGxkZGey8884MHTr0Fx1Taqea9j26/vrrOeGEEzjggAOKJDauueYaVqxYsfW7MmnSJFq1asX48eM59thjycjI4KSTTir3cWqq0aOLJgggPB49esf2q5kpRKSirKxSuOooMzPTtzfPtIiIVMxXX33FvvvuG3UYUgEl/czMbJq7Z0YUUq1SUntE36PkUZt+VikpYSjI4szCjBIiIpWttPaIKh9ERERERGoojc0gItWFkg8iIiIiIjXUmDFhLIZ4GptBRKKg5IOIiIiISA2lsRlEpLrQbBciIgJoirpkkmzjNdUm+h5Vf7Xx+5OVpWSDiERPlQ8iIkKDBg1Yvnx5rWyUJxt3Z/ny5TRo0CDqUKQYfY+qP31/RESio8oHERGhffv2LFq0iNzc3KhDkXJo0KAB7du3jzoMKUbfo+Sg74+ISDSUfBAREerVq0enTp2iDkMkqel7JDsqOxtGj4YFC8JsFGPGqLuEiNQc6nYhIiIiNZqZHWZmc8zsWzO7uoTndzGzF8xstplNMbNuUcQptVt2NowcCfPng3u4HTkyrBcRqQmUfBAREZEay8zqAPcDQ4EuwHAz61Jss1HATHdPB04D7qnaKEVCxUNeXtF1eXlhvYhITaDkg4iIiNRkfYFv3f07d98ITACOKrZNF+BtAHf/L5BmZrtXbZhS2y1YULH1IiLJRskHERERqcnaAQvjHi+KrYs3CzgWwMz6AqmARiSUKtWxY8XWi4gkGyUfREREpCazEtYVnwvzVmAXM5sJXAzMAPK32ZHZSDPLMbMczWghlW3MGGjYsOi6hg3DehGRmkDJBxEREanJFgEd4h63B5bEb+Duq939THfvQRjzoRUwt/iO3H28u2e6e2arVq0SGbPUQllZMH48pKaCWbgdP16zXYhIzaGpNkVERKQmmwrsZWadgMXAycCI+A3MrDmQFxsT4hzgfXdfXeWRSq2XlaVkg4jUXEo+iIiISI3l7vlmdhEwEagDPOLuX5jZ+bHnHwT2BZ4ws83Al8DZkQUsIiJSQyn5ICIiIjWau78KvFps3YNx9z8G9qrquERERGoTjfkgIiIiIiIiIgml5IOIiIiIiIiIJJSSDyIiIiIiIiKSUEo+iIiIiIhUQHY2pKVBSkq4zc6OOiIRkepPA06KiIiIiJRTdjaMHAl5eeHx/PnhMWiaTBGRsqjyQURERESknEaPLkw8FMjLC+tFRKR0Sj6IiIiIiJTTggUVWy8iIoGSDyIiIiIi5dSxY8XWi4hIoOSDiIiIiEg5jRkDDRsWXdewYVgvIiKlU/JBRERERKScsrJg/HhITQWzcDt+vAabFBHZHs12ISIiIiJSAVlZSjaIiFSUKh9EREREREREJKGUfBARERERERGRhFLyQUREREREREQSKmHJBzPrYGaTzOwrM/vCzC4pYRszs3Fm9q2ZzTazXomKR0RERERERESikcgBJ/OBy919upk1AaaZ2Zvu/mXcNkOBvWLLfsADsVsRERERERERqSESVvng7kvdfXrs/hrgK6Bdsc2OAp7w4BOguZm1SVRMIiIiIiIiIlL1qmTMBzNLA3oCnxZ7qh2wMO7xIrZNUIiIiIiIiIhIEkt48sHMGgPPA39w99XFny7hJV7CPkaaWY6Z5eTm5iYiTBERERERERFJkIQmH8ysHiHxkO3u/yphk0VAh7jH7YElxTdy9/Hununuma1atUpMsCIiIiIiIiKSEImc7cKAh4Gv3P2uUjZ7CTgtNutFP2CVuy9NVEwiIiIiUntkZ0NaGqSkhNvs7KgjEhGpvRI520V/4FTgMzObGVs3CugI4O4PAq8ChwPfAnnAmQmMR0RERERqiexsGDkS8vLC4/nzw2OArKzo4hIRqa0Slnxw98mUPKZD/DYOXJioGERERESkdho9ujDxUCAvL6xX8kFEpOpVyWwXIiIiIiJVacGCiq0XEZHEUvJBRERERGqcjh0rtl5ERBJLyQcRERERqXHGjIGGDYuua9gwrBcRkaqn5IOIiIiI1DhZWTB+PKSmglm4HT9e4z2IiEQlkbNdiIiIiIhEJitLyQYRkepClQ8iIiIiIiIiklBKPoiIiIiIiIhIQin5ICIiIiIiIiIJpeSDiIiIiIiIiCSUkg8iIiIiIiIiklBKPoiIiIiIiIhIQin5ICIiIiIiIiIJpeSDiIiIiIiIiCSUkg8iIiIiIiIiklBKPoiIiIhIpLKzIS0NUlLCbXZ21BGJiEhlqxt1ACIiIiJSe2Vnw8iRkJcXHs+fHx4DZGVFF5eIiFQuVT6IiIiISGRGjy5MPBTIywvrRaSa27gR3nsPrrkGDj4YLr8cJk+GzZujjkyqIVU+iEAvFjkAACAASURBVIiIiEhkFiyo2HqRKrVhAyxfHpaffiq8X/xxSgp07AipqaHvUGpqWHbdFcyifheVxx0+/xzeegvefDMkHvLyoE4d6NoV7rsP7roLdtsNjjoKjjkGDjwQ6tePOnKpBpR8EBEREZHIdOwYulqUtF5qqZ9/hh9/DCe6lW3jxvIlEwoe//xz6fuqXx9atAgJhi1b4I03tt2+UaNtExLxS+vWIXFRnS1eXJhseOstWLYsrN97bzjrLDjkEBg0CJo1g9Wr4bXX4F//gmeegb//HZo2hcMPD4mIoUOhSZNo349ERskHEREREYnMmDFFx3wAaNgwrJcaxB1WrIClS7ddvv++6OM1a6o2tpSUkEDYddeQTGjfHjIyCh8XJBgK7hc8btiwaFWDe0hazJ+/7TJvHnz8cfgM4u20U2HFRMESn6ho1w7q1avKTyN8/u+9F5INb74JX30V1rdqFbpWHHJIuO3QYdvXNm0KJ50UlvXr4e234YUX4KWXYMKEkLA55JCQiDjySGjZsmrfm0TKPBEZxQTKzMz0nJycqMMQERGpdsxsmrtnRh1HbaD2SOXKzg5jPCxYEM7DxozRYJNJY/NmyM0tOalQPMGwYcO2r2/UCNq02XZp2TKU8le2evUKEwkFt82aVV31wZo12yYl4h9///22r2nZsuTPqPjSsOEviyk/H6ZMKaxs+OSTsG7nnWHgwMKEQ/fuv/xz2rwZPvwwJCJeeCG815QUOOCAkIg45hiVO9UgpbVHlHyAkKWsSX2xRESkVlLyoeoo+SC1mnu4Mv7QQ/D88+EKd3G77lr0xLh165JPmFWCX9T69SELV5CMWLy45EROfv62r23atHxJimbNYM6cwq4U774bukuYQe/ehZUNv/41NGhQ+e/RHWbODEmIf/0LvvgirO/VqzAR0aVLcp2fbd4M33wD06eHBFPfviFZU7d2djRQ8qEkW7bA+eeHAVFuuqly9ikiIhIRJR9KZmaHAfcAdYCH3P3WYs83A54COhK6pN7h7o+WtU8lH4Tp02HWLGjcOJxAN25c9H6TJuHKcTKdQG3P0qXw2GPwyCPw7bfhJPbkkyE9fdtEgwYYTJwtW0L3jrK6rhQsxaeSgVD9sWlTuN+pU0g2HHIIDBkSKkGq2jffFFZEfPJJWLfXXiEJceyx0KdP9RoXY9Mm+PJLmDEj/B2YPj0kU4qP99GwIWRmQr9+Ydl///DdqAWUfCjN6afDs8+GvkydOlXefkVERKqYkg/bMrM6wNfAIcAiYCow3N2/jNtmFNDM3a8ys1bAHKC1u28sbb9KPtRiS5fC1VfDE09sf9uUlJKTEqWtK7jt0gV69KgeJ1z5+WEAwYcegldeCVd4Bw2Cc86B444LCRapntzDVfjiCYlly2CPPULCYY89oo6yqCVL4MUXQyJi0qTw+7f77mFwy5IG7ezYMbGJrvXr4bPPCpMM06eHxwVdiBo1gp49Q9VGwdKoUejG8vHHIZkyY0Zhsic1tTAZ0a9feG0NTNQp+VCaxYvhV7+CYcPguecqb78iIiJVTMmHbZnZ/sD17v6b2OM/Abj7LXHb/AnoAFwIpAFvAr9y9y2l7VfJh1powwa45x648cYwY8Jll4UT8HXrYO3acJL3S29LmlGhRQs46KDCEvi0tKp9v99+GyocHnssnLC2bg1nnBFmN9hrr6qNRWqnFStCwuuNN2Du3MJuKFuK/Wlu06b0ATtTU0NCrzzWrg0VDNOnF1Y1fPFFSLgB7LJL0SRDz57hu7C9JOH69WF/n3wSlo8/hoULw3M77RT2FZ+Q6NgxsRVT69cXndGlZUvo1q1SD6HkQ1luvBH+/Gd4//0w6ImIiEgSUvJhW2Z2PHCYu58Te3wqsJ+7XxS3TRPgJWAfoAlwkru/UsK+RgIjATp27Nh7fknzQ0rN9Oqr8Ic/hPLw3/4W7roLOneuvP1v2RISEGvXwqpVkJNTOPjfkiVhm86dCxMRBx4IzZtX3vELrFsX+uA//HC46pySEqZIPOeccFvVsy6IFLdpEyxaVPJsIvPnh/EyCqoMCuy6a8lVE40awezZhRUNX39dOL3rbruF8S/ikw2pqZWXFFi8GD79tDAhkZMTvn8QEn0F3TT69QtxNGq07T7y80OCpjxTxsbfL94V59xzYfz4ynlfMUo+lCUvD/bZJ0wfM3Vq9ShxExERqSAlH7ZlZicAvymWfOjr7hfHbXM80B+4DNiTUPmQ4e6rS9uvKh9qiW++gUsvDVdf994bxo6Fww6ruuO7h67BBYmId98NCYqUlNCXvKCvfr9+O1a6PWtW6Fbx1FOwcmUoxT/77NA9uV27Sns7Igm3ZUsY/6L4LCLxCYriJ98dOhRNMvTqFaopqnK8lk2bQneOgsqITz4J1UcQZn1JTw/dT+KTCCtXlr6/OnVKnyq2+LSxaWmVPvyAkg/b8/TTYU6nRx8NJWUiIiJJRsmHbZWz28UrwK3u/kHs8TvA1e4+pbT9KvlQw61ZEwYjv/vuMNr/ddfBxReHEukobdwYrpYWzFIwZUooCW/YMIzDUDAlYrdu2z9xWrUKJkwISYecnPDejjsuVDkMHqyLcVIzuYeT9/nzwwwf3buHbgfV0Y8/Fq2OWLmyaNKgrIRC06aRDnar5MP2uIfpZObNC1nu8vYNEhERqSaUfNiWmdUlDDh5ELCYMODkCHf/Im6bB4Bl7n69me0OTCdUPvxY2n6VfKihtmyB7Gy48spw9fSMM+CWW6rvCPWrVoVqiILKiDlzwvrddy9MRBx8cGH1gjt8+GFIODz3XCjz7t49JByysqKZ6UBEapzS2iO1c+LRkpiF7Pb++8Ott2rqTRERkRrA3fPN7CJgImGqzUfc/QszOz/2/IPAjcBjZvYZYMBVZSUepIbKyYHf/z6UPPftC//+N+y3X9RRla1ZMzjqqLBA6O/+1ltheeONkEgB2HdfGDAgjG82Z064yHbqqSHpkJlZs6YDFZFqS5UPxZ1yCvzzn+EPc2pq4o4jIiJSyVT5UHVU+VCD/PADjBoVZnbYbbdwEeq005K/28GWLaEP+ZtvhuXDDyEjIyQcTjhBVb4ikjCqfCivW24Jo/xedVXoByciIiIiNc+mTXD//XD99WGmicsvh2uvDX2la4KUlJBsyMiAP/4x6mhEREjylG4CdOgQ+vk9+yx89FHU0YiIiIhIZXvzzXBSfumlocvtZ5/B7bfXnMSDiEg1pORDSa64IgzM84c/hJI1EREREUl+330HxxwDhx4aZo54+WV49dUw5bqIiCSUkg8ladQo9PebOrVwoB4RERERSU4//wzXXANduoSqh1tugS++gCOO0GCLIiJVRMmH0owYEUY6vvrq8A9LRERERJLLli3w9NOhsmHMmDDQ4tdfh/Zd/fpRRyciUqso+VCalJQw9eaSJXDbbVFHIyIiIiIVMXky9OsHWVlhFovJk+HJJ6Ft26gjExGplZR8KMuvfw0nnxySDwsWRB2NiIiIiGzP//4Hxx8PBxwQLiI9/njoStu/f9SRiYjUako+bM+tt4bbP/0p2jhEREREpHQrVoTpMvfdF15/HW64IXSxOO20UNEqIiKR0l/i7UlNDXMjP/00fPxx1NGIiIiISLxNm2DcOOjcOXSZPe00+OYbuPZaaNgw6uhERCRGyYfyuOoqaNMmzAWtqTdFREREoucOL74IXbvCJZdAr14wYwY89FBot4mISLWi5EN5NG4cpmT69FN45pmooxERERGJRHY2pKWFXgxpaRHOSD59OgwZAkcfDXXrwiuvwBtvQEZGRAGJiMj2JCz5YGaPmNkPZvZ5Kc8PNrNVZjYztvw5UbFUilNPhd69w9RMeXlRRyMiIiJSpbKzYeRImD8/FB3Mnx8eV2kCYvFiOOMMyMyEL76A//s/mD0bDj8czKowEBERqahEVj48Bhy2nW0+cPceseWGBMay41JSYOxYWLQI7rgj6mhEREREqtTo0dtef8nLC+sTbu1a+POfYa+9QhXqlVfCt9/CBReEygcREan2EpZ8cPf3gZ8Stf9IDBgAJ54If/1rSEKIiIiI1BKlzTqe0NnIN2+Ghx8OSYcbb4SjjoI5c8JsZM2aJfDAIiJS2aIe82F/M5tlZq+ZWdeIYymfv/41/CMcNSrqSERERESqTMeOFVu/w956Kwwiec450KlTmHXsmWfCYBMiIpJ0okw+TAdS3T0DuBf4d2kbmtlIM8sxs5zc3NwqC7BEaWlw2WXw5JMwZUq0sYiIiIhUkTFjtp25smHDsL5SffUVHHEEHHIIrF4Nzz4LH34I/fpV8oFERKQqRZZ8cPfV7r42dv9VoJ6ZtSxl2/Hununuma1atarSOEv0pz/B7rvDH/4QRlwSERERqeGysmD8eEhNDWM7pqaGx1lZlXSAuXPhwguhe3f44AO47baQiDjxRA0mKSJSA0SWfDCz1mbhP4mZ9Y3FsjyqeCqkSRO4+eZQ/vfss9s8XW2moRIRERGpRFlZMG8ebNkSbnc48bByJfz97zBwIOyxB/ztb3D++WEwySuugAYNKiFqERGpDhI2PLCZPQMMBlqa2SLgOqAegLs/CBwPXGBm+cA64GT3JCojOP10uO++MNryUUfBzjsDhdNQFYwGXTANFVTilQERERGRZLVpE0ycCE88AS+9BBs2wD77hAs7WVkJHERCRESiZMl0vg+QmZnpOTk5UYcRvPceDB4cRl++5hogVDrMn7/tpqmp4QqBiIhIopjZNHfPjDqO2qBatUeSgTtMmxbGzHrmGcjNhZYtYfhwOO006N1bXStERGqI0tojmhh5RwwaBMcdB7fcAmedBW3bRjMNlYiIiEh1tHAhPPVUSDp89RXstBMceWRIOBx2GNSrF3WEIiJSRaKeajP53XYb5OdvnXqzyqehEhEREalO1qyBxx6Dgw4KpZ+jRkGLFmE8h++/h3/8A377WyUeRERqGSUfdtQee8Cll8Ljj0NOTtVNQyUiIiJSXeTnh3EcsrLCjGBnnhn6oV53XRg88oMPwiBYu+wSdaQiIhIRdbuoDKNGwaOPwqWXkvX++4AxenToatGxY0g8aLBJERERqXFmzw4DR2Znh6qG5s3DoNynngr7769xHEREZKtyJR/MbE9gkbtvMLPBQDrwhLuvTGRwSaNpU7jpppDR/+c/yco6QckGERGRSqb2SDWxYQPcf3+o+pw9G+rWhWHDwjgOw4ZB/fpRRygiItVQebtdPA9sNrPOwMNAJ+DphEWVjM46C9LTw5zU69dHHY2IiEhNpPZI1FasgN/8Bi6/HBo0CNOOL10K//43HHusEg8iIlKq8iYftrh7PnAMMNbdLwXaJC6sJFSnDowdG/o33n131NGIiIjURGqPRGn+fOjfHz76KHSz+PRTuPDCMGWmiIjIdpQ3+bDJzIYDpwP/ia3TEMXFDRkCRx8NN98crgKIiIhIZVJ7JCrTp0O/frBkCbzxBowYEXVEIiKSZMqbfDgT2B8Y4+5zzawT8FTiwkpit98e+kJec03UkYiIiNQ0ao9E4bXXYOBA2Gkn+PBDGDw46ohERCQJlSv54O5fuvvv3f0ZM9sFaOLutyY4tuTUuTNcckmY/SInJ+poREREagy1RyLw0EPw29/CXnvBxx9D165RRyQiIkmqXMkHM3vXzJqa2a7ALOBRM7srsaElsWuuCXNcH3oovP121NGIiIjUCGqPVCF3uPZaOPdcOPhgeP99aNs26qhERCSJlbfbRTN3Xw0cCzzq7r2BgxMXVpJr1gwmT4Y2bcKI0PfeG/6Ji4iIyI5Qe6QqbNwIp58ephE/+2x4+WVo0iTqqEREJMmVN/lQ18zaACdSOMCTlGXPPUN54uGHw+9/DyNHhn/mIiIi8kupPZJoq1aFtsuTT8KNN8Lf/w71NKaniIjsuPImH24AJgL/c/epZrYH8E3iwqohmjYN816PGhX6TB50EPzwQ9RRiYiIJCu1RxJp4UIYMADeew8efzx0IzWLOioREakh6pZnI3f/B/CPuMffAcclKqgaJSUFxoyB7t3hzDOhTx948UXo0SPqyERERJKK2iMJNGsWDBsGq1eH2S0OVm8WERGpXOUdcLK9mb1gZj+Y2TIze97M2ic6uBrl5JPDOBBbtkD//vCPf2z/NSIiIrKV2iMJ8uabcMAB4f7kyUo8iIhIQpS328WjwEtAW6Ad8HJsnVRE794wdSpkZMCJJ8Kf/xySESIiIlIeao9UtsceC2M8pKXBJ59AenrUEYmISA1V3uRDK3d/1N3zY8tjQKsExlVztW4NkyaFLhg33gjHHQdr10YdlYiISDJQe6SyuMNf/hLaI4MHwwcfQHsVkYiISOKUN/nwo5mdYmZ1YsspwPJEBlaj1a8PDz8MY8fCSy/Br38Nc+dGHZWIiEh1p/ZIZdi0Cc45B66/Pkyp+corYZpwERGRBCpv8uEswrRW3wNLgeOBMxMVVK1gBpdcEgZ1WrgwDET57rtRRyUiIlKdqT2yo1avhiOOgEceCd0/H30Udtop6qhERKQWKFfywd0XuPuR7t7K3Xdz96OBYxMcW+1w6KEwZQq0agWHHAIPPBB1RCIiItWS2iM7aMkSGDgQ3n47TAH+l79oKk0REaky5a18KMlllRZFbbfXXmGQp9/8Bn73O7jgAti4MeqoREREkoHaI+Xx+efQrx/873+hm8XZZ0cdkYiI1DI7knxQqrwyNWsGL74IV10FDz4YqiByc6OOSkREpLpTe2R7Jk2CAQMgPx/efz9c7BAREaliO5J88EqLQoI6deDWW+Gpp0JXjD59YPbsqKMSERGpztQeKUt2dkg2tG8fqix79ow6IhERqaXKTD6Y2RozW13CsoYwx7YkQlZWuDKxaVOYCeNf/4o6IhERkcjsaHvEzA4zszlm9q2ZXV3C81eY2czY8rmZbTazXRPyZqrSl1/CqadC//4weTJ07Bh1RCIiUouVmXxw9ybu3rSEpYm7162qIGulPn0gJwe6dYPjjguDQm3ZEnVUIiIiVW5H2iNmVge4HxgKdAGGm1mXYvu/3d17uHsP4E/Ae+7+U6LeT5UZNy5M7/2Pf0Dz5lFHIyIitdyOdLuQRGvTJky/edppYS7uE0+EtWujjkpERCSZ9AW+dffv3H0jMAE4qozthwPPVElkifTTT/DEE6GasmXLqKMRERFR8qHaa9AAHnsM7rwTXnghlE5++CG4uriKiIiUQztgYdzjRbF12zCzhsBhwPNVEFdiPfwwrFsHv/991JGIiIgASj4kBzO47DJ49VVYtCiMWN2jR5gVY82aqKMTERGpzkqaDaO0DP5vgQ9L63JhZiPNLMfMcnKr84xU+flw330weDCkp0cdjYiICKDkQ3L5zW9gwQIYPx5SUuCCC6BdO7jwwjB/t4iIiBS3COgQ97g9sKSUbU+mjC4X7j7e3TPdPbNVq1aVGGIle+ml0F5Q1YOIiFQjSj4km0aN4NxzYfp0+PhjOOaYUFrZvTsMHAgTJsDGjVFHKSIiUl1MBfYys05mthMhwfBS8Y3MrBkwCHixiuOrfPfcA6mpcOSRUUciIiKylZIPycoM+vWDxx8PXTFuvx0WL4bhw6FDBxg9GubPjzpKERGRSLl7PnARMBH4CnjO3b8ws/PN7Py4TY8B3nD3n6OIs9LMnBmm677oIrIn1CEtLRRLpqVBdnbUwYmISG2m5ENN0LIl/PGP8M038PrrISlx662wxx7hqsfrr2uaThERqbXc/VV3/5W77+nuY2LrHnT3B+O2eczdT44uykoybhw0bMg/mp7NyJHhOoR7uB05UgkIERGJjpIPSSQ7m7KvYKSkhHEhXnwR5s6FP/0JPv0Uhg6FvfYK1RE//hhB5CIiIpJwubnw9NNw+ulccfMu5OUVfTovLxRGioiIREHJhySRnU3FrmB07Ag33QQLF4ZxINq3hyuvDLennRbGi9B0nSIiZVu5Er7+GtavjzoSke0bPx42bICLL2bBgpI3KW29iIhIopkn2QloZmam5+TkRB1GlUtLK3kIh9RUmDevnDv54gt44AF44okwRWePHmHGjBEjoHHjSoxWRCRJrV0LkyfDpEnwzjthcN+Cbmtt2kCnTuEPcqdORe936AD16kUZOQBmNs3dM6OOozaodu2RTZvC72O3bjBxYuW0G0RERH6B0tojSj4kiZSUkgsVzH7BcA5r14aSif/7P5g9G5o2hdNPD1Nyde5cKfGKiCSF9etDJdg774SEw6efQn5+SCT06wcHHhiSCwsWhO5sc+eGM7eFC2Hz5sL9pKSEyrLiSYmC+23bQp06CX87Sj5UnWrXHpkwIQw6/Z//wLBhWysm47teNGwYiiOysqILU0REaj4lH5JcQq5guIdG9wMPwHPPhasmxx0HV1wBffvuQLQiItXUpk0wdWpINrzzDnz0UShTT0mBPn1gyJCQcPj1r8PUxmXtZ9Gi8Ac4PilRcH/JkqLb16sX/mDHJyXS02HYsEp9e0o+VJ1q1x7Zf/8wrtOcOeH3mXCdYfTokDvr2BHGjFHiQUREEk/JhySX8CsYS5fCvfeGaohVq2DgwDBGxNChWxsxIiJJZ/NmmDGjsLLhgw/g559D2VhGRkg0DBkCBxwAzZpV3nHXry+sligpQZGbCwcfDG++WXnHRMmHqlSt2iNTpsB++8E994QqRhERkQiV1h6pG0UwUnEFCYaEXcFo0wZuvjnMkPHQQ3D33XDEEdClS5jGc8QIqF+/kg4mIpIgW7aE8W0KKhveey8kVCH8PTvjjJBwGDQIWrRIXBwNGsCvfhWWkqxdG8beEakM48ZBkybh91tERKSaUuWDlGzTJnj22TA95+zZob/yJZfAeedV7tVBEZGK2rgRvv8+VGwtWVJ4O2cOvPtu4ZTCe+4ZEg0HHgiDB0Pr1lFGXSVU+VB1qk17ZOnS0KXnd7+DsWOjjkZERESVD1JB9erBKaeE0oo334TbboOrrgrTd553XkhEtG8fdZQiUpNs2BBOpOKTCsUTDEuXFiYX4tWpE2acGDYsdKMYMiSUiInUdA8+GAZJveiiqCMREREpU8KSD2b2CHAE8IO7dyvheQPuAQ4H8oAz3H16ouKRX8gMDj00LNOnh0qIu+4K/UpHjAhdMrpt8+MVkWSVnw/TpoUKgo8/DgmBunXDUqdOybcVfc4dli3bNrHw00/bxlO3bqhYaNMG9tgD+vcPlVht2hTetmkDrVpVyWwSItXKhg0h+TBsmGarEhGRai+RlQ+PAfcBT5Ty/FBgr9iyH/BA7Faqq1694JlnwtgQd98NDz8Mjz8eBqW88srQh9os6ihFpCI2b4aZM8NgjAUDMhaMRbDPPqEf+ebNISlRcBt/f3vPlaZevZBUaNs2nDQNHLhtQqFtW2jZUoPeipTm2Wfhhx80yKSIiCSFhCUf3P19M0srY5OjgCc8DDrxiZk1N7M27r40UTFJJenUKQxudd11YXaMe+8NJc6ZmSEJceyxugIpUl1t2RLGcSlINrz/fuGAjHvvHbpaDRkSxkjYbbcdO5Z7OF7xhIQ7NG+upILIjnAPVYj77htmThEREanmohzzoR2wMO7xotg6JR+SRYsWcO21oevFE0/AHXfAiSeG0ujLLoMzzwzzgYpIdApmf5g0KXSleO+9wu4NnTuH7+yQIaFyqW3byj22WUhEKhkpUvk+/DB0h3zgAVUdiohIUogy+VDSf8oSp94ws5HASICOGkCs+tl55zAI5TnnwIsvhsEpL7ooVEaMHBlOajIzEzutnYgE7vDf/xZWNsTP/pCWBkcdVVjZ0KFDhIGKyA4ZNy5UEJ16atSRiIiIlEuUyYdFQHzLtz2wpKQN3X08MB7C1FaJD01+kTp1QpeLY46ByZPD4JS33gq33BKe79QJ+vQJiYg+faB379CfXETKtnlzmF5y06ZwG39/0yZYtw5yckKi4d13wzSUEJILhx9emGxIS4vuPYhI5Vm4EP71r1Bl2KhR1NGIiIiUS5TJh5eAi8xsAmGgyVUa76GGMIMDDgjLqlWhLHTq1LBMmQLPPVe43d57h0REQVKiR49QSSFSE6xdC19/HSoR5swJy/Ll2yYPSrqNv+/lzLm2aQMHHlg41eQee6gcW6Qm+r//C38XLrww6khERETKLZFTbT4DDAZamtki4DqgHoC7Pwi8Sphm81vCVJtnJioWiVCzZoUnQgVyc8NV2pyckJB480148snwXN26YerOguqIPn3C43r1oolfZHu2bIFFi4omGAruL1pUuF1KSqg82H132GmncLVyl13C7/ZOOxXext/f3m38/S5d4Fe/UrJBpKbLy4Px4+HooyE1NepoREREyi2Rs10M387zDihlXxu1ahWm5xw6NDx2hyVLQiKiICHx/PPw0EPh+fr1Q0VEfJeNvffWIHZStX7+uWgVQ3yyYd26wu2aNQu/nwceGG732Sfcdu4cfpdFRHbE00+HQWM1vaaIiCSZKLtdiARm0K5dWI4+Oqxzh7lzC7tr5OTAY4/BffeF5xs0gD33DCd0e+0Vbgvut28f7RR+eXmwYAHMnx+WBQtg111D0qRXL/XPrc7WrQs/s3nz4NtviyYaSqpi2GefUNUTn2TYfXdVH4hIYhRMr5mRAQMHRh2NiIhIhSj5INWTWeivvscecNJJYd3mzeHK89SpMHs2/O9/8M03MHEirF9f+Nr69cPrSkpMdOiwYxUT7rByZWFioaQlN7foa1JSQml+wf0uXQq7lPTpA+npoWxeEm/DhsLkQsEyd27h/YKBGgs0bRoSCsUTDJ07hwSYiEhVmjQJPv8cHn5YSU4REUk6Sj5I8qhTB/bdNyzxtmwJ3Ta++SZcrf7228L7b71VtCS+Xr2QmCielOjcGTp2DMmBZcvKTi6sWVP0+DvvHPrdpqaGyoaC+wVL27aF41wUVHK8/DI8+mh4/U47hatY8QmJffap/t1KNm8OAyquWgWrVxfext+P3qJ8bgAAFhBJREFUX5eXF6o+GjcOs5w0aVJ4v6R1Bfcr0lVh48YwCnx8QiE+wbCk2IQ6deuGn1FaGgwbFmZkSUsLyx57QOvWauCLSPUxbhy0bAkjRkQdiYiISIWZl3cU9WoiMzPTc3Jyog5DkkXBeBLFkxIFy88/F25br15IPmzYUHQfzZtvm1AoOGFNTQ0NwYqeoLqHREZBMmLqVJg2rTCx0ahRmIo0fiaQypy5wD0ca8WKUMmxcmXR+8WTByUlE4onYUpiFqoHmjYNSZq8vJCwWLMmJC/Ko169spMTBZ/l3LmweHHRmSHq1AnVLvFJhbS0wsdt21b/JI9IBZjZNHfPjDqO2qDK2yPffRcS5aNGwU03Vd1xRUREKqi09ogqH6Rmix9PYtCgos+5hzL7+MREfv62SYamTRMTV8GJ8AknhHVbtoTxBeITEvfdV5gM2XXXorOA9O4drtzHJw5KSiaU9NzKlYVdQUrTqFF4782aFd62a1f4uPhzJd02alTy+BvuoatMQSKi4Db+/vbWLVsWbt3Dz+nAA4smGTp1CvHW1Z85EakB7r8/JEsvuCDqSERERH4RVT7UctnZMHp0GBOxY0cYMwaysqKOSrbauDH0742fCeTzz8tXNdCgQZjKsXnzsBTc39665s1D4kAn7SJJR5UPVadK2yNr14bBlIcOhWeeqZpjioiI/EKqfJBtZGfDyJGhEh5C5frIkeG+EhDVxE47hXEkevWC884L6/LyYOZMmDEjVBWUlEho1kwDIoqI1BSPPx66vWl6TRERSWKqfKjF0tJCwqG41NQwNp+IiCQXVT5UnSprj2zZEmZJatoUPv1Ug+CKiEi1p8oH2caCBRVbLyIiIlXsjTfCeEBPPaXEg4j8f3v3H3NXXR9w/P1pKZNnOJnQIaP0h64ugTgUmvprGpzbAoyI29wsPmbGGZ/U0Ih/bLNJE2KW9Q9n9qvQ2TxsDeKeDF2mSGYBDXHqgjgKabEV0drQH4JQNMK6x4iFz/4451lvL/c+8LT33HPPue9XcnLP+Z7vPf188733Pt98+j3fIzVaj5XgNC6WL19YuSRJGrItW4rH/s4tTixJUkOZfBhjmzfDxMSJZRMTRbkkSarZww/DHXcUT7g4/fS6o5Ek6ZSYfBhjk5MwPV2s8RBRvE5Pu9ikJEkj4cYbi6TD3ILDkiQ1mGs+jLnJSZMNkiSNnKeegptvhnXr4Nxz645GkqRT5swHSZKkUbN9Oxw96uM1JUmtYfJBkiRplDz7bHHLxZvfDJdeWnc0kiQNhMkHSZKkUfLFL8L+/XDddXVHIknSwJh8kCRJGiVbtsCyZfDOd9YdiSRJA2PyQZIkaVTs2QN33w3XXgtLltQdjSRJA2PyQZIkaVTccAO85CXwwQ/WHYkkSQNl8kGSJGkU/PjH8OlPw3vfC2efXXc0kiQNlMkHSZKkUXDTTfDTn/p4TUlSK5l8kCRJqtuxY7B1K7ztbfCa19QdjSRJA2fyQZWYmYGVK2HRouJ1ZqbuiCRJGmG33QaHDvl4TUlSa51WdwBqn5kZmJqC2dni+MCB4hhgcrK+uCRJGllbtsCqVXDVVXVHIklSJZz5oIHbtOl44mHO7GxRLkmSuhw9Wtx2sWEDLF5cdzSSJFXCmQ8auIMHF1YuSdJYO/NMuOceeO65uiORJKkyznzQwC1fvrBySZKqFBGXR8TDEbEvIjb2qXNZROyKiL0R8dVhxwgUCyVJktRS/pXTwG3eDBMTJ5ZNTBTlkiQNU0QsBrYCVwAXAtdExIVddc4C/hF4R2ZeBPzR0AOVJKnlTD5o4CYnYXoaVqyAiOJ1etrFJiVJtVgL7MvM/Zn5DHArcHVXnfcAn8vMgwCZ+cSQY5QkqfVc80GVmJw02SBJGgnnA4c6jg8Dr++q82pgSUT8J/BS4B8y85bhhCdJ0ngw+SBJktosepRl1/FpwKXA24EzgG9ExL2Z+d0TLhQxBUwBLHchI0mSFsTbLiRJUpsdBi7oOF4GPNqjzp2Z+b+Z+STwNeDi7gtl5nRmrsnMNUuXLq0sYEmS2sjkgyRJarP7gNURsSoiTgfWAbd31fkC8JaIOC0iJihuy3hoyHFKktRq3nYhSZJaKzOPRcQG4C5gMbA9M/dGxPry/LbMfCgi7gQeBJ4D/ikz99QXtSRJ7WPyQZIktVpm7gB2dJVt6zr+BPCJYcYlSdI48bYLSZIkSZJUKZMPapSZGVi5EhYtKl5nZuqOSJIkSZL0QrztQo0xMwNTUzA7WxwfOFAcA0xO1heXJEmSJGl+znxQY2zadDzxMGd2tiiXJEmSJI0ukw9qjIMHF1YuSZIkSRoNJh/UGMuXL6xckiRJkjQaTD6oMTZvhomJE8smJopySZIkSdLoqjT5EBGXR8TDEbEvIjb2OH9ZRDwVEbvK7foq41GzTU7C9DSsWAERxev0tItNSpIkSdKoq+xpFxGxGNgK/A5wGLgvIm7PzG93Vf16Zl5VVRxql8lJkw2SJEmS1DRVznxYC+zLzP2Z+QxwK3B1hf+eJEmSJEkaQVUmH84HDnUcHy7Lur0xInZHxB0RcVGF8UiSJEmSpBpUdtsFED3Ksuv4AWBFZh6NiCuB24DVz7tQxBQwBbDcRxtIkiRJktQoVc58OAxc0HG8DHi0s0JmPp2ZR8v9HcCSiDin+0KZOZ2ZazJzzdKlSysMWeNqZgZWroRFi4rXmZm6I5IkSZKk9qgy+XAfsDoiVkXE6cA64PbOChHxioiIcn9tGc+PKoxJep6ZGZiaggMHILN4nZoyASFJkiRJg1JZ8iEzjwEbgLuAh4DPZubeiFgfEevLau8C9kTEbmALsC4zu2/NkCq1aRPMzp5YNjtblEuSJEmSTl2Vaz7M3Uqxo6tsW8f+jcCNVcYgvZCDBxdWLkmSJElamCpvu5Aaod8apq5tKkmSJEmDYfJBY2/zZpiYOLFsYqIolyRJkiSdOpMPGnuTkzA9DStWQETxOj1dlEuSJEmSTl2laz5ITTE5abJBkiRJkqrizAdJkiRJklQpkw9ShWZmYOVKWLSoeJ2ZqTsiSZIkSRo+b7uQKjIzA1NTMDtbHB84UByDt3hIkiRJGi/OfJAqsmnT8cTDnNnZolySJEmSxonJB6kiBw8urFySJEmS2srkg1SR5csXVi5JkiRJbWXyQarI5s0wMXFi2cREUS5JkiRJ48Tkg1SRyUmYnoYVKyCieJ2edrFJSZIkSePH5INUoclJeOQReO654nVQiQcf4SlJkiSpSXzUptQwPsJTkiRJUtM480FqGB/hKUmSJKlpTD5IDeMjPCVJkiQ1jckHqWF8hKckSZKkpjH5IDVMlY/wdCFLSZIkSVUw+SA1TFWP8JxbyPLAAcg8vpClCQhJkiRJp8rkg9RAVTzC04UsJUmSJFXF5IMkoLqFLL2VQ5IkSZLJB0lANQtZeiuHJEmSJDD5IKlUxUKW3sohSZIkCUw+SCpVsZBlVbdySJIkSWoWkw+S/t+gF7Ks4laOOa4lIUmSJDWHyQdJlaniVg6odi0JkxqSJEnS4Jl8kFSZKm7lgOrWknCBTEmSJKkaJh8kVWrQt3JAdWtJVLlApjMqJEmSNM5MPkhqnKrWkqgqqeGMCqleEXF5RDwcEfsiYmOP85dFxFMRsavcrq8jTkmS2szkg6TGqWotiaqSGk2cUeFMDbVFRCwGtgJXABcC10TEhT2qfj0zX1tufznUICVJGgMmHyQ1TlVrSVSV1GjajIoqr2tCQzVYC+zLzP2Z+QxwK3B1zTFJkjR2TD5IaqQq1pKoKqnRtBkVVVy3iU8oadp11df5wKGO48NlWbc3RsTuiLgjIi4aTmgFPxOSpHFg8kGSOlSR1GjajIoqrtu0J5Q07bqaV/Qoy67jB4AVmXkxcANwW88LRUxFxM6I2HnkyJGBBOdnQpI0Lkw+SFLFmjajoorrNu0JJU27ruZ1GLig43gZ8Ghnhcx8OjOPlvs7gCURcU73hTJzOjPXZOaapUuXDiQ4PxOSpHFh8kGShqBJMyqquG7TnlDStOtqXvcBqyNiVUScDqwDbu+sEBGviIgo99dSjI9+NIzg/ExIksaFyQdJaqiqZlRUcd2mPaGkaddVf5l5DNgA3AU8BHw2M/dGxPqIWF9WexewJyJ2A1uAdZnZfWtGJfxMSJLGhckHSWqwKmZUVHHdpj2hpGnX1fwyc0dmvjozX5WZm8uybZm5rdy/MTMvysyLM/MNmXnPsGLzMyFJGhcmHyRJQ9GkJ5Q07bpqLj8TkqRxEUOaVTgwa9asyZ07d9YdhiRJIyci7s/MNXXHMQ4cj0iS1Fu/8YgzHyRJkiRJUqVMPkiSJEmSpEqZfJAkSZIkSZWqNPkQEZdHxMMRsS8iNvY4HxGxpTz/YERcUmU8kiRJkiRp+CpLPkTEYmArcAVwIXBNRFzYVe0KYHW5TQGfrCoeSZIkSZJUjypnPqwF9mXm/sx8BrgVuLqrztXALVm4FzgrIs6rMCZJkiRJkjRkVSYfzgcOdRwfLssWWkeSJEmSJDVYlcmH6FGWJ1GHiJiKiJ0RsfPIkSMDCU6SJEmSJA3HaRVe+zBwQcfxMuDRk6hDZk4D0wARcSQiDgw21JFwDvBk3UFUoK3tAtvWRG1tF7S3bW1tF1TTthUDvp76uP/++590PNIobW0XtLdtbW0X2LYmamu7YIjjkSqTD/cBqyNiFfADYB3wnq46twMbIuJW4PXAU5n52HwXzcylVQRbt4jYmZlr6o5j0NraLrBtTdTWdkF729bWdkG72zYOHI80S1vbBe1tW1vbBbatidraLhhu2ypLPmTmsYjYANwFLAa2Z+beiFhfnt8G7ACuBPYBs8D7q4pHkiRJkiTVo8qZD2TmDooEQ2fZto79BK6tMgZJkiRJklSvKhec1MJM1x1ARdraLrBtTdTWdkF729bWdkG726bmauvnsq3tgva2ra3tAtvWRG1tFwyxbVFMPpAkSZIkSaqGMx8kSZIkSVKlTD4MSURcEBFfiYiHImJvRFzXo85lEfFUROwqt+vriPVkRMQjEfGtMu6dPc5HRGyJiH0R8WBEXFJHnAsVEb/e0R+7IuLpiPhIV51G9FtEbI+IJyJiT0fZyyPiyxHxvfL1l/u89/KIeLjsv43Di/rF6dO2T0TEd8rP2+cj4qw+7533s1u3Pm37WET8oOMzd2Wf945sv/Vp12c62vRIROzq895R77Oev/dt+b6p2RyPOB6pm+MRxyPDi/qFtXU8MrJjkcx0G8IGnAdcUu6/FPgucGFXncuA/6g71pNs3yPAOfOcvxK4AwjgDcA36475JNq4GPghsKKJ/Qa8FbgE2NNR9tfAxnJ/I/DxPu3+PvBK4HRgd/dnt+6tT9t+Fzit3P94r7aV5+b97Na99Wnbx4A/e4H3jXS/9WpX1/m/Aa5vaJ/1/L1vy/fNrdmb4xHHI3Vvjkccj4xSv7V1PDKqYxFnPgxJZj6WmQ+U+/8DPAScX29UQ3U1cEsW7gXOiojz6g5qgd4OfD8zD9QdyMnIzK8BP+4qvhr4VLn/KeCdPd66FtiXmfsz8xng1vJ9I6NX2zLzS5l5rDy8F1g29MAGoE+/vRgj3W/ztSsiAvhj4F+HGtSAzPN734rvm5rN8Yjjkbo5HnE8wgj1W1vHI6M6FjH5UIOIWAm8Dvhmj9NvjIjdEXFHRFw01MBOTQJfioj7I2Kqx/nzgUMdx4dp3mBnHf1/fJrab+dm5mNQ/EgBv9KjThv67k8p/qerlxf67I6qDeUUzu19psw1ud/eAjyemd/rc74xfdb1ez8u3zc1hOMRoJnfMccjhSb2neORZvVbK8YjozQWMfkwZBFxJvDvwEcy8+mu0w9QTKG7GLgBuG3Y8Z2CN2fmJcAVwLUR8dau89HjPY151EpEnA68A/i3Hqeb3G8vRtP7bhNwDJjpU+WFPruj6JPAq4DXAo9RTAns1uR+u4b5/5ehEX32Ar/3fd/Wo6wp/aYGcTxygsZ8xxyPPE+T+s7xyHFN6bfGj0dGbSxi8mGIImIJRefPZObnus9n5tOZebTc3wEsiYhzhhzmScnMR8vXJ4DPU0zX6XQYuKDjeBnw6HCiG4grgAcy8/HuE03uN+Dxuemm5esTPeo0tu8i4n3AVcBkljexdXsRn92Rk5mPZ+azmfkccBO9Y25kv0XEacAfAJ/pV6cJfdbn977V3zc1h+ORRn/HHI8c15i+czzSvH5rw3hkFMciJh+GpLxn6J+BhzLzb/vUeUVZj4hYS9E/PxpelCcnIn4xIl46t0+xsM6ermq3A38ShTcAT81N+WmIvpnPpvZb6XbgfeX++4Av9KhzH7A6IlaV/+OyrnzfSIuIy4GPAu/IzNk+dV7MZ3fkdN2f/Pv0jrmR/Qb8NvCdzDzc62QT+mye3/vWft/UHI5HHI+MqNb+PjoeaWa/0fDxyMiORXIAq1a6vagVR3+TYrrKg8CucrsSWA+sL+tsAPZSrCh6L/CmuuN+kW17ZRnz7jL+TWV5Z9sC2Eqxcuq3gDV1x72A9k1Q/PF+WUdZ4/qNYrDyGPBziozmB4CzgbuB75WvLy/r/iqwo+O9V1Kskvv9uf4dpa1P2/ZR3K82933b1t22fp/dUdr6tO3T5ffoQYo/Buc1rd96tassv3nuu9VRt2l91u/3vhXfN7dmb/N8Phv3d61H2xyPNKDf+vxda8XvY5+2OR4Z4X7r1a6y/GYaPB6Z57e+1u9alBeXJEmSJEmqhLddSJIkSZKkSpl8kCRJkiRJlTL5IEmSJEmSKmXyQZIkSZIkVcrkgyRJkiRJqpTJB2mMRcSzEbGrY9s4wGuvjIiRed6xJEkaTY5HpPFwWt0BSKrVTzPztXUHIUmSxprjEWkMOPNB0vNExCMR8fGI+O9y+7WyfEVE3B0RD5avy8vycyPi8xGxu9zeVF5qcUTcFBF7I+JLEXFGWf/DEfHt8jq31tRMSZI0whyPSO1i8kEab2d0TXN8d8e5pzNzLXAj8Pdl2Y3ALZn5G8AMsKUs3wJ8NTMvBi4B9pblq4GtmXkR8BPgD8vyjcDryuusr6pxkiSpERyPSGMgMrPuGCTVJCKOZuaZPcofAX4rM/dHxBLgh5l5dkQ8CZyXmT8vyx/LzHMi4giwLDN/1nGNlcCXM3N1efxRYElm/lVE3AkcBW4DbsvMoxU3VZIkjSjHI9J4cOaDpH6yz36/Or38rGP/WY6vM/N7wFbgUuD+iHD9GUmS1IvjEaklTD5I6ufdHa/fKPfvAdaV+5PAf5X7dwMfAoiIxRHxS/0uGhGLgAsy8yvAXwBnAc/73w5JkiQcj0itYXZPGm9nRMSujuM7M3Pu8Va/EBHfpEhSXlOWfRjYHhF/DhwB3l+WXwdMR8QHKP5H4UPAY33+zcXAv0TEy4AA/i4zfzKwFkmSpKZxPCKNAdd8kPQ85T2WazLzybpjkSRJ48nxiNQu3nYhSZIkSZIq5cwHSZIkSZJUKWc+SJIkSZKkSpl8kCRJkiRJlTL5IEmSJEmSKmXyQZIkSZIkVcrkgyRJkiRJqpTJB0mSJEmSVKn/A9O7WVZHZoH4AAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(base_dir+'\\\\history_reuters1.csv')\n",
"history = df.to_dict()\n",
"\n",
"acc = list(history['acc'].values())\n",
"val_acc = list(history['val_acc'].values())\n",
"loss = list(history['loss'].values())\n",
"val_loss = list(history['val_loss'].values())\n",
"epochs = range(1, len(acc)+1)\n",
"\n",
"fig = plt.figure(figsize=(18,5))\n",
"plt.subplot(1, 2, 1)\n",
"plt.plot(epochs, loss, 'bo', label='Training loss')\n",
"plt.plot(epochs, val_loss, 'r', label='Validation loss')\n",
"plt.title('Training and validation loss')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Loss')\n",
"plt.legend()\n",
"\n",
"plt.subplot(1, 2, 2)\n",
"plt.plot(epochs, acc, 'bo', label='Training acc')\n",
"plt.plot(epochs, val_acc, 'r', label='Validation acc')\n",
"plt.title('Training and validation accuracy')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Loss')\n",
"plt.legend()\n",
"plt.show()\n",
"toggle()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"It seems that the network starts overfitting after 9 epochs. Let's train a new network from scratch for 6 epochs, then evaluate it on the test set."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def train_reuters_2():\n",
" model = models.Sequential()\n",
" model.add(layers.Dense(64, activation='relu', input_shape=(10000,)))\n",
" model.add(layers.Dense(64, activation='relu'))\n",
" model.add(layers.Dense(46, activation='softmax'))\n",
" model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])\n",
"\n",
" history = model.fit(partial_x_train, partial_y_train, epochs=9, batch_size=512,\n",
" validation_data=(x_val, y_val), verbose=0)\n",
" model.save(base_dir+\"\\\\reuters_2.h5\")\n",
" K.clear_session()\n",
" del model\n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2246/2246 [==============================] - 0s 188us/step\n",
"model achieves an accuracy of 78.63% for testing data\n"
]
}
],
"source": [
"model = models.load_model(base_dir+\"\\\\reuters_2.h5\")\n",
"results = model.evaluate(x_test, y_test)\n",
"print('model achieves an accuracy of {}% for testing data'.format(round(results[1]*100,2)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Prediction: `model.predict()` returns a probability distribution over all 46 topics. We need to use `np.argmax(predictions,axis=1)` to find out predicted class, which is the class with the highest probability."
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2246, 46)"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"array([ 3, 10, 1, ..., 3, 3, 1], dtype=int64)"
]
},
"execution_count": 42,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"predictions = model.predict(x_test)\n",
"display(predictions.shape)\n",
"predictions.shape\n",
"predictions = np.argmax(predictions,axis=1)\n",
"predictions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Regularization"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The fundamental issue in machine learning is the tension between optimization and generalization. \n",
"\n",
"**\"Optimization\"** refers to the process of adjusting a model to get the best performance possible on the training data (the \"learning\" in \"machine learning\"), while **\"generalization\"** refers to how well the trained model would perform on data it has never seen before. \n",
"\n",
"The goal of the game is to get good generalization, of course, but we do not control generalization; we can only adjust the model based on its training data."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Size of the Network\n",
"\n",
"The number of hidden units in each layer is a free parameter that can be adjusted to have the best predictive performance. Deep learning models tend to be good at fitting to the training data, but the real challenge is generalization, not fitting.\n",
"\n",
"In deep learning, the number of learnable parameters in a model is often referred to as the model's \"capacity\". There is a compromise to be found between \"too much capacity\" and \"not enough capacity\"."
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def create_data(n=10):\n",
" np.random.seed(11111113)\n",
" x = np.linspace(0, 1, n)[:, None]\n",
" return x, np.sin(2 * np.pi * x) + np.random.normal(scale=0.25, size=(10, 1))\n",
"\n",
"def regularization():\n",
" x_train, y_train = create_data()\n",
" for i, m in enumerate([1, 3, 30]):\n",
" model = models.Sequential()\n",
" model.add(layers.Dense(m, activation='tanh', input_shape=(1,)))\n",
" model.add(layers.Dense(1))\n",
" model.compile(optimizer='Adam',loss='mean_squared_error', metrics=['mae'])\n",
" model.fit(x_train, y_train, epochs=10000, batch_size=1, verbose=0);\n",
" model.save(base_dir+\"\\\\regularization_{}.h5\".format(m))\n",
" K.clear_session()\n",
" del model\n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/png": "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1ux4UNYsfkpEZG6sC02gRF2QUu5GzcLc/0HNJXnJAOY1Jz9ZJlFzKSYREREREREREbVnnElERERERERERERsEhEREREREREREZtEREREREREREQENomIiIiIiIiIiAhsEhEREREREREREQCN0gEa4+HhIYODg5WOQURkcWJjY69JKT2VzqEk1ggiooaxTrBOEBE1pqE6YdFNouDgYBw7dkzpGEREFkcIkax0BqWxRhARNYx1gnWCiKgxDdUJXm5GRERERERERERsEhEREREREREREZtEREREREREREQENomIiIiIiIiIiAhsEhEREREREREREdgkIiIiIiIiIiIisElERERERERERERgk4iIiIiIiIiIiMAmkWlJ2fhrIiJq31gniIioIawRRKQANolMZf58IDr6fydzKWtez5+vZCoiIrIUrBNERNQQ1ggiUgibRKYgJZCfD6xe/b+Te3R0zev8fH4KQETU3rFOEBFRQ1gjiEhBGqUDtElCACtX1jxfvbrmAQBTp9Z8XQjlshERkfJYJ4iIqCGsEUSkICEtuBMdFRUljx07pnSM5pMSUNWbrKXX86ROREYhhIiVUkYpnUNJrb5GAKwTRGQyrBNtoE6wRhCRCTVUJ3i5manUTQutr/51xURE1L6xThARUUNYI4hIIWwSmUL964anTq3p+k+deuN1xURE1H6xThARUUNYI4hIQVyTyBSEAFxcbrxuuO66YhcXThMlImrvWCeIiKghrBFEpCCuSWRKUt54Ev/9ayKiZuJaE22gRgCsE0RkMqwTbaBOsEYQkQlxTSIl/P4kzpM6ERHVxzpBREQNYY0gIgWwSURERERERERERGwSERERERERERERm0RERERERERERAQ2iYiIiIiIiIiICGwSERERERERERER2CQiIiIiIiIiIiKwSURERERERERERGCTiIiIiIiIiIiIYKQmkRDiYyFElhDidAPfF0KIt4UQF4UQJ4UQfYxxXCIiah1YJ4iIqCGsEURElsNYM4k+BTCkke/fDyCi9jEBwHtGOi4REbUOn4J1goiIbu5TsEYQEVkEozSJpJQHAeQ2sslwAOtljcMAXIQQPsY4NhERWT7WCSIiaghrBBGR5dCY6Th+AFLrvU6r/VqGmY5PAKqqcpGf/x8UFf2G4uLjKCtLhF5fCp2uFEKoYWPjDxubQDg4RMLFZRCc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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"x_train, y_train = create_data()\n",
"x = np.linspace(0, 1, 100)[:, None]\n",
"plt.figure(figsize=(20, 5))\n",
"for i, m in enumerate([1,3,30]):\n",
" plt.subplot(1, 3, i + 1)\n",
" model = models.load_model(base_dir+\"\\\\regularization_{}.h5\".format(m))\n",
" y = model.predict(x)\n",
" plt.scatter(x_train, y_train, marker=\"x\", color=\"r\")\n",
" plt.plot(x, np.sin(2 * np.pi * x), color='y')\n",
" plt.plot(x, y, color=\"k\")\n",
" plt.title(\"# hidden units={}\".format(m))\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We consider the movie-review classification problem."
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def network_size():\n",
" np_load_old = np.load\n",
" np.load = lambda *a,**k: np_load_old(*a, allow_pickle=True, **k)\n",
" (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)\n",
" np.load = np_load_old\n",
" x_train = vectorize_sequences(train_data)\n",
" x_test = vectorize_sequences(test_data)\n",
" y_train = np.asarray(train_labels).astype('float32')\n",
" y_test = np.asarray(test_labels).astype('float32')\n",
"\n",
" original_model = models.Sequential()\n",
" original_model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))\n",
" original_model.add(layers.Dense(16, activation='relu'))\n",
" original_model.add(layers.Dense(1, activation='sigmoid'))\n",
" original_model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])\n",
" original_hist = original_model.fit(x_train, y_train, epochs=20, batch_size=512,\n",
" validation_data=(x_test, y_test), verbose=0)\n",
" df = pd.DataFrame.from_dict(data=original_hist.history, orient='columns')\n",
" df.to_csv(base_dir+'\\\\history_imdb_orig.csv', header=True, index=False)\n",
" K.clear_session()\n",
" del original_model\n",
"\n",
" smaller_model = models.Sequential()\n",
" smaller_model.add(layers.Dense(4, activation='relu', input_shape=(10000,)))\n",
" smaller_model.add(layers.Dense(4, activation='relu'))\n",
" smaller_model.add(layers.Dense(1, activation='sigmoid'))\n",
" smaller_model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])\n",
" smaller_model_hist = smaller_model.fit(x_train, y_train, epochs=20, batch_size=512,\n",
" validation_data=(x_test, y_test), verbose=0)\n",
" df = pd.DataFrame.from_dict(data=smaller_model_hist.history, orient='columns')\n",
" df.to_csv(base_dir+'\\\\history_imdb_small.csv', header=True, index=False)\n",
" K.clear_session()\n",
" del smaller_model\n",
"\n",
" bigger_model = models.Sequential()\n",
" bigger_model.add(layers.Dense(512, activation='relu', input_shape=(10000,)))\n",
" bigger_model.add(layers.Dense(512, activation='relu'))\n",
" bigger_model.add(layers.Dense(1, activation='sigmoid'))\n",
" bigger_model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])\n",
" bigger_model_hist = bigger_model.fit(x_train, y_train, epochs=20, batch_size=512,\n",
" validation_data=(x_test, y_test), verbose=0)\n",
" df = pd.DataFrame.from_dict(data=bigger_model_hist.history, orient='columns')\n",
" df.to_csv(base_dir+'\\\\history_imdb_big.csv', header=True, index=False) \n",
" K.clear_session()\n",
" del bigger_model\n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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dbZt2zY7/fTT7frrrzczs0svvdQ+/vhjMzPLycmxE044wczMRowYYW3atLG8Yv6PzJgxw+rWrWurV6+2rVu3Wv369e3vf/+7mZk99thjNmzYMDMz69Onj02aNMnMzJ555hnr16+fmZn17dvXJk+ebGZmY8aM2T0mev/99+3qq6+2goIC27lzp51zzjk2c+ZMM9szbjoQGo+IHLwfp/xo/2v4P5vhZtj/Gv7voH+WSXgraTwSdXPjUlMhL6/osbw8fzwlpXzXrF27NvPmzePjjz9mxowZXHzxxTz44IMMHDgQgHPPPReAli1bsmnTJurUqUOdOnWoWbMmv/76K4ceeih33HEHs2bNIiYmhlWrVpGbm8vvfve7Yp/vgw8+4Kuvvto9fXL9+vV888031KhRgw4dOtCoUaNiv65GjRr07t17d5bY2FiqV69Oy5YtWb58OQCffPIJQ4cOBeCEE06gYcOGLF26lFmzZvGXv/wFgOTkZJKTkwH49NNPWbx4MaeddhoA27Zto1OnTuX7gxQRqQp+/hnOOw8+/hhGjoSbbwbngk4lEWZ/DdoOZl3z3ssuMjMzufzyy1m0aFGRcz755BOGDRsGQIsWLXa/pn/++ed06dKFI488EoABAwawdOlSAKZPn87ixYt3X2PDhg1s3LgR8OOcWrVqFZunffv2HHvssQA0btyYnj17An4cUji7MjMzk9deew2AP/3pT/ztb38DYPbs2bz66qu7j996662AHwd98MEHnHzyyYCfQfrNN9/QuXPncvyJiUhF0PaVUhZRV3zYNZOvzMfLqlq1anTt2pWuXbvSsmVLJk+evLv4ULgcIyYmZvfnhfd37NhBeno6a9euZd68eVSvXp3ExES2bt1a4nOZGU888QS9evUqcjwjI4ND97PVW/Xq1XG7BtB7ZynMUXjtkrhiBt9mRo8ePZg6dWqJXyciEjZycuCss+Dbb2HqVLjkkqATSYQKVYO2vXXq1ImffvqJtWvXFjle0mv9/sYABQUFZGZmFltk2N/YY99xT3Fjj33tPd4oaexx++23c80115T4vCIiUvVEXc+HhIQDO14WWVlZfPPNN7vvz58/n4YNG5b569evX88xxxxD9erVmTFjBjk5Ofs9v1evXowbN47t27cDsHTpUjZv3ly+8Pvo3Lkz6buaYCxdupQVK1bQrFmzIscXLVrEV199BcApp5zC7NmzWbZsGeDXkRa+SyIiEla+/BJOOQV++AE++ECFBwmpkhqxVWSDtv/7v/9j586dHHXUUUWOn3766bz00ksALF68mIULFwLQoUMHZs6cyS+//MKOHTt2zzoA6NmzJ2PGjNl9v3B2RUU49dRTefHFFwFIT0/n9NNPB+C0004rcrxQr169ePbZZ3f3mFq1ahVr1qypsDwiIhIaUTfzIS0NBg8uuvQiLs4fL69NmzYxdOhQfv31Vw455BCOP/54JkyYUOavT0lJoW/fvrRr147WrVtzwgkn7Pf8q666iuXLl9OmTRvMjHr16vHGG2+U/xvYy3XXXce1115Ly5YtOeSQQ5g0aRKxsbEMGTKEQYMG7d5KtEOHDgDUq1ePSZMmcemll5Kf79+t+cc//kHTpk0rJI+ISKV4/3248EI44giYPh1OOinoRBLhktKSyBqcVWTpRUU0aNuyZQutW7cG/AyByZMn/2b3q+uuu44rrriC5ORkTj75ZJKTk6lbty7HHXccd9xxBx07dqR+/fqceOKJ1K1bF4DHH3+c66+/nuTkZHbs2EHnzp13N84+WI8//jhXXnklI0eOpF69ekycOBGA0aNHc9lllzF69Gj69++/+/yePXuyZMmS3cs8a9euzZQpUzjmmGMqJI9IJMtNzyU7NZv8FfnEJsSSlJak5RJSadz+pthVRe3atbPCjsyFlixZQvPmzct8jfR03+NhxQo/4yEtrfz9HqT8DvTvTUQkJCZOhKuvhhYt4J13YNduReHIOTfPzNoFnSMaVMR4JKhfAnbu3Mn27dupWbMm3377Ld27d2fp0qXUqFGDTZs2Ubt2bXbs2MH555/PlVdeyfnnnx/yTEHSeESiRW56brFFz2YTmqkAIRWqpPFI1M18AF9oULFBRCTKmcG998Ldd0OPHvDKK3DYYUGnkigSVIO2vLw8unXrxvbt2zEzxo0bR40aNQC/deb06dPZunUrPXv25Lzzzqv0fCISGqFqdCtSVlFZfBARkSi3fTtcey08+yxccQU89RRUrx50KpFKUadOHfadtVHo4YcfruQ0IlJZKqPRrcj+RF3DSRERiXKbNsG55/rCw9//7pddqPAgIiIRrjIa3YrsT8QUH8Ktd0W009+XiATixx+hSxf48EM/2+Gee6CYrfxEykuvb+FFf18STZLSkoiJK/rrX0U0uhUpq4goPtSsWZN169bpBSRMmBnr1q2jZs2aQUcRkWiyZInfSjMrC6ZNg6uuCjqRRBiNR8KLxiMSbeJT4mk2oRmxDWPBQWzDWDWblEoVET0fGjRowMqVK1m7dm3QUaSMatasSYMGDYKOISLR4pNP/FKLGjVg5kxo2zboRBKBNB4JPxqPSLQJqtGtCERI8aF69eo0atQo6BgiIlIVvfwy/OlPkJgI774Ler2QENF4REREpGQRsexCRESkWKNGwcUXQ7t2MHu2Cg8iIiIiAVHxQUREIk9BAdx0EwwfDhdc4BtMHnVU0KkkAM65Z51za5xzi0p43DnnHnfOLXPOfeWca1PZGUVERKKBig8iIhJZtm71sx0eewyGDYN//xtq1Qo6lQRnEtB7P4+fBTTZ9TEYGFcJmURERKKOig8iIhI5fv4ZevSAV16BRx/1BYhq1YJOJQEys1nAz/s5pR/wnHmfAoc7546tnHQiIiLRIyIaToqIiPDdd3DWWbB8Obz0EgwYEHQiCQ/HAd/vdX/lrmM/BBNHREQkMmnmg4iIhL8ZM6BTJ1izxvd3UOFBys4Vc8yKPdG5wc65uc65udpOU0RE5MCEtPjgnOvtnMva1cTptmIev8U5N3/XxyLn3E7n3JGhzCQiIhFk1Sq49FI480yoXdvvaHHGGUGnkvCyEvj9XvcbAKuLO9HMJphZOzNrV69evUoJJyIiEilCVnxwzlUDnsQ3cjoRuNQ5d+Le55jZSDNrbWatgduBmWa2v3WZIiIisH07PPwwnHACvP46jBgBCxdC8+ZBJ5PwMw24fNeuF6cA681MSy5EJFC56blkJmaSEZNBZmImuem5QUcSOWih7PnQAVhmZtkAzrkX8U2dFpdw/qXA1BDmERGRSDBjBtxwAyxeDH36+KaSjRsHnUqqKOfcVKArcLRzbiUwAqgOYGbjgXeAs4FlQB4wKJikIiJebnouWYOzKMgrACA/J5+swVkAxKfEBxlN5KCEsvhQXAOnjsWd6JyLw2+DdUMI84iISDhbtQr++ld48UVo1AimTYO+fYNOJVWcmV1ayuMGXF9JcURESpWdmr278FCoIK+A7NRsFR8krIWy50OZGzgBfYHZJS25UIMnEZEotm0bjBy5Z4nF3XfD11+r8CAiIhEpf0X+AR0XCRehLD6UuYETcAn7WXKhBk8iIlHqv/+FVq3gb3+Dbt38UosRI6BWraCTiYiIhERsQuwBHRcJF6EsPswBmjjnGjnnauALDNP2Pck5VxfoArwZwiwiIhJOVq6Eiy+GP/zBz3z4z3/8MoukpKCTiYiIhFRSWhIxcUV/TYuJiyEpTa+BEt5CVnwwsx34Hg7vA0uAl8zsa+fctc65a/c69XzgAzPbHKosIiISJrZtg3/+0y+xmDYN7rnHL7Ho0yfoZCIiIpUiPiWeZhOaEdswFhzENoyl2YRm6vcgYS+UDScxs3fwXaT3PjZ+n/uTgEmhzCEiImHgv//1u1j83//Buef6XSwaNQo6lYiISKWLT4lXsUEiTiiXXYiIiJRu5Uq46KI9SyzeegvefFOFBxEREZEIouKDiIgEY9s2eOghv8TiP//Zs8TinHOCTiYiIiIiFSykyy5ERESKNX26X2KRlQX9+sGoUZrpICIiIhLBNPNBREQqT1YWDBgAPXrAjh3w9tvwxhsqPIiIiIhEOBUfREQk9L74whcdmjf3BYd774VFi+Dss4NOJiIiIiKVQMsuREQkNMzg44/h/vvh/ffhsMPg9tth2DA45pig04mIiIhIJVLxQUREKpYZvPuuLzrMng316sEDD8CQIVC3btDpRERERCQAKj6IiEjF2LkTXnnFFxoWLICEBHjiCbjySoiLCzqdiIiIiARIxQcRETk4+fnw/PN+28xly/zWmZMmwWWXQfXqQacTERERkSpAxQcRESmfzZthwgR45BFYtQratoVXX4XzzoMY9TMWERERkT1UfBARkQPz888wZgw8/jisWwddusCzz/rtM50LOp2IiIiIVEEqPoiISNn88AOMGgXjxsGmTdCnj9+94tRTg04mIiIiIlWcig8iIrJ/2dkwciRMnAjbt8PFF8Ntt0FyctDJRERERCRMqPggIiLF+/prv3PFiy9CtWpwxRXwt7/B8ccHnUxEREREwoyKDyIi8lsffwxnngmxsTBsGAwfDscdF3QqEREREQlTKj6IiEhRv/4Kf/wjNGwImZlQr17QiUREREQkzKn4ICIie5jBNdfA6tUwe7YKDyIiIiJSIVR8EBGRPSZPhpdegvvvhw4dgk4jIiIiIhEiJugAIiJSRSxbBjfcAF27+saSIiIisl+56blkJmaSEZNBZmImuem5QUcSqbI080FERPwWmpddBjVqwPPP+90tREREpES56blkDc6iIK8AgPyc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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(base_dir+'\\\\history_imdb_orig.csv')\n",
"history = df.to_dict()\n",
"original_val_loss = list(history['val_loss'].values())\n",
"df = pd.read_csv(base_dir+'\\\\history_imdb_small.csv')\n",
"history = df.to_dict()\n",
"smaller_model_val_loss = list(history['val_loss'].values())\n",
"df = pd.read_csv(base_dir+'\\\\history_imdb_big.csv')\n",
"history = df.to_dict()\n",
"bigger_model_val_loss = list(history['val_loss'].values())\n",
"epochs = range(1, len(original_val_loss)+1)\n",
"\n",
"fig = plt.figure(figsize=(18,5))\n",
"plt.subplot(1, 2, 1)\n",
"plt.plot(epochs, original_val_loss, 'r', label='Original model')\n",
"plt.plot(epochs, smaller_model_val_loss, 'bo', label='Smaller model')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Validation loss')\n",
"plt.legend()\n",
"plt.subplot(1, 2, 2)\n",
"plt.plot(epochs, original_val_loss, 'r', label='Original model')\n",
"plt.plot(epochs, bigger_model_val_loss, 'mo', label='Bigger model')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Validation loss')\n",
"plt.legend()\n",
"plt.show()\n",
"toggle()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Weight Regularization"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A common way to mitigate overfitting is to put constraints on the complexity of a network by forcing its weights to only take small values. It is done by adding to the loss function of the network a cost associated with having large weights. This cost comes in two flavors:\n",
"\n",
"- L1 regularization, where the cost added is proportional to the absolute value of the weights coefficients.\n",
"\n",
"\n",
"\n",
"- L2 regularization, where the cost added is proportional to the square of the value of the weights coefficients. L2 regularization is also called weight decay in the context of neural networks.\n",
"\n",
"We have shown that early stopping is an alternative to regularization, which can control the effective complexity of a network."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def train_l2():\n",
" np_load_old = np.load\n",
" np.load = lambda *a,**k: np_load_old(*a, allow_pickle=True, **k)\n",
" (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)\n",
" np.load = np_load_old\n",
" x_train = vectorize_sequences(train_data)\n",
" x_test = vectorize_sequences(test_data)\n",
" y_train = np.asarray(train_labels).astype('float32')\n",
" y_test = np.asarray(test_labels).astype('float32') \n",
" \n",
" from keras import regularizers\n",
" l2_model = models.Sequential()\n",
" l2_model.add(layers.Dense(16, kernel_regularizer=regularizers.l2(0.001),\n",
" activation='relu', input_shape=(10000,)))\n",
" l2_model.add(layers.Dense(16, kernel_regularizer=regularizers.l2(0.001),\n",
" activation='relu'))\n",
" l2_model.add(layers.Dense(1, activation='sigmoid'))\n",
" l2_model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])\n",
" l2_model_hist = l2_model.fit(x_train, y_train, epochs=20, batch_size=512,\n",
" validation_data=(x_test, y_test), verbose=0)\n",
" df = pd.DataFrame.from_dict(data=l2_model_hist.history, orient='columns')\n",
" df.to_csv(base_dir+'\\\\history_imdb_l2.csv', header=True, index=False)\n",
" K.clear_session()\n",
" del l2_model\n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(base_dir+'\\\\history_imdb_orig.csv')\n",
"history = df.to_dict()\n",
"original_val_loss = list(history['val_loss'].values())\n",
"df = pd.read_csv(base_dir+'\\\\history_imdb_l2.csv')\n",
"history = df.to_dict()\n",
"l2_model_val_loss = list(history['val_loss'].values())\n",
"\n",
"plt.plot(epochs, original_val_loss, 'r', label='Original model')\n",
"plt.plot(epochs, l2_model_val_loss, 'bo', label='L2-regularized model')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Validation loss')\n",
"plt.legend()\n",
"plt.show()\n",
"toggle()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Dropout"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dropout is one of the most effective and most commonly used regularization techniques for neural networks, developed by Hinton at the University of Toronto. \n",
"\n",
"Dropout, applied to a layer, consists of randomly \"dropping out\" (i.e. setting to zero) a number of output features of the layer during training. \n",
"\n",
"Let's say a given layer would normally have returned a vector [0.2, 0.5, 1.3, 0.8, 1.1] for a given input sample during training; after applying dropout, this vector will have a few zero entries distributed at random, e.g. [0, 0.5, 1.3, 0, 1.1]. \n",
"\n",
"The \"dropout rate\" is the fraction of the features that are being zeroed-out; it is usually set between 0.2 and 0.5. At test time, no units are dropped out, and instead the layer's output values are scaled down by a factor equal to the dropout rate, so as to balance for the fact that more units are active than at training time.\n",
"\n",
"Consider a Numpy matrix containing the output of a layer, layer_output, of shape (batch_size, features). At training time, we would be zero-ing out at random a fraction of the values in the matrix:\n",
"\n",
"\n",
"\n",
"This technique may seem strange and arbitrary. Why would this help reduce overfitting? Geoff Hinton has said that he was inspired, among other things, by a fraud prevention mechanism used by banks -- in his own words: \"I went to my bank. The tellers kept changing and I asked one of them why. He said he didn’t know but they got moved around a lot. I figured it must be because it would require cooperation between employees to successfully defraud the bank. This made me realize that randomly removing a different subset of neurons on each example would prevent conspiracies and thus reduce overfitting\".\n",
"\n",
"The core idea is that introducing noise in the output values of a layer can break up happenstance patterns that are not significant (what Hinton refers to as \"conspiracies\"), which the network would start memorizing if no noise was present."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 49,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"def dropout():\n",
" np_load_old = np.load\n",
" np.load = lambda *a,**k: np_load_old(*a, allow_pickle=True, **k)\n",
" (train_data, train_labels), (test_data, test_labels) = imdb.load_data(num_words=10000)\n",
" np.load = np_load_old\n",
" x_train = vectorize_sequences(train_data)\n",
" x_test = vectorize_sequences(test_data)\n",
" y_train = np.asarray(train_labels).astype('float32')\n",
" y_test = np.asarray(test_labels).astype('float32')\n",
" \n",
" dpt_model = models.Sequential()\n",
" dpt_model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))\n",
" dpt_model.add(layers.Dropout(0.5))\n",
" dpt_model.add(layers.Dense(16, activation='relu'))\n",
" dpt_model.add(layers.Dropout(0.5))\n",
" dpt_model.add(layers.Dense(1, activation='sigmoid'))\n",
" dpt_model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])\n",
" dpt_model_hist = dpt_model.fit(x_train, y_train, epochs=20, batch_size=512,\n",
" validation_data=(x_test, y_test), verbose=0)\n",
" df = pd.DataFrame.from_dict(data=dpt_model_hist.history, orient='columns')\n",
" df.to_csv(base_dir+'\\\\history_imdb_dpt.csv', header=True, index=False)\n",
" K.clear_session()\n",
" del dpt_model\n",
"toggle()"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3dd3xUZdbA8d8hIIgCFsoiHV5YpYQYQlMEEVAsiMhKMRZ0RVFRbKi76IrrYn8tiNJU0IUXFJSiYlsFEUWFuJGqdDRiiSAg0lLO+8cziSHMJBMyM3fK+X4+80nmzp25J8Nwz9ynnEdUFWOMMYmrgtcBGGOM8ZYlAmOMSXCWCIwxJsFZIjDGmARnicAYYxJcRa8DKKuaNWtq48aNvQ7DGGNiSkZGxi+qWsvfYzGXCBo3bszy5cu9DsMYY2KKiGwN9Jg1DRljTIKzRGCMMQnOEoExxiS4mOsj8CcnJ4esrCz279/vdSjGBFSlShXq169PpUqVvA7FmEPERSLIysqiWrVqNG7cGBHxOhxjDqOqbN++naysLJo0aeJ1OMYcIi6ahvbv38+JJ55oScBELRHhxBNPtKtWE5XiIhEAlgRM1LPPqIlWcZMIjDEmbuXlwZgxkJERlpe3RBAiWVlZ9O3bl+bNm9OsWTNGjBjBwYMH/e67bds2/vKXv5T6mueddx47d+48onhGjx7N448/fkTPDdbUqVMZPnx4ufcxxpTg+++hZ0+45x6YNSssh7BEEAKqysUXX8xFF13E+vXrWbduHXv27GHUqFGH7Zubm8tJJ53E7NmzS33dBQsWcNxxx4UjZGNMLJg/H5KTYdkymDIFHnooLIexRBACH374IVWqVOGqq64CICkpiSeffJIXX3yRvXv3MnXqVC655BL69OnD2WefzZYtW2jdujUAe/fuZcCAASQnJzNw4EA6duxYWEKjcePG/PLLL2zZsoVTTjmFoUOH0qpVK84++2z27dsHwOTJk2nfvj1t27alf//+7N27t8RYhwwZwvXXX0/37t1p2rQpH330EVdffTWnnHIKQ4YMKdxvxowZtGnThtatW3PXXXcVbp8yZQotWrSgW7dufPLJJ4Xbs7Oz6d+/P+3bt6d9+/aHPGaMKaP9++Gmm6BvX2jUCL78EoYMgTD1M8XF8NFD3HILZGaG9jVTUuCppwI+vHr1atq1a3fIturVq9OwYUM2bNgAwNKlS1mxYgUnnHACW7ZsKdzvueee4/jjj2fFihWsWrWKlJQUv8dYv349M2bMYPLkyQwYMIDXXnuNyy67jIsvvpihQ4cCcM899/DCCy9w0003lfjn/Prrr3z44YfMnz+fPn368Mknn/D888/Tvn17MjMzqV27NnfddRcZGRkcf/zxnH322cydO5eOHTty3333kZGRQY0aNejevTunnnoqACNGjODWW2+lS5cufPvtt5xzzjmsXbu21LfWGFPM2rUwaBCsWAG33QYPPgiVK4f1kPGXCDygqn5HhBTd3qtXL0444YTD9lmyZAkjRowAoHXr1iQnJ/s9RpMmTQqTRLt27QqTyapVq7jnnnvYuXMne/bs4Zxzzik13j59+iAitGnThjp16tCmTRsAWrVqxZYtW9i6dStnnnkmtWq5QoXp6eksXrwY4JDtAwcOZN26dQD85z//Yc2aNYXH2L17N7/99lupsRhjfFThhRfg5pvh2GPhrbfgvPMicuj4SwQlfHMPl1atWvHaa68dsm337t189913NGvWjIyMDI455hi/z1XVoI5Rucg3gqSkpMKmoSFDhjB37lzatm3L1KlTWbRoUdCvVaFChUNet0KFCuTm5lKxYuCPRaAhkPn5+SxdupSjjz46mD/HGFPUzp1w7bWuM7hnT3j5ZahbN2KHtz6CEOjRowd79+7l5ZdfBiAvL4/bb7+dIUOGULVq1RKf26VLF1599VUA1qxZw8qVK8t07N9++426deuSk5PD9OnTj+wPKKZjx4589NFH/PLLL+Tl5TFjxgy6detGx44dWbRoEdu3bycnJ4dZRUYwnH322YwbN67wfmaom+eMiVeffgpt28KcOfDII/DuuxFNAmCJICREhDlz5jBr1iyaN29OixYtqFKlCg8++GCpz73hhhvIzs4mOTmZRx55hOTkZGrUqBH0sR944AE6duxIr169OPnkk8vzZxSqW7cuDz30EN27d6dt27akpqbSt29f6taty+jRo+ncuTM9e/YkNTW18Dljx45l+fLlJCcn07JlSyZMmBCSWIyJW3l58K9/QdeuULEifPIJ3HknVIj8aVmCbZqIFmlpaVp8YZq1a9dyyimneBRR+eTl5ZGTk0OVKlXYuHEjPXr0YN26dRx11FFeh2bCIJY/qyaEsrLgssvgo49g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\n",
"text/plain": [
""
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" show code\n",
" "
],
"text/plain": [
""
]
},
"execution_count": 50,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.read_csv(base_dir+'\\\\history_imdb_orig.csv')\n",
"history = df.to_dict()\n",
"original_val_loss = list(history['val_loss'].values())\n",
"df = pd.read_csv(base_dir+'\\\\history_imdb_dpt.csv')\n",
"history = df.to_dict()\n",
"dpt_model_val_loss = list(history['val_loss'].values())\n",
"\n",
"plt.plot(epochs, original_val_loss, 'r', label='Original model')\n",
"plt.plot(epochs, dpt_model_val_loss, 'bo', label='Dropout-regularized model')\n",
"plt.xlabel('Epochs')\n",
"plt.ylabel('Validation loss')\n",
"plt.legend()\n",
"plt.show()\n",
"toggle()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
"width": "353px"
},
"toc_section_display": true,
"toc_window_display": true
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {
"00bf363ee03348f7957bda3c3d370e18": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "RadioButtonsModel",
"state": {
"_options_labels": [
"train",
"test"
],
"description": "Data:",
"index": 0,
"layout": "IPY_MODEL_ffd625deb7f74cf6ae5738e2bfe2b6a6",
"style": "IPY_MODEL_1cbf408959844470b20740988f5a175d"
}
},
"0203ab3a6aaf4e3dbc9dc0eff1b42803": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_3424315f4631432091a9ff5c8bd6d666",
"step": 1,
"style": "IPY_MODEL_ffe5304400b34ddfb1df91fe5319bc1d",
"value": 7
}
},
"0246781c8ec24f7d99125fc0782616dc": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntSliderModel",
"state": {
"description": "Index of Review:",
"layout": "IPY_MODEL_bef97f22ba7c4d0b9ff477cea22744ad",
"max": 30,
"style": "IPY_MODEL_c4b051fd59d54dbb8790f94dea27e3bb",
"value": 10
}
},
"04b767a81d0944dba2ead8668ac19e76": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"04f9f797c64248e4af714bf8531e68af": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_08acc8fb07b645b4a8e5e4c06a79acf2",
"step": 1,
"style": "IPY_MODEL_6da46a45492a441b89ed36b6d7374f78",
"value": 7
}
},
"050f0343a6b24b1abd8098a33d87b742": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"061b6993636f44748b4114ef125cb9d7": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"077fc24d5af644e19739082db94c2424": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"08acc8fb07b645b4a8e5e4c06a79acf2": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"08d3c57af91f4f50b801f9c0657b6161": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_7a3839b933004d2c8d78bbf350249a29",
"step": 1,
"style": "IPY_MODEL_74f9e018c8514b06b3e4165eaac3874b",
"value": 7
}
},
"09887a4db028419a8b915305bb3dc596": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"09b15fa5b18f4e66a21b993a01cc52af": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"0a0ed3865e004788aa0b3599e7e6675f": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_f5bc55411bec44b284d7fa62e2fb3249",
"step": 1,
"style": "IPY_MODEL_9bb6f1f03e03469aa623d96c2f56e64b",
"value": 7
}
},
"0e68af9643e04611b92932eccd719a26": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"11a6857d875f4acb83478bda110e79bd": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"13313fbf856e43b39a37bd2fa2d19a70": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_0246781c8ec24f7d99125fc0782616dc",
"IPY_MODEL_cdb9e591531f4dcfb6b9f45f8627b91f"
],
"layout": "IPY_MODEL_723b34a887da43a3adbd4c2574b760fa"
}
},
"14c51d742a904d3c84f8f15e854c6797": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"14d14e3ba39a4e5ea533e6034ea41c61": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"153b5c35fb584fb8917e27a2d357e7ff": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"16491b9693c94beba852e7ff70f3b280": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"16bc57a869094e72874ea9898a795af9": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"18c50ba68fbe4556b33dacd4fd6a9046": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"1cbf408959844470b20740988f5a175d": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"1d652b788c33478d93221ef114501dbd": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_e9816f18466b4e568584d6add4532980",
"IPY_MODEL_9d06a471a71e41c49ad5b6d8257ee845"
],
"layout": "IPY_MODEL_45355767ed8847cbba19a83d01d0dd08"
}
},
"20fba55a99994535a76c5ac08e3bdfa8": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"21f71d119b9b4f41b34c4cd309988a1f": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"23c4045450634fab90db45a4c6e261dd": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_901314f202fc4b999773f6c7ba660d49",
"IPY_MODEL_f9e9325163a546a88fc18f40334f361a"
],
"layout": "IPY_MODEL_70bf0c37b2c14faba03a648a689d8834"
}
},
"257cb4ee537a43c499986d2b50c7a356": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntSliderModel",
"state": {
"description": "Index of Review:",
"layout": "IPY_MODEL_04b767a81d0944dba2ead8668ac19e76",
"max": 30,
"style": "IPY_MODEL_e6a9e657953443758d3a006f60a57819",
"value": 10
}
},
"25eaa4e9bc2846a4a7cf0d8a29fb22ea": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"28e2a002a00845758ccd86455b2d3468": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_d315106cf8bd411e873ae2863582f81c",
"IPY_MODEL_b019554219064eafb5866f080fedcfe3"
],
"layout": "IPY_MODEL_815f53705b3b40769c3a56fe1774fc49"
}
},
"2a38f2e171834b0a9293017c3f58bf1a": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"2c9cd44ebeec4c2f9956b3774c03e3cd": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"322fdf784e1e4d849bf0f037a41d558e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntSliderModel",
"state": {
"description": "Index of Review:",
"layout": "IPY_MODEL_57835fb856f34f32bbb4aafcfa807fbe",
"max": 30,
"style": "IPY_MODEL_d4e44547191d40688e021359a3d61540",
"value": 10
}
},
"3424315f4631432091a9ff5c8bd6d666": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"3753f3b8ba004d4884ca7308818be833": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"39133ad48f7a499e9010126e2b582439": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_5eb400a82ac644189979c17d802e9cb8",
"IPY_MODEL_e3e6b20177d944038b3844d5576b6f83",
"IPY_MODEL_6a4dc20ccb094e21b0c845cfcec15ad6"
],
"layout": "IPY_MODEL_a432eee686df497ab20ac113b38ecbd1"
}
},
"3a5a38365ed9498d95193ce43d4cdedd": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_727a2247b75a454b93e1d2baff432ac4",
"step": 1,
"style": "IPY_MODEL_98951294a23d417c81e5585e7b4173ca",
"value": 7
}
},
"3dbd0f5894cc4bf7a2cc86b3aeacba31": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_e2c2bafbc83a4a3fb46e3637e2143276",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "number of misclassified images: 201\n"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvcAAACsCAYAAAD/qYOmAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nO3debxVVf3/8fdHwBkNBYkQpURLnAARLXPIUpOcwMwhFXNALQcUf6moZSkOv1LJNBUnEM1+X78yqEk4pca30pCcEfVrgCgqOADikNj6/bE3dffa+95z7rl7nWGf1/PxuA/uZ9119l7n3Df3rnPuXmeZc04AAAAAGt9qtR4AAAAAgHwwuQcAAAAKgsk9AAAAUBBM7gEAAICCYHIPAAAAFASTewAAAKAgCjm5N7O+ZubMrHNcTzezEVU47wVmdlvo87SHmT1iZsdV+7ZFRbb+g2zlh1z9B7nKD7n6D3KVH3L1H/Waq5pN7s1snpl9ZGYfmNlbZnaLma0b4lzOuX2ccxPLHNO3QowhPr4zsxXxff7AzG5sx22Djq29zOwbZvasmb1vZu+Y2RQz613rcUlNm60BZvakmX0Y/zugHbetq2xJkpmdYmb/MLNlZjbLzL5eB2NqqlyZ2RZmNs3MFpvZu2Y2w8y+3I7bk6vyxkSuGjxXq8TfO2dm/epgLE2Vq/j4e5jZ7Pj/96tmNrIdt62rXJnZd8xsZjzHetPMbjCzruXevtav3O/nnFtX0iBJO0g6z+9gkVqPM0/bOefWjT8a+ZWAFyTt7Zz7nKQvSHpZ0rW1HVJC02TLzFaXNE3SbZK6SZooaVrc3nDMbEdJl0r6rqT1Jd0kaYqZdarpwCJNkytJn5N0t6QvS+op6QlFOWtI5KpuFCpXq8RPFDer9Tg8TZMrM+siaYqk6xX9/z5E0hVmtl1NB1a59SVdpGh+taWkjSX9otwb18U31Dn3uqTpkraW/v2nirFm9j+SPpT0JTNb38xuMrNFZva6mV206oeymXUys1+a2RIze1XSd1oe37w/fZjZ8WY2x8yWm9kLZjbIzCZJ2kTSPfEz3R/HfXcysz/Hz56eNrPdWxzni2b2aHycByR1D/pAZTCzbmZ2b/wqyHvx5xt73TYzsyfMbGn8iskGLW7f6v1ri3PuLefcGy2aPpNU81crfE2Srd0ldZY0zjn3iXPuKkkmaY+OPHa1ypakvpKed8496aIttG9VdP836sj9yVMz5Mo594Rz7ibn3LvOuU8lXSnpy2a2YUceO3LVOnJVuRrmShZdnvJrSSd35D6E0gy5krSBpPUkTXKRv0maI6l/Rx67WuXKOfdb59wfnHMfOufek3SDpJ3LHrhzriYfkuZJ+lb8eR9Jz0u6MK4fkbRA0laKJi1dJE1V9IxsHUU/jJ+QdELc/0RJL8bH2UDSHyU5SZ1bHO+4+PODJb2u6FmsKZqQbuqPKa57S3pH0lBFT4T2jOse8df/IukKSWtI2lXSckm3tbj9M5IOb1E7SW9IelPSZEl9K3m8vPYNJR0kaW1JXSXdKWlqi68/Et/frePH7q5VYyzj/rV83DaR9L6kTVoce1XbvyR9KunoWuWpmbMl6XRJ073H4F5JoxsxW4p+QD8paUdJnSSdIunvkoxcVfdnlnf/D5S0qJLHi1yRq6LmKm77P5J+FX/uJPWrZaaaNVeSfivpR4r+f39V0tuS+jRqrrxxjJP0u7K//zUO3gfxnZkv6TeS1mpxh3/eom9PSZ+s+nrcdpikP8afPyzpxBZf26uN4M2QdFo531xJZyl6FtiyzwxJI+JvxEpJ63jBuq2N+7yrpNUV/VnyaknPrRpjpcHL6DdA0nte8C5tUfeX9M84/K3eP/9xK3HODeJj7VSrPDVztiSdL+8/vaTbJV3QiNlS9AthjKInjCslLZG0A7mqbq68Y2ys6BfYYe18vMgVuSp6rvpIekXS+nFdT5P7psqVpP0kvRXfbqWk4xs1V95t9pT0nqQtyr0/nVVbBzrnHmzla6+1+HxTRc8sF5nZqrbVWvT5gtd/fhvn7CPpf8sc36aSDjaz/Vq0dVH0rPULir7BK7zz9mntYM65x+JP/2lmp0lapuhaqmfLHE+Kma2t6M+a31Z0vbUkdTWzTs65z+Laf2y6KPrzVlv3r2zOuXfNbKKkp82st3NuZQV3JW/NlK0PFL0q2dJ6il7lqFgNs3WcpGMUvar0iqJfJPea2UCXvBSsFpopV5IkM+sh6X5Jv3HO3VHmONo6HrlKI1cdVMNcjVM0UV7akfEH0jS5MrOvSPp/koZJekDS5or+f7/hnPt9mePJOm5N51hmtpOiJzXfdc69VO7taj25b4tr8flrip5Vdm9l4rhIyW/4Jm0c9zW1vujFefVrip51He93NLNNJXUzs3VahG+TjGO0xSl6NakjRitamLSjc+5Ni94l5e/ecf3H5lNFr1q1ev8q0FnRn/LWk/RuDscLqWjZel7SaDMzFz/Nl7StpGvaGGs5apWt7STd0+IH2R/MbJGkr0n67wqOVy1Fy5XMrJuiCdjdzrmxbYyxPchV+5Cr8tQqV9+U9HUz+78t2v5iZqc5535bwfGqpWi52lrSXOfcjLiea2a/l7SPpIon96rhHMvMBipafH6Mc+6h9ty2LhbUluKcW6ToB8HlZraema1mZpuZ2W5xl/+SdKqZbRz/0Di7jcPdKOlMM9veIv3iEEnRn3O+1KLvbZL2M7O94wUla5rZ7ma2sXNuvqRZkn5mZqtbtFJ+P7XCzLay6O0KO1n0dlSXK/pz5Jz467ubWaknBl3iMaz66KzoGrCPJL0fL+L4acbtjjCz/vEz0J9L+u/4GWer96/EOGRmw83sy/H3ooei6+L+7pyr94l9QhGypehPe5/F41zDzFYt6npYarxsSfqbpO+Y2Zfix3FPSVsouoytIRQhV2a2nqI/If+Pcy41PnJVfeTq3+opV1soeuI4IP6Qovs/pYzb1oUi5ErRhHtzi94O08xsM0n7SnpaarxcmdnWkv4g6RTn3D2l+qeUe/1O3h9q4/omZVyHpOhtga6VtFDSUkXfyEPjr3VW9GeTdyT9Q9GCiszrweL6RElzFV3O8JykgXH7AYoWmbwv6cy4bUdJjyp6NXqxomeAqxZofUnSn+LjPKDoOvqWiz2el/T9+PM94nOuULTIY6qkzVv0PVLSn0s8Xs77WPU2SY/EY3hJ0gkZ9/0SRYtjlkm6R9Gzc5Vx//79uCl6NvpBi6+dEj/WKxQtEP6d4kUztf5otmzF9UBFiwU/kjR71XkbNFum6AfkAkWXFs2RdCS5qvrPrBHxmFbE/Vd9rDoWuSJXTZ+rjPE51c81902Tq7j+Xny+5fH9uEzSao2YK0m3KHqzkpb/R54v9/tv8UFQYxZtaHWn+8+flIBckC2EQK4QArlCCM2WKyb3AAAAQEE0xDX3AAAAAEpjcg8AAAAURIcm92b2bTOba2avmFlbq6eBspErhECuEAK5QihkC5Wq+Jp7M+ukaOXwnopWJf9N0S5zL+Q3PDQbcoUQyBVCIFcIhWyhIzqyidUQSa84516VJDP7naK3OWo1eN27d3d9+/btwCnRaObNm6clS5a0Z6MucoWSyBVCIFcIoYJcSe3MFrlqPm3lqiOT+95Kbrm7UNH7ebaqb9++mjVrVgdOiUYzePDg9t6EXKEkcoUQyBVCqCBXUjuzRa6aT1u56sg191nPFlLX+JjZSDObZWazFi9e3IHToUmQK4RArhACuUIoJbNFrtCajkzuF0rq06LeWNIbfifn3Hjn3GDn3OAePXp04HRoEuQKIZArhECuEErJbJErtKYjk/u/SdrczL5oZqtLOlTS3fkMC02MXCEEcoUQyBVCIVuoWMXX3DvnVprZyZJmSOok6Wbn3PO5jQxNiVwhBHKFEMgVQiFb6IiOLKiVc+4+SfflNBZAErlCGOQKIZArhEK2UCl2qAUAAAAKgsk9AAAAUBBM7gEAAICCYHIPAAAAFASTewAAAKAgOvRuOQDqy5NPPplq+9a3vpWoP/e5z6X6zJgxI1FvscUW+Q4MADwrVqxItV1yySWJetCgQak+w4cPDzYmoAh45R4AAAAoCCb3AAAAQEEwuQcAAAAKgsk9AAAAUBAsqAUaxIcffphqO+GEExL1vffem+qzbNmyNmtJOvjggxP1008/XckQURBmlqizFjA65xL1Vlttlepz4YUX5jswFMqUKVNSbf6C2u9///upPiyoBdrGK/cAAABAQTC5BwAAAAqCyT0AAABQEB265t7M5klaLukzSSudc4PzGFQpF198sT+OVJ+tt946Ue+3335Bx4T81CpX9ebZZ59N1Mccc0yqz+zZsxO1fx20lP3/w7f77ru3b3ANimyVx8/M1KlTU338rE2bNi3VZ+DAgYm6qNdKk6vKjB07NtXm56p79+7VGk7dIVdpixcvTrXNnDkzUd9zzz2pPq+99lqifvDBB1N9/Hnidtttl+pz/vnnJ+rVV1+99cHWUB4Lar/hnFuSw3GAlsgVQiFbCIFcIQRyhXbjshwAAACgIDo6uXeS7jezJ81sZFYHMxtpZrPMbFbWn1OADOQKobSZLXKFCpErhECuUJGOTu53ds4NkrSPpB+Z2a5+B+fceOfcYOfc4B49enTwdGgS5AqhtJktcoUKkSuEQK5QkQ5dc++ceyP+920zmyJpiKTH8hhYW84999xEnbVgsEuXLol6zTXXDDqmUvxFQhdccEGqTzkLM+6///5EfeSRR6b6+BsSNZpa5aqW3njjjVTbuHHjErW/eDZPt9xyS6LeYYcdUn2OOOKIYOevlmbMViWuu+66kn3OO++8RL1kSfqyYH9DoqIuqCVX5Zk8eXKinjt3bqqP//t8zJgxQcdUz8hVeuHrOeeck+rjv/lEnz59Un38zdB23nnnVJ877rgjUWctzO3Zs2eiPvnkk1N96kHFr9yb2Tpm1nXV55L2kvRcXgNDcyJXCIVsIQRyhRDIFTqiI6/c95Q0JX6W3VnSb51zf8hlVGhm5AqhkC2EQK4QArlCxSqe3DvnXpWUfhNQoAPIFUIhWwiBXCEEcoWOyON97uvSp59+2mZdbf4192eeeWYux81aId/o19w3o0svvTTVNmHChKqdf8WKFYl6xIgRqT7+Nf8DBgxI9TnqqKPyHRhqYuTIzDepSvDzcMMNN4QaDgpiypQpiTpr071dd02+f0Izb2LVbEaNGpVqu/nmmxP1BhtskOrjrxE6+uijKzq/v4axX79+qT4ffPBBRceuNt7nHgAAACgIJvcAAABAQTC5BwAAAAqCyT0AAABQEA25oPbaa69N1P7GTuXyN12ZOXNmxWMC2uPJJ59M1JMmTUr1yVpsVkoltynXlVdemagPOeSQVB8W1DavrOztsssuNRgJ6sFFF12Uaps6dWqi3mijjVJ9rrjiimBjQn05/fTTE/VVV12V6nPcccclan/+J0mdOnXKZTz/+Mc/cjlOPeCVewAAAKAgmNwDAAAABcHkHgAAACiIhrzm/sQTT2yzLteDDz6YqPfaa6+Kx1RK3759E/Xmm29e8jZbbbVVqm3DDTdM1MOHD+/QuFAbV199daJetmxZqk+87Xib/I2k7r777lSfp59+OlGPGzcu1eehhx4qeS7f73//+1TbLbfckqh/8IMftPu4aAz+hkRZeR02bFi1hoMa8zdUvP3221N9/M3yjj/++FSfQYMGlTzXnDlzEvWvfvWrVB//2Ntvv33J46K6tt1220Ttr8mQpL333jtR53V9fdbGpv46kaxNrPyNruoVr9wDAAAABcHkHgAAACgIJvcAAABAQZSc3JvZzWb2tpk916JtAzN7wMxejv/tFnaYKBpyhRDIFUIhWwiBXCGEchbUTpB0taRbW7SdLekh59ylZnZ2XJ+V//DCWrhwYS7H6dw5+TCOGTMm1cdfhLHZZpvlcu4GNkEFzVU5Jk6cmKjLWTw7ZMiQVNvkyZMTda9evVJ9evfunai7dUv/nqhkQe3aa6+dauvZs2e7j5OzCWriXFWTv1h2/PjxqT4F28RqgshWqy655JJEPXfu3FSfgw46KFFn/a4sh79Znr8poJT+mVrHC2onqElzVcs3XDjzzDNTbY8++miiztpQzf99Wq9KvnLvnHtM0rte8wGSVs1OJko6MOdxoeDIFUIgVwiFbCEEcoUQKr3mvqdzbpEkxf+m95AG2o9cIQRyhVDIFkIgV+iQ4AtqzWykmc0ys1n+++AClSJXCIFcIQRyhRDIFVpT6SZWb5lZL+fcIjPrJent1jo658ZLGi9JgwcPdhWer8OWL1+earvyyivbfRx/EykpvXHPvvvu2+7jQlID5qqajjvuuFTbWmutlaizcv7+++8n6htvvDGX8eyxxx6ptqFDh+Zy7JyRq3byJwr+9dRSehOr/v37Bx1TnSorW0XL1fz581Nt/qZVWWtyDj/88ETdvXv3kufKup7eb3Mu/ZD6G101mKbMVUgPP/xwos5aI3TIIYck6lNPPTXomEKq9JX7uyWNiD8fIWlaPsNBkyNXCIFcIRSyhRDIFTqknLfCvEPSXyR92cwWmtmxki6VtKeZvSxpz7gGykauEAK5QihkCyGQK4RQ8rIc59xhrXzpmzmPBU2EXCEEcoVQyBZCIFcIgR1qAQAAgIKodEFtw5k5c2aqLWuTjVI+/vjjVNudd97ZZi1Ju+22W6I++uijU31WW43nWmhd1qYb1113XaJed911U30ee+yxIOPZf//9gxwXYfmLIXv06JHqc9tttyXqcePGpfr4Cyb9DWBQXPvss0+qbcmSJYn6wgsvTPXxNz4rx9ixY1Nt5Wz69+KLLybqHXbYoeR4ylngO3LkyJJ9UFt+FiVp+PDhiTrre/2LX/wiUXfq1CnfgVURs0kAAACgIJjcAwAAAAXB5B4AAAAoiKa55j7rGsHzzjsvUf/kJz8peZwVK1ak2iZNmlTydrfeemuifuKJJ1J9unTpkqhHjRqV6uNfH5u1UUjnzk3zbW0IZ5xxRqota9OVUpYuXZpqK2czl3KuTy2Hv2nRAQcckMtxUV1DhgxJ1Jdffnmqz6WXJt95LytDY8aMSdRf+cpXchgd6tFFF12UqLM2iPLXlfn5yJL1+9S/Vt7/uSOl85j1c+/tt5P7Pr311lupPgsWLEjUgwYNSvUp5/c7asvfqPGggw5K9fHnSjNmzEj16dOnT74DqyFeuQcAAAAKgsk9AAAAUBBM7gEAAICCYHIPAAAAFERTr7w84ogjEnXWQtTbb789UT///PO5nHv8+PEl+1xzzTUl+xx66KGpNn+hcP/+/csfGDrspJNOStR33HFHqo+/ICyvRa9Z8jo2C2gbz+TJk1Nt/kLDiy++uGSfLbfcMtWnnAWTaDxZmbnssssSdTkLrLP4C3H936+SdMkll5Q8Vzk/0/xFleecc06qj7+R0SabbFLyuKgtf/GsJO27776Jevbs2ak+/ptPZP1MKxJeuQcAAAAKgsk9AAAAUBAlJ/dmdrOZvW1mz7Vou8DMXjezp+KPoWGHiaIhVwiBXCEUsoUQyBVCKOea+wmSrpZ0q9d+pXPul7mPqIr69u2bqM8+++xUn6w237Rp0xL1448/nurz5z//OVE/+uijZYywtKzruf22733ve6k+/kY2o0ePzmU87TBBBcjVs88+m2q76667EvXy5csrOvZ6662XqP3rXiVp3rx5idrffChP/jWrP/vZz1J9Vl999WDnL9MEFSBX5cjaSMjPXlZm/OuVv/vd76b6+GuLpk6dmurjb2zkr/UpoAkqYLYWL16cqM8999xUH3+zqaxNo66//vpEfdppp6X6zJ07t+Rxytmgynfdddel2kaOHFnydnViggqYq7wsW7YsUWet/Zo/f36inj59eqpP0a+x95V85d4595ikd6swFjQRcoUQyBVCIVsIgVwhhI5cc3+ymT0T/0mpW24jQrMjVwiBXCEUsoUQyBUqVunk/lpJm0kaIGmRpMtb62hmI81slpnN8v/8B3jIFUIgVwilrGyRK7QTuUKHVDS5d8695Zz7zDn3L0k3SBrSRt/xzrnBzrnBPXr0qHScaALkCiGQK4RSbrbIFdqDXKGjKtrEysx6OecWxeUwSc+11b/o/AUeWQs+/vnPfybqTz75JNXHX/z21FNPpfrcd9997R7fnXfemWq75557EvUaa6yR6nPyySe3+1wd0Yi5uvbaa1Nt77zzTruP87WvfS3V9vOf/zxRf+Mb3yh5nA8++CDV5i90W7lyZTtHF/Hz2bVr11SfetzYqBFzlcVfNJa18HHKlCmJerfddkv18RdhH3744ak+/gLKrI3wzj///ETtv0GBlN4osGiKkK2jjjoqUfuLXqXyNo3yF12Xs1g2SyUbVA0fPrzkbRpJEXJViWeeeSbVdsoppyTql19+OdXnoYceStTNtng2S8nJvZndIWl3Sd3NbKGkn0ra3cwGSHKS5kk6IeAYUUDkCiGQK4RCthACuUIIJSf3zrnDMppvCjAWNBFyhRDIFUIhWwiBXCEEdqgFAAAACqKia+7Rfv7mPlmb/fibwnz00UepPu+9916iXrhwYaqPv2nVggULUn0+/vjjRH3qqaem+lT7mvtG4K+D8NcuVOqHP/xhqq2ca+x9V111VarN32QtKzOVyNrAC+H410bPnDkz1WejjTZK1FdccUWqzyabbJKou3fvnurz4YcfJuqsa1iHDRuWqMeOHZvqs/baayfqol0b3WiyHv8ZM2Yk6nI2jdp+++1TbX4e/FpK5yhrPOVcu+9vqJeVYdS/pUuXJupjjz021efNN99M1FkblnGNfRqv3AMAAAAFweQeAAAAKAgm9wAAAEBBMLkHAAAACoIFtXVsrbXWKtn26quvpvr06tUrUWctqEVlXnrppUT9+uuvV3ScgQMHJuqhQ4eWvM3y5ctTbTfeeGOiPuOMM1J9ytkUphz+wrZddtkll+MiLWsr+cceeyxRZ21Q9cgjj+Ryfn8hbJZBgwYl6rvuuivVx1/gm7XRlX8c5Md/kwZ/saqU/vmQtRDW3zCt0u/ZnDlz2j0eFMOyZctSbf6Gn4sWLUr1mT59eqLeZptt8h1YQfHKPQAAAFAQTO4BAACAgmByDwAAABRE01xz71+bLEk33HBDot5qq61SfW6++eZgY/L96U9/StSffPJJqs9vfvObRP3www+n+mRd21ZKv3792n2bZuRfD1rp9aGvvPJKoj7//PNTffzNpz777LNUH/8axazx5HUN62uvvZaoP//5z+dyXKRNmTIl1VbOtdH1ZtKkSYn6hRdeSPXhmvt8zJ8/P9X261//OlFnbQjVo0ePRJ21diIv/u+4cjbM2nvvvVNtZKbx+JtrStKjjz6aqP35jcQ19pXilXsAAACgIJjcAwAAAAXB5B4AAAAoiJKTezPrY2Z/NLM5Zva8mZ0Wt29gZg+Y2cvxv93CDxdFQa4QArlCCOQKIZArhFLOgtqVkkY752abWVdJT5rZA5KOlvSQc+5SMztb0tmSzgo31PZZsmRJoh47dmyqj78Ayd+gSJJ23XXXRN2/f/+S554xY0aqzd9cZrXV0s+rZs6cmaizFtTmZZ111knUDzzwQLBztaIhc5UXf0Oqa665pkYjiayxxhqJ+oILLkj16d27d5VG0yGFyFX37t1Ltl1//fWpPn369EnUw4cPz3dgbZg8eXKq7aCDDkrUWYu7jzjiiGBjylHd5+r0009Ptfm/B/1NxaT0JkEhvfjii4m6nDcA8BdlF0zd5yov8+bNS7Vtt912ibpBfhY0hJKv3DvnFjnnZsefL5c0R1JvSQdImhh3myjpwFCDRPGQK4RArhACuUII5AqhtOuaezPrK2mgpMcl9XTOLZKigEpKvyQQ3Wakmc0ys1lZW6oD5AohkCuEQK4QArlCnsqe3JvZupLukjTKOVf2G6k758Y75wY75wb776cLkCuEQK4QArlCCOQKeStrEysz66IoeLc751ZdWPmWmfVyzi0ys16S3g41yEr416+/+eabJW+zdOnSVNsxxxyTy3j8zTry2lhozTXXTLX17ds3Ua+//vqpPueee26i3nTTTXMZT3s0Yq6++tWvJuotttgi1Sdr7Ua1+NdcS9nrO3wjR45M1D/+8Y9zG1O1NWKufFnXyi9YsCBRZ23MN2LEiETtX+MsSWPGjOng6CIXXXRRor7ssstSffyfc+edd14u566Fes9V1sZO/sZzt956a6rPlltuGWxMvko2scpaf1Ik9Z6rkPzsde3atUYjKZ5y3i3HJN0kaY5z7ooWX7pb0qrfJCMkTfNvC7SGXCEEcoUQyBVCIFcIpZxX7neWdKSkZ83sqbhtjKRLJf2XmR0raYGkg8MMEQVFrhACuUII5AohkCsEUXJy75ybKam1a0i+me9w0CzIFUIgVwiBXCEEcoVQ2KEWAAAAKIiyFtQ2ogMPTL4t7I477pjqM2fOnERd67eS8jeW6tYtvSndSSedlKj9TSAkaejQofkODP+28cYbJ+qjjz461SevBYs+f7GkJG277baJetSoUUHOjdrzv7d77713qs8+++yTqP2F0pU68sgjU23+Yt2shY8TJ05M1NXcVKvZZC1WrrcFzP7Pxvvvv79GI0E9+Otf/5qosza68t8gBOXhlXsAAACgIJjcAwAAAAXB5B4AAAAoiMJec+975JFHUm3+Bh8HHHBAqs+rr75a8tj7779/oh4yZEj7BhfzN3T45jdZLF/vzjrrrLLagLxlbT40adKkXI7tr0eaOnVqqs8555yTqLOu7y/6BkRon2HDhrVZo7iOP/74VNtPf/rTRJ21EdtOO+2UqLN+vw4YMCBRZ23c2Wx45R4AAAAoCCb3AAAAQEEwuQcAAAAKgsk9AAAAUBBNs6A2S58+fRL17NmzazQSAOi4XXbZJZfj+It1ly9fnstxATSn0aNHp9r22muvRO0vsJWkKVOmJOrp06en+vTr1y9R9+7dO9XHn+/deOONqT5rrLFGqq1R8co9AAAAUBBM7gEAAICCKDm5N7M+ZvZHM5tjZs+b2Wlx+wVm9rqZPRV/DA0/XBQFuUII5AohkCuEQK4QSjnX3K+UNNo5N9vMukp60nQ6QloAAASvSURBVMweiL92pXPul+GGhwIjVwiBXCEEcoUQmjpX22yzTaKePHlyjUZSPCUn9865RZIWxZ8vN7M5ktKrFYB2IFcIgVwhBHKFEMgVQmnXNfdm1lfSQEmPx00nm9kzZnazmXXLeWxoEuQKIZArhECuEAK5Qp7Kntyb2bqS7pI0yjm3TNK1kjaTNEDRM8/LW7ndSDObZWazFi9enMOQUSTkCiGQK4RArhACuULeyprcm1kXRcG73Tk3WZKcc2855z5zzv1L0g2ShmTd1jk33jk32Dk3uEePHnmNGwVArhACuUII5AohkCuEUM675ZikmyTNcc5d0aK9V4tuwyQ9l//wUFTkCiGQK4RArhACuUIo5bxbzs6SjpT0rJk9FbeNkXSYmQ2Q5CTNk3RCkBGiqMgVQiBXCIFcIQRyhSDKebecmZIs40v35T8cNAtyhRDIFUIgVwiBXCEUdqgFAAAACoLJPQAAAFAQTO4BAACAgmByDwAAABQEk3sAAACgIJjcAwAAAAVhzrnqncxssaT5krpLWlK1E+eDMVdmU+dc0K3zyFXV1cOYyVXbGHNlyFXbGHNlqpkrqT7uc3s02nil+hhzq7mq6uT+3yc1m+WcG1z1E3cAY65/jXh/GXP9a8T7y5jrXyPeX8bcGBrtPjfaeKX6HzOX5QAAAAAFweQeAAAAKIhaTe7H1+i8HcGY618j3l/GXP8a8f4y5vrXiPeXMTeGRrvPjTZeqc7HXJNr7gEAAADkj8tyAAAAgIKo+uTezL5tZnPN7BUzO7va5y+Hmd1sZm+b2XMt2jYwswfM7OX43261HGNLZtbHzP5oZnPM7HkzOy1ur9sx541c5Y9ckasQyBW5CoFckasQGjVXVZ3cm1knSddI2kdSf0mHmVn/ao6hTBMkfdtrO1vSQ865zSU9FNf1YqWk0c65LSXtJOlH8eNaz2PODbkKhlyRqxDIFbkKgVyRqxAaMlfVfuV+iKRXnHOvOuf+Kel3kg6o8hhKcs49Juldr/kASRPjzydKOrCqg2qDc26Rc252/PlySXMk9VYdjzln5CoAckWuQiBX5CoEckWuQmjUXFV7ct9b0mst6oVxWyPo6ZxbJEXfbEkb1Xg8mcysr6SBkh5Xg4w5B+QqMHIliVzljlxJIle5I1eSyFXuGilX1Z7cW0Ybb9eTEzNbV9JdkkY555bVejxVRK4CIlcJ5Con5CqBXOWEXCWQq5w0Wq6qPblfKKlPi3pjSW9UeQyVesvMeklS/O/bNR5Pgpl1URS8251zk+Pmuh5zjshVIOSKXIVArshVCOSKXIXQiLmq9uT+b5I2N7Mvmtnqkg6VdHeVx1CpuyWNiD8fIWlaDceSYGYm6SZJc5xzV7T4Ut2OOWfkKgByRa5CIFfkKgRyRa5CaNhcOeeq+iFpqKSXJP2vpHOrff4yx3iHpEWSPlX0bPhYSRsqWhH9cvzvBrUeZ4vxfl3Rn9+ekfRU/DG0nsdMrshVI3yQK3JFrshVo3yQK3K16oMdagEAAICCYIdaAAAAoCCY3AMAAAAFweQeAAAAKAgm9wAAAEBBMLkHAAAACoLJPQAAAFAQTO4BAACAgmByDwAAABTE/weS7oZNKunh7QAAAABJRU5ErkJggg==\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"3e0c8724a05f43499af36f0e15a62fa8": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_5c52e5a06d8f43f1a816af10e2bc1a86",
"IPY_MODEL_a89d27c987254f789abf4457b4a0926b"
],
"layout": "IPY_MODEL_be052ba2c9f84223b15117a3c71a0808"
}
},
"3e528e65d85643a2800d13e6ac9e4b0e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_00bf363ee03348f7957bda3c3d370e18",
"IPY_MODEL_04f9f797c64248e4af714bf8531e68af",
"IPY_MODEL_74fd9120e9854e61a07186705fe8cb66"
],
"layout": "IPY_MODEL_5273a7c367b545928701a550a51c5876"
}
},
"3eb0b9047441411486fce956b2da2145": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"425af0d596e6424ab66bd85f1de77d4e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"43da0290f24a44858350691376eac244": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"45355767ed8847cbba19a83d01d0dd08": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"462555ad60f94272a2872b0d77db2a7a": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "RadioButtonsModel",
"state": {
"_options_labels": [
"train",
"test"
],
"description": "Data:",
"index": 0,
"layout": "IPY_MODEL_f6dc1523bef24aafaf8f45a9effcc0bd",
"style": "IPY_MODEL_e319cfbd29ea4ae58e81ed711ecf904d"
}
},
"47d2f1f0cc7643bf84045b399cb2c643": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_077fc24d5af644e19739082db94c2424",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Review:\n ? french horror cinema has seen something of a revival over the last couple of years with great films such as inside and ? romance ? on to the scene ? ? the revival just slightly but stands head and shoulders over most modern horror titles and is surely one of the best french horror films ever made ? was obviously shot on a low budget but this is made up for in far more ways than one by the originality of the film and this in turn is ? by the excellent writing and acting that ensure the film is a winner the plot focuses on two main ideas prison and black magic the central character is a man named ? sent to prison for fraud he is put in a cell with three others the quietly insane ? body building ? marcus and his retarded boyfriend daisy after a short while in the cell together they stumble upon a hiding place in the wall that contains an old ? after ? part of it they soon realise its magical powers and realise they may be able to use it to break through the prison walls br br black magic is a very interesting topic and i'm actually quite surprised that there aren't more films based on it as there's so much scope for things to do with it it's fair to say that ? makes the best of it's ? as despite it's ? the film never actually feels restrained and manages to flow well throughout director eric ? provides a great atmosphere for the film the fact that most of it takes place inside the central prison cell ? that the film feels very claustrophobic and this immensely benefits the central idea of the prisoners wanting to use magic to break out of the cell it's very easy to get behind them it's often said that the unknown is the thing that really ? people and this film proves that as the director ? that we can never really be sure of exactly what is round the corner and this helps to ensure that ? actually does manage to be quite frightening the film is memorable for a lot of reasons outside the central plot the characters are all very interesting in their own way and the fact that the book itself almost takes on its own character is very well done anyone worried that the film won't deliver by the end won't be disappointed either as the ending both makes sense and manages to be quite horrifying overall ? is a truly great horror film and one of the best of the decade highly recommended viewing\nNumber of words: 450\nIndices for all ?s: [1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]\n"
}
]
}
},
"4bbc3a3aecbf43048eb955d8069ec1b3": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"4f0c9113dbd748738c067333885256ef": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"51102e478a5c4ab89414734a79c9d682": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_6778d44240b34bf386146cfeecee517f",
"step": 1,
"style": "IPY_MODEL_c47fc811fb80436f9d77307160a077d0",
"value": 7
}
},
"5173f8cae7804199bca6c0963f47904d": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"5273a7c367b545928701a550a51c5876": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"53e88ab5afb74db5b0ee3a06f117d236": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_d174b654894140d58f3ec025c10ffbbb",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Total number of misclassified images is 201 Examples of misclassified images 7-11\n"
},
{
"data": {
"image/png": "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SJ3v2keuua+c7t27J9ri1/999tlniT4vvPBCpB48eHC6A8ux4YYbRur4NdeorH322SfRFt/U7r/+678KHmfZsmWJtrFjxxa83V133RWpX3zxxUSfdu3aRepTTz010Sd+fWw895LUtm1D/xqqOfnW2zjX+v2R8q01mjZtWsHjmlmrz5VPfNOi/fffP5XjorIGDBgQqa+66qpEn8svj75TaL4Mxdeefe9730thdLWLV+4BAACAjGByDwAAAGQEk3sAAAAgI5jcAwAAABnRMCuZZsyYkWjbe++9I3Wpm0ZVUnzTj2OOOSbRZ9NNN43Ua665ptcxoWV77bVXom377beP1E8//XRJx47/rEtdqH3ssceWdDtUzmGHHRap8y1EveeeeyL1K6+8ksq5R40aVbDPDTfcULDPIYcckmiLLxTu3bt38QND2U444YRIfe+99yb6xBcoprXoNZ+0js0C2vozfvz4RFt8XnbppZcW7LPlllsm+hSzmWOW8Mo9AAAAkBFM7gEAAICMKDi5N7M7zOx9M5uV03aBmb1jZi+FH4P8DhNZQ67gA7mCL2QLPpAr+FDMNfejJV0v6a5Y+9XOuStTH1FKpk+fHqkvu+yyRJ9av8Z+q622SrQ9/vjjkbpr166VGk7aRqsOc5WW+LXR8etepWSGN95440SfSy65JFKPGDEi0eell14qOJ6NNtqoYJ86MVoZzVXPnj0j9VlnnZXok68tbuLEiZE6vlmaJP3973+P1M8++2wRIyws3/Xc8bZf/OIXiT7xjWxOP/30VMbTSqNV59maOXNmom3cuHGReunSpSUde+21147UV1xxRaLPW2+9Fanjmw+l6eyzz47Uf/jDHxJ92rdv7+38rTBadZ6rYsyePTvRFs9evszE12D8/Oc/T/SJry168MEHE30uvvjiSB1f65M1BV+5d849J+mjCowFDYRcwQdyBV/IFnwgV/ChnGvuTzazl8M/KXVMbURodOQKPpAr+EK24AO5QslKndzfJGlTSX0lNUm6qrmOZjbczKaa2dTFixeXeDo0CHIFH8gVfCkqW+QKrUSuUJaSJvfOuUXOua+dc/+RdKukAS30HeWc6++c69+5c+dSx4kGQK7gA7mCL8Vmi1yhNcgVylXSJlZm1tU51xSWgyXNaqm/b9OmTUu07bbbbpF6yZIllRpOXs65gn223nrrSP3b3/420aeOF9AWVGu58uk73/lOpJ4wYUKiz9y5cyN1r169En3iuc63sVHcJptskmjbcccdC96uXjVSrooR39wn32Y/X375ZaT+4osvEn3ii9/yLdx+9NFHWz2++++/P9H20EMPRepVV1010efkk09u9bnKVW/ZuummmxJtH374YauP86Mf/SjRduGFF0bqXXfdteBxPv3000TbLbfcEqlXrFjRytEF4vlca621En1qdWOjestVPvPnz4/U5557bqJP/PfeLrvskugTX4T9y1/+MtFn2bJlkTrfRnjnn39+pI6/QYGU3CiwnhWcCZjZvZIGSupkZgsl/V7SQDPrK8lJekvScR7HiAwiV/CBXMEXsgUfyBV8KDi5d84dmqf5dg9jQQMhV/CBXMEXsgUfyBV8YIdaAAAAICNKuua+1jz//POJtvhGHPGNEEq1xx57JNri1zCPGjWq4HHyjefEE0+M1Fm6/gutl+8a+7hHHnkkUk+dOrWk48bXAKCxxTf3ybfZT3xTmOXLlyf6/Pvf/47UCxcuTPSJb1r19ttvJ/p8/vnnkfrXv/51ok81rrmvdfF1EPG1C6WK/66SirvGPu7aa69NtMU3WcuXmVLk28AL/hx++OGResqUKYk+G2ywQaQeOXJkok98g8VOnTol+nz22WeResstt0z0GTx4cKSObwApSWussUakHjJkSKJPveCVewAAACAjmNwDAAAAGcHkHgAAAMgIJvcAAABARmRiQW2pfvrTn0bqvn37Jvocf/zxkXrddddN9IlvslHMgtp8Cz4OPvjggrdD7YsvIjz99NMTffr16xepTznllJLOdcMNN7T6NvkWwwHlWn311Qu2vfnmm4k+8Y358i2oRWlef/31SP3OO++UdJz449WgQYMK3ib+phaSdNttt0Xq0047LdEnrTe/iG8cudNOO6VyXCQtXrw40fbcc89F6nwbVD3zzDOpnD++EDafbbfdNlKPGzcu0Se+wDffRlfx49QqXrkHAAAAMoLJPQAAAJARTO4BAACAjMjENfe/+tWvEm35NpuK23jjjSP1aqutVvA2ixYtSrQNHDiw4O222GKLSP3YY48l+uS7nh/157777ovUo0ePTvSJr9MoRnyjDkn64osvWn0c1L74tcmSdOutt0bqPn36JPrccccd3sYU97e//S1S58vijTfeGKmfeuqpRJ8lS5a0+tybbbZZq2/TiOLXr5d6Pfu8efMi9fnnn5/oE9986uuvv070aWpqKjietK65X7BgQaRmoz5/JkyYkGiL/xzjm0jVorFjx0bqV199NdGHa+4BAAAAVBSTewAAACAjmNwDAAAAGVFwcm9mPczsaTObbWavmNmIsH09M3vCzOaG/3b0P1xkBbmCD+QKPpAr+ECu4EsxC2pXSDrdOTfdzNaSNM3MnpB0hKQnnXOXm9lZks6SdKa/oTavY8dk7vO1peG6665LtMU3CsnnjDPOiNQ9evRIbUx1quZz5dM//vGPSP3ee+8l+qyzzjqR+uSTT070mTZtWsFztW/fPlIXs3C8jtVlrj744INIfckllyT6zJ8/P1Lne9zZeeedI3Xv3r0Lnnvy5MmJtvjmMqusknwdaMqUKZHa5+LuNddcM1I/8cQT3s7VjLrMVVriG1KVsnlemlZdddVIfcEFFyT6dOvWrUKjKUsmctWpU6eCbbfcckuiT3weNGTIkHQH1oLx48cn2g488MBInW9x92GHHeZtTGkq+Mq9c67JOTc9/HyppNmSuknaX9KYsNsYSQf4GiSyh1zBB3IFH8gVfCBX8KVV19ybWU9J/SS9IKmLc65JCgIqaYNmbjPczKaa2dR8WxQD5Ao+kCv4QK7gA7lCmoqe3JtZB0njJJ3qnCv6jYmdc6Occ/2dc/07d+5cyhiRYeQKPpAr+ECu4AO5QtqK2sTKzNopCN49zrmVFyotMrOuzrkmM+sq6X1fg6ymt99+O1Ln25CobdvotzHfJgdHH310quPKgqzmKn5Ne5s2bRJ94pvCnHbaaYk+H3/8caR+/PHHC567Xbt2ibZddtklUu+5554Fj1PP6jFX8evX863BiPvkk08SbUcddVQq43HOReq0NhbKt96jZ8+ekTq+1kSSzj333Egd34CwEuoxVzvssEOk3nzzzRN9ilkz5ku+tWf51nfEDR8+PFL/7ne/S21MlVaPuYrLd618fO6Ub2O+YcOGRerXXnst0eecc84pc3SBiy++OFJfccUViT7xx7nzzjsvlXNXQzHvlmOSbpc02zk3MudLkySt/MkMkzQxflugOeQKPpAr+ECu4AO5gi/FvHL/Y0lDJc00s5fCtnMkXS7pv83saElvSzrIzxCRUeQKPpAr+ECu4AO5ghcFJ/fOuSmSmvub7G7pDgeNglzBB3IFH8gVfCBX8IUdagEAAICMKGpBbaNYvnx5om3kyJGRuqmpKdFns802i9TPP/98ugNDXTnyyCMj9YUXXpjoE9+Q6L777kvl3DvuuGOiLd8mRagtBxwQfRvr7bffPtFn9uzZkbrab30X31gq38aBJ5xwQqTeZpttEn0GDRqU7sDwje7du0fqI444ItEnrQWLcfHFkpL0/e9/P1KfeuqpXs6N6ov/bPfaa69En3322SdSxxdKl2ro0KGJtvhi3Xwbb40ZMyZSV3JTrbTxyj0AAACQEUzuAQAAgIxgcg8AAABkBNfc55g5c2ai7brrrovU6623XqLPpMdQ4PUAAAX4SURBVEmTvI0J9S/fRhjHHntsKsfeYostIvWdd96ZynFRXc8880yibcGCBZF6//33T/R58803Cx57v/32i9QDBgxo3eBCW265ZaTebTfe3KPWnXnmmUW1AWmLP15I0tixY1M5dnw90oMPPpjoc/bZZ0fqfNf357sOv17xyj0AAACQEUzuAQAAgIxgcg8AAABkBJN7AAAAICNYUNtKa6yxRqItvqgRyLXddtsl2uIbW1177bWJPoceemik7ty5c6JPfFOa+KY1yI4ePXpE6unTp1dpJABQvp122imV48QX6y5dujSV49YzXrkHAAAAMoLJPQAAAJARBSf3ZtbDzJ42s9lm9oqZjQjbLzCzd8zspfBjkP/hIivIFXwgV/CBXMEHcgVfirnmfoWk051z081sLUnTzOyJ8GtXO+eu9De8ysp3vXKfPn0i9SeffFKp4WRdw+Sqb9++BdvybXSFkjRMrlBR5Ao+kCt4UXBy75xrktQUfr7UzGZL6uZ7YMg2cgUfyBV8IFfwgVzBl1Zdc29mPSX1k/RC2HSymb1sZneYWceUx4YGQa7gA7mCD+QKPpArpKnoyb2ZdZA0TtKpzrklkm6StKmkvgqeeV7VzO2Gm9lUM5u6ePHiFIaMLCFX8IFcwQdyBR/IFdJW1OTezNopCN49zrnxkuScW+Sc+9o59x9Jt0oakO+2zrlRzrn+zrn++d6nG42LXMEHcgUfyBV8IFfwoeA192Zmkm6XNNs5NzKnvWt4vZgkDZY0y88QK2fDDTdMtL388stVGEn2NVKuUDnkCj6QK/hAruBLMe+W82NJQyXNNLOXwrZzJB1qZn0lOUlvSTrOywiRVeQKPpAr+ECu4AO5ghfFvFvOFEmW50uPpj8cNApyBR/IFXwgV/CBXMEXdqgFAAAAMoLJPQAAAJARTO4BAACAjGByDwAAAGQEk3sAAAAgI5jcAwAAABlhzrnKncxssaT5kjpJ+qBiJ04HYy7Nxs45r1vnkauKq4Uxk6uWMebSkKuWMebSVDJXUm3c59aot/FKtTHmZnNV0cn9Nyc1m+qc61/xE5eBMde+ery/jLn21eP9Zcy1rx7vL2OuD/V2n+ttvFLtj5nLcgAAAICMYHIPAAAAZES1JvejqnTecjDm2leP95cx1756vL+MufbV4/1lzPWh3u5zvY1XqvExV+WaewAAAADp47IcAAAAICMqPrk3s73NbI6ZzTOzsyp9/mKY2R1m9r6ZzcppW8/MnjCzueG/Has5xlxm1sPMnjaz2Wb2ipmNCNtrdsxpI1fpI1fkygdyRa58IFfkyod6zVVFJ/dm1kbSDZL2kdRb0qFm1ruSYyjSaEl7x9rOkvSkc66XpCfDulaskHS6c25LST+UdFL4fa3lMaeGXHlDrsiVD+SKXPlArsiVD3WZq0q/cj9A0jzn3JvOuS8l3Sdp/wqPoSDn3HOSPoo17y9pTPj5GEkHVHRQLXDONTnnpoefL5U0W1I31fCYU0auPCBX5MoHckWufCBX5MqHes1VpSf33SQtyKkXhm31oItzrkkKftiSNqjyePIys56S+kl6QXUy5hSQK8/IlSRylTpyJYlcpY5cSSJXqaunXFV6cm952ni7npSYWQdJ4ySd6pxbUu3xVBC58ohcRZCrlJCrCHKVEnIVQa5SUm+5qvTkfqGkHjl1d0nvVngMpVpkZl0lKfz3/SqPJ8LM2ikI3j3OufFhc02POUXkyhNyRa58IFfkygdyRa58qMdcVXpy/09JvcxsEzNrL+kQSZMqPIZSTZI0LPx8mKSJVRxLhJmZpNslzXbOjcz5Us2OOWXkygNyRa58IFfkygdyRa58qNtcOecq+iFpkKTXJb0h6dxKn7/IMd4rqUnSVwqeDR8taX0FK6Lnhv+uV+1x5ox3RwV/fntZ0kvhx6BaHjO5Ilf18EGuyBW5Ilf18kGuyNXKD3aoBQAAADKCHWoBAACAjGByDwAAAGQEk3sAAAAgI5jcAwAAABnB5B4AAADICCb3AAAAQEYwuQcAAAAygsk9AAAAkBH/B7PWYx8H514mAAAAAElFTkSuQmCC\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"54fb9441b74f440aa9edb48b575fe8eb": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"57835fb856f34f32bbb4aafcfa807fbe": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"5b9b8b60d7544b498e0d5e569a5d5ccd": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_ffa0cace164a478ebe5ad8ec091c5bba",
"IPY_MODEL_6500b5ca2d224603952d1bb96f8da826",
"IPY_MODEL_87f6485ac22a4a058e882a8a6b156033"
],
"layout": "IPY_MODEL_153b5c35fb584fb8917e27a2d357e7ff"
}
},
"5c52e5a06d8f43f1a816af10e2bc1a86": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_7bea81170f2646ed8bc9095a92010872",
"step": 1,
"style": "IPY_MODEL_09887a4db028419a8b915305bb3dc596",
"value": 7
}
},
"5dc9deb986c44da7bc17e31ea7488c88": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_6b376c3f41244963bdd091069cc6f2c9",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Review:\n ? french horror cinema has seen something of a revival over the last couple of years with great films such as inside and ? romance ? on to the scene ? ? the revival just slightly but stands head and shoulders over most modern horror titles and is surely one of the best french horror films ever made ? was obviously shot on a low budget but this is made up for in far more ways than one by the originality of the film and this in turn is ? by the excellent writing and acting that ensure the film is a winner the plot focuses on two main ideas prison and black magic the central character is a man named ? sent to prison for fraud he is put in a cell with three others the quietly insane ? body building ? marcus and his retarded boyfriend daisy after a short while in the cell together they stumble upon a hiding place in the wall that contains an old ? after ? part of it they soon realise its magical powers and realise they may be able to use it to break through the prison walls br br black magic is a very interesting topic and i'm actually quite surprised that there aren't more films based on it as there's so much scope for things to do with it it's fair to say that ? makes the best of it's ? as despite it's ? the film never actually feels restrained and manages to flow well throughout director eric ? provides a great atmosphere for the film the fact that most of it takes place inside the central prison cell ? that the film feels very claustrophobic and this immensely benefits the central idea of the prisoners wanting to use magic to break out of the cell it's very easy to get behind them it's often said that the unknown is the thing that really ? people and this film proves that as the director ? that we can never really be sure of exactly what is round the corner and this helps to ensure that ? actually does manage to be quite frightening the film is memorable for a lot of reasons outside the central plot the characters are all very interesting in their own way and the fact that the book itself almost takes on its own character is very well done anyone worried that the film won't deliver by the end won't be disappointed either as the ending both makes sense and manages to be quite horrifying overall ? is a truly great horror film and one of the best of the decade highly recommended viewing\nNumber of words: 450\nIndices for all ?s: [1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]\n"
}
]
}
},
"5eb400a82ac644189979c17d802e9cb8": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "RadioButtonsModel",
"state": {
"_options_labels": [
"train",
"test"
],
"description": "Data:",
"index": 0,
"layout": "IPY_MODEL_4f0c9113dbd748738c067333885256ef",
"style": "IPY_MODEL_ac0c8566cf6e48088522a63b178e0705"
}
},
"630b31093115460b95709e2c1b3becd6": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_7adb993b76b4499d8159dc73e5669d62",
"step": 1,
"style": "IPY_MODEL_18c50ba68fbe4556b33dacd4fd6a9046",
"value": 7
}
},
"6500b5ca2d224603952d1bb96f8da826": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_f86478cb72d94a96b69cae3c9dbb656a",
"step": 1,
"style": "IPY_MODEL_4bbc3a3aecbf43048eb955d8069ec1b3",
"value": 7
}
},
"66702ba0c33946128cb01d6a88926301": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_0a0ed3865e004788aa0b3599e7e6675f",
"IPY_MODEL_53e88ab5afb74db5b0ee3a06f117d236"
],
"layout": "IPY_MODEL_ac1fa630e83e4487b5f43e532336bb31"
}
},
"6778d44240b34bf386146cfeecee517f": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"6a4dc20ccb094e21b0c845cfcec15ad6": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_09b15fa5b18f4e66a21b993a01cc52af",
"outputs": [
{
"data": {
"image/png": "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hduvt956Qe2mm24KauuvH37qaPTo0UHt4YcfDmpFJ7NLxQsyFS1QMm/evKA2aNCgoFb0O0OSNttss8J6s0gts420xx57VLR9UWZnzpwZ1M4+++yg9swzzwS12bNnF+5n00037UJ36WjmzD755JOF9SFDhgS1op/Lv//974Na0WvNoowdcMABhfuePHlyUNtqq60K79tddTg5M7ObJe0saQMze13STyTtbGbbSXJJsyQdW8MegU4hs0gRuUVqyCxSQ2aRgg4nZ+5+cEE5PGwDRILMIkXkFqkhs0gNmUUKKlmtEQAAAABQJUzOAAAAACACXVoQpDsqOiH29NNPb0AnmTPPPDOosSAIammTTTYpfd9ly5YFtaKTzZv9RPPu5qqrrgpqRYtltPez8+ijj+7yvn/5y18GtREjRgS1J554osv7kKQVK1YEtaLFcpp94Q80XtHP2aKFGYoULf6w+uqrV9wT6mPu3LlBba+99gpqr732WuH2l156aVD77ne/G9T69u0b1EaOHBnUinK3ZMmSwn0vWLCgsI5/4cgZAAAAAESAyRkAAAAARIDJGQAAAABEgMkZAAAAAESABUESde+99za6BXQza6xR/seFuwe1pUuXVrMdRGifffYJavvvv39QK1okpFLz5s0Las8991zp7SdNmhTUttlmm1LbbrzxxqX3A1RLJYuSHXPMMUGNHKfjC1/4QlBbtGhRULvooosKty9a/KOsn//856XuN2zYsMJ62Z+r3RlHzgAAAAAgAkzOAAAAACACTM4AAAAAIAJMzgAAAAAgAt1mQZCPPvooqBUtqrHrrrsWbt+7d++q91TW+PHjg9qJJ57YgE7QnRUt9rDlllsW3veFF14IakUnEV9xxRWVN4ZonHDCCXXZT9GJ77feemup+22++eaFj3nggQdW3hiS88477wS1o446KqgddNBBhdsfcsghVe+prblz5xbWx40b1+XHLFqoB+kYNWpUUDvnnHOC2g9+8IPC7durt/WZz3wmqL344otBbfDgwUHtggsuKHzMPn36lNp3d8aRMwAAAACIAJMzAAAAAIgAkzMAAAAAiACTMwAAAACIQIeTMzMbZGZ/MrMZZvacmZ2Q1/ua2X1m9lL+df3atwt0jMwiNWQWqSGzSBG5RQrKrNa4XNJJ7v60ma0jaaqZ3SfpSEkPuPuFZjZG0hhJp9Su1fIe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\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"6b376c3f41244963bdd091069cc6f2c9": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"6da46a45492a441b89ed36b6d7374f78": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"6f98c9b8c46744dfa76bb21eb1dff97c": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"70bf0c37b2c14faba03a648a689d8834": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"71903c8e5b20439da9375b774d4efa9e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_ac1840e3d4a349e69167fa8ab8bef5fd",
"step": 1,
"style": "IPY_MODEL_54fb9441b74f440aa9edb48b575fe8eb",
"value": 7
}
},
"723b34a887da43a3adbd4c2574b760fa": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"727a2247b75a454b93e1d2baff432ac4": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"74f9e018c8514b06b3e4165eaac3874b": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"74fd9120e9854e61a07186705fe8cb66": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_a23f9bf318ec4268aab0b525767942ed",
"outputs": [
{
"data": {
"image/png": "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hduvt956Qe2mm24KauuvH37qaPTo0UHt4YcfDmpFJ7NLxQsyFS1QMm/evKA2aNCgoFb0O0OSNttss8J6s0gts420xx57VLR9UWZnzpwZ1M4+++yg9swzzwS12bNnF+5n00037UJ36WjmzD755JOF9SFDhgS1op/Lv//974Na0WvNoowdcMABhfuePHlyUNtqq60K79tddTg5M7ObJe0saQMze13STyTtbGbbSXJJsyQdW8MegU4hs0gRuUVqyCxSQ2aRgg4nZ+5+cEE5PGwDRILMIkXkFqkhs0gNmUUKKlmtEQAAAABQJUzOAAAAACACXVoQpDsqOiH29NNPb0AnmTPPPDOosSAIammTTTYpfd9ly5YFtaKTzZv9RPPu5qqrrgpqRYtltPez8+ijj+7yvn/5y18GtREjRgS1J554osv7kKQVK1YEtaLFcpp94Q80XtHP2aKFGYoULf6w+uqrV9wT6mPu3LlBba+99gpqr732WuH2l156aVD77ne/G9T69u0b1EaOHBnUinK3ZMmSwn0vWLCgsI5/4cgZAAAAAESAyRkAAAAARIDJGQAAAABEgMkZAAAAAESABUESde+99za6BXQza6xR/seFuwe1pUuXVrMdRGifffYJavvvv39QK1okpFLz5s0Las8991zp7SdNmhTUttlmm1LbbrzxxqX3A1RLJYuSHXPMMUGNHKfjC1/4QlBbtGhRULvooosKty9a/KOsn//856XuN2zYsMJ62Z+r3RlHzgAAAAAgAkzOAAAAACACTM4AAAAAIAJMzgAAAAAgAt1mQZCPPvooqBUtqrHrrrsWbt+7d++q91TW+PHjg9qJJ57YgE7QnRUt9rDlllsW3veFF14IakUnEV9xxRWVN4ZonHDCCXXZT9GJ77feemup+22++eaFj3nggQdW3hiS88477wS1o446KqgddNBBhdsfcsghVe+prblz5xbWx40b1+XHLFqoB+kYNWpUUDvnnHOC2g9+8IPC7durt/WZz3wmqL344otBbfDgwUHtggsuKHzMPn36lNp3d8aRMwAAAACIAJMzAAAAAIgAkzMAAAAAiACTMwAAAACIQIeTMzMbZGZ/MrMZZvacmZ2Q1/ua2X1m9lL+df3atwt0jMwiNWQWqSGzSBG5RQrKrNa4XNJJ7v60ma0jaaqZ3SfpSEkPuPuFZjZG0hhJp9Su1fIe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\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"75365cf49d534e29a903c621b47cb3cf": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"76bc179b4f4241c0925607af59f06155": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_43da0290f24a44858350691376eac244",
"outputs": [
{
"data": {
"image/png": "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hduvt956Qe2mm24KauuvH37qaPTo0UHt4YcfDmpFJ7NLxQsyFS1QMm/evKA2aNCgoFb0O0OSNttss8J6s0gts420xx57VLR9UWZnzpwZ1M4+++yg9swzzwS12bNnF+5n00037UJ36WjmzD755JOF9SFDhgS1op/Lv//974Na0WvNoowdcMABhfuePHlyUNtqq60K79tddTg5M7ObJe0saQMze13STyTtbGbbSXJJsyQdW8MegU4hs0gRuUVqyCxSQ2aRgg4nZ+5+cEE5PGwDRILMIkXkFqkhs0gNmUUKKlmtEQAAAABQJUzOAAAAACACXVoQpDsqOiH29NNPb0AnmTPPPDOosSAIammTTTYpfd9ly5YFtaKTzZv9RPPu5qqrrgpqRYtltPez8+ijj+7yvn/5y18GtREjRgS1J554osv7kKQVK1YEtaLFcpp94Q80XtHP2aKFGYoULf6w+uqrV9wT6mPu3LlBba+99gpqr732WuH2l156aVD77ne/G9T69u0b1EaOHBnUinK3ZMmSwn0vWLCgsI5/4cgZAAAAAESAyRkAAAAARIDJGQAAAABEgMkZAAAAAESABUESde+99za6BXQza6xR/seFuwe1pUuXVrMdRGifffYJavvvv39QK1okpFLz5s0Las8991zp7SdNmhTUttlmm1LbbrzxxqX3A1RLJYuSHXPMMUGNHKfjC1/4QlBbtGhRULvooosKty9a/KOsn//856XuN2zYsMJ62Z+r3RlHzgAAAAAgAkzOAAAAACACTM4AAAAAIAJMzgAAAAAgAt1mQZCPPvooqBUtqrHrrrsWbt+7d++q91TW+PHjg9qJJ57YgE7QnRUt9rDlllsW3veFF14IakUnEV9xxRWVN4ZonHDCCXXZT9GJ77feemup+22++eaFj3nggQdW3hiS88477wS1o446KqgddNBBhdsfcsghVe+prblz5xbWx40b1+XHLFqoB+kYNWpUUDvnnHOC2g9+8IPC7durt/WZz3wmqL344otBbfDgwUHtggsuKHzMPn36lNp3d8aRMwAAAACIAJMzAAAAAIgAkzMAAAAAiACTMwAAAACIQIeTMzMbZGZ/MrMZZvacmZ2Q1/ua2X1m9lL+df3atwt0jMwiNWQWqSGzSBG5RQrKrNa4XNJJ7v60ma0jaaqZ3SfpSEkPuPuFZjZG0hhJp9Su1fIe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\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"79b18084094e4281ba4ec7d769911e49": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"layout": "IPY_MODEL_e6079fe551aa45ff9bcdb3e6c09acab3"
}
},
"7a3839b933004d2c8d78bbf350249a29": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"7adb993b76b4499d8159dc73e5669d62": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"7bea81170f2646ed8bc9095a92010872": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"815f53705b3b40769c3a56fe1774fc49": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"83128e788adf4e6db12501730fabeaa3": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"layout": "IPY_MODEL_5173f8cae7804199bca6c0963f47904d"
}
},
"83e62511942c4f469b9ceb911035eb10": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"849a84d30fba4e559988fc68e4dedeed": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"85a51d8e47a14a96b6274cc29532e2ad": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"87f6485ac22a4a058e882a8a6b156033": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_21f71d119b9b4f41b34c4cd309988a1f",
"outputs": [
{
"data": {
"image/png": "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hduvt956Qe2mm24KauuvH37qaPTo0UHt4YcfDmpFJ7NLxQsyFS1QMm/evKA2aNCgoFb0O0OSNttss8J6s0gts420xx57VLR9UWZnzpwZ1M4+++yg9swzzwS12bNnF+5n00037UJ36WjmzD755JOF9SFDhgS1op/Lv//974Na0WvNoowdcMABhfuePHlyUNtqq60K79tddTg5M7ObJe0saQMze13STyTtbGbbSXJJsyQdW8MegU4hs0gRuUVqyCxSQ2aRgg4nZ+5+cEE5PGwDRILMIkXkFqkhs0gNmUUKKlmtEQAAAABQJUzOAAAAACACXVoQpDsqOiH29NNPb0AnmTPPPDOosSAIammTTTYpfd9ly5YFtaKTzZv9RPPu5qqrrgpqRYtltPez8+ijj+7yvn/5y18GtREjRgS1J554osv7kKQVK1YEtaLFcpp94Q80XtHP2aKFGYoULf6w+uqrV9wT6mPu3LlBba+99gpqr732WuH2l156aVD77ne/G9T69u0b1EaOHBnUinK3ZMmSwn0vWLCgsI5/4cgZAAAAAESAyRkAAAAARIDJGQAAAABEgMkZAAAAAESABUESde+99za6BXQza6xR/seFuwe1pUuXVrMdRGifffYJavvvv39QK1okpFLz5s0Las8991zp7SdNmhTUttlmm1LbbrzxxqX3A1RLJYuSHXPMMUGNHKfjC1/4QlBbtGhRULvooosKty9a/KOsn//856XuN2zYsMJ62Z+r3RlHzgAAAAAgAkzOAAAAACACTM4AAAAAIAJMzgAAAAAgAt1mQZCPPvooqBUtqrHrrrsWbt+7d++q91TW+PHjg9qJJ57YgE7QnRUt9rDlllsW3veFF14IakUnEV9xxRWVN4ZonHDCCXXZT9GJ77feemup+22++eaFj3nggQdW3hiS88477wS1o446KqgddNBBhdsfcsghVe+prblz5xbWx40b1+XHLFqoB+kYNWpUUDvnnHOC2g9+8IPC7durt/WZz3wmqL344otBbfDgwUHtggsuKHzMPn36lNp3d8aRMwAAAACIAJMzAAAAAIgAkzMAAAAAiACTMwAAAACIQIeTMzMbZGZ/MrMZZvacmZ2Q1/ua2X1m9lL+df3atwt0jMwiNWQWqSGzSBG5RQrKrNa4XNJJ7v60ma0jaaqZ3SfpSEkPuPuFZjZG0hhJp9Su1fIe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\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"8bf1279f5c91430985f9e61053145282": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"901314f202fc4b999773f6c7ba660d49": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntSliderModel",
"state": {
"description": "Index of Review:",
"layout": "IPY_MODEL_6f98c9b8c46744dfa76bb21eb1dff97c",
"max": 30,
"style": "IPY_MODEL_c179be7c8de04c93a67c39cfa9768d15",
"value": 10
}
},
"974d4e5ba8dd407f9df59413f3186a6a": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_16bc57a869094e72874ea9898a795af9",
"outputs": [
{
"data": {
"image/png": "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hduvt956Qe2mm24KauuvH37qaPTo0UHt4YcfDmpFJ7NLxQsyFS1QMm/evKA2aNCgoFb0O0OSNttss8J6s0gts420xx57VLR9UWZnzpwZ1M4+++yg9swzzwS12bNnF+5n00037UJ36WjmzD755JOF9SFDhgS1op/Lv//974Na0WvNoowdcMABhfuePHlyUNtqq60K79tddTg5M7ObJe0saQMze13STyTtbGbbSXJJsyQdW8MegU4hs0gRuUVqyCxSQ2aRgg4nZ+5+cEE5PGwDRILMIkXkFqkhs0gNmUUKKlmtEQAAAABQJUzOAAAAACACXVoQpDsqOiH29NNPb0AnmTPPPDOosSAIammTTTYpfd9ly5YFtaKTzZv9RPPu5qqrrgpqRYtltPez8+ijj+7yvn/5y18GtREjRgS1J554osv7kKQVK1YEtaLFcpp94Q80XtHP2aKFGYoULf6w+uqrV9wT6mPu3LlBba+99gpqr732WuH2l156aVD77ne/G9T69u0b1EaOHBnUinK3ZMmSwn0vWLCgsI5/4cgZAAAAAESAyRkAAAAARIDJGQAAAABEgMkZAAAAAESABUESde+99za6BXQza6xR/seFuwe1pUuXVrMdRGifffYJavvvv39QK1okpFLz5s0Las8991zp7SdNmhTUttlmm1LbbrzxxqX3A1RLJYuSHXPMMUGNHKfjC1/4QlBbtGhRULvooosKty9a/KOsn//856XuN2zYsMJ62Z+r3RlHzgAAAAAgAkzOAAAAACACTM4AAAAAIAJMzgAAAAAgAt1mQZCPPvooqBUtqrHrrrsWbt+7d++q91TW+PHjg9qJJ57YgE7QnRUt9rDlllsW3veFF14IakUnEV9xxRWVN4ZonHDCCXXZT9GJ77feemup+22++eaFj3nggQdW3hiS88477wS1o446KqgddNBBhdsfcsghVe+prblz5xbWx40b1+XHLFqoB+kYNWpUUDvnnHOC2g9+8IPC7durt/WZz3wmqL344otBbfDgwUHtggsuKHzMPn36lNp3d8aRMwAAAACIAJMzAAAAAIgAkzMAAAAAiACTMwAAAACIQIeTMzMbZGZ/MrMZZvacmZ2Q1/ua2X1m9lL+df3atwt0jMwiNWQWqSGzSBG5RQrKrNa4XNJJ7v60ma0jaaqZ3SfpSEkPuPuFZjZG0hhJp9Su1fIe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\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"98951294a23d417c81e5585e7b4173ca": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"9bb6f1f03e03469aa623d96c2f56e64b": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"9c9c11a2f6d2433e95bdb3db8040fa19": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": "initial"
}
},
"9d06a471a71e41c49ad5b6d8257ee845": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_16491b9693c94beba852e7ff70f3b280",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Review:\n ? french horror cinema has seen something of a revival over the last couple of years with great films such as inside and ? romance ? on to the scene ? ? the revival just slightly but stands head and shoulders over most modern horror titles and is surely one of the best french horror films ever made ? was obviously shot on a low budget but this is made up for in far more ways than one by the originality of the film and this in turn is ? by the excellent writing and acting that ensure the film is a winner the plot focuses on two main ideas prison and black magic the central character is a man named ? sent to prison for fraud he is put in a cell with three others the quietly insane ? body building ? marcus and his retarded boyfriend daisy after a short while in the cell together they stumble upon a hiding place in the wall that contains an old ? after ? part of it they soon realise its magical powers and realise they may be able to use it to break through the prison walls br br black magic is a very interesting topic and i'm actually quite surprised that there aren't more films based on it as there's so much scope for things to do with it it's fair to say that ? makes the best of it's ? as despite it's ? the film never actually feels restrained and manages to flow well throughout director eric ? provides a great atmosphere for the film the fact that most of it takes place inside the central prison cell ? that the film feels very claustrophobic and this immensely benefits the central idea of the prisoners wanting to use magic to break out of the cell it's very easy to get behind them it's often said that the unknown is the thing that really ? people and this film proves that as the director ? that we can never really be sure of exactly what is round the corner and this helps to ensure that ? actually does manage to be quite frightening the film is memorable for a lot of reasons outside the central plot the characters are all very interesting in their own way and the fact that the book itself almost takes on its own character is very well done anyone worried that the film won't deliver by the end won't be disappointed either as the ending both makes sense and manages to be quite horrifying overall ? is a truly great horror film and one of the best of the decade highly recommended viewing\nNumber of words: 450\nIndices for all ?s: [1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]\n"
}
]
}
},
"9e75661d2f1345409423b3befee61b03": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"9f400bfa657a4b34b8b3735faf5d6add": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "RadioButtonsModel",
"state": {
"_options_labels": [
"train",
"test"
],
"description": "Data:",
"index": 0,
"layout": "IPY_MODEL_0e68af9643e04611b92932eccd719a26",
"style": "IPY_MODEL_11a6857d875f4acb83478bda110e79bd"
}
},
"9fbeb80b4e6943a38885ba684a97cef4": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_b4584cbc35c849999ab5e8bac72d0e42",
"IPY_MODEL_630b31093115460b95709e2c1b3becd6",
"IPY_MODEL_76bc179b4f4241c0925607af59f06155"
],
"layout": "IPY_MODEL_061b6993636f44748b4114ef125cb9d7"
}
},
"a01ca7688ff14f3db037925e37d4600d": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_c1179af3adca4944959492ba13b508eb",
"outputs": [
{
"data": {
"image/png": "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hduvt956Qe2mm24KauuvH37qaPTo0UHt4YcfDmpFJ7NLxQsyFS1QMm/evKA2aNCgoFb0O0OSNttss8J6s0gts420xx57VLR9UWZnzpwZ1M4+++yg9swzzwS12bNnF+5n00037UJ36WjmzD755JOF9SFDhgS1op/Lv//974Na0WvNoowdcMABhfuePHlyUNtqq60K79tddTg5M7ObJe0saQMze13STyTtbGbbSXJJsyQdW8MegU4hs0gRuUVqyCxSQ2aRgg4nZ+5+cEE5PGwDRILMIkXkFqkhs0gNmUUKKlmtEQAAAABQJUzOAAAAACACXVoQpDsqOiH29NNPb0AnmTPPPDOosSAIammTTTYpfd9ly5YFtaKTzZv9RPPu5qqrrgpqRYtltPez8+ijj+7yvn/5y18GtREjRgS1J554osv7kKQVK1YEtaLFcpp94Q80XtHP2aKFGYoULf6w+uqrV9wT6mPu3LlBba+99gpqr732WuH2l156aVD77ne/G9T69u0b1EaOHBnUinK3ZMmSwn0vWLCgsI5/4cgZAAAAAESAyRkAAAAARIDJGQAAAABEgMkZAAAAAESABUESde+99za6BXQza6xR/seFuwe1pUuXVrMdRGifffYJavvvv39QK1okpFLz5s0Las8991zp7SdNmhTUttlmm1LbbrzxxqX3A1RLJYuSHXPMMUGNHKfjC1/4QlBbtGhRULvooosKty9a/KOsn//856XuN2zYsMJ62Z+r3RlHzgAAAAAgAkzOAAAAACACTM4AAAAAIAJMzgAAAAAgAt1mQZCPPvooqBUtqrHrrrsWbt+7d++q91TW+PHjg9qJJ57YgE7QnRUt9rDlllsW3veFF14IakUnEV9xxRWVN4ZonHDCCXXZT9GJ77feemup+22++eaFj3nggQdW3hiS88477wS1o446KqgddNBBhdsfcsghVe+prblz5xbWx40b1+XHLFqoB+kYNWpUUDvnnHOC2g9+8IPC7durt/WZz3wmqL344otBbfDgwUHtggsuKHzMPn36lNp3d8aRMwAAAACIAJMzAAAAAIgAkzMAAAAAiACTMwAAAACIQIeTMzMbZGZ/MrMZZvacmZ2Q1/ua2X1m9lL+df3atwt0jMwiNWQWqSGzSBG5RQrKrNa4XNJJ7v60ma0jaaqZ3SfpSEkPuPuFZjZG0hhJp9Su1fIe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\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"a0c2a9e6d4cf43ae9370725204824f31": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"a23f9bf318ec4268aab0b525767942ed": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"a432eee686df497ab20ac113b38ecbd1": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"a89d27c987254f789abf4457b4a0926b": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_75365cf49d534e29a903c621b47cb3cf",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Total number of misclassified images is 201 Examples of misclassified images 7-11\n"
},
{
"data": {
"image/png": "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SJ3v2keuua+c7t27J9ri1/999tlniT4vvPBCpB48eHC6A8ux4YYbRur4NdeorH322SfRFt/U7r/+678KHmfZsmWJtrFjxxa83V133RWpX3zxxUSfdu3aRepTTz010Sd+fWw895LUtm1D/xqqOfnW2zjX+v2R8q01mjZtWsHjmlmrz5VPfNOi/fffP5XjorIGDBgQqa+66qpEn8svj75TaL4Mxdeefe9730thdLWLV+4BAACAjGByDwAAAGQEk3sAAAAgI5jcAwAAABnRMCuZZsyYkWjbe++9I3Wpm0ZVUnzTj2OOOSbRZ9NNN43Ua665ptcxoWV77bVXom377beP1E8//XRJx47/rEtdqH3ssceWdDtUzmGHHRap8y1EveeeeyL1K6+8ksq5R40aVbDPDTfcULDPIYcckmiLLxTu3bt38QND2U444YRIfe+99yb6xBcoprXoNZ+0js0C2vozfvz4RFt8XnbppZcW7LPlllsm+hSzmWOW8Mo9AAAAkBFM7gEAAICMKDi5N7M7zOx9M5uV03aBmb1jZi+FH4P8DhNZQ67gA7mCL2QLPpAr+FDMNfejJV0v6a5Y+9XOuStTH1FKpk+fHqkvu+yyRJ9av8Z+q622SrQ9/vjjkbpr166VGk7aRqsOc5WW+LXR8etepWSGN95440SfSy65JFKPGDEi0eell14qOJ6NNtqoYJ86MVoZzVXPnj0j9VlnnZXok68tbuLEiZE6vlmaJP3973+P1M8++2wRIyws3/Xc8bZf/OIXiT7xjWxOP/30VMbTSqNV59maOXNmom3cuHGReunSpSUde+21147UV1xxRaLPW2+9Fanjmw+l6eyzz47Uf/jDHxJ92rdv7+38rTBadZ6rYsyePTvRFs9evszE12D8/Oc/T/SJry168MEHE30uvvjiSB1f65M1BV+5d849J+mjCowFDYRcwQdyBV/IFnwgV/ChnGvuTzazl8M/KXVMbURodOQKPpAr+EK24AO5QslKndzfJGlTSX0lNUm6qrmOZjbczKaa2dTFixeXeDo0CHIFH8gVfCkqW+QKrUSuUJaSJvfOuUXOua+dc/+RdKukAS30HeWc6++c69+5c+dSx4kGQK7gA7mCL8Vmi1yhNcgVylXSJlZm1tU51xSWgyXNaqm/b9OmTUu07bbbbpF6yZIllRpOXs65gn223nrrSP3b3/420aeOF9AWVGu58uk73/lOpJ4wYUKiz9y5cyN1r169En3iuc63sVHcJptskmjbcccdC96uXjVSrooR39wn32Y/X375ZaT+4osvEn3ii9/yLdx+9NFHWz2++++/P9H20EMPRepVV1010efkk09u9bnKVW/ZuummmxJtH374YauP86Mf/SjRduGFF0bqXXfdteBxPv3000TbLbfcEqlXrFjRytEF4vlca621En1qdWOjestVPvPnz4/U5557bqJP/PfeLrvskugTX4T9y1/+MtFn2bJlkTrfRnjnn39+pI6/QYGU3CiwnhWcCZjZvZIGSupkZgsl/V7SQDPrK8lJekvScR7HiAwiV/CBXMEXsgUfyBV8KDi5d84dmqf5dg9jQQMhV/CBXMEXsgUfyBV8YIdaAAAAICNKuua+1jz//POJtvhGHPGNEEq1xx57JNri1zCPGjWq4HHyjefEE0+M1Fm6/gutl+8a+7hHHnkkUk+dOrWk48bXAKCxxTf3ybfZT3xTmOXLlyf6/Pvf/47UCxcuTPSJb1r19ttvJ/p8/vnnkfrXv/51ok81rrmvdfF1EPG1C6WK/66SirvGPu7aa69NtMU3WcuXmVLk28AL/hx++OGResqUKYk+G2ywQaQeOXJkok98g8VOnTol+nz22WeResstt0z0GTx4cKSObwApSWussUakHjJkSKJPveCVewAAACAjmNwDAAAAGcHkHgAAAMgIJvcAAABARmRiQW2pfvrTn0bqvn37Jvocf/zxkXrddddN9IlvslHMgtp8Cz4OPvjggrdD7YsvIjz99NMTffr16xepTznllJLOdcMNN7T6NvkWwwHlWn311Qu2vfnmm4k+8Y358i2oRWlef/31SP3OO++UdJz449WgQYMK3ib+phaSdNttt0Xq0047LdEnrTe/iG8cudNOO6VyXCQtXrw40fbcc89F6nwbVD3zzDOpnD++EDafbbfdNlKPGzcu0Se+wDffRlfx49QqXrkHAAAAMoLJPQAAAJARTO4BAACAjMjENfe/+tWvEm35NpuK23jjjSP1aqutVvA2ixYtSrQNHDiw4O222GKLSP3YY48l+uS7nh/157777ovUo0ePTvSJr9MoRnyjDkn64osvWn0c1L74tcmSdOutt0bqPn36JPrccccd3sYU97e//S1S58vijTfeGKmfeuqpRJ8lS5a0+tyb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\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"ab57acec05a8485c92a54e3335b00da3": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_f5786f619bb84e12a49c55fe0b2856ae",
"IPY_MODEL_3dbd0f5894cc4bf7a2cc86b3aeacba31"
],
"layout": "IPY_MODEL_14d14e3ba39a4e5ea533e6034ea41c61"
}
},
"ac0c8566cf6e48088522a63b178e0705": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"ac1840e3d4a349e69167fa8ab8bef5fd": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"ac1fa630e83e4487b5f43e532336bb31": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"b019554219064eafb5866f080fedcfe3": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_ddb5ad72981c4118882e6937322f094c",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "number of misclassified images: 201 examples of misclassified images with index 7-11\n"
},
{
"data": {
"image/png": "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SJ3v2keuua+c7t27J9ri1/999tlniT4vvPBCpB48eHC6A8ux4YYbRur4NdeorH322SfRFt/U7r/+678KHmfZsmWJtrFjxxa83V133RWpX3zxxUSfdu3aRepTTz010Sd+fWw895LUtm1D/xqqOfnW2zjX+v2R8q01mjZtWsHjmlmrz5VPfNOi/fffP5XjorIGDBgQqa+66qpEn8svj75TaL4Mxdeefe9730thdLWLV+4BAACAjGByDwAAAGQEk3sAAAAgI5jcAwAAABnRMCuZZsyYkWjbe++9I3Wpm0ZVUnzTj2OOOSbRZ9NNN43Ua665ptcxoWV77bVXom377beP1E8//XRJx47/rEtdqH3ssceWdDtUzmGHHRap8y1EveeeeyL1K6+8ksq5R40aVbDPDTfcULDPIYcckmiLLxTu3bt38QND2U444YRIfe+99yb6xBcoprXoNZ+0js0C2vozfvz4RFt8XnbppZcW7LPlllsm+hSzmWOW8Mo9AAAAkBFM7gEAAICMKDi5N7M7zOx9M5uV03aBmb1jZi+FH4P8DhNZQ67gA7mCL2QLPpAr+FDMNfejJV0v6a5Y+9XOuStTH1FKpk+fHqkvu+yyRJ9av8Z+q622SrQ9/vjjkbpr166VGk7aRqsOc5WW+LXR8etepWSGN95440SfSy65JFKPGDEi0eell14qOJ6NNtqoYJ86MVoZzVXPnj0j9VlnnZXok68tbuLEiZE6vlmaJP3973+P1M8++2wRIyws3/Xc8bZf/OIXiT7xjWxOP/30VMbTSqNV59maOXNmom3cuHGReunSpSUde+21147UV1xxRaLPW2+9Fanjmw+l6eyzz47Uf/jDHxJ92rdv7+38rTBadZ6rYsyePTvRFs9evszE12D8/Oc/T/SJry168MEHE30uvvjiSB1f65M1BV+5d849J+mjCowFDYRcwQdyBV/IFnwgV/ChnGvuTzazl8M/KXVMbURodOQKPpAr+EK24AO5QslKndzfJGlTSX0lNUm6qrmOZjbczKaa2dTFixeXeDo0CHIFH8gVfCkqW+QKrUSuUJaSJvfOuUXOua+dc/+RdKukAS30HeWc6++c69+5c+dSx4kGQK7gA7mCL8Vmi1yhNcgVylXSJlZm1tU51xSWgyXNaqm/b9OmTUu07bbbbpF6yZIllRpOXs65gn223nrrSP3b3/420aeOF9AWVGu58uk73/lOpJ4wYUKiz9y5cyN1r169En3iuc63sVHcJptskmjbcccdC96uXjVSrooR39wn32Y/X375ZaT+4osvEn3ii9/yLdx+9NFHWz2++++/P9H20EMPRepVV1010efkk09u9bnKVW/ZuummmxJtH374YauP86Mf/SjRduGFF0bqXXfdteBxPv3000TbLbfcEqlXrFjRytEF4vlca621En1qdWOjestVPvPnz4/U5557bqJP/PfeLrvskugTX4T9y1/+MtFn2bJlkTrfRnjnn39+pI6/QYGU3CiwnhWcCZjZvZIGSupkZgsl/V7SQDPrK8lJekvScR7HiAwiV/CBXMEXsgUfyBV8KDi5d84dmqf5dg9jQQMhV/CBXMEXsgUfyBV8YIdaAAAAICNKuua+1jz//POJtvhGHPGNEEq1xx57JNri1zCPGjWq4HHyjefEE0+M1Fm6/gutl+8a+7hHHnkkUk+dOrWk48bXAKCxxTf3ybfZT3xTmOXLlyf6/Pvf/47UCxcuTPSJb1r19ttvJ/p8/vnnkfrXv/51ok81rrmvdfF1EPG1C6WK/66SirvGPu7aa69NtMU3WcuXmVLk28AL/hx++OGResqUKYk+G2ywQaQeOXJkok98g8VOnTol+nz22WeResstt0z0GTx4cKSObwApSWussUakHjJkSKJPveCVewAAACAjmNwDAAAAGcHkHgAAAMgIJvcAAABARmRiQW2pfvrTn0bqvn37Jvocf/zxkXrddddN9IlvslHMgtp8Cz4OPvjggrdD7YsvIjz99NMTffr16xepTznllJLOdcMNN7T6NvkWwwHlWn311Qu2vfnmm4k+8Y358i2oRWlef/31SP3OO++UdJz449WgQYMK3ib+phaSdNttt0Xq0047LdEnrTe/iG8cudNOO6VyXCQtXrw40fbcc89F6nwbVD3zzDOpnD++EDafbbfdNlKPGzcu0Se+wDffRlfx49QqXrkHAAAAMoLJPQAAAJARTO4BAACAjMjENfe/+tWvEm35NpuK23jjjSP1aqutVvA2ixYtSrQNHDiw4O222GKLSP3YY48l+uS7nh/157777ovUo0ePTvSJr9MoRnyjDkn64osvWn0c1L74tcmSdOutt0bqPn36JPrccccd3sYU97e//S1S58vijTfeGKmfeuqpRJ8lS5a0+tyb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\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"b4382332a6af47c38bea0df979f9d7ac": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"b4584cbc35c849999ab5e8bac72d0e42": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "RadioButtonsModel",
"state": {
"_options_labels": [
"train",
"test"
],
"description": "Data:",
"index": 0,
"layout": "IPY_MODEL_14c51d742a904d3c84f8f15e854c6797",
"style": "IPY_MODEL_e0cdbb13a0fa42a0971a17c7d5a1c58c"
}
},
"b59ebcd3f0c04c08aa8834e8b33e6e3d": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_f8dca74e036247c1ba1e2ead331ee32d",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Total number of misclassified images is 201 Examples of misclassified images 7-11\n"
},
{
"data": {
"image/png": "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SJ3v2keuua+c7t27J9ri1/999tlniT4vvPBCpB48eHC6A8ux4YYbRur4NdeorH322SfRFt/U7r/+678KHmfZsmWJtrFjxxa83V133RWpX3zxxUSfdu3aRepTTz010Sd+fWw895LUtm1D/xqqOfnW2zjX+v2R8q01mjZtWsHjmlmrz5VPfNOi/fffP5XjorIGDBgQqa+66qpEn8svj75TaL4Mxdeefe9730thdLWLV+4BAACAjGByDwAAAGQEk3sAAAAgI5jcAwAAABnRMCuZZsyYkWjbe++9I3Wpm0ZVUnzTj2OOOSbRZ9NNN43Ua665ptcxoWV77bVXom377beP1E8//XRJx47/rEtdqH3ssceWdDtUzmGHHRap8y1EveeeeyL1K6+8ksq5R40aVbDPDTfcULDPIYcckmiLLxTu3bt38QND2U444YRIfe+99yb6xBcoprXoNZ+0js0C2vozfvz4RFt8XnbppZcW7LPlllsm+hSzmWOW8Mo9AAAAkBFM7gEAAICMKDi5N7M7zOx9M5uV03aBmb1jZi+FH4P8DhNZQ67gA7mCL2QLPpAr+FDMNfejJV0v6a5Y+9XOuStTH1FKpk+fHqkvu+yyRJ9av8Z+q622SrQ9/vjjkbpr166VGk7aRqsOc5WW+LXR8etepWSGN95440SfSy65JFKPGDEi0eell14qOJ6NNtqoYJ86MVoZzVXPnj0j9VlnnZXok68tbuLEiZE6vlmaJP3973+P1M8++2wRIyws3/Xc8bZf/OIXiT7xjWxOP/30VMbTSqNV59maOXNmom3cuHGReunSpSUde+21147UV1xxRaLPW2+9Fanjmw+l6eyzz47Uf/jDHxJ92rdv7+38rTBadZ6rYsyePTvRFs9evszE12D8/Oc/T/SJry168MEHE30uvvjiSB1f65M1BV+5d849J+mjCowFDYRcwQdyBV/IFnwgV/ChnGvuTzazl8M/KXVMbURodOQKPpAr+EK24AO5QslKndzfJGlTSX0lNUm6qrmOZjbczKaa2dTFixeXeDo0CHIFH8gVfCkqW+QKrUSuUJaSJvfOuUXOua+dc/+RdKukAS30HeWc6++c69+5c+dSx4kGQK7gA7mCL8Vmi1yhNcgVylXSJlZm1tU51xSWgyXNaqm/b9OmTUu07bbbbpF6yZIllRpOXs65gn223nrrSP3b3/420aeOF9AWVGu58uk73/lOpJ4wYUKiz9y5cyN1r169En3iuc63sVHcJptskmjbcccdC96uXjVSrooR39wn32Y/X375ZaT+4osvEn3ii9/yLdx+9NFHWz2++++/P9H20EMPRepVV1010efkk09u9bnKVW/ZuummmxJtH374YauP86Mf/SjRduGFF0bqXXfdteBxPv3000TbLbfcEqlXrFjRytEF4vlca621En1qdWOjestVPvPnz4/U5557bqJP/PfeLrvskugTX4T9y1/+MtFn2bJlkTrfRnjnn39+pI6/QYGU3CiwnhWcCZjZvZIGSupkZgsl/V7SQDPrK8lJekvScR7HiAwiV/CBXMEXsgUfyBV8KDi5d84dmqf5dg9jQQMhV/CBXMEXsgUfyBV8YIdaAAAAICNKuua+1jz//POJtvhGHPGNEEq1xx57JNri1zCPGjWq4HHyjefEE0+M1Fm6/gutl+8a+7hHHnkkUk+dOrWk48bXAKCxxTf3ybfZT3xTmOXLlyf6/Pvf/47UCxcuTPSJb1r19ttvJ/p8/vnnkfrXv/51ok81rrmvdfF1EPG1C6WK/66SirvGPu7aa69NtMU3WcuXmVLk28AL/hx++OGResqUKYk+G2ywQaQeOXJkok98g8VOnTol+nz22WeResstt0z0GTx4cKSObwApSWussUakHjJkSKJPveCVewAAACAjmNwDAAAAGcHkHgAAAMgIJvcAAABARmRiQW2pfvrTn0bqvn37Jvocf/zxkXrddddN9IlvslHMgtp8Cz4OPvjggrdD7YsvIjz99NMTffr16xepTznllJLOdcMNN7T6NvkWwwHlWn311Qu2vfnmm4k+8Y358i2oRWlef/31SP3OO++UdJz449WgQYMK3ib+phaSdNttt0Xq0047LdEnrTe/iG8cudNOO6VyXCQtXrw40fbcc89F6nwbVD3zzDOpnD++EDafbbfdNlKPGzcu0Se+wDffRlfx49QqXrkHAAAAMoLJPQAAAJARTO4BAACAjMjENfe/+tWvEm35NpuK23jjjSP1aqutVvA2ixYtSrQNHDiw4O222GKLSP3YY48l+uS7nh/157777ovUo0ePTvSJr9MoRnyjDkn64osvWn0c1L74tcmSdOutt0bqPn36JPrccccd3sYU97e//S1S58vijTfeGKmfeuqpRJ8lS5a0+tyb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\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"be052ba2c9f84223b15117a3c71a0808": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"bef97f22ba7c4d0b9ff477cea22744ad": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"c1179af3adca4944959492ba13b508eb": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"c179be7c8de04c93a67c39cfa9768d15": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": "initial"
}
},
"c47fc811fb80436f9d77307160a077d0": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"c4b051fd59d54dbb8790f94dea27e3bb": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": "initial"
}
},
"c8090b85872e4f21802fd2892658c80e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_322fdf784e1e4d849bf0f037a41d558e",
"IPY_MODEL_47d2f1f0cc7643bf84045b399cb2c643"
],
"layout": "IPY_MODEL_3eb0b9047441411486fce956b2da2145"
}
},
"cdb9e591531f4dcfb6b9f45f8627b91f": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_25eaa4e9bc2846a4a7cf0d8a29fb22ea",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Review:\n ? french horror cinema has seen something of a revival over the last couple of years with great films such as inside and ? romance ? on to the scene ? ? the revival just slightly but stands head and shoulders over most modern horror titles and is surely one of the best french horror films ever made ? was obviously shot on a low budget but this is made up for in far more ways than one by the originality of the film and this in turn is ? by the excellent writing and acting that ensure the film is a winner the plot focuses on two main ideas prison and black magic the central character is a man named ? sent to prison for fraud he is put in a cell with three others the quietly insane ? body building ? marcus and his retarded boyfriend daisy after a short while in the cell together they stumble upon a hiding place in the wall that contains an old ? after ? part of it they soon realise its magical powers and realise they may be able to use it to break through the prison walls br br black magic is a very interesting topic and i'm actually quite surprised that there aren't more films based on it as there's so much scope for things to do with it it's fair to say that ? makes the best of it's ? as despite it's ? the film never actually feels restrained and manages to flow well throughout director eric ? provides a great atmosphere for the film the fact that most of it takes place inside the central prison cell ? that the film feels very claustrophobic and this immensely benefits the central idea of the prisoners wanting to use magic to break out of the cell it's very easy to get behind them it's often said that the unknown is the thing that really ? people and this film proves that as the director ? that we can never really be sure of exactly what is round the corner and this helps to ensure that ? actually does manage to be quite frightening the film is memorable for a lot of reasons outside the central plot the characters are all very interesting in their own way and the fact that the book itself almost takes on its own character is very well done anyone worried that the film won't deliver by the end won't be disappointed either as the ending both makes sense and manages to be quite horrifying overall ? is a truly great horror film and one of the best of the decade highly recommended viewing\nNumber of words: 450\nIndices for all ?s: [1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]\n"
}
]
}
},
"cebe385f735f40caa7c3a0da58542c7e": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_257cb4ee537a43c499986d2b50c7a356",
"IPY_MODEL_5dc9deb986c44da7bc17e31ea7488c88"
],
"layout": "IPY_MODEL_daae070c515f413d91a96f3221a04bd9"
}
},
"cfd355c843574843b1b04de9899e3877": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_ddd2b0666e814c0ea0190f6ebe8f5790",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Total number of misclassified images is 201 Examples of misclassified images 7-11\n"
},
{
"data": {
"image/png": "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SJ3v2keuua+c7t27J9ri1/999tlniT4vvPBCpB48eHC6A8ux4YYbRur4NdeorH322SfRFt/U7r/+678KHmfZsmWJtrFjxxa83V133RWpX3zxxUSfdu3aRepTTz010Sd+fWw895LUtm1D/xqqOfnW2zjX+v2R8q01mjZtWsHjmlmrz5VPfNOi/fffP5XjorIGDBgQqa+66qpEn8svj75TaL4Mxdeefe9730thdLWLV+4BAACAjGByDwAAAGQEk3sAAAAgI5jcAwAAABnRMCuZZsyYkWjbe++9I3Wpm0ZVUnzTj2OOOSbRZ9NNN43Ua665ptcxoWV77bVXom377beP1E8//XRJx47/rEtdqH3ssceWdDtUzmGHHRap8y1EveeeeyL1K6+8ksq5R40aVbDPDTfcULDPIYcckmiLLxTu3bt38QND2U444YRIfe+99yb6xBcoprXoNZ+0js0C2vozfvz4RFt8XnbppZcW7LPlllsm+hSzmWOW8Mo9AAAAkBFM7gEAAICMKDi5N7M7zOx9M5uV03aBmb1jZi+FH4P8DhNZQ67gA7mCL2QLPpAr+FDMNfejJV0v6a5Y+9XOuStTH1FKpk+fHqkvu+yyRJ9av8Z+q622SrQ9/vjjkbpr166VGk7aRqsOc5WW+LXR8etepWSGN95440SfSy65JFKPGDEi0eell14qOJ6NNtqoYJ86MVoZzVXPnj0j9VlnnZXok68tbuLEiZE6vlmaJP3973+P1M8++2wRIyws3/Xc8bZf/OIXiT7xjWxOP/30VMbTSqNV59maOXNmom3cuHGReunSpSUde+21147UV1xxRaLPW2+9Fanjmw+l6eyzz47Uf/jDHxJ92rdv7+38rTBadZ6rYsyePTvRFs9evszE12D8/Oc/T/SJry168MEHE30uvvjiSB1f65M1BV+5d849J+mjCowFDYRcwQdyBV/IFnwgV/ChnGvuTzazl8M/KXVMbURodOQKPpAr+EK24AO5QslKndzfJGlTSX0lNUm6qrmOZjbczKaa2dTFixeXeDo0CHIFH8gVfCkqW+QKrUSuUJaSJvfOuUXOua+dc/+RdKukAS30HeWc6++c69+5c+dSx4kGQK7gA7mCL8Vmi1yhNcgVylXSJlZm1tU51xSWgyXNaqm/b9OmTUu07bbbbpF6yZIllRpOXs65gn223nrrSP3b3/420aeOF9AWVGu58uk73/lOpJ4wYUKiz9y5cyN1r169En3iuc63sVHcJptskmjbcccdC96uXjVSrooR39wn32Y/X375ZaT+4osvEn3ii9/yLdx+9NFHWz2++++/P9H20EMPRepVV1010efkk09u9bnKVW/ZuummmxJtH374YauP86Mf/SjRduGFF0bqXXfdteBxPv3000TbLbfcEqlXrFjRytEF4vlca621En1qdWOjestVPvPnz4/U5557bqJP/PfeLrvskugTX4T9y1/+MtFn2bJlkTrfRnjnn39+pI6/QYGU3CiwnhWcCZjZvZIGSupkZgsl/V7SQDPrK8lJekvScR7HiAwiV/CBXMEXsgUfyBV8KDi5d84dmqf5dg9jQQMhV/CBXMEXsgUfyBV8YIdaAAAAICNKuua+1jz//POJtvhGHPGNEEq1xx57JNri1zCPGjWq4HHyjefEE0+M1Fm6/gutl+8a+7hHHnkkUk+dOrWk48bXAKCxxTf3ybfZT3xTmOXLlyf6/Pvf/47UCxcuTPSJb1r19ttvJ/p8/vnnkfrXv/51ok81rrmvdfF1EPG1C6WK/66SirvGPu7aa69NtMU3WcuXmVLk28AL/hx++OGResqUKYk+G2ywQaQeOXJkok98g8VOnTol+nz22WeResstt0z0GTx4cKSObwApSWussUakHjJkSKJPveCVewAAACAjmNwDAAAAGcHkHgAAAMgIJvcAAABARmRiQW2pfvrTn0bqvn37Jvocf/zxkXrddddN9IlvslHMgtp8Cz4OPvjggrdD7YsvIjz99NMTffr16xepTznllJLOdcMNN7T6NvkWwwHlWn311Qu2vfnmm4k+8Y358i2oRWlef/31SP3OO++UdJz449WgQYMK3ib+phaSdNttt0Xq0047LdEnrTe/iG8cudNOO6VyXCQtXrw40fbcc89F6nwbVD3zzDOpnD++EDafbbfdNlKPGzcu0Se+wDffRlfx49QqXrkHAAAAMoLJPQAAAJARTO4BAACAjMjENfe/+tWvEm35NpuK23jjjSP1aqutVvA2ixYtSrQNHDiw4O222GKLSP3YY48l+uS7nh/157777ovUo0ePTvSJr9MoRnyjDkn64osvWn0c1L74tcmSdOutt0bqPn36JPrccccd3sYU97e//S1S58vijTfeGKmfeuqpRJ8lS5a0+tybbbZZq2/TiOLXr5d6Pfu8efMi9fnnn5/oE9986uuvv070aWpqKjietK65X7BgQaRmoz5/JkyYkGiL/xzjm0jVorFjx0bqV199NdGHa+4BAAAAVBSTewAAACAjmNwDAAAAGVFwcm9mPczsaTObbWavmNmIsH09M3vCzOaG/3b0P1xkBbmCD+QKPpAr+ECu4EsxC2pXSDrdOTfdzNaSNM3MnpB0hKQnnXOXm9lZks6SdKa/oTavY8dk7vO1peG6665LtMU3CsnnjDPOiNQ9evRIbUx1quZz5dM//vGPSP3ee+8l+qyzzjqR+uSTT070mTZtWsFztW/fPlIXs3C8jtVlrj744INIfckllyT6zJ8/P1Lne9zZeeedI3Xv3r0Lnnvy5MmJtvjmMqusknwdaMqUKZHa5+LuNddcM1I/8cQT3s7VjLrMVVriG1KVsnlemlZdddVIfcEFFyT6dOvWrUKjKUsmctWpU6eCbbfcckuiT3weNGTIkHQH1oLx48cn2g488MBInW9x92GHHeZtTGkq+Mq9c67JOTc9/HyppNmSuknaX9KYsNsYSQf4GiSyh1zBB3IFH8gVfCBX8KVV19ybWU9J/SS9IKmLc65JCgIqaYNmbjPczKaa2dR8WxQD5Ao+kCv4QK7gA7lCmoqe3JtZB0njJJ3qnCv6jYmdc6Occ/2dc/07d+5cyhiRYeQKPpAr+ECu4AO5QtqK2sTKzNopCN49zrmVFyotMrOuzrkmM+sq6X1fg6ymt99+O1Ln25CobdvotzHfJgdHH310quPKgqzmKn5Ne5s2bRJ94pvCnHbaaYk+H3/8caR+/PHHC567Xbt2ibZddtklUu+5554Fj1PP6jFX8evX863BiPvkk08SbUcddVQq43HOReq0NhbKt96jZ8+ekTq+1kSSzj333Egd34CwEuoxVzvssEOk3nzzzRN9ilkz5ku+tWf51nfEDR8+PFL/7ne/S21MlVaPuYrLd618fO6Ub2O+YcOGRerXXnst0eecc84pc3SBiy++OFJfccUViT7xx7nzzjsvlXNXQzHvlmOSbpc02zk3MudLkySt/MkMkzQxflugOeQKPpAr+ECu4AO5gi/FvHL/Y0lDJc00s5fCtnMkXS7pv83saElvSzrIzxCRUeQKPpAr+ECu4AO5ghcFJ/fOuSmSmvub7G7pDgeNglzBB3IFH8gVfCBX8IUdagEAAICMKGpBbaNYvnx5om3kyJGRuqmpKdFns802i9TPP/98ugNDXTnyyCMj9YUXXpjoE9+Q6L777kvl3DvuuGOiLd8mRagtBxwQfRvr7bffPtFn9uzZkbrab30X31gq38aBJ5xwQqTeZpttEn0GDRqU7sDwje7du0fqI444ItEnrQWLcfHFkpL0/e9/P1KfeuqpXs6N6ov/bPfaa69En3322SdSxxdKl2ro0KGJtvhi3Xwbb40ZMyZSV3JTrbTxyj0AAACQEUzuAQAAgIxgcg8AAABkBNfc55g5c2ai7brrrovU6623XqLPpMdQ4PUAAAX4SURBVEmTvI0J9S/fRhjHHntsKsfeYostIvWdd96ZynFRXc8880yibcGCBZF6//33T/R58803Cx57v/32i9QDBgxo3eBCW265ZaTebTfe3KPWnXnmmUW1AWmLP15I0tixY1M5dnw90oMPPpjoc/bZZ0fqfNf357sOv17xyj0AAACQEUzuAQAAgIxgcg8AAABkBJN7AAAAICNYUNtKa6yxRqItvqgRyLXddtsl2uIbW1177bWJPoceemik7ty5c6JPfFOa+KY1yI4ePXpE6unTp1dpJABQvp122imV48QX6y5dujSV49YzXrkHAAAAMoLJPQAAAJARBSf3ZtbDzJ42s9lm9oqZjQjbLzCzd8zspfBjkP/hIivIFXwgV/CBXMEHcgVfirnmfoWk051z081sLUnTzOyJ8GtXO+eu9De8ysp3vXKfPn0i9SeffFKp4WRdw+Sqb9++BdvybXSFkjRMrlBR5Ao+kCt4UXBy75xrktQUfr7UzGZL6uZ7YMg2cgUfyBV8IFfwgVzBl1Zdc29mPSX1k/RC2HSymb1sZneYWceUx4YGQa7gA7mCD+QKPpArpKnoyb2ZdZA0TtKpzrklkm6StKmkvgqeeV7VzO2Gm9lUM5u6ePHiFIaMLCFX8IFcwQdyBR/IFdJW1OTezNopCN49zrnxkuScW+Sc+9o59x9Jt0oakO+2zrlRzrn+zrn++d6nG42LXMEHcgUfyBV8IFfwoeA192Zmkm6XNNs5NzKnvWt4vZgkDZY0y88QK2fDDTdMtL388stVGEn2NVKuUDnkCj6QK/hAruBLMe+W82NJQyXNNLOXwrZzJB1qZn0lOUlvSTrOywiRVeQKPpAr+ECu4AO5ghfFvFvOFEmW50uPpj8cNApyBR/IFXwgV/CBXMEXdqgFAAAAMoLJPQAAAJARTO4BAACAjGByDwAAAGQEk3sAAAAgI5jcAwAAABlhzrnKncxssaT5kjpJ+qBiJ04HYy7Nxs45r1vnkauKq4Uxk6uWMebSkKuWMebSVDJXUm3c59aot/FKtTHmZnNV0cn9Nyc1m+qc61/xE5eBMde+ery/jLn21eP9Zcy1rx7vL2OuD/V2n+ttvFLtj5nLcgAAAICMYHIPAAAAZES1JvejqnTecjDm2leP95cx1756vL+MufbV4/1lzPWh3u5zvY1XqvExV+WaewAAAADp47IcAAAAICMqPrk3s73NbI6ZzTOzsyp9/mKY2R1m9r6ZzcppW8/MnjCzueG/Has5xlxm1sPMnjaz2Wb2ipmNCNtrdsxpI1fpI1fkygdyRa58IFfkyod6zVVFJ/dm1kbSDZL2kdRb0qFm1ruSYyjSaEl7x9rOkvSkc66XpCfDulaskHS6c25LST+UdFL4fa3lMaeGXHlDrsiVD+SKXPlArsiVD3WZq0q/cj9A0jzn3JvOuS8l3Sdp/wqPoSDn3HOSPoo17y9pTPj5GEkHVHRQLXDONTnnpoefL5U0W1I31fCYU0auPCBX5MoHckWufCBX5MqHes1VpSf33SQtyKkXhm31oItzrkkKftiSNqjyePIys56S+kl6QXUy5hSQK8/IlSRylTpyJYlcpY5cSSJXqaunXFV6cm952ni7npSYWQdJ4ySd6pxbUu3xVBC58ohcRZCrlJCrCHKVEnIVQa5SUm+5qvTkfqGkHjl1d0nvVngMpVpkZl0lKfz3/SqPJ8LM2ikI3j3OufFhc02POUXkyhNyRa58IFfkygdyRa58qMdcVXpy/09JvcxsEzNrL+kQSZMqPIZSTZI0LPx8mKSJVRxLhJmZpNslzXbOjcz5Us2OOWXkygNyRa58IFfkygdyRa58qNtcOecq+iFpkKTXJb0h6dxKn7/IMd4rqUnSVwqeDR8taX0FK6Lnhv+uV+1x5ox3RwV/fntZ0kvhx6BaHjO5Ilf18EGuyBW5Ilf18kGuyNXKD3aoBQAAADKCHWoBAACAjGByDwAAAGQEk3sAAAAgI5jcAwAAABnB5B4AAADICCb3AAAAQEYwuQcAAAAygsk9AAAAkBH/B7PWYx8H514mAAAAAElFTkSuQmCC\n",
"text/plain": ""
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
]
}
},
"d174b654894140d58f3ec025c10ffbbb": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"d315106cf8bd411e873ae2863582f81c": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_fa7a2ebe4a454c86bada9a1e5edb08e5",
"step": 1,
"style": "IPY_MODEL_9e75661d2f1345409423b3befee61b03",
"value": 7
}
},
"d4e44547191d40688e021359a3d61540": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": "initial"
}
},
"daae070c515f413d91a96f3221a04bd9": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"dc4a05f64e094af4af7141dfef497be4": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_51102e478a5c4ab89414734a79c9d682",
"IPY_MODEL_cfd355c843574843b1b04de9899e3877"
],
"layout": "IPY_MODEL_b4382332a6af47c38bea0df979f9d7ac"
}
},
"ddb5ad72981c4118882e6937322f094c": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"ddd2b0666e814c0ea0190f6ebe8f5790": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"e0cdbb13a0fa42a0971a17c7d5a1c58c": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"e2c2bafbc83a4a3fb46e3637e2143276": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"e319cfbd29ea4ae58e81ed711ecf904d": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
},
"e39de2a2c881429e94b93f4ba2d82c61": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_462555ad60f94272a2872b0d77db2a7a",
"IPY_MODEL_71903c8e5b20439da9375b774d4efa9e",
"IPY_MODEL_974d4e5ba8dd407f9df59413f3186a6a"
],
"layout": "IPY_MODEL_849a84d30fba4e559988fc68e4dedeed"
}
},
"e3e6b20177d944038b3844d5576b6f83": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_f36ab5cfcde94783bedbd2774b1b3103",
"step": 1,
"style": "IPY_MODEL_8bf1279f5c91430985f9e61053145282",
"value": 7
}
},
"e440a65dae6d42989b819f16c73d5091": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_9f400bfa657a4b34b8b3735faf5d6add",
"IPY_MODEL_0203ab3a6aaf4e3dbc9dc0eff1b42803",
"IPY_MODEL_a01ca7688ff14f3db037925e37d4600d"
],
"layout": "IPY_MODEL_85a51d8e47a14a96b6274cc29532e2ad"
}
},
"e6079fe551aa45ff9bcdb3e6c09acab3": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"e6a9e657953443758d3a006f60a57819": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "SliderStyleModel",
"state": {
"description_width": "initial"
}
},
"e9816f18466b4e568584d6add4532980": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntSliderModel",
"state": {
"description": "Index of Review:",
"layout": "IPY_MODEL_2c9cd44ebeec4c2f9956b3774c03e3cd",
"max": 30,
"style": "IPY_MODEL_9c9c11a2f6d2433e95bdb3db8040fa19",
"value": 10
}
},
"ecf57b78510f4f118c4930f16378cafd": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "VBoxModel",
"state": {
"_dom_classes": [
"widget-interact"
],
"children": [
"IPY_MODEL_08d3c57af91f4f50b801f9c0657b6161",
"IPY_MODEL_b59ebcd3f0c04c08aa8834e8b33e6e3d"
],
"layout": "IPY_MODEL_ee55addc045d4b10b84a9f5dc3c61b38"
}
},
"ee55addc045d4b10b84a9f5dc3c61b38": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"f36ab5cfcde94783bedbd2774b1b3103": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"f3743900c3d94418932cca6323f92876": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_3753f3b8ba004d4884ca7308818be833",
"step": 1,
"style": "IPY_MODEL_050f0343a6b24b1abd8098a33d87b742",
"value": 7
}
},
"f5786f619bb84e12a49c55fe0b2856ae": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "IntTextModel",
"state": {
"description": "Index:",
"layout": "IPY_MODEL_a0c2a9e6d4cf43ae9370725204824f31",
"step": 1,
"style": "IPY_MODEL_2a38f2e171834b0a9293017c3f58bf1a",
"value": 9
}
},
"f5bc55411bec44b284d7fa62e2fb3249": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"f6dc1523bef24aafaf8f45a9effcc0bd": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"f86478cb72d94a96b69cae3c9dbb656a": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"f8dca74e036247c1ba1e2ead331ee32d": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"f9e9325163a546a88fc18f40334f361a": {
"model_module": "@jupyter-widgets/output",
"model_module_version": "1.0.0",
"model_name": "OutputModel",
"state": {
"layout": "IPY_MODEL_20fba55a99994535a76c5ac08e3bdfa8",
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "Review:\n ? french horror cinema has seen something of a revival over the last couple of years with great films such as inside and ? romance ? on to the scene ? ? the revival just slightly but stands head and shoulders over most modern horror titles and is surely one of the best french horror films ever made ? was obviously shot on a low budget but this is made up for in far more ways than one by the originality of the film and this in turn is ? by the excellent writing and acting that ensure the film is a winner the plot focuses on two main ideas prison and black magic the central character is a man named ? sent to prison for fraud he is put in a cell with three others the quietly insane ? body building ? marcus and his retarded boyfriend daisy after a short while in the cell together they stumble upon a hiding place in the wall that contains an old ? after ? part of it they soon realise its magical powers and realise they may be able to use it to break through the prison walls br br black magic is a very interesting topic and i'm actually quite surprised that there aren't more films based on it as there's so much scope for things to do with it it's fair to say that ? makes the best of it's ? as despite it's ? the film never actually feels restrained and manages to flow well throughout director eric ? provides a great atmosphere for the film the fact that most of it takes place inside the central prison cell ? that the film feels very claustrophobic and this immensely benefits the central idea of the prisoners wanting to use magic to break out of the cell it's very easy to get behind them it's often said that the unknown is the thing that really ? people and this film proves that as the director ? that we can never really be sure of exactly what is round the corner and this helps to ensure that ? actually does manage to be quite frightening the film is memorable for a lot of reasons outside the central plot the characters are all very interesting in their own way and the fact that the book itself almost takes on its own character is very well done anyone worried that the film won't deliver by the end won't be disappointed either as the ending both makes sense and manages to be quite horrifying overall ? is a truly great horror film and one of the best of the decade highly recommended viewing\nNumber of words: 450\nIndices for all ?s: [1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]\n"
}
]
}
},
"fa7a2ebe4a454c86bada9a1e5edb08e5": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"ffa0cace164a478ebe5ad8ec091c5bba": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "RadioButtonsModel",
"state": {
"_options_labels": [
"train",
"test"
],
"description": "Data:",
"index": 0,
"layout": "IPY_MODEL_83e62511942c4f469b9ceb911035eb10",
"style": "IPY_MODEL_425af0d596e6424ab66bd85f1de77d4e"
}
},
"ffd625deb7f74cf6ae5738e2bfe2b6a6": {
"model_module": "@jupyter-widgets/base",
"model_module_version": "1.2.0",
"model_name": "LayoutModel",
"state": {}
},
"ffe5304400b34ddfb1df91fe5319bc1d": {
"model_module": "@jupyter-widgets/controls",
"model_module_version": "1.5.0",
"model_name": "DescriptionStyleModel",
"state": {
"description_width": ""
}
}
},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}