{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# DS4420: Fun with autoencoders and self-supervision" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*Your name*: " ] }, { "cell_type": "code", "execution_count": 179, "metadata": {}, "outputs": [], "source": [ "import numpy as np \n", "import matplotlib.pyplot as plt\n", "\n", "import torch\n", "from torch import nn\n", "# conda install -c pytorch torchvision\n", "import torchvision\n", "\n", "# note: if you cannot get torchvision installed \n", "# using the above sequence, you can resort to \n", "# the colab version here: \n", "# -- just be sure to download and then upload\n", "# the notebook to blackboard when complete.\n", "fMNIST = torchvision.datasets.FashionMNIST(\n", " root = './data/FashionMNIST',\n", " train = True,\n", " download = True) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once again, we are playing with Fashion-MNIST here, following the last few lectures." ] }, { "cell_type": "code", "execution_count": 180, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 180, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from IPython.display import Image \n", "from matplotlib.pyplot import imshow\n", "%matplotlib inline\n", "imshow(np.asarray(fMNIST.data[6]), cmap='gray')" ] }, { "cell_type": "code", "execution_count": 181, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(60000, 784)" ] }, "execution_count": 181, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X = fMNIST.data\n", "X = np.array([x_i.flatten().numpy() for x_i in X])\n", "X = X / 255 # normalize\n", "X.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## A brief detour / torch intro (or refresher)\n", "\n", "We're going to implement a few autoencoder (AE) variants in `torch`. \n", "\n", "Given that for some of you this may serve as something of an introduction to (or at least refresher for) `torch`, Here is one way to define and train a simple model.\n", "\n", "Note that you can also use the simple `Sequential` pipeline to build such straightforward models, but this style affords more flexibility (though overkill for something like this)." ] }, { "cell_type": "code", "execution_count": 182, "metadata": {}, "outputs": [], "source": [ "class SimpleMLP(nn.Module):\n", " def __init__(self, input_size=784, hidden_size=32, n_labels=10):\n", " '''\n", " In the initializer we setup model parameters/layers.\n", " '''\n", " super(SimpleMLP, self).__init__() \n", "\n", " self.input_size = input_size\n", " self.hidden_size = hidden_size\n", " self.n_labels = 10\n", " \n", " # input layer; from x -> z\n", " self.i = nn.Linear(self.input_size, self.hidden_size, bias=False)\n", " # nonlinear activation\n", " self.a = nn.ReLU()\n", " # output layer\n", " self.o = nn.Linear(self.hidden_size, 10)\n", " self.sm = nn.Softmax()\n", " \n", " def forward(self, X):\n", " '''\n", " The forward pass defines how inputs flow forward through\n", " the model (linking layers together).\n", " '''\n", " z = self.i(X)\n", " z = self.a(z)\n", " y_hat = self.o(z)\n", " return y_hat" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now to actually train the model, we need to define an `optimizer` and a loss function." ] }, { "cell_type": "code", "execution_count": 183, "metadata": {}, "outputs": [], "source": [ "model = SimpleMLP().float()\n", "\n", "from torch import optim\n", "optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)\n", "\n", "loss_function = nn.CrossEntropyLoss() " ] }, { "cell_type": "code", "execution_count": 184, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([9, 0, 0, ..., 3, 0, 5])" ] }, "execution_count": 184, "metadata": {}, "output_type": "execute_result" } ], "source": [ "y = fMNIST.targets\n", "y" ] }, { "cell_type": "code", "execution_count": 185, "metadata": {}, "outputs": [], "source": [ "# convert X to a torch tensor\n", "X = torch.tensor(X)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's take a look at making predictions and calculating a loss." ] }, { "cell_type": "code", "execution_count": 186, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "tensor(2.3589, grad_fn=)\n" ] } ], "source": [ "# make a prediction for the first 5 instances \n", "# (note that this is \"batched\"; we are pushing \n", "# through 5 instances at once)\n", "y_hat = model(X[:5,:].float())\n", "# calculate loss\n", "loss = loss_function(y_hat, y[:5])\n", "print(loss)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "And now take some number of passes over our training data, incurring loss, and performing backprop." ] }, { "cell_type": "code", "execution_count": 187, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "epoch: 0, batch: 0 // loss: 2.305\n", "epoch: 0, batch: 100 // loss: 1.929\n", "epoch: 0, batch: 200 // loss: 1.576\n", "epoch: 0, batch: 300 // loss: 1.377\n", "epoch: 0, batch: 400 // loss: 1.068\n", "epoch: 0, batch: 500 // loss: 1.100\n", "epoch: 0, batch: 600 // loss: 0.984\n", "epoch: 0, batch: 700 // loss: 0.792\n", "epoch: 0, batch: 800 // loss: 0.861\n", "epoch: 0, batch: 900 // loss: 0.682\n", "epoch: 0, batch: 1000 // loss: 0.832\n", "epoch: 0, batch: 1100 // loss: 0.547\n", "epoch: 0, batch: 1200 // loss: 0.574\n", "\n", "epoch: 1, batch: 0 // loss: 0.745\n", "epoch: 1, batch: 100 // loss: 0.593\n", "epoch: 1, batch: 200 // loss: 0.689\n", "epoch: 1, batch: 300 // loss: 0.644\n", "epoch: 1, batch: 400 // loss: 0.532\n", "epoch: 1, batch: 500 // loss: 0.638\n", "epoch: 1, batch: 600 // loss: 0.727\n", "epoch: 1, batch: 700 // loss: 0.405\n", "epoch: 1, batch: 800 // loss: 0.587\n", "epoch: 1, batch: 900 // loss: 0.369\n", "epoch: 1, batch: 1000 // loss: 0.702\n", "epoch: 1, batch: 1100 // loss: 0.356\n", "epoch: 1, batch: 1200 // loss: 0.446\n", "\n", "epoch: 2, batch: 0 // loss: 0.595\n", "epoch: 2, batch: 100 // loss: 0.479\n", "epoch: 2, batch: 200 // loss: 0.678\n", "epoch: 2, batch: 300 // loss: 0.514\n", "epoch: 2, batch: 400 // loss: 0.383\n", "epoch: 2, batch: 500 // loss: 0.534\n", "epoch: 2, batch: 600 // loss: 0.659\n", "epoch: 2, batch: 700 // loss: 0.322\n", "epoch: 2, batch: 800 // loss: 0.469\n", "epoch: 2, batch: 900 // loss: 0.271\n", "epoch: 2, batch: 1000 // loss: 0.668\n", "epoch: 2, batch: 1100 // loss: 0.271\n", "epoch: 2, batch: 1200 // loss: 0.404\n", "\n", "epoch: 3, batch: 0 // loss: 0.523\n", "epoch: 3, batch: 100 // loss: 0.408\n", "epoch: 3, batch: 200 // loss: 0.694\n", "epoch: 3, batch: 300 // loss: 0.457\n", "epoch: 3, batch: 400 // loss: 0.311\n", "epoch: 3, batch: 500 // loss: 0.498\n", "epoch: 3, batch: 600 // loss: 0.619\n", "epoch: 3, batch: 700 // loss: 0.296\n", "epoch: 3, batch: 800 // loss: 0.407\n", "epoch: 3, batch: 900 // loss: 0.221\n", "epoch: 3, batch: 1000 // loss: 0.658\n", "epoch: 3, batch: 1100 // loss: 0.227\n", "epoch: 3, batch: 1200 // loss: 0.379\n", "\n", "epoch: 4, batch: 0 // loss: 0.470\n", "epoch: 4, batch: 100 // loss: 0.372\n", "epoch: 4, batch: 200 // loss: 0.691\n", "epoch: 4, batch: 300 // loss: 0.421\n", "epoch: 4, batch: 400 // loss: 0.277\n", "epoch: 4, batch: 500 // loss: 0.480\n", "epoch: 4, batch: 600 // loss: 0.593\n", "epoch: 4, batch: 700 // loss: 0.285\n", "epoch: 4, batch: 800 // loss: 0.368\n", "epoch: 4, batch: 900 // loss: 0.191\n", "epoch: 4, batch: 1000 // loss: 0.654\n", "epoch: 4, batch: 1100 // loss: 0.201\n", "epoch: 4, batch: 1200 // loss: 0.352\n", "\n", "epoch: 5, batch: 0 // loss: 0.428\n", "epoch: 5, batch: 100 // loss: 0.352\n", "epoch: 5, batch: 200 // loss: 0.670\n", "epoch: 5, batch: 300 // loss: 0.397\n", "epoch: 5, batch: 400 // loss: 0.258\n", "epoch: 5, batch: 500 // loss: 0.471\n", "epoch: 5, batch: 600 // loss: 0.576\n", "epoch: 5, batch: 700 // loss: 0.279\n", "epoch: 5, batch: 800 // loss: 0.340\n", "epoch: 5, batch: 900 // loss: 0.173\n", "epoch: 5, batch: 1000 // loss: 0.653\n", "epoch: 5, batch: 1100 // loss: 0.185\n", "epoch: 5, batch: 1200 // loss: 0.330\n", "\n", "epoch: 6, batch: 0 // loss: 0.399\n", "epoch: 6, batch: 100 // loss: 0.343\n", "epoch: 6, batch: 200 // loss: 0.645\n", "epoch: 6, batch: 300 // loss: 0.381\n", "epoch: 6, batch: 400 // loss: 0.244\n", "epoch: 6, batch: 500 // loss: 0.459\n", "epoch: 6, batch: 600 // loss: 0.566\n", "epoch: 6, batch: 700 // loss: 0.273\n", "epoch: 6, batch: 800 // loss: 0.322\n", "epoch: 6, batch: 900 // loss: 0.161\n", "epoch: 6, batch: 1000 // loss: 0.650\n", "epoch: 6, batch: 1100 // loss: 0.174\n", "epoch: 6, batch: 1200 // loss: 0.310\n", "\n", "epoch: 7, batch: 0 // loss: 0.375\n", "epoch: 7, batch: 100 // loss: 0.336\n", "epoch: 7, batch: 200 // loss: 0.620\n", "epoch: 7, batch: 300 // loss: 0.372\n", "epoch: 7, batch: 400 // loss: 0.234\n", "epoch: 7, batch: 500 // loss: 0.452\n", "epoch: 7, batch: 600 // loss: 0.556\n", "epoch: 7, batch: 700 // loss: 0.265\n", "epoch: 7, batch: 800 // loss: 0.311\n", "epoch: 7, batch: 900 // loss: 0.149\n", "epoch: 7, batch: 1000 // loss: 0.646\n", "epoch: 7, batch: 1100 // loss: 0.166\n", "epoch: 7, batch: 1200 // loss: 0.293\n", "\n", "epoch: 8, batch: 0 // loss: 0.358\n", "epoch: 8, batch: 100 // loss: 0.331\n", "epoch: 8, batch: 200 // loss: 0.600\n", "epoch: 8, batch: 300 // loss: 0.357\n", "epoch: 8, batch: 400 // loss: 0.226\n", "epoch: 8, batch: 500 // loss: 0.443\n", "epoch: 8, batch: 600 // loss: 0.546\n", "epoch: 8, batch: 700 // loss: 0.259\n", "epoch: 8, batch: 800 // loss: 0.302\n", "epoch: 8, batch: 900 // loss: 0.139\n", "epoch: 8, batch: 1000 // loss: 0.639\n", "epoch: 8, batch: 1100 // loss: 0.160\n", "epoch: 8, batch: 1200 // loss: 0.280\n", "\n", "epoch: 9, batch: 0 // loss: 0.345\n", "epoch: 9, batch: 100 // loss: 0.331\n", "epoch: 9, batch: 200 // loss: 0.582\n", "epoch: 9, batch: 300 // loss: 0.345\n", "epoch: 9, batch: 400 // loss: 0.220\n", "epoch: 9, batch: 500 // loss: 0.432\n", "epoch: 9, batch: 600 // loss: 0.535\n", "epoch: 9, batch: 700 // loss: 0.257\n", "epoch: 9, batch: 800 // loss: 0.295\n", "epoch: 9, batch: 900 // loss: 0.132\n", "epoch: 9, batch: 1000 // loss: 0.633\n", "epoch: 9, batch: 1100 // loss: 0.154\n", "epoch: 9, batch: 1200 // loss: 0.266\n", "\n", "epoch: 10, batch: 0 // loss: 0.332\n", "epoch: 10, batch: 100 // loss: 0.330\n", "epoch: 10, batch: 200 // loss: 0.571\n", "epoch: 10, batch: 300 // loss: 0.337\n", "epoch: 10, batch: 400 // loss: 0.213\n", "epoch: 10, batch: 500 // loss: 0.429\n", "epoch: 10, batch: 600 // loss: 0.527\n", "epoch: 10, batch: 700 // loss: 0.256\n", "epoch: 10, batch: 800 // loss: 0.291\n", "epoch: 10, batch: 900 // loss: 0.126\n", "epoch: 10, batch: 1000 // loss: 0.627\n", "epoch: 10, batch: 1100 // loss: 0.151\n", "epoch: 10, batch: 1200 // loss: 0.253\n", "\n", "epoch: 11, batch: 0 // loss: 0.323\n", "epoch: 11, batch: 100 // loss: 0.330\n", "epoch: 11, batch: 200 // loss: 0.550\n", "epoch: 11, batch: 300 // loss: 0.328\n", "epoch: 11, batch: 400 // loss: 0.207\n", "epoch: 11, batch: 500 // loss: 0.423\n", "epoch: 11, batch: 600 // loss: 0.517\n", "epoch: 11, batch: 700 // loss: 0.252\n", "epoch: 11, batch: 800 // loss: 0.286\n", "epoch: 11, batch: 900 // loss: 0.122\n", "epoch: 11, batch: 1000 // loss: 0.618\n", "epoch: 11, batch: 1100 // loss: 0.149\n", "epoch: 11, batch: 1200 // loss: 0.245\n", "\n", "epoch: 12, batch: 0 // loss: 0.319\n", "epoch: 12, batch: 100 // loss: 0.330\n", "epoch: 12, batch: 200 // loss: 0.537\n", "epoch: 12, batch: 300 // loss: 0.324\n", "epoch: 12, batch: 400 // loss: 0.200\n", "epoch: 12, batch: 500 // loss: 0.414\n", "epoch: 12, batch: 600 // loss: 0.513\n", "epoch: 12, batch: 700 // loss: 0.251\n", "epoch: 12, batch: 800 // loss: 0.284\n", "epoch: 12, batch: 900 // loss: 0.120\n", "epoch: 12, batch: 1000 // loss: 0.609\n", "epoch: 12, batch: 1100 // loss: 0.147\n", "epoch: 12, batch: 1200 // loss: 0.232\n", "\n", "epoch: 13, batch: 0 // loss: 0.311\n", "epoch: 13, batch: 100 // loss: 0.328\n", "epoch: 13, batch: 200 // loss: 0.523\n", "epoch: 13, batch: 300 // loss: 0.325\n", "epoch: 13, batch: 400 // loss: 0.194\n", "epoch: 13, batch: 500 // loss: 0.409\n", "epoch: 13, batch: 600 // loss: 0.501\n", "epoch: 13, batch: 700 // loss: 0.248\n", "epoch: 13, batch: 800 // loss: 0.281\n", "epoch: 13, batch: 900 // loss: 0.117\n", "epoch: 13, batch: 1000 // loss: 0.603\n", "epoch: 13, batch: 1100 // loss: 0.145\n", "epoch: 13, batch: 1200 // loss: 0.222\n", "\n", "epoch: 14, batch: 0 // loss: 0.307\n", "epoch: 14, batch: 100 // loss: 0.328\n", "epoch: 14, batch: 200 // loss: 0.508\n", "epoch: 14, batch: 300 // loss: 0.322\n", "epoch: 14, batch: 400 // loss: 0.188\n", "epoch: 14, batch: 500 // loss: 0.407\n", "epoch: 14, batch: 600 // loss: 0.490\n", "epoch: 14, batch: 700 // loss: 0.249\n", "epoch: 14, batch: 800 // loss: 0.286\n", "epoch: 14, batch: 900 // loss: 0.112\n", "epoch: 14, batch: 1000 // loss: 0.597\n", "epoch: 14, batch: 1100 // loss: 0.143\n", "epoch: 14, batch: 1200 // loss: 0.215\n", "\n", "epoch: 15, batch: 0 // loss: 0.303\n", "epoch: 15, batch: 100 // loss: 0.326\n", "epoch: 15, batch: 200 // loss: 0.487\n", "epoch: 15, batch: 300 // loss: 0.315\n", "epoch: 15, batch: 400 // loss: 0.184\n", "epoch: 15, batch: 500 // loss: 0.405\n", "epoch: 15, batch: 600 // loss: 0.484\n", "epoch: 15, batch: 700 // loss: 0.250\n", "epoch: 15, batch: 800 // loss: 0.284\n", "epoch: 15, batch: 900 // loss: 0.109\n", "epoch: 15, batch: 1000 // loss: 0.593\n", "epoch: 15, batch: 1100 // loss: 0.139\n", "epoch: 15, batch: 1200 // loss: 0.209\n", "\n", "epoch: 16, batch: 0 // loss: 0.297\n", "epoch: 16, batch: 100 // loss: 0.325\n", "epoch: 16, batch: 200 // loss: 0.476\n", "epoch: 16, batch: 300 // loss: 0.316\n", "epoch: 16, batch: 400 // loss: 0.180\n", "epoch: 16, batch: 500 // loss: 0.406\n", "epoch: 16, batch: 600 // loss: 0.477\n", "epoch: 16, batch: 700 // loss: 0.247\n", "epoch: 16, batch: 800 // loss: 0.287\n", "epoch: 16, batch: 900 // loss: 0.109\n", "epoch: 16, batch: 1000 // loss: 0.590\n", "epoch: 16, batch: 1100 // loss: 0.135\n", "epoch: 16, batch: 1200 // loss: 0.200\n", "\n", "epoch: 17, batch: 0 // loss: 0.294\n", "epoch: 17, batch: 100 // loss: 0.323\n", "epoch: 17, batch: 200 // loss: 0.467\n", "epoch: 17, batch: 300 // loss: 0.314\n", "epoch: 17, batch: 400 // loss: 0.176\n", "epoch: 17, batch: 500 // loss: 0.406\n", "epoch: 17, batch: 600 // loss: 0.471\n", "epoch: 17, batch: 700 // loss: 0.247\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 17, batch: 800 // loss: 0.289\n", "epoch: 17, batch: 900 // loss: 0.106\n", "epoch: 17, batch: 1000 // loss: 0.585\n", "epoch: 17, batch: 1100 // loss: 0.135\n", "epoch: 17, batch: 1200 // loss: 0.198\n", "\n", "epoch: 18, batch: 0 // loss: 0.291\n", "epoch: 18, batch: 100 // loss: 0.325\n", "epoch: 18, batch: 200 // loss: 0.458\n", "epoch: 18, batch: 300 // loss: 0.313\n", "epoch: 18, batch: 400 // loss: 0.173\n", "epoch: 18, batch: 500 // loss: 0.412\n", "epoch: 18, batch: 600 // loss: 0.465\n", "epoch: 18, batch: 700 // loss: 0.245\n", "epoch: 18, batch: 800 // loss: 0.287\n", "epoch: 18, batch: 900 // loss: 0.102\n", "epoch: 18, batch: 1000 // loss: 0.576\n", "epoch: 18, batch: 1100 // loss: 0.133\n", "epoch: 18, batch: 1200 // loss: 0.193\n", "\n", "epoch: 19, batch: 0 // loss: 0.287\n", "epoch: 19, batch: 100 // loss: 0.324\n", "epoch: 19, batch: 200 // loss: 0.450\n", "epoch: 19, batch: 300 // loss: 0.312\n", "epoch: 19, batch: 400 // loss: 0.169\n", "epoch: 19, batch: 500 // loss: 0.418\n", "epoch: 19, batch: 600 // loss: 0.459\n", "epoch: 19, batch: 700 // loss: 0.241\n", "epoch: 19, batch: 800 // loss: 0.281\n", "epoch: 19, batch: 900 // loss: 0.099\n", "epoch: 19, batch: 1000 // loss: 0.569\n", "epoch: 19, batch: 1100 // loss: 0.133\n", "epoch: 19, batch: 1200 // loss: 0.187\n", "\n", "epoch: 20, batch: 0 // loss: 0.287\n", "epoch: 20, batch: 100 // loss: 0.325\n", "epoch: 20, batch: 200 // loss: 0.440\n", "epoch: 20, batch: 300 // loss: 0.309\n", "epoch: 20, batch: 400 // loss: 0.165\n", "epoch: 20, batch: 500 // loss: 0.416\n", "epoch: 20, batch: 600 // loss: 0.453\n", "epoch: 20, batch: 700 // loss: 0.238\n", "epoch: 20, batch: 800 // loss: 0.286\n", "epoch: 20, batch: 900 // loss: 0.096\n", "epoch: 20, batch: 1000 // loss: 0.568\n", "epoch: 20, batch: 1100 // loss: 0.131\n", "epoch: 20, batch: 1200 // loss: 0.185\n", "\n", "epoch: 21, batch: 0 // loss: 0.285\n", "epoch: 21, batch: 100 // loss: 0.324\n", "epoch: 21, batch: 200 // loss: 0.434\n", "epoch: 21, batch: 300 // loss: 0.306\n", "epoch: 21, batch: 400 // loss: 0.162\n", "epoch: 21, batch: 500 // loss: 0.418\n", "epoch: 21, batch: 600 // loss: 0.445\n", "epoch: 21, batch: 700 // loss: 0.237\n", "epoch: 21, batch: 800 // loss: 0.286\n", "epoch: 21, batch: 900 // loss: 0.096\n", "epoch: 21, batch: 1000 // loss: 0.566\n", "epoch: 21, batch: 1100 // loss: 0.130\n", "epoch: 21, batch: 1200 // loss: 0.181\n", "\n", "epoch: 22, batch: 0 // loss: 0.281\n", "epoch: 22, batch: 100 // loss: 0.320\n", "epoch: 22, batch: 200 // loss: 0.422\n", "epoch: 22, batch: 300 // loss: 0.302\n", "epoch: 22, batch: 400 // loss: 0.160\n", "epoch: 22, batch: 500 // loss: 0.420\n", "epoch: 22, batch: 600 // loss: 0.439\n", "epoch: 22, batch: 700 // loss: 0.235\n", "epoch: 22, batch: 800 // loss: 0.294\n", "epoch: 22, batch: 900 // loss: 0.092\n", "epoch: 22, batch: 1000 // loss: 0.565\n", "epoch: 22, batch: 1100 // loss: 0.128\n", "epoch: 22, batch: 1200 // loss: 0.176\n", "\n", "epoch: 23, batch: 0 // loss: 0.285\n", "epoch: 23, batch: 100 // loss: 0.318\n", "epoch: 23, batch: 200 // loss: 0.424\n", "epoch: 23, batch: 300 // loss: 0.298\n", "epoch: 23, batch: 400 // loss: 0.157\n", "epoch: 23, batch: 500 // loss: 0.423\n", "epoch: 23, batch: 600 // loss: 0.436\n", "epoch: 23, batch: 700 // loss: 0.239\n", "epoch: 23, batch: 800 // loss: 0.292\n", "epoch: 23, batch: 900 // loss: 0.091\n", "epoch: 23, batch: 1000 // loss: 0.562\n", "epoch: 23, batch: 1100 // loss: 0.122\n", "epoch: 23, batch: 1200 // loss: 0.172\n", "\n", "epoch: 24, batch: 0 // loss: 0.285\n", "epoch: 24, batch: 100 // loss: 0.310\n", "epoch: 24, batch: 200 // loss: 0.418\n", "epoch: 24, batch: 300 // loss: 0.299\n", "epoch: 24, batch: 400 // loss: 0.154\n", "epoch: 24, batch: 500 // loss: 0.425\n", "epoch: 24, batch: 600 // loss: 0.431\n", "epoch: 24, batch: 700 // loss: 0.228\n", "epoch: 24, batch: 800 // loss: 0.309\n", "epoch: 24, batch: 900 // loss: 0.088\n", "epoch: 24, batch: 1000 // loss: 0.561\n", "epoch: 24, batch: 1100 // loss: 0.121\n", "epoch: 24, batch: 1200 // loss: 0.170\n", "\n", "epoch: 25, batch: 0 // loss: 0.283\n", "epoch: 25, batch: 100 // loss: 0.309\n", "epoch: 25, batch: 200 // loss: 0.409\n", "epoch: 25, batch: 300 // loss: 0.296\n", "epoch: 25, batch: 400 // loss: 0.151\n", "epoch: 25, batch: 500 // loss: 0.425\n", "epoch: 25, batch: 600 // loss: 0.427\n", "epoch: 25, batch: 700 // loss: 0.220\n", "epoch: 25, batch: 800 // loss: 0.311\n", "epoch: 25, batch: 900 // loss: 0.085\n", "epoch: 25, batch: 1000 // loss: 0.559\n", "epoch: 25, batch: 1100 // loss: 0.121\n", "epoch: 25, batch: 1200 // loss: 0.169\n", "\n", "epoch: 26, batch: 0 // loss: 0.286\n", "epoch: 26, batch: 100 // loss: 0.309\n", "epoch: 26, batch: 200 // loss: 0.401\n", "epoch: 26, batch: 300 // loss: 0.291\n", "epoch: 26, batch: 400 // loss: 0.149\n", "epoch: 26, batch: 500 // loss: 0.428\n", "epoch: 26, batch: 600 // loss: 0.423\n", "epoch: 26, batch: 700 // loss: 0.236\n", "epoch: 26, batch: 800 // loss: 0.310\n", "epoch: 26, batch: 900 // loss: 0.084\n", "epoch: 26, batch: 1000 // loss: 0.558\n", "epoch: 26, batch: 1100 // loss: 0.119\n", "epoch: 26, batch: 1200 // loss: 0.166\n", "\n", "epoch: 27, batch: 0 // loss: 0.282\n", "epoch: 27, batch: 100 // loss: 0.310\n", "epoch: 27, batch: 200 // loss: 0.394\n", "epoch: 27, batch: 300 // loss: 0.293\n", "epoch: 27, batch: 400 // loss: 0.146\n", "epoch: 27, batch: 500 // loss: 0.428\n", "epoch: 27, batch: 600 // loss: 0.420\n", "epoch: 27, batch: 700 // loss: 0.242\n", "epoch: 27, batch: 800 // loss: 0.312\n", "epoch: 27, batch: 900 // loss: 0.083\n", "epoch: 27, batch: 1000 // loss: 0.558\n", "epoch: 27, batch: 1100 // loss: 0.118\n", "epoch: 27, batch: 1200 // loss: 0.163\n", "\n", "epoch: 28, batch: 0 // loss: 0.285\n", "epoch: 28, batch: 100 // loss: 0.310\n", "epoch: 28, batch: 200 // loss: 0.389\n", "epoch: 28, batch: 300 // loss: 0.287\n", "epoch: 28, batch: 400 // loss: 0.144\n", "epoch: 28, batch: 500 // loss: 0.429\n", "epoch: 28, batch: 600 // loss: 0.419\n", "epoch: 28, batch: 700 // loss: 0.242\n", "epoch: 28, batch: 800 // loss: 0.310\n", "epoch: 28, batch: 900 // loss: 0.081\n", "epoch: 28, batch: 1000 // loss: 0.551\n", "epoch: 28, batch: 1100 // loss: 0.115\n", "epoch: 28, batch: 1200 // loss: 0.160\n", "\n", "epoch: 29, batch: 0 // loss: 0.282\n", "epoch: 29, batch: 100 // loss: 0.298\n", "epoch: 29, batch: 200 // loss: 0.400\n", "epoch: 29, batch: 300 // loss: 0.283\n", "epoch: 29, batch: 400 // loss: 0.143\n", "epoch: 29, batch: 500 // loss: 0.427\n", "epoch: 29, batch: 600 // loss: 0.420\n", "epoch: 29, batch: 700 // loss: 0.248\n", "epoch: 29, batch: 800 // loss: 0.311\n", "epoch: 29, batch: 900 // loss: 0.080\n", "epoch: 29, batch: 1000 // loss: 0.549\n", "epoch: 29, batch: 1100 // loss: 0.113\n", "epoch: 29, batch: 1200 // loss: 0.157\n", "\n", "epoch: 30, batch: 0 // loss: 0.283\n", "epoch: 30, batch: 100 // loss: 0.294\n", "epoch: 30, batch: 200 // loss: 0.406\n", "epoch: 30, batch: 300 // loss: 0.281\n", "epoch: 30, batch: 400 // loss: 0.141\n", "epoch: 30, batch: 500 // loss: 0.421\n", "epoch: 30, batch: 600 // loss: 0.419\n", "epoch: 30, batch: 700 // loss: 0.250\n", "epoch: 30, batch: 800 // loss: 0.312\n", "epoch: 30, batch: 900 // loss: 0.080\n", "epoch: 30, batch: 1000 // loss: 0.548\n", "epoch: 30, batch: 1100 // loss: 0.114\n", "epoch: 30, batch: 1200 // loss: 0.154\n", "\n", "epoch: 31, batch: 0 // loss: 0.279\n", "epoch: 31, batch: 100 // loss: 0.290\n", "epoch: 31, batch: 200 // loss: 0.401\n", "epoch: 31, batch: 300 // loss: 0.278\n", "epoch: 31, batch: 400 // loss: 0.140\n", "epoch: 31, batch: 500 // loss: 0.418\n", "epoch: 31, batch: 600 // loss: 0.419\n", "epoch: 31, batch: 700 // loss: 0.251\n", "epoch: 31, batch: 800 // loss: 0.313\n", "epoch: 31, batch: 900 // loss: 0.079\n", "epoch: 31, batch: 1000 // loss: 0.544\n", "epoch: 31, batch: 1100 // loss: 0.114\n", "epoch: 31, batch: 1200 // loss: 0.154\n", "\n", "epoch: 32, batch: 0 // loss: 0.281\n", "epoch: 32, batch: 100 // loss: 0.284\n", "epoch: 32, batch: 200 // loss: 0.404\n", "epoch: 32, batch: 300 // loss: 0.277\n", "epoch: 32, batch: 400 // loss: 0.138\n", "epoch: 32, batch: 500 // loss: 0.424\n", "epoch: 32, batch: 600 // loss: 0.419\n", "epoch: 32, batch: 700 // loss: 0.254\n", "epoch: 32, batch: 800 // loss: 0.309\n", "epoch: 32, batch: 900 // loss: 0.077\n", "epoch: 32, batch: 1000 // loss: 0.547\n", "epoch: 32, batch: 1100 // loss: 0.114\n", "epoch: 32, batch: 1200 // loss: 0.151\n", "\n", "epoch: 33, batch: 0 // loss: 0.281\n", "epoch: 33, batch: 100 // loss: 0.287\n", "epoch: 33, batch: 200 // loss: 0.402\n", "epoch: 33, batch: 300 // loss: 0.279\n", "epoch: 33, batch: 400 // loss: 0.137\n", "epoch: 33, batch: 500 // loss: 0.424\n", "epoch: 33, batch: 600 // loss: 0.416\n", "epoch: 33, batch: 700 // loss: 0.254\n", "epoch: 33, batch: 800 // loss: 0.313\n", "epoch: 33, batch: 900 // loss: 0.077\n", "epoch: 33, batch: 1000 // loss: 0.543\n", "epoch: 33, batch: 1100 // loss: 0.116\n", "epoch: 33, batch: 1200 // loss: 0.149\n", "\n", "epoch: 34, batch: 0 // loss: 0.286\n", "epoch: 34, batch: 100 // loss: 0.278\n", "epoch: 34, batch: 200 // loss: 0.394\n", "epoch: 34, batch: 300 // loss: 0.277\n", "epoch: 34, batch: 400 // loss: 0.137\n", "epoch: 34, batch: 500 // loss: 0.429\n", "epoch: 34, batch: 600 // loss: 0.413\n", "epoch: 34, batch: 700 // loss: 0.257\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 34, batch: 800 // loss: 0.309\n", "epoch: 34, batch: 900 // loss: 0.075\n", "epoch: 34, batch: 1000 // loss: 0.539\n", "epoch: 34, batch: 1100 // loss: 0.116\n", "epoch: 34, batch: 1200 // loss: 0.147\n", "\n", "epoch: 35, batch: 0 // loss: 0.279\n", "epoch: 35, batch: 100 // loss: 0.279\n", "epoch: 35, batch: 200 // loss: 0.397\n", "epoch: 35, batch: 300 // loss: 0.277\n", "epoch: 35, batch: 400 // loss: 0.137\n", "epoch: 35, batch: 500 // loss: 0.426\n", "epoch: 35, batch: 600 // loss: 0.409\n", "epoch: 35, batch: 700 // loss: 0.258\n", "epoch: 35, batch: 800 // loss: 0.316\n", "epoch: 35, batch: 900 // loss: 0.075\n", "epoch: 35, batch: 1000 // loss: 0.541\n", "epoch: 35, batch: 1100 // loss: 0.115\n", "epoch: 35, batch: 1200 // loss: 0.145\n", "\n", "epoch: 36, batch: 0 // loss: 0.276\n", "epoch: 36, batch: 100 // loss: 0.274\n", "epoch: 36, batch: 200 // loss: 0.400\n", "epoch: 36, batch: 300 // loss: 0.277\n", "epoch: 36, batch: 400 // loss: 0.136\n", "epoch: 36, batch: 500 // loss: 0.434\n", "epoch: 36, batch: 600 // loss: 0.406\n", "epoch: 36, batch: 700 // loss: 0.259\n", "epoch: 36, batch: 800 // loss: 0.315\n", "epoch: 36, batch: 900 // loss: 0.073\n", "epoch: 36, batch: 1000 // loss: 0.540\n", "epoch: 36, batch: 1100 // loss: 0.115\n", "epoch: 36, batch: 1200 // loss: 0.143\n", "\n", "epoch: 37, batch: 0 // loss: 0.272\n", "epoch: 37, batch: 100 // loss: 0.269\n", "epoch: 37, batch: 200 // loss: 0.386\n", "epoch: 37, batch: 300 // loss: 0.271\n", "epoch: 37, batch: 400 // loss: 0.138\n", "epoch: 37, batch: 500 // loss: 0.432\n", "epoch: 37, batch: 600 // loss: 0.404\n", "epoch: 37, batch: 700 // loss: 0.265\n", "epoch: 37, batch: 800 // loss: 0.309\n", "epoch: 37, batch: 900 // loss: 0.074\n", "epoch: 37, batch: 1000 // loss: 0.534\n", "epoch: 37, batch: 1100 // loss: 0.116\n", "epoch: 37, batch: 1200 // loss: 0.143\n", "\n", "epoch: 38, batch: 0 // loss: 0.272\n", "epoch: 38, batch: 100 // loss: 0.264\n", "epoch: 38, batch: 200 // loss: 0.391\n", "epoch: 38, batch: 300 // loss: 0.269\n", "epoch: 38, batch: 400 // loss: 0.136\n", "epoch: 38, batch: 500 // loss: 0.439\n", "epoch: 38, batch: 600 // loss: 0.402\n", "epoch: 38, batch: 700 // loss: 0.266\n", "epoch: 38, batch: 800 // loss: 0.304\n", "epoch: 38, batch: 900 // loss: 0.072\n", "epoch: 38, batch: 1000 // loss: 0.531\n", "epoch: 38, batch: 1100 // loss: 0.117\n", "epoch: 38, batch: 1200 // loss: 0.140\n", "\n", "epoch: 39, batch: 0 // loss: 0.273\n", "epoch: 39, batch: 100 // loss: 0.260\n", "epoch: 39, batch: 200 // loss: 0.385\n", "epoch: 39, batch: 300 // loss: 0.267\n", "epoch: 39, batch: 400 // loss: 0.137\n", "epoch: 39, batch: 500 // loss: 0.435\n", "epoch: 39, batch: 600 // loss: 0.404\n", "epoch: 39, batch: 700 // loss: 0.269\n", "epoch: 39, batch: 800 // loss: 0.303\n", "epoch: 39, batch: 900 // loss: 0.072\n", "epoch: 39, batch: 1000 // loss: 0.525\n", "epoch: 39, batch: 1100 // loss: 0.118\n", "epoch: 39, batch: 1200 // loss: 0.139\n", "\n", "epoch: 40, batch: 0 // loss: 0.268\n", "epoch: 40, batch: 100 // loss: 0.256\n", "epoch: 40, batch: 200 // loss: 0.383\n", "epoch: 40, batch: 300 // loss: 0.267\n", "epoch: 40, batch: 400 // loss: 0.136\n", "epoch: 40, batch: 500 // loss: 0.433\n", "epoch: 40, batch: 600 // loss: 0.400\n", "epoch: 40, batch: 700 // loss: 0.277\n", "epoch: 40, batch: 800 // loss: 0.299\n", "epoch: 40, batch: 900 // loss: 0.073\n", "epoch: 40, batch: 1000 // loss: 0.524\n", "epoch: 40, batch: 1100 // loss: 0.118\n", "epoch: 40, batch: 1200 // loss: 0.139\n", "\n", "epoch: 41, batch: 0 // loss: 0.268\n", "epoch: 41, batch: 100 // loss: 0.255\n", "epoch: 41, batch: 200 // loss: 0.390\n", "epoch: 41, batch: 300 // loss: 0.267\n", "epoch: 41, batch: 400 // loss: 0.138\n", "epoch: 41, batch: 500 // loss: 0.434\n", "epoch: 41, batch: 600 // loss: 0.396\n", "epoch: 41, batch: 700 // loss: 0.277\n", "epoch: 41, batch: 800 // loss: 0.297\n", "epoch: 41, batch: 900 // loss: 0.070\n", "epoch: 41, batch: 1000 // loss: 0.524\n", "epoch: 41, batch: 1100 // loss: 0.120\n", "epoch: 41, batch: 1200 // loss: 0.137\n", "\n", "epoch: 42, batch: 0 // loss: 0.264\n", "epoch: 42, batch: 100 // loss: 0.252\n", "epoch: 42, batch: 200 // loss: 0.388\n", "epoch: 42, batch: 300 // loss: 0.263\n", "epoch: 42, batch: 400 // loss: 0.139\n", "epoch: 42, batch: 500 // loss: 0.431\n", "epoch: 42, batch: 600 // loss: 0.400\n", "epoch: 42, batch: 700 // loss: 0.277\n", "epoch: 42, batch: 800 // loss: 0.294\n", "epoch: 42, batch: 900 // loss: 0.070\n", "epoch: 42, batch: 1000 // loss: 0.530\n", "epoch: 42, batch: 1100 // loss: 0.125\n", "epoch: 42, batch: 1200 // loss: 0.137\n", "\n", "epoch: 43, batch: 0 // loss: 0.259\n", "epoch: 43, batch: 100 // loss: 0.247\n", "epoch: 43, batch: 200 // loss: 0.382\n", "epoch: 43, batch: 300 // loss: 0.264\n", "epoch: 43, batch: 400 // loss: 0.138\n", "epoch: 43, batch: 500 // loss: 0.437\n", "epoch: 43, batch: 600 // loss: 0.403\n", "epoch: 43, batch: 700 // loss: 0.267\n", "epoch: 43, batch: 800 // loss: 0.301\n", "epoch: 43, batch: 900 // loss: 0.068\n", "epoch: 43, batch: 1000 // loss: 0.525\n", "epoch: 43, batch: 1100 // loss: 0.124\n", "epoch: 43, batch: 1200 // loss: 0.139\n", "\n", "epoch: 44, batch: 0 // loss: 0.258\n", "epoch: 44, batch: 100 // loss: 0.245\n", "epoch: 44, batch: 200 // loss: 0.384\n", "epoch: 44, batch: 300 // loss: 0.261\n", "epoch: 44, batch: 400 // loss: 0.138\n", "epoch: 44, batch: 500 // loss: 0.434\n", "epoch: 44, batch: 600 // loss: 0.404\n", "epoch: 44, batch: 700 // loss: 0.267\n", "epoch: 44, batch: 800 // loss: 0.292\n", "epoch: 44, batch: 900 // loss: 0.072\n", "epoch: 44, batch: 1000 // loss: 0.528\n", "epoch: 44, batch: 1100 // loss: 0.126\n", "epoch: 44, batch: 1200 // loss: 0.137\n", "\n", "epoch: 45, batch: 0 // loss: 0.254\n", "epoch: 45, batch: 100 // loss: 0.243\n", "epoch: 45, batch: 200 // loss: 0.371\n", "epoch: 45, batch: 300 // loss: 0.257\n", "epoch: 45, batch: 400 // loss: 0.137\n", "epoch: 45, batch: 500 // loss: 0.436\n", "epoch: 45, batch: 600 // loss: 0.404\n", "epoch: 45, batch: 700 // loss: 0.269\n", "epoch: 45, batch: 800 // loss: 0.286\n", "epoch: 45, batch: 900 // loss: 0.069\n", "epoch: 45, batch: 1000 // loss: 0.531\n", "epoch: 45, batch: 1100 // loss: 0.124\n", "epoch: 45, batch: 1200 // loss: 0.138\n", "\n", "epoch: 46, batch: 0 // loss: 0.248\n", "epoch: 46, batch: 100 // loss: 0.243\n", "epoch: 46, batch: 200 // loss: 0.372\n", "epoch: 46, batch: 300 // loss: 0.257\n", "epoch: 46, batch: 400 // loss: 0.137\n", "epoch: 46, batch: 500 // loss: 0.440\n", "epoch: 46, batch: 600 // loss: 0.406\n", "epoch: 46, batch: 700 // loss: 0.262\n", "epoch: 46, batch: 800 // loss: 0.285\n", "epoch: 46, batch: 900 // loss: 0.070\n", "epoch: 46, batch: 1000 // loss: 0.531\n", "epoch: 46, batch: 1100 // loss: 0.127\n", "epoch: 46, batch: 1200 // loss: 0.140\n", "\n", "epoch: 47, batch: 0 // loss: 0.247\n", "epoch: 47, batch: 100 // loss: 0.243\n", "epoch: 47, batch: 200 // loss: 0.366\n", "epoch: 47, batch: 300 // loss: 0.255\n", "epoch: 47, batch: 400 // loss: 0.137\n", "epoch: 47, batch: 500 // loss: 0.438\n", "epoch: 47, batch: 600 // loss: 0.407\n", "epoch: 47, batch: 700 // loss: 0.263\n", "epoch: 47, batch: 800 // loss: 0.284\n", "epoch: 47, batch: 900 // loss: 0.068\n", "epoch: 47, batch: 1000 // loss: 0.531\n", "epoch: 47, batch: 1100 // loss: 0.127\n", "epoch: 47, batch: 1200 // loss: 0.140\n", "\n", "epoch: 48, batch: 0 // loss: 0.243\n", "epoch: 48, batch: 100 // loss: 0.243\n", "epoch: 48, batch: 200 // loss: 0.361\n", "epoch: 48, batch: 300 // loss: 0.250\n", "epoch: 48, batch: 400 // loss: 0.136\n", "epoch: 48, batch: 500 // loss: 0.440\n", "epoch: 48, batch: 600 // loss: 0.410\n", "epoch: 48, batch: 700 // loss: 0.268\n", "epoch: 48, batch: 800 // loss: 0.279\n", "epoch: 48, batch: 900 // loss: 0.065\n", "epoch: 48, batch: 1000 // loss: 0.528\n", "epoch: 48, batch: 1100 // loss: 0.129\n", "epoch: 48, batch: 1200 // loss: 0.132\n", "\n", "epoch: 49, batch: 0 // loss: 0.239\n", "epoch: 49, batch: 100 // loss: 0.240\n", "epoch: 49, batch: 200 // loss: 0.361\n", "epoch: 49, batch: 300 // loss: 0.253\n", "epoch: 49, batch: 400 // loss: 0.135\n", "epoch: 49, batch: 500 // loss: 0.439\n", "epoch: 49, batch: 600 // loss: 0.411\n", "epoch: 49, batch: 700 // loss: 0.271\n", "epoch: 49, batch: 800 // loss: 0.271\n", "epoch: 49, batch: 900 // loss: 0.066\n", "epoch: 49, batch: 1000 // loss: 0.527\n", "epoch: 49, batch: 1100 // loss: 0.130\n", "epoch: 49, batch: 1200 // loss: 0.132\n", "\n", "epoch: 50, batch: 0 // loss: 0.231\n", "epoch: 50, batch: 100 // loss: 0.237\n", "epoch: 50, batch: 200 // loss: 0.363\n", "epoch: 50, batch: 300 // loss: 0.245\n", "epoch: 50, batch: 400 // loss: 0.135\n", "epoch: 50, batch: 500 // loss: 0.444\n", "epoch: 50, batch: 600 // loss: 0.409\n", "epoch: 50, batch: 700 // loss: 0.269\n", "epoch: 50, batch: 800 // loss: 0.269\n", "epoch: 50, batch: 900 // loss: 0.065\n", "epoch: 50, batch: 1000 // loss: 0.525\n", "epoch: 50, batch: 1100 // loss: 0.130\n", "epoch: 50, batch: 1200 // loss: 0.136\n", "\n", "epoch: 51, batch: 0 // loss: 0.231\n", "epoch: 51, batch: 100 // loss: 0.233\n", "epoch: 51, batch: 200 // loss: 0.350\n", "epoch: 51, batch: 300 // loss: 0.243\n", "epoch: 51, batch: 400 // loss: 0.135\n", "epoch: 51, batch: 500 // loss: 0.444\n", "epoch: 51, batch: 600 // loss: 0.408\n", "epoch: 51, batch: 700 // loss: 0.266\n", "epoch: 51, batch: 800 // loss: 0.269\n", "epoch: 51, batch: 900 // loss: 0.064\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 51, batch: 1000 // loss: 0.524\n", "epoch: 51, batch: 1100 // loss: 0.131\n", "epoch: 51, batch: 1200 // loss: 0.130\n", "\n", "epoch: 52, batch: 0 // loss: 0.225\n", "epoch: 52, batch: 100 // loss: 0.232\n", "epoch: 52, batch: 200 // loss: 0.349\n", "epoch: 52, batch: 300 // loss: 0.243\n", "epoch: 52, batch: 400 // loss: 0.135\n", "epoch: 52, batch: 500 // loss: 0.443\n", "epoch: 52, batch: 600 // loss: 0.404\n", "epoch: 52, batch: 700 // loss: 0.268\n", "epoch: 52, batch: 800 // loss: 0.264\n", "epoch: 52, batch: 900 // loss: 0.064\n", "epoch: 52, batch: 1000 // loss: 0.522\n", "epoch: 52, batch: 1100 // loss: 0.133\n", "epoch: 52, batch: 1200 // loss: 0.137\n", "\n", "epoch: 53, batch: 0 // loss: 0.224\n", "epoch: 53, batch: 100 // loss: 0.225\n", "epoch: 53, batch: 200 // loss: 0.341\n", "epoch: 53, batch: 300 // loss: 0.236\n", "epoch: 53, batch: 400 // loss: 0.135\n", "epoch: 53, batch: 500 // loss: 0.448\n", "epoch: 53, batch: 600 // loss: 0.403\n", "epoch: 53, batch: 700 // loss: 0.266\n", "epoch: 53, batch: 800 // loss: 0.259\n", "epoch: 53, batch: 900 // loss: 0.064\n", "epoch: 53, batch: 1000 // loss: 0.526\n", "epoch: 53, batch: 1100 // loss: 0.133\n", "epoch: 53, batch: 1200 // loss: 0.134\n", "\n", "epoch: 54, batch: 0 // loss: 0.220\n", "epoch: 54, batch: 100 // loss: 0.222\n", "epoch: 54, batch: 200 // loss: 0.352\n", "epoch: 54, batch: 300 // loss: 0.241\n", "epoch: 54, batch: 400 // loss: 0.131\n", "epoch: 54, batch: 500 // loss: 0.440\n", "epoch: 54, batch: 600 // loss: 0.401\n", "epoch: 54, batch: 700 // loss: 0.273\n", "epoch: 54, batch: 800 // loss: 0.257\n", "epoch: 54, batch: 900 // loss: 0.063\n", "epoch: 54, batch: 1000 // loss: 0.527\n", "epoch: 54, batch: 1100 // loss: 0.134\n", "epoch: 54, batch: 1200 // loss: 0.134\n", "\n", "epoch: 55, batch: 0 // loss: 0.220\n", "epoch: 55, batch: 100 // loss: 0.226\n", "epoch: 55, batch: 200 // loss: 0.347\n", "epoch: 55, batch: 300 // loss: 0.240\n", "epoch: 55, batch: 400 // loss: 0.131\n", "epoch: 55, batch: 500 // loss: 0.451\n", "epoch: 55, batch: 600 // loss: 0.402\n", "epoch: 55, batch: 700 // loss: 0.268\n", "epoch: 55, batch: 800 // loss: 0.256\n", "epoch: 55, batch: 900 // loss: 0.064\n", "epoch: 55, batch: 1000 // loss: 0.526\n", "epoch: 55, batch: 1100 // loss: 0.131\n", "epoch: 55, batch: 1200 // loss: 0.134\n", "\n", "epoch: 56, batch: 0 // loss: 0.218\n", "epoch: 56, batch: 100 // loss: 0.220\n", "epoch: 56, batch: 200 // loss: 0.343\n", "epoch: 56, batch: 300 // loss: 0.234\n", "epoch: 56, batch: 400 // loss: 0.132\n", "epoch: 56, batch: 500 // loss: 0.451\n", "epoch: 56, batch: 600 // loss: 0.400\n", "epoch: 56, batch: 700 // loss: 0.260\n", "epoch: 56, batch: 800 // loss: 0.250\n", "epoch: 56, batch: 900 // loss: 0.063\n", "epoch: 56, batch: 1000 // loss: 0.528\n", "epoch: 56, batch: 1100 // loss: 0.135\n", "epoch: 56, batch: 1200 // loss: 0.133\n", "\n", "epoch: 57, batch: 0 // loss: 0.217\n", "epoch: 57, batch: 100 // loss: 0.219\n", "epoch: 57, batch: 200 // loss: 0.343\n", "epoch: 57, batch: 300 // loss: 0.235\n", "epoch: 57, batch: 400 // loss: 0.131\n", "epoch: 57, batch: 500 // loss: 0.443\n", "epoch: 57, batch: 600 // loss: 0.396\n", "epoch: 57, batch: 700 // loss: 0.261\n", "epoch: 57, batch: 800 // loss: 0.242\n", "epoch: 57, batch: 900 // loss: 0.063\n", "epoch: 57, batch: 1000 // loss: 0.524\n", "epoch: 57, batch: 1100 // loss: 0.134\n", "epoch: 57, batch: 1200 // loss: 0.130\n", "\n", "epoch: 58, batch: 0 // loss: 0.217\n", "epoch: 58, batch: 100 // loss: 0.220\n", "epoch: 58, batch: 200 // loss: 0.348\n", "epoch: 58, batch: 300 // loss: 0.233\n", "epoch: 58, batch: 400 // loss: 0.131\n", "epoch: 58, batch: 500 // loss: 0.446\n", "epoch: 58, batch: 600 // loss: 0.398\n", "epoch: 58, batch: 700 // loss: 0.258\n", "epoch: 58, batch: 800 // loss: 0.245\n", "epoch: 58, batch: 900 // loss: 0.063\n", "epoch: 58, batch: 1000 // loss: 0.525\n", "epoch: 58, batch: 1100 // loss: 0.133\n", "epoch: 58, batch: 1200 // loss: 0.130\n", "\n", "epoch: 59, batch: 0 // loss: 0.218\n", "epoch: 59, batch: 100 // loss: 0.215\n", "epoch: 59, batch: 200 // loss: 0.345\n", "epoch: 59, batch: 300 // loss: 0.233\n", "epoch: 59, batch: 400 // loss: 0.131\n", "epoch: 59, batch: 500 // loss: 0.445\n", "epoch: 59, batch: 600 // loss: 0.399\n", "epoch: 59, batch: 700 // loss: 0.256\n", "epoch: 59, batch: 800 // loss: 0.237\n", "epoch: 59, batch: 900 // loss: 0.064\n", "epoch: 59, batch: 1000 // loss: 0.529\n", "epoch: 59, batch: 1100 // loss: 0.142\n", "epoch: 59, batch: 1200 // loss: 0.127\n", "\n", "epoch: 60, batch: 0 // loss: 0.211\n", "epoch: 60, batch: 100 // loss: 0.217\n", "epoch: 60, batch: 200 // loss: 0.335\n", "epoch: 60, batch: 300 // loss: 0.233\n", "epoch: 60, batch: 400 // loss: 0.130\n", "epoch: 60, batch: 500 // loss: 0.450\n", "epoch: 60, batch: 600 // loss: 0.397\n", "epoch: 60, batch: 700 // loss: 0.255\n", "epoch: 60, batch: 800 // loss: 0.235\n", "epoch: 60, batch: 900 // loss: 0.063\n", "epoch: 60, batch: 1000 // loss: 0.522\n", "epoch: 60, batch: 1100 // loss: 0.139\n", "epoch: 60, batch: 1200 // loss: 0.130\n", "\n", "epoch: 61, batch: 0 // loss: 0.208\n", "epoch: 61, batch: 100 // loss: 0.220\n", "epoch: 61, batch: 200 // loss: 0.329\n", "epoch: 61, batch: 300 // loss: 0.229\n", "epoch: 61, batch: 400 // loss: 0.132\n", "epoch: 61, batch: 500 // loss: 0.449\n", "epoch: 61, batch: 600 // loss: 0.394\n", "epoch: 61, batch: 700 // loss: 0.253\n", "epoch: 61, batch: 800 // loss: 0.229\n", "epoch: 61, batch: 900 // loss: 0.062\n", "epoch: 61, batch: 1000 // loss: 0.523\n", "epoch: 61, batch: 1100 // loss: 0.139\n", "epoch: 61, batch: 1200 // loss: 0.127\n", "\n", "epoch: 62, batch: 0 // loss: 0.204\n", "epoch: 62, batch: 100 // loss: 0.215\n", "epoch: 62, batch: 200 // loss: 0.331\n", "epoch: 62, batch: 300 // loss: 0.229\n", "epoch: 62, batch: 400 // loss: 0.131\n", "epoch: 62, batch: 500 // loss: 0.449\n", "epoch: 62, batch: 600 // loss: 0.391\n", "epoch: 62, batch: 700 // loss: 0.251\n", "epoch: 62, batch: 800 // loss: 0.226\n", "epoch: 62, batch: 900 // loss: 0.062\n", "epoch: 62, batch: 1000 // loss: 0.522\n", "epoch: 62, batch: 1100 // loss: 0.141\n", "epoch: 62, batch: 1200 // loss: 0.129\n", "\n", "epoch: 63, batch: 0 // loss: 0.207\n", "epoch: 63, batch: 100 // loss: 0.215\n", "epoch: 63, batch: 200 // loss: 0.323\n", "epoch: 63, batch: 300 // loss: 0.230\n", "epoch: 63, batch: 400 // loss: 0.130\n", "epoch: 63, batch: 500 // loss: 0.455\n", "epoch: 63, batch: 600 // loss: 0.391\n", "epoch: 63, batch: 700 // loss: 0.245\n", "epoch: 63, batch: 800 // loss: 0.224\n", "epoch: 63, batch: 900 // loss: 0.060\n", "epoch: 63, batch: 1000 // loss: 0.520\n", "epoch: 63, batch: 1100 // loss: 0.140\n", "epoch: 63, batch: 1200 // loss: 0.127\n", "\n", "epoch: 64, batch: 0 // loss: 0.206\n", "epoch: 64, batch: 100 // loss: 0.211\n", "epoch: 64, batch: 200 // loss: 0.316\n", "epoch: 64, batch: 300 // loss: 0.224\n", "epoch: 64, batch: 400 // loss: 0.132\n", "epoch: 64, batch: 500 // loss: 0.453\n", "epoch: 64, batch: 600 // loss: 0.388\n", "epoch: 64, batch: 700 // loss: 0.244\n", "epoch: 64, batch: 800 // loss: 0.219\n", "epoch: 64, batch: 900 // loss: 0.059\n", "epoch: 64, batch: 1000 // loss: 0.506\n", "epoch: 64, batch: 1100 // loss: 0.140\n", "epoch: 64, batch: 1200 // loss: 0.127\n", "\n", "epoch: 65, batch: 0 // loss: 0.202\n", "epoch: 65, batch: 100 // loss: 0.211\n", "epoch: 65, batch: 200 // loss: 0.308\n", "epoch: 65, batch: 300 // loss: 0.226\n", "epoch: 65, batch: 400 // loss: 0.131\n", "epoch: 65, batch: 500 // loss: 0.453\n", "epoch: 65, batch: 600 // loss: 0.385\n", "epoch: 65, batch: 700 // loss: 0.245\n", "epoch: 65, batch: 800 // loss: 0.219\n", "epoch: 65, batch: 900 // loss: 0.059\n", "epoch: 65, batch: 1000 // loss: 0.518\n", "epoch: 65, batch: 1100 // loss: 0.142\n", "epoch: 65, batch: 1200 // loss: 0.128\n", "\n", "epoch: 66, batch: 0 // loss: 0.203\n", "epoch: 66, batch: 100 // loss: 0.205\n", "epoch: 66, batch: 200 // loss: 0.305\n", "epoch: 66, batch: 300 // loss: 0.226\n", "epoch: 66, batch: 400 // loss: 0.130\n", "epoch: 66, batch: 500 // loss: 0.443\n", "epoch: 66, batch: 600 // loss: 0.383\n", "epoch: 66, batch: 700 // loss: 0.242\n", "epoch: 66, batch: 800 // loss: 0.215\n", "epoch: 66, batch: 900 // loss: 0.058\n", "epoch: 66, batch: 1000 // loss: 0.509\n", "epoch: 66, batch: 1100 // loss: 0.140\n", "epoch: 66, batch: 1200 // loss: 0.130\n", "\n", "epoch: 67, batch: 0 // loss: 0.201\n", "epoch: 67, batch: 100 // loss: 0.210\n", "epoch: 67, batch: 200 // loss: 0.303\n", "epoch: 67, batch: 300 // loss: 0.223\n", "epoch: 67, batch: 400 // loss: 0.129\n", "epoch: 67, batch: 500 // loss: 0.439\n", "epoch: 67, batch: 600 // loss: 0.379\n", "epoch: 67, batch: 700 // loss: 0.237\n", "epoch: 67, batch: 800 // loss: 0.207\n", "epoch: 67, batch: 900 // loss: 0.057\n", "epoch: 67, batch: 1000 // loss: 0.505\n", "epoch: 67, batch: 1100 // loss: 0.140\n", "epoch: 67, batch: 1200 // loss: 0.125\n", "\n", "epoch: 68, batch: 0 // loss: 0.202\n", "epoch: 68, batch: 100 // loss: 0.210\n", "epoch: 68, batch: 200 // loss: 0.297\n", "epoch: 68, batch: 300 // loss: 0.218\n", "epoch: 68, batch: 400 // loss: 0.130\n", "epoch: 68, batch: 500 // loss: 0.439\n", "epoch: 68, batch: 600 // loss: 0.378\n", "epoch: 68, batch: 700 // loss: 0.245\n", "epoch: 68, batch: 800 // loss: 0.208\n", "epoch: 68, batch: 900 // loss: 0.058\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 68, batch: 1000 // loss: 0.504\n", "epoch: 68, batch: 1100 // loss: 0.140\n", "epoch: 68, batch: 1200 // loss: 0.126\n", "\n", "epoch: 69, batch: 0 // loss: 0.197\n", "epoch: 69, batch: 100 // loss: 0.205\n", "epoch: 69, batch: 200 // loss: 0.295\n", "epoch: 69, batch: 300 // loss: 0.221\n", "epoch: 69, batch: 400 // loss: 0.133\n", "epoch: 69, batch: 500 // loss: 0.441\n", "epoch: 69, batch: 600 // loss: 0.377\n", "epoch: 69, batch: 700 // loss: 0.235\n", "epoch: 69, batch: 800 // loss: 0.202\n", "epoch: 69, batch: 900 // loss: 0.057\n", "epoch: 69, batch: 1000 // loss: 0.499\n", "epoch: 69, batch: 1100 // loss: 0.140\n", "epoch: 69, batch: 1200 // loss: 0.127\n", "\n", "epoch: 70, batch: 0 // loss: 0.199\n", "epoch: 70, batch: 100 // loss: 0.204\n", "epoch: 70, batch: 200 // loss: 0.289\n", "epoch: 70, batch: 300 // loss: 0.228\n", "epoch: 70, batch: 400 // loss: 0.133\n", "epoch: 70, batch: 500 // loss: 0.440\n", "epoch: 70, batch: 600 // loss: 0.372\n", "epoch: 70, batch: 700 // loss: 0.236\n", "epoch: 70, batch: 800 // loss: 0.205\n", "epoch: 70, batch: 900 // loss: 0.057\n", "epoch: 70, batch: 1000 // loss: 0.507\n", "epoch: 70, batch: 1100 // loss: 0.137\n", "epoch: 70, batch: 1200 // loss: 0.127\n", "\n", "epoch: 71, batch: 0 // loss: 0.198\n", "epoch: 71, batch: 100 // loss: 0.199\n", "epoch: 71, batch: 200 // loss: 0.278\n", "epoch: 71, batch: 300 // loss: 0.218\n", "epoch: 71, batch: 400 // loss: 0.133\n", "epoch: 71, batch: 500 // loss: 0.441\n", "epoch: 71, batch: 600 // loss: 0.370\n", "epoch: 71, batch: 700 // loss: 0.238\n", "epoch: 71, batch: 800 // loss: 0.204\n", "epoch: 71, batch: 900 // loss: 0.056\n", "epoch: 71, batch: 1000 // loss: 0.511\n", "epoch: 71, batch: 1100 // loss: 0.137\n", "epoch: 71, batch: 1200 // loss: 0.123\n", "\n", "epoch: 72, batch: 0 // loss: 0.197\n", "epoch: 72, batch: 100 // loss: 0.197\n", "epoch: 72, batch: 200 // loss: 0.274\n", "epoch: 72, batch: 300 // loss: 0.215\n", "epoch: 72, batch: 400 // loss: 0.133\n", "epoch: 72, batch: 500 // loss: 0.426\n", "epoch: 72, batch: 600 // loss: 0.366\n", "epoch: 72, batch: 700 // loss: 0.238\n", "epoch: 72, batch: 800 // loss: 0.196\n", "epoch: 72, batch: 900 // loss: 0.057\n", "epoch: 72, batch: 1000 // loss: 0.493\n", "epoch: 72, batch: 1100 // loss: 0.139\n", "epoch: 72, batch: 1200 // loss: 0.125\n", "\n", "epoch: 73, batch: 0 // loss: 0.198\n", "epoch: 73, batch: 100 // loss: 0.199\n", "epoch: 73, batch: 200 // loss: 0.273\n", "epoch: 73, batch: 300 // loss: 0.213\n", "epoch: 73, batch: 400 // loss: 0.133\n", "epoch: 73, batch: 500 // loss: 0.421\n", "epoch: 73, batch: 600 // loss: 0.365\n", "epoch: 73, batch: 700 // loss: 0.240\n", "epoch: 73, batch: 800 // loss: 0.196\n", "epoch: 73, batch: 900 // loss: 0.058\n", "epoch: 73, batch: 1000 // loss: 0.507\n", "epoch: 73, batch: 1100 // loss: 0.137\n", "epoch: 73, batch: 1200 // loss: 0.123\n", "\n", "epoch: 74, batch: 0 // loss: 0.197\n", "epoch: 74, batch: 100 // loss: 0.196\n", "epoch: 74, batch: 200 // loss: 0.262\n", "epoch: 74, batch: 300 // loss: 0.214\n", "epoch: 74, batch: 400 // loss: 0.131\n", "epoch: 74, batch: 500 // loss: 0.422\n", "epoch: 74, batch: 600 // loss: 0.359\n", "epoch: 74, batch: 700 // loss: 0.235\n", "epoch: 74, batch: 800 // loss: 0.197\n", "epoch: 74, batch: 900 // loss: 0.057\n", "epoch: 74, batch: 1000 // loss: 0.490\n", "epoch: 74, batch: 1100 // loss: 0.139\n", "epoch: 74, batch: 1200 // loss: 0.125\n", "\n", "epoch: 75, batch: 0 // loss: 0.194\n", "epoch: 75, batch: 100 // loss: 0.193\n", "epoch: 75, batch: 200 // loss: 0.263\n", "epoch: 75, batch: 300 // loss: 0.209\n", "epoch: 75, batch: 400 // loss: 0.132\n", "epoch: 75, batch: 500 // loss: 0.414\n", "epoch: 75, batch: 600 // loss: 0.362\n", "epoch: 75, batch: 700 // loss: 0.239\n", "epoch: 75, batch: 800 // loss: 0.197\n", "epoch: 75, batch: 900 // loss: 0.058\n", "epoch: 75, batch: 1000 // loss: 0.506\n", "epoch: 75, batch: 1100 // loss: 0.131\n", "epoch: 75, batch: 1200 // loss: 0.124\n", "\n", "epoch: 76, batch: 0 // loss: 0.189\n", "epoch: 76, batch: 100 // loss: 0.193\n", "epoch: 76, batch: 200 // loss: 0.262\n", "epoch: 76, batch: 300 // loss: 0.213\n", "epoch: 76, batch: 400 // loss: 0.132\n", "epoch: 76, batch: 500 // loss: 0.418\n", "epoch: 76, batch: 600 // loss: 0.359\n", "epoch: 76, batch: 700 // loss: 0.232\n", "epoch: 76, batch: 800 // loss: 0.193\n", "epoch: 76, batch: 900 // loss: 0.057\n", "epoch: 76, batch: 1000 // loss: 0.490\n", "epoch: 76, batch: 1100 // loss: 0.137\n", "epoch: 76, batch: 1200 // loss: 0.122\n", "\n", "epoch: 77, batch: 0 // loss: 0.192\n", "epoch: 77, batch: 100 // loss: 0.195\n", "epoch: 77, batch: 200 // loss: 0.259\n", "epoch: 77, batch: 300 // loss: 0.209\n", "epoch: 77, batch: 400 // loss: 0.136\n", "epoch: 77, batch: 500 // loss: 0.421\n", "epoch: 77, batch: 600 // loss: 0.355\n", "epoch: 77, batch: 700 // loss: 0.235\n", "epoch: 77, batch: 800 // loss: 0.194\n", "epoch: 77, batch: 900 // loss: 0.059\n", "epoch: 77, batch: 1000 // loss: 0.507\n", "epoch: 77, batch: 1100 // loss: 0.133\n", "epoch: 77, batch: 1200 // loss: 0.121\n", "\n", "epoch: 78, batch: 0 // loss: 0.186\n", "epoch: 78, batch: 100 // loss: 0.191\n", "epoch: 78, batch: 200 // loss: 0.258\n", "epoch: 78, batch: 300 // loss: 0.210\n", "epoch: 78, batch: 400 // loss: 0.135\n", "epoch: 78, batch: 500 // loss: 0.414\n", "epoch: 78, batch: 600 // loss: 0.354\n", "epoch: 78, batch: 700 // loss: 0.233\n", "epoch: 78, batch: 800 // loss: 0.190\n", "epoch: 78, batch: 900 // loss: 0.060\n", "epoch: 78, batch: 1000 // loss: 0.503\n", "epoch: 78, batch: 1100 // loss: 0.139\n", "epoch: 78, batch: 1200 // loss: 0.123\n", "\n", "epoch: 79, batch: 0 // loss: 0.187\n", "epoch: 79, batch: 100 // loss: 0.187\n", "epoch: 79, batch: 200 // loss: 0.252\n", "epoch: 79, batch: 300 // loss: 0.213\n", "epoch: 79, batch: 400 // loss: 0.136\n", "epoch: 79, batch: 500 // loss: 0.417\n", "epoch: 79, batch: 600 // loss: 0.351\n", "epoch: 79, batch: 700 // loss: 0.229\n", "epoch: 79, batch: 800 // loss: 0.191\n", "epoch: 79, batch: 900 // loss: 0.061\n", "epoch: 79, batch: 1000 // loss: 0.501\n", "epoch: 79, batch: 1100 // loss: 0.133\n", "epoch: 79, batch: 1200 // loss: 0.124\n", "\n", "epoch: 80, batch: 0 // loss: 0.191\n", "epoch: 80, batch: 100 // loss: 0.189\n", "epoch: 80, batch: 200 // loss: 0.245\n", "epoch: 80, batch: 300 // loss: 0.213\n", "epoch: 80, batch: 400 // loss: 0.137\n", "epoch: 80, batch: 500 // loss: 0.412\n", "epoch: 80, batch: 600 // loss: 0.348\n", "epoch: 80, batch: 700 // loss: 0.226\n", "epoch: 80, batch: 800 // loss: 0.189\n", "epoch: 80, batch: 900 // loss: 0.061\n", "epoch: 80, batch: 1000 // loss: 0.484\n", "epoch: 80, batch: 1100 // loss: 0.137\n", "epoch: 80, batch: 1200 // loss: 0.126\n", "\n", "epoch: 81, batch: 0 // loss: 0.189\n", "epoch: 81, batch: 100 // loss: 0.184\n", "epoch: 81, batch: 200 // loss: 0.251\n", "epoch: 81, batch: 300 // loss: 0.211\n", "epoch: 81, batch: 400 // loss: 0.135\n", "epoch: 81, batch: 500 // loss: 0.410\n", "epoch: 81, batch: 600 // loss: 0.341\n", "epoch: 81, batch: 700 // loss: 0.224\n", "epoch: 81, batch: 800 // loss: 0.181\n", "epoch: 81, batch: 900 // loss: 0.063\n", "epoch: 81, batch: 1000 // loss: 0.477\n", "epoch: 81, batch: 1100 // loss: 0.134\n", "epoch: 81, batch: 1200 // loss: 0.127\n", "\n", "epoch: 82, batch: 0 // loss: 0.185\n", "epoch: 82, batch: 100 // loss: 0.182\n", "epoch: 82, batch: 200 // loss: 0.249\n", "epoch: 82, batch: 300 // loss: 0.206\n", "epoch: 82, batch: 400 // loss: 0.137\n", "epoch: 82, batch: 500 // loss: 0.402\n", "epoch: 82, batch: 600 // loss: 0.342\n", "epoch: 82, batch: 700 // loss: 0.220\n", "epoch: 82, batch: 800 // loss: 0.182\n", "epoch: 82, batch: 900 // loss: 0.063\n", "epoch: 82, batch: 1000 // loss: 0.494\n", "epoch: 82, batch: 1100 // loss: 0.137\n", "epoch: 82, batch: 1200 // loss: 0.121\n", "\n", "epoch: 83, batch: 0 // loss: 0.189\n", "epoch: 83, batch: 100 // loss: 0.176\n", "epoch: 83, batch: 200 // loss: 0.249\n", "epoch: 83, batch: 300 // loss: 0.204\n", "epoch: 83, batch: 400 // loss: 0.137\n", "epoch: 83, batch: 500 // loss: 0.400\n", "epoch: 83, batch: 600 // loss: 0.332\n", "epoch: 83, batch: 700 // loss: 0.220\n", "epoch: 83, batch: 800 // loss: 0.177\n", "epoch: 83, batch: 900 // loss: 0.064\n", "epoch: 83, batch: 1000 // loss: 0.487\n", "epoch: 83, batch: 1100 // loss: 0.129\n", "epoch: 83, batch: 1200 // loss: 0.121\n", "\n", "epoch: 84, batch: 0 // loss: 0.188\n", "epoch: 84, batch: 100 // loss: 0.177\n", "epoch: 84, batch: 200 // loss: 0.239\n", "epoch: 84, batch: 300 // loss: 0.202\n", "epoch: 84, batch: 400 // loss: 0.137\n", "epoch: 84, batch: 500 // loss: 0.405\n", "epoch: 84, batch: 600 // loss: 0.330\n", "epoch: 84, batch: 700 // loss: 0.216\n", "epoch: 84, batch: 800 // loss: 0.176\n", "epoch: 84, batch: 900 // loss: 0.064\n", "epoch: 84, batch: 1000 // loss: 0.488\n", "epoch: 84, batch: 1100 // loss: 0.136\n", "epoch: 84, batch: 1200 // loss: 0.122\n", "\n", "epoch: 85, batch: 0 // loss: 0.185\n", "epoch: 85, batch: 100 // loss: 0.175\n", "epoch: 85, batch: 200 // loss: 0.241\n", "epoch: 85, batch: 300 // loss: 0.207\n", "epoch: 85, batch: 400 // loss: 0.139\n", "epoch: 85, batch: 500 // loss: 0.398\n", "epoch: 85, batch: 600 // loss: 0.325\n", "epoch: 85, batch: 700 // loss: 0.219\n", "epoch: 85, batch: 800 // loss: 0.170\n", "epoch: 85, batch: 900 // loss: 0.067\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 85, batch: 1000 // loss: 0.471\n", "epoch: 85, batch: 1100 // loss: 0.138\n", "epoch: 85, batch: 1200 // loss: 0.123\n", "\n", "epoch: 86, batch: 0 // loss: 0.181\n", "epoch: 86, batch: 100 // loss: 0.177\n", "epoch: 86, batch: 200 // loss: 0.237\n", "epoch: 86, batch: 300 // loss: 0.210\n", "epoch: 86, batch: 400 // loss: 0.141\n", "epoch: 86, batch: 500 // loss: 0.394\n", "epoch: 86, batch: 600 // loss: 0.321\n", "epoch: 86, batch: 700 // loss: 0.206\n", "epoch: 86, batch: 800 // loss: 0.165\n", "epoch: 86, batch: 900 // loss: 0.064\n", "epoch: 86, batch: 1000 // loss: 0.481\n", "epoch: 86, batch: 1100 // loss: 0.130\n", "epoch: 86, batch: 1200 // loss: 0.122\n", "\n", "epoch: 87, batch: 0 // loss: 0.184\n", "epoch: 87, batch: 100 // loss: 0.180\n", "epoch: 87, batch: 200 // loss: 0.240\n", "epoch: 87, batch: 300 // loss: 0.208\n", "epoch: 87, batch: 400 // loss: 0.140\n", "epoch: 87, batch: 500 // loss: 0.382\n", "epoch: 87, batch: 600 // loss: 0.323\n", "epoch: 87, batch: 700 // loss: 0.211\n", "epoch: 87, batch: 800 // loss: 0.164\n", "epoch: 87, batch: 900 // loss: 0.064\n", "epoch: 87, batch: 1000 // loss: 0.480\n", "epoch: 87, batch: 1100 // loss: 0.136\n", "epoch: 87, batch: 1200 // loss: 0.126\n", "\n", "epoch: 88, batch: 0 // loss: 0.182\n", "epoch: 88, batch: 100 // loss: 0.179\n", "epoch: 88, batch: 200 // loss: 0.231\n", "epoch: 88, batch: 300 // loss: 0.205\n", "epoch: 88, batch: 400 // loss: 0.140\n", "epoch: 88, batch: 500 // loss: 0.388\n", "epoch: 88, batch: 600 // loss: 0.317\n", "epoch: 88, batch: 700 // loss: 0.214\n", "epoch: 88, batch: 800 // loss: 0.166\n", "epoch: 88, batch: 900 // loss: 0.067\n", "epoch: 88, batch: 1000 // loss: 0.466\n", "epoch: 88, batch: 1100 // loss: 0.134\n", "epoch: 88, batch: 1200 // loss: 0.124\n", "\n", "epoch: 89, batch: 0 // loss: 0.186\n", "epoch: 89, batch: 100 // loss: 0.175\n", "epoch: 89, batch: 200 // loss: 0.224\n", "epoch: 89, batch: 300 // loss: 0.209\n", "epoch: 89, batch: 400 // loss: 0.138\n", "epoch: 89, batch: 500 // loss: 0.385\n", "epoch: 89, batch: 600 // loss: 0.315\n", "epoch: 89, batch: 700 // loss: 0.215\n", "epoch: 89, batch: 800 // loss: 0.162\n", "epoch: 89, batch: 900 // loss: 0.065\n", "epoch: 89, batch: 1000 // loss: 0.461\n", "epoch: 89, batch: 1100 // loss: 0.133\n", "epoch: 89, batch: 1200 // loss: 0.124\n", "\n", "epoch: 90, batch: 0 // loss: 0.179\n", "epoch: 90, batch: 100 // loss: 0.175\n", "epoch: 90, batch: 200 // loss: 0.225\n", "epoch: 90, batch: 300 // loss: 0.207\n", "epoch: 90, batch: 400 // loss: 0.140\n", "epoch: 90, batch: 500 // loss: 0.379\n", "epoch: 90, batch: 600 // loss: 0.308\n", "epoch: 90, batch: 700 // loss: 0.208\n", "epoch: 90, batch: 800 // loss: 0.156\n", "epoch: 90, batch: 900 // loss: 0.065\n", "epoch: 90, batch: 1000 // loss: 0.473\n", "epoch: 90, batch: 1100 // loss: 0.131\n", "epoch: 90, batch: 1200 // loss: 0.125\n", "\n", "epoch: 91, batch: 0 // loss: 0.174\n", "epoch: 91, batch: 100 // loss: 0.173\n", "epoch: 91, batch: 200 // loss: 0.222\n", "epoch: 91, batch: 300 // loss: 0.200\n", "epoch: 91, batch: 400 // loss: 0.139\n", "epoch: 91, batch: 500 // loss: 0.379\n", "epoch: 91, batch: 600 // loss: 0.303\n", "epoch: 91, batch: 700 // loss: 0.199\n", "epoch: 91, batch: 800 // loss: 0.153\n", "epoch: 91, batch: 900 // loss: 0.067\n", "epoch: 91, batch: 1000 // loss: 0.455\n", "epoch: 91, batch: 1100 // loss: 0.124\n", "epoch: 91, batch: 1200 // loss: 0.123\n", "\n", "epoch: 92, batch: 0 // loss: 0.176\n", "epoch: 92, batch: 100 // loss: 0.175\n", "epoch: 92, batch: 200 // loss: 0.230\n", "epoch: 92, batch: 300 // loss: 0.205\n", "epoch: 92, batch: 400 // loss: 0.139\n", "epoch: 92, batch: 500 // loss: 0.376\n", "epoch: 92, batch: 600 // loss: 0.295\n", "epoch: 92, batch: 700 // loss: 0.199\n", "epoch: 92, batch: 800 // loss: 0.155\n", "epoch: 92, batch: 900 // loss: 0.068\n", "epoch: 92, batch: 1000 // loss: 0.455\n", "epoch: 92, batch: 1100 // loss: 0.129\n", "epoch: 92, batch: 1200 // loss: 0.123\n", "\n", "epoch: 93, batch: 0 // loss: 0.177\n", "epoch: 93, batch: 100 // loss: 0.176\n", "epoch: 93, batch: 200 // loss: 0.216\n", "epoch: 93, batch: 300 // loss: 0.205\n", "epoch: 93, batch: 400 // loss: 0.137\n", "epoch: 93, batch: 500 // loss: 0.380\n", "epoch: 93, batch: 600 // loss: 0.298\n", "epoch: 93, batch: 700 // loss: 0.211\n", "epoch: 93, batch: 800 // loss: 0.155\n", "epoch: 93, batch: 900 // loss: 0.067\n", "epoch: 93, batch: 1000 // loss: 0.464\n", "epoch: 93, batch: 1100 // loss: 0.127\n", "epoch: 93, batch: 1200 // loss: 0.124\n", "\n", "epoch: 94, batch: 0 // loss: 0.171\n", "epoch: 94, batch: 100 // loss: 0.175\n", "epoch: 94, batch: 200 // loss: 0.228\n", "epoch: 94, batch: 300 // loss: 0.206\n", "epoch: 94, batch: 400 // loss: 0.139\n", "epoch: 94, batch: 500 // loss: 0.372\n", "epoch: 94, batch: 600 // loss: 0.292\n", "epoch: 94, batch: 700 // loss: 0.207\n", "epoch: 94, batch: 800 // loss: 0.156\n", "epoch: 94, batch: 900 // loss: 0.067\n", "epoch: 94, batch: 1000 // loss: 0.446\n", "epoch: 94, batch: 1100 // loss: 0.125\n", "epoch: 94, batch: 1200 // loss: 0.120\n", "\n", "epoch: 95, batch: 0 // loss: 0.178\n", "epoch: 95, batch: 100 // loss: 0.172\n", "epoch: 95, batch: 200 // loss: 0.229\n", "epoch: 95, batch: 300 // loss: 0.205\n", "epoch: 95, batch: 400 // loss: 0.138\n", "epoch: 95, batch: 500 // loss: 0.365\n", "epoch: 95, batch: 600 // loss: 0.292\n", "epoch: 95, batch: 700 // loss: 0.204\n", "epoch: 95, batch: 800 // loss: 0.155\n", "epoch: 95, batch: 900 // loss: 0.068\n", "epoch: 95, batch: 1000 // loss: 0.463\n", "epoch: 95, batch: 1100 // loss: 0.128\n", "epoch: 95, batch: 1200 // loss: 0.123\n", "\n", "epoch: 96, batch: 0 // loss: 0.172\n", "epoch: 96, batch: 100 // loss: 0.178\n", "epoch: 96, batch: 200 // loss: 0.225\n", "epoch: 96, batch: 300 // loss: 0.207\n", "epoch: 96, batch: 400 // loss: 0.140\n", "epoch: 96, batch: 500 // loss: 0.372\n", "epoch: 96, batch: 600 // loss: 0.289\n", "epoch: 96, batch: 700 // loss: 0.199\n", "epoch: 96, batch: 800 // loss: 0.154\n", "epoch: 96, batch: 900 // loss: 0.067\n", "epoch: 96, batch: 1000 // loss: 0.439\n", "epoch: 96, batch: 1100 // loss: 0.124\n", "epoch: 96, batch: 1200 // loss: 0.125\n", "\n", "epoch: 97, batch: 0 // loss: 0.177\n", "epoch: 97, batch: 100 // loss: 0.172\n", "epoch: 97, batch: 200 // loss: 0.231\n", "epoch: 97, batch: 300 // loss: 0.212\n", "epoch: 97, batch: 400 // loss: 0.139\n", "epoch: 97, batch: 500 // loss: 0.364\n", "epoch: 97, batch: 600 // loss: 0.285\n", "epoch: 97, batch: 700 // loss: 0.204\n", "epoch: 97, batch: 800 // loss: 0.155\n", "epoch: 97, batch: 900 // loss: 0.066\n", "epoch: 97, batch: 1000 // loss: 0.446\n", "epoch: 97, batch: 1100 // loss: 0.126\n", "epoch: 97, batch: 1200 // loss: 0.124\n", "\n", "epoch: 98, batch: 0 // loss: 0.185\n", "epoch: 98, batch: 100 // loss: 0.177\n", "epoch: 98, batch: 200 // loss: 0.226\n", "epoch: 98, batch: 300 // loss: 0.211\n", "epoch: 98, batch: 400 // loss: 0.140\n", "epoch: 98, batch: 500 // loss: 0.361\n", "epoch: 98, batch: 600 // loss: 0.286\n", "epoch: 98, batch: 700 // loss: 0.198\n", "epoch: 98, batch: 800 // loss: 0.153\n", "epoch: 98, batch: 900 // loss: 0.066\n", "epoch: 98, batch: 1000 // loss: 0.460\n", "epoch: 98, batch: 1100 // loss: 0.120\n", "epoch: 98, batch: 1200 // loss: 0.126\n", "\n", "epoch: 99, batch: 0 // loss: 0.178\n", "epoch: 99, batch: 100 // loss: 0.176\n", "epoch: 99, batch: 200 // loss: 0.223\n", "epoch: 99, batch: 300 // loss: 0.201\n", "epoch: 99, batch: 400 // loss: 0.140\n", "epoch: 99, batch: 500 // loss: 0.357\n", "epoch: 99, batch: 600 // loss: 0.282\n", "epoch: 99, batch: 700 // loss: 0.197\n", "epoch: 99, batch: 800 // loss: 0.150\n", "epoch: 99, batch: 900 // loss: 0.067\n", "epoch: 99, batch: 1000 // loss: 0.450\n", "epoch: 99, batch: 1100 // loss: 0.120\n", "epoch: 99, batch: 1200 // loss: 0.123\n" ] } ], "source": [ "EPOCHS = 100\n", "for epoch in range(EPOCHS): \n", "\n", " running_loss = 0.0\n", " idx, batch_num = 0, 0\n", " batch_size = 16\n", " \n", " print(\"\")\n", " while idx < 20000:\n", " # zero the parameter gradients\n", " optimizer.zero_grad()\n", " \n", " X_batch = X[idx: idx + batch_size].float()\n", " y_batch = y[idx: idx + batch_size]\n", " idx += batch_size\n", " \n", " # now run our X's forward, get preds, incur\n", " # loss, backprop, and step the optimizer.\n", " y_hat_batch = model(X_batch)\n", " loss = loss_function(y_hat_batch, y_batch)\n", " loss.backward()\n", " optimizer.step()\n", "\n", " # print statistics\n", " running_loss += loss.item()\n", " if batch_num % 100 == 0:\n", " print(\"epoch: {}, batch: {} // loss: {:.3f}\".format(epoch, batch_num, loss.item()))\n", " \n", " batch_num += 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## OK! Now let's come back to auto-encoders" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### TODO 1\n", "\n", "Implement a simple autoencoder in `torch`. In particular, let's start with a vanilla linear auto-encoder, mapping to two dimensions in the hidden space." ] }, { "cell_type": "code", "execution_count": 192, "metadata": {}, "outputs": [], "source": [ "class AE(nn.Module):\n", " \n", " def __init__(self, input_size=784, hidden_size=2):\n", " '''\n", " In the initializer we setup model parameters/layers.\n", " '''\n", " super(AE, self).__init__() \n", "\n", " ### REMOVE BELOW\n", " self.input_size = input_size\n", " self.hidden_size = hidden_size\n", " \n", " # input layer; from x -> z\n", " self.i = nn.Linear(self.input_size, self.hidden_size)\n", " \n", " # output layer\n", " self.o = nn.Linear(self.hidden_size, self.input_size)\n", " \n", "\n", " def forward(self, X, return_z=False):\n", " ### REMOVE BELOW\n", " z = self.i(X)\n", " if return_z:\n", " return z\n", " return self.o(z)" ] }, { "cell_type": "code", "execution_count": 193, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "torch.Size([5, 784])" ] }, "execution_count": 193, "metadata": {}, "output_type": "execute_result" } ], "source": [ "auto = AE(hidden_size=50)\n", "X_tilde = auto(X[:5,:].float())\n", "X_tilde.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### TODO 2 \n", "\n", "Define a training loop -- follow the above example. \n", "\n", "**hint** check out: https://pytorch.org/docs/stable/nn.html#loss-functions" ] }, { "cell_type": "code", "execution_count": 194, "metadata": {}, "outputs": [], "source": [ "def train_AE(X_in, X_target, model, optimizer, loss_function, EPOCHS=10):\n", " for epoch in range(EPOCHS): \n", " idx, batch_num = 0, 0\n", " batch_size = 16\n", "\n", " print(\"\")\n", " while idx < 60000:\n", " # zero the parameter gradients\n", " optimizer.zero_grad()\n", "\n", " X_batch = X_in[idx: idx + batch_size].float()\n", " X_target_batch = X_target[idx: idx + batch_size].float()\n", " idx += batch_size\n", "\n", " # now run our X's forward, get preds, incur\n", " # loss, backprop, and step the optimizer.\n", " X_tilde_batch = model(X_batch)\n", " loss = loss_function(X_tilde_batch, X_target_batch)\n", " loss.backward()\n", " optimizer.step()\n", "\n", " # print out loss\n", " if batch_num % 100 == 0:\n", " print(\"epoch: {}, batch: {} // loss: {:.3f}\".format(epoch, batch_num, loss.item()))\n", "\n", " batch_num += 1" ] }, { "cell_type": "code", "execution_count": 195, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "epoch: 0, batch: 0 // loss: 0.383\n", "epoch: 0, batch: 100 // loss: 0.357\n", "epoch: 0, batch: 200 // loss: 0.321\n", "epoch: 0, batch: 300 // loss: 0.303\n", "epoch: 0, batch: 400 // loss: 0.298\n", "epoch: 0, batch: 500 // loss: 0.288\n", "epoch: 0, batch: 600 // loss: 0.284\n", "epoch: 0, batch: 700 // loss: 0.283\n", "epoch: 0, batch: 800 // loss: 0.248\n", "epoch: 0, batch: 900 // loss: 0.278\n", "epoch: 0, batch: 1000 // loss: 0.245\n", "epoch: 0, batch: 1100 // loss: 0.265\n", "epoch: 0, batch: 1200 // loss: 0.218\n", "epoch: 0, batch: 1300 // loss: 0.243\n", "epoch: 0, batch: 1400 // loss: 0.203\n", "epoch: 0, batch: 1500 // loss: 0.199\n", "epoch: 0, batch: 1600 // loss: 0.214\n", "epoch: 0, batch: 1700 // loss: 0.196\n", "epoch: 0, batch: 1800 // loss: 0.219\n", "epoch: 0, batch: 1900 // loss: 0.192\n", "epoch: 0, batch: 2000 // loss: 0.168\n", "epoch: 0, batch: 2100 // loss: 0.169\n", "epoch: 0, batch: 2200 // loss: 0.195\n", "epoch: 0, batch: 2300 // loss: 0.171\n", "epoch: 0, batch: 2400 // loss: 0.138\n", "epoch: 0, batch: 2500 // loss: 0.140\n", "epoch: 0, batch: 2600 // loss: 0.172\n", "epoch: 0, batch: 2700 // loss: 0.134\n", "epoch: 0, batch: 2800 // loss: 0.167\n", "epoch: 0, batch: 2900 // loss: 0.124\n", "epoch: 0, batch: 3000 // loss: 0.134\n", "epoch: 0, batch: 3100 // loss: 0.151\n", "epoch: 0, batch: 3200 // loss: 0.116\n", "epoch: 0, batch: 3300 // loss: 0.126\n", "epoch: 0, batch: 3400 // loss: 0.123\n", "epoch: 0, batch: 3500 // loss: 0.127\n", "epoch: 0, batch: 3600 // loss: 0.131\n", "epoch: 0, batch: 3700 // loss: 0.140\n", "\n", "epoch: 1, batch: 0 // loss: 0.134\n", "epoch: 1, batch: 100 // loss: 0.127\n", "epoch: 1, batch: 200 // loss: 0.124\n", "epoch: 1, batch: 300 // loss: 0.114\n", "epoch: 1, batch: 400 // loss: 0.116\n", "epoch: 1, batch: 500 // loss: 0.109\n", "epoch: 1, batch: 600 // loss: 0.111\n", "epoch: 1, batch: 700 // loss: 0.115\n", "epoch: 1, batch: 800 // loss: 0.105\n", "epoch: 1, batch: 900 // loss: 0.125\n", "epoch: 1, batch: 1000 // loss: 0.103\n", "epoch: 1, batch: 1100 // loss: 0.120\n", "epoch: 1, batch: 1200 // loss: 0.099\n", "epoch: 1, batch: 1300 // loss: 0.116\n", "epoch: 1, batch: 1400 // loss: 0.097\n", "epoch: 1, batch: 1500 // loss: 0.097\n", "epoch: 1, batch: 1600 // loss: 0.109\n", "epoch: 1, batch: 1700 // loss: 0.105\n", "epoch: 1, batch: 1800 // loss: 0.114\n", "epoch: 1, batch: 1900 // loss: 0.102\n", "epoch: 1, batch: 2000 // loss: 0.090\n", "epoch: 1, batch: 2100 // loss: 0.097\n", "epoch: 1, batch: 2200 // loss: 0.114\n", "epoch: 1, batch: 2300 // loss: 0.101\n", "epoch: 1, batch: 2400 // loss: 0.084\n", "epoch: 1, batch: 2500 // loss: 0.083\n", "epoch: 1, batch: 2600 // loss: 0.106\n", "epoch: 1, batch: 2700 // loss: 0.083\n", "epoch: 1, batch: 2800 // loss: 0.108\n", "epoch: 1, batch: 2900 // loss: 0.080\n", "epoch: 1, batch: 3000 // loss: 0.088\n", "epoch: 1, batch: 3100 // loss: 0.098\n", "epoch: 1, batch: 3200 // loss: 0.081\n", "epoch: 1, batch: 3300 // loss: 0.086\n", "epoch: 1, batch: 3400 // loss: 0.082\n", "epoch: 1, batch: 3500 // loss: 0.089\n", "epoch: 1, batch: 3600 // loss: 0.095\n", "epoch: 1, batch: 3700 // loss: 0.101\n", "\n", "epoch: 2, batch: 0 // loss: 0.103\n", "epoch: 2, batch: 100 // loss: 0.091\n", "epoch: 2, batch: 200 // loss: 0.098\n", "epoch: 2, batch: 300 // loss: 0.089\n", "epoch: 2, batch: 400 // loss: 0.090\n", "epoch: 2, batch: 500 // loss: 0.083\n", "epoch: 2, batch: 600 // loss: 0.085\n", "epoch: 2, batch: 700 // loss: 0.089\n", "epoch: 2, batch: 800 // loss: 0.087\n", "epoch: 2, batch: 900 // loss: 0.101\n", "epoch: 2, batch: 1000 // loss: 0.082\n", "epoch: 2, batch: 1100 // loss: 0.095\n", "epoch: 2, batch: 1200 // loss: 0.084\n", "epoch: 2, batch: 1300 // loss: 0.096\n", "epoch: 2, batch: 1400 // loss: 0.083\n", "epoch: 2, batch: 1500 // loss: 0.083\n", "epoch: 2, batch: 1600 // loss: 0.093\n", "epoch: 2, batch: 1700 // loss: 0.093\n", "epoch: 2, batch: 1800 // loss: 0.095\n", "epoch: 2, batch: 1900 // loss: 0.088\n", "epoch: 2, batch: 2000 // loss: 0.079\n", "epoch: 2, batch: 2100 // loss: 0.088\n", "epoch: 2, batch: 2200 // loss: 0.100\n", "epoch: 2, batch: 2300 // loss: 0.091\n", "epoch: 2, batch: 2400 // loss: 0.080\n", "epoch: 2, batch: 2500 // loss: 0.076\n", "epoch: 2, batch: 2600 // loss: 0.095\n", "epoch: 2, batch: 2700 // loss: 0.077\n", "epoch: 2, batch: 2800 // loss: 0.098\n", "epoch: 2, batch: 2900 // loss: 0.076\n", "epoch: 2, batch: 3000 // loss: 0.083\n", "epoch: 2, batch: 3100 // loss: 0.090\n", "epoch: 2, batch: 3200 // loss: 0.079\n", "epoch: 2, batch: 3300 // loss: 0.080\n", "epoch: 2, batch: 3400 // loss: 0.076\n", "epoch: 2, batch: 3500 // loss: 0.083\n", "epoch: 2, batch: 3600 // loss: 0.091\n", "epoch: 2, batch: 3700 // loss: 0.094\n", "\n", "epoch: 3, batch: 0 // loss: 0.099\n", "epoch: 3, batch: 100 // loss: 0.085\n", "epoch: 3, batch: 200 // loss: 0.095\n", "epoch: 3, batch: 300 // loss: 0.086\n", "epoch: 3, batch: 400 // loss: 0.087\n", "epoch: 3, batch: 500 // loss: 0.079\n", "epoch: 3, batch: 600 // loss: 0.081\n", "epoch: 3, batch: 700 // loss: 0.085\n", "epoch: 3, batch: 800 // loss: 0.085\n", "epoch: 3, batch: 900 // loss: 0.096\n", "epoch: 3, batch: 1000 // loss: 0.078\n", "epoch: 3, batch: 1100 // loss: 0.090\n", "epoch: 3, batch: 1200 // loss: 0.082\n", "epoch: 3, batch: 1300 // loss: 0.092\n", "epoch: 3, batch: 1400 // loss: 0.082\n", "epoch: 3, batch: 1500 // loss: 0.082\n", "epoch: 3, batch: 1600 // loss: 0.090\n", "epoch: 3, batch: 1700 // loss: 0.091\n", "epoch: 3, batch: 1800 // loss: 0.092\n", "epoch: 3, batch: 1900 // loss: 0.086\n", "epoch: 3, batch: 2000 // loss: 0.078\n", "epoch: 3, batch: 2100 // loss: 0.088\n", "epoch: 3, batch: 2200 // loss: 0.098\n", "epoch: 3, batch: 2300 // loss: 0.090\n", "epoch: 3, batch: 2400 // loss: 0.081\n", "epoch: 3, batch: 2500 // loss: 0.076\n", "epoch: 3, batch: 2600 // loss: 0.093\n", "epoch: 3, batch: 2700 // loss: 0.077\n", "epoch: 3, batch: 2800 // loss: 0.096\n", "epoch: 3, batch: 2900 // loss: 0.076\n", "epoch: 3, batch: 3000 // loss: 0.082\n", "epoch: 3, batch: 3100 // loss: 0.088\n", "epoch: 3, batch: 3200 // loss: 0.079\n", "epoch: 3, batch: 3300 // loss: 0.079\n", "epoch: 3, batch: 3400 // loss: 0.076\n", "epoch: 3, batch: 3500 // loss: 0.082\n", "epoch: 3, batch: 3600 // loss: 0.090\n", "epoch: 3, batch: 3700 // loss: 0.092\n", "\n", "epoch: 4, batch: 0 // loss: 0.098\n", "epoch: 4, batch: 100 // loss: 0.084\n", "epoch: 4, batch: 200 // loss: 0.095\n", "epoch: 4, batch: 300 // loss: 0.086\n", "epoch: 4, batch: 400 // loss: 0.087\n", "epoch: 4, batch: 500 // loss: 0.078\n", "epoch: 4, batch: 600 // loss: 0.081\n", "epoch: 4, batch: 700 // loss: 0.084\n", "epoch: 4, batch: 800 // loss: 0.085\n", "epoch: 4, batch: 900 // loss: 0.096\n", "epoch: 4, batch: 1000 // loss: 0.077\n", "epoch: 4, batch: 1100 // loss: 0.089\n", "epoch: 4, batch: 1200 // loss: 0.082\n", "epoch: 4, batch: 1300 // loss: 0.091\n", "epoch: 4, batch: 1400 // loss: 0.082\n", "epoch: 4, batch: 1500 // loss: 0.082\n", "epoch: 4, batch: 1600 // loss: 0.090\n", "epoch: 4, batch: 1700 // loss: 0.091\n", "epoch: 4, batch: 1800 // loss: 0.090\n", "epoch: 4, batch: 1900 // loss: 0.085\n", "epoch: 4, batch: 2000 // loss: 0.078\n", "epoch: 4, batch: 2100 // loss: 0.088\n", "epoch: 4, batch: 2200 // loss: 0.097\n", "epoch: 4, batch: 2300 // loss: 0.089\n", "epoch: 4, batch: 2400 // loss: 0.081\n", "epoch: 4, batch: 2500 // loss: 0.076\n", "epoch: 4, batch: 2600 // loss: 0.092\n", "epoch: 4, batch: 2700 // loss: 0.077\n", "epoch: 4, batch: 2800 // loss: 0.096\n", "epoch: 4, batch: 2900 // loss: 0.076\n", "epoch: 4, batch: 3000 // loss: 0.082\n", "epoch: 4, batch: 3100 // loss: 0.087\n", "epoch: 4, batch: 3200 // loss: 0.080\n", "epoch: 4, batch: 3300 // loss: 0.079\n", "epoch: 4, batch: 3400 // loss: 0.075\n", "epoch: 4, batch: 3500 // loss: 0.082\n", "epoch: 4, batch: 3600 // loss: 0.090\n", "epoch: 4, batch: 3700 // loss: 0.092\n", "\n", "epoch: 5, batch: 0 // loss: 0.098\n", "epoch: 5, batch: 100 // loss: 0.083\n", "epoch: 5, batch: 200 // loss: 0.095\n", "epoch: 5, batch: 300 // loss: 0.086\n", "epoch: 5, batch: 400 // loss: 0.087\n", "epoch: 5, batch: 500 // loss: 0.078\n", "epoch: 5, batch: 600 // loss: 0.080\n", "epoch: 5, batch: 700 // loss: 0.084\n", "epoch: 5, batch: 800 // loss: 0.085\n", "epoch: 5, batch: 900 // loss: 0.095\n", "epoch: 5, batch: 1000 // loss: 0.077\n", "epoch: 5, batch: 1100 // loss: 0.088\n", "epoch: 5, batch: 1200 // loss: 0.082\n", "epoch: 5, batch: 1300 // loss: 0.091\n", "epoch: 5, batch: 1400 // loss: 0.082\n", "epoch: 5, batch: 1500 // loss: 0.082\n", "epoch: 5, batch: 1600 // loss: 0.090\n", "epoch: 5, batch: 1700 // loss: 0.091\n", "epoch: 5, batch: 1800 // loss: 0.090\n", "epoch: 5, batch: 1900 // loss: 0.085\n", "epoch: 5, batch: 2000 // loss: 0.078\n", "epoch: 5, batch: 2100 // loss: 0.088\n", "epoch: 5, batch: 2200 // loss: 0.097\n", "epoch: 5, batch: 2300 // loss: 0.089\n", "epoch: 5, batch: 2400 // loss: 0.081\n", "epoch: 5, batch: 2500 // loss: 0.076\n", "epoch: 5, batch: 2600 // loss: 0.092\n", "epoch: 5, batch: 2700 // loss: 0.077\n", "epoch: 5, batch: 2800 // loss: 0.096\n", "epoch: 5, batch: 2900 // loss: 0.076\n", "epoch: 5, batch: 3000 // loss: 0.082\n", "epoch: 5, batch: 3100 // loss: 0.087\n", "epoch: 5, batch: 3200 // loss: 0.080\n", "epoch: 5, batch: 3300 // loss: 0.079\n", "epoch: 5, batch: 3400 // loss: 0.075\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 5, batch: 3500 // loss: 0.082\n", "epoch: 5, batch: 3600 // loss: 0.090\n", "epoch: 5, batch: 3700 // loss: 0.092\n", "\n", "epoch: 6, batch: 0 // loss: 0.098\n", "epoch: 6, batch: 100 // loss: 0.083\n", "epoch: 6, batch: 200 // loss: 0.095\n", "epoch: 6, batch: 300 // loss: 0.086\n", "epoch: 6, batch: 400 // loss: 0.087\n", "epoch: 6, batch: 500 // loss: 0.078\n", "epoch: 6, batch: 600 // loss: 0.080\n", "epoch: 6, batch: 700 // loss: 0.083\n", "epoch: 6, batch: 800 // loss: 0.085\n", "epoch: 6, batch: 900 // loss: 0.095\n", "epoch: 6, batch: 1000 // loss: 0.077\n", "epoch: 6, batch: 1100 // loss: 0.088\n", "epoch: 6, batch: 1200 // loss: 0.082\n", "epoch: 6, batch: 1300 // loss: 0.091\n", "epoch: 6, batch: 1400 // loss: 0.082\n", "epoch: 6, batch: 1500 // loss: 0.082\n", "epoch: 6, batch: 1600 // loss: 0.089\n", "epoch: 6, batch: 1700 // loss: 0.091\n", "epoch: 6, batch: 1800 // loss: 0.090\n", "epoch: 6, batch: 1900 // loss: 0.085\n", "epoch: 6, batch: 2000 // loss: 0.078\n", "epoch: 6, batch: 2100 // loss: 0.088\n", "epoch: 6, batch: 2200 // loss: 0.096\n", "epoch: 6, batch: 2300 // loss: 0.089\n", "epoch: 6, batch: 2400 // loss: 0.081\n", "epoch: 6, batch: 2500 // loss: 0.076\n", "epoch: 6, batch: 2600 // loss: 0.092\n", "epoch: 6, batch: 2700 // loss: 0.077\n", "epoch: 6, batch: 2800 // loss: 0.095\n", "epoch: 6, batch: 2900 // loss: 0.076\n", "epoch: 6, batch: 3000 // loss: 0.082\n", "epoch: 6, batch: 3100 // loss: 0.087\n", "epoch: 6, batch: 3200 // loss: 0.080\n", "epoch: 6, batch: 3300 // loss: 0.079\n", "epoch: 6, batch: 3400 // loss: 0.075\n", "epoch: 6, batch: 3500 // loss: 0.081\n", "epoch: 6, batch: 3600 // loss: 0.090\n", "epoch: 6, batch: 3700 // loss: 0.092\n", "\n", "epoch: 7, batch: 0 // loss: 0.098\n", "epoch: 7, batch: 100 // loss: 0.083\n", "epoch: 7, batch: 200 // loss: 0.095\n", "epoch: 7, batch: 300 // loss: 0.086\n", "epoch: 7, batch: 400 // loss: 0.087\n", "epoch: 7, batch: 500 // loss: 0.078\n", "epoch: 7, batch: 600 // loss: 0.080\n", "epoch: 7, batch: 700 // loss: 0.083\n", "epoch: 7, batch: 800 // loss: 0.085\n", "epoch: 7, batch: 900 // loss: 0.095\n", "epoch: 7, batch: 1000 // loss: 0.077\n", "epoch: 7, batch: 1100 // loss: 0.088\n", "epoch: 7, batch: 1200 // loss: 0.082\n", "epoch: 7, batch: 1300 // loss: 0.090\n", "epoch: 7, batch: 1400 // loss: 0.082\n", "epoch: 7, batch: 1500 // loss: 0.082\n", "epoch: 7, batch: 1600 // loss: 0.089\n", "epoch: 7, batch: 1700 // loss: 0.090\n", "epoch: 7, batch: 1800 // loss: 0.090\n", "epoch: 7, batch: 1900 // loss: 0.085\n", "epoch: 7, batch: 2000 // loss: 0.078\n", "epoch: 7, batch: 2100 // loss: 0.088\n", "epoch: 7, batch: 2200 // loss: 0.096\n", "epoch: 7, batch: 2300 // loss: 0.089\n", "epoch: 7, batch: 2400 // loss: 0.081\n", "epoch: 7, batch: 2500 // loss: 0.076\n", "epoch: 7, batch: 2600 // loss: 0.091\n", "epoch: 7, batch: 2700 // loss: 0.077\n", "epoch: 7, batch: 2800 // loss: 0.095\n", "epoch: 7, batch: 2900 // loss: 0.076\n", "epoch: 7, batch: 3000 // loss: 0.082\n", "epoch: 7, batch: 3100 // loss: 0.087\n", "epoch: 7, batch: 3200 // loss: 0.080\n", "epoch: 7, batch: 3300 // loss: 0.079\n", "epoch: 7, batch: 3400 // loss: 0.075\n", "epoch: 7, batch: 3500 // loss: 0.081\n", "epoch: 7, batch: 3600 // loss: 0.089\n", "epoch: 7, batch: 3700 // loss: 0.091\n", "\n", "epoch: 8, batch: 0 // loss: 0.098\n", "epoch: 8, batch: 100 // loss: 0.082\n", "epoch: 8, batch: 200 // loss: 0.095\n", "epoch: 8, batch: 300 // loss: 0.086\n", "epoch: 8, batch: 400 // loss: 0.087\n", "epoch: 8, batch: 500 // loss: 0.078\n", "epoch: 8, batch: 600 // loss: 0.080\n", "epoch: 8, batch: 700 // loss: 0.083\n", "epoch: 8, batch: 800 // loss: 0.085\n", "epoch: 8, batch: 900 // loss: 0.094\n", "epoch: 8, batch: 1000 // loss: 0.077\n", "epoch: 8, batch: 1100 // loss: 0.088\n", "epoch: 8, batch: 1200 // loss: 0.082\n", "epoch: 8, batch: 1300 // loss: 0.090\n", "epoch: 8, batch: 1400 // loss: 0.082\n", "epoch: 8, batch: 1500 // loss: 0.081\n", "epoch: 8, batch: 1600 // loss: 0.089\n", "epoch: 8, batch: 1700 // loss: 0.090\n", "epoch: 8, batch: 1800 // loss: 0.089\n", "epoch: 8, batch: 1900 // loss: 0.085\n", "epoch: 8, batch: 2000 // loss: 0.078\n", "epoch: 8, batch: 2100 // loss: 0.087\n", "epoch: 8, batch: 2200 // loss: 0.096\n", "epoch: 8, batch: 2300 // loss: 0.089\n", "epoch: 8, batch: 2400 // loss: 0.081\n", "epoch: 8, batch: 2500 // loss: 0.076\n", "epoch: 8, batch: 2600 // loss: 0.091\n", "epoch: 8, batch: 2700 // loss: 0.076\n", "epoch: 8, batch: 2800 // loss: 0.095\n", "epoch: 8, batch: 2900 // loss: 0.076\n", "epoch: 8, batch: 3000 // loss: 0.081\n", "epoch: 8, batch: 3100 // loss: 0.086\n", "epoch: 8, batch: 3200 // loss: 0.079\n", "epoch: 8, batch: 3300 // loss: 0.079\n", "epoch: 8, batch: 3400 // loss: 0.075\n", "epoch: 8, batch: 3500 // loss: 0.081\n", "epoch: 8, batch: 3600 // loss: 0.089\n", "epoch: 8, batch: 3700 // loss: 0.091\n", "\n", "epoch: 9, batch: 0 // loss: 0.097\n", "epoch: 9, batch: 100 // loss: 0.082\n", "epoch: 9, batch: 200 // loss: 0.094\n", "epoch: 9, batch: 300 // loss: 0.085\n", "epoch: 9, batch: 400 // loss: 0.086\n", "epoch: 9, batch: 500 // loss: 0.077\n", "epoch: 9, batch: 600 // loss: 0.079\n", "epoch: 9, batch: 700 // loss: 0.083\n", "epoch: 9, batch: 800 // loss: 0.084\n", "epoch: 9, batch: 900 // loss: 0.094\n", "epoch: 9, batch: 1000 // loss: 0.076\n", "epoch: 9, batch: 1100 // loss: 0.087\n", "epoch: 9, batch: 1200 // loss: 0.082\n", "epoch: 9, batch: 1300 // loss: 0.090\n", "epoch: 9, batch: 1400 // loss: 0.082\n", "epoch: 9, batch: 1500 // loss: 0.081\n", "epoch: 9, batch: 1600 // loss: 0.089\n", "epoch: 9, batch: 1700 // loss: 0.090\n", "epoch: 9, batch: 1800 // loss: 0.089\n", "epoch: 9, batch: 1900 // loss: 0.084\n", "epoch: 9, batch: 2000 // loss: 0.078\n", "epoch: 9, batch: 2100 // loss: 0.087\n", "epoch: 9, batch: 2200 // loss: 0.095\n", "epoch: 9, batch: 2300 // loss: 0.088\n", "epoch: 9, batch: 2400 // loss: 0.081\n", "epoch: 9, batch: 2500 // loss: 0.075\n", "epoch: 9, batch: 2600 // loss: 0.091\n", "epoch: 9, batch: 2700 // loss: 0.076\n", "epoch: 9, batch: 2800 // loss: 0.094\n", "epoch: 9, batch: 2900 // loss: 0.075\n", "epoch: 9, batch: 3000 // loss: 0.081\n", "epoch: 9, batch: 3100 // loss: 0.086\n", "epoch: 9, batch: 3200 // loss: 0.079\n", "epoch: 9, batch: 3300 // loss: 0.078\n", "epoch: 9, batch: 3400 // loss: 0.075\n", "epoch: 9, batch: 3500 // loss: 0.080\n", "epoch: 9, batch: 3600 // loss: 0.089\n", "epoch: 9, batch: 3700 // loss: 0.091\n", "\n", "epoch: 10, batch: 0 // loss: 0.097\n", "epoch: 10, batch: 100 // loss: 0.082\n", "epoch: 10, batch: 200 // loss: 0.094\n", "epoch: 10, batch: 300 // loss: 0.085\n", "epoch: 10, batch: 400 // loss: 0.086\n", "epoch: 10, batch: 500 // loss: 0.077\n", "epoch: 10, batch: 600 // loss: 0.079\n", "epoch: 10, batch: 700 // loss: 0.082\n", "epoch: 10, batch: 800 // loss: 0.084\n", "epoch: 10, batch: 900 // loss: 0.094\n", "epoch: 10, batch: 1000 // loss: 0.076\n", "epoch: 10, batch: 1100 // loss: 0.087\n", "epoch: 10, batch: 1200 // loss: 0.081\n", "epoch: 10, batch: 1300 // loss: 0.089\n", "epoch: 10, batch: 1400 // loss: 0.081\n", "epoch: 10, batch: 1500 // loss: 0.081\n", "epoch: 10, batch: 1600 // loss: 0.088\n", "epoch: 10, batch: 1700 // loss: 0.089\n", "epoch: 10, batch: 1800 // loss: 0.089\n", "epoch: 10, batch: 1900 // loss: 0.084\n", "epoch: 10, batch: 2000 // loss: 0.077\n", "epoch: 10, batch: 2100 // loss: 0.087\n", "epoch: 10, batch: 2200 // loss: 0.095\n", "epoch: 10, batch: 2300 // loss: 0.088\n", "epoch: 10, batch: 2400 // loss: 0.081\n", "epoch: 10, batch: 2500 // loss: 0.075\n", "epoch: 10, batch: 2600 // loss: 0.090\n", "epoch: 10, batch: 2700 // loss: 0.076\n", "epoch: 10, batch: 2800 // loss: 0.094\n", "epoch: 10, batch: 2900 // loss: 0.075\n", "epoch: 10, batch: 3000 // loss: 0.081\n", "epoch: 10, batch: 3100 // loss: 0.085\n", "epoch: 10, batch: 3200 // loss: 0.079\n", "epoch: 10, batch: 3300 // loss: 0.078\n", "epoch: 10, batch: 3400 // loss: 0.074\n", "epoch: 10, batch: 3500 // loss: 0.080\n", "epoch: 10, batch: 3600 // loss: 0.088\n", "epoch: 10, batch: 3700 // loss: 0.090\n", "\n", "epoch: 11, batch: 0 // loss: 0.096\n", "epoch: 11, batch: 100 // loss: 0.081\n", "epoch: 11, batch: 200 // loss: 0.093\n", "epoch: 11, batch: 300 // loss: 0.085\n", "epoch: 11, batch: 400 // loss: 0.085\n", "epoch: 11, batch: 500 // loss: 0.076\n", "epoch: 11, batch: 600 // loss: 0.078\n", "epoch: 11, batch: 700 // loss: 0.082\n", "epoch: 11, batch: 800 // loss: 0.083\n", "epoch: 11, batch: 900 // loss: 0.093\n", "epoch: 11, batch: 1000 // loss: 0.076\n", "epoch: 11, batch: 1100 // loss: 0.086\n", "epoch: 11, batch: 1200 // loss: 0.081\n", "epoch: 11, batch: 1300 // loss: 0.088\n", "epoch: 11, batch: 1400 // loss: 0.081\n", "epoch: 11, batch: 1500 // loss: 0.081\n", "epoch: 11, batch: 1600 // loss: 0.088\n", "epoch: 11, batch: 1700 // loss: 0.088\n", "epoch: 11, batch: 1800 // loss: 0.088\n", "epoch: 11, batch: 1900 // loss: 0.084\n", "epoch: 11, batch: 2000 // loss: 0.077\n", "epoch: 11, batch: 2100 // loss: 0.086\n", "epoch: 11, batch: 2200 // loss: 0.094\n", "epoch: 11, batch: 2300 // loss: 0.087\n", "epoch: 11, batch: 2400 // loss: 0.080\n", "epoch: 11, batch: 2500 // loss: 0.075\n", "epoch: 11, batch: 2600 // loss: 0.089\n", "epoch: 11, batch: 2700 // loss: 0.075\n", "epoch: 11, batch: 2800 // loss: 0.093\n", "epoch: 11, batch: 2900 // loss: 0.075\n", "epoch: 11, batch: 3000 // loss: 0.080\n", "epoch: 11, batch: 3100 // loss: 0.085\n", "epoch: 11, batch: 3200 // loss: 0.078\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 11, batch: 3300 // loss: 0.077\n", "epoch: 11, batch: 3400 // loss: 0.074\n", "epoch: 11, batch: 3500 // loss: 0.079\n", "epoch: 11, batch: 3600 // loss: 0.087\n", "epoch: 11, batch: 3700 // loss: 0.089\n", "\n", "epoch: 12, batch: 0 // loss: 0.096\n", "epoch: 12, batch: 100 // loss: 0.081\n", "epoch: 12, batch: 200 // loss: 0.092\n", "epoch: 12, batch: 300 // loss: 0.084\n", "epoch: 12, batch: 400 // loss: 0.085\n", "epoch: 12, batch: 500 // loss: 0.076\n", "epoch: 12, batch: 600 // loss: 0.078\n", "epoch: 12, batch: 700 // loss: 0.081\n", "epoch: 12, batch: 800 // loss: 0.083\n", "epoch: 12, batch: 900 // loss: 0.092\n", "epoch: 12, batch: 1000 // loss: 0.075\n", "epoch: 12, batch: 1100 // loss: 0.085\n", "epoch: 12, batch: 1200 // loss: 0.081\n", "epoch: 12, batch: 1300 // loss: 0.088\n", "epoch: 12, batch: 1400 // loss: 0.080\n", "epoch: 12, batch: 1500 // loss: 0.080\n", "epoch: 12, batch: 1600 // loss: 0.087\n", "epoch: 12, batch: 1700 // loss: 0.087\n", "epoch: 12, batch: 1800 // loss: 0.088\n", "epoch: 12, batch: 1900 // loss: 0.083\n", "epoch: 12, batch: 2000 // loss: 0.077\n", "epoch: 12, batch: 2100 // loss: 0.086\n", "epoch: 12, batch: 2200 // loss: 0.093\n", "epoch: 12, batch: 2300 // loss: 0.086\n", "epoch: 12, batch: 2400 // loss: 0.080\n", "epoch: 12, batch: 2500 // loss: 0.074\n", "epoch: 12, batch: 2600 // loss: 0.088\n", "epoch: 12, batch: 2700 // loss: 0.075\n", "epoch: 12, batch: 2800 // loss: 0.092\n", "epoch: 12, batch: 2900 // loss: 0.074\n", "epoch: 12, batch: 3000 // loss: 0.079\n", "epoch: 12, batch: 3100 // loss: 0.084\n", "epoch: 12, batch: 3200 // loss: 0.078\n", "epoch: 12, batch: 3300 // loss: 0.077\n", "epoch: 12, batch: 3400 // loss: 0.073\n", "epoch: 12, batch: 3500 // loss: 0.078\n", "epoch: 12, batch: 3600 // loss: 0.086\n", "epoch: 12, batch: 3700 // loss: 0.089\n", "\n", "epoch: 13, batch: 0 // loss: 0.095\n", "epoch: 13, batch: 100 // loss: 0.080\n", "epoch: 13, batch: 200 // loss: 0.091\n", "epoch: 13, batch: 300 // loss: 0.084\n", "epoch: 13, batch: 400 // loss: 0.084\n", "epoch: 13, batch: 500 // loss: 0.075\n", "epoch: 13, batch: 600 // loss: 0.077\n", "epoch: 13, batch: 700 // loss: 0.080\n", "epoch: 13, batch: 800 // loss: 0.082\n", "epoch: 13, batch: 900 // loss: 0.091\n", "epoch: 13, batch: 1000 // loss: 0.075\n", "epoch: 13, batch: 1100 // loss: 0.084\n", "epoch: 13, batch: 1200 // loss: 0.080\n", "epoch: 13, batch: 1300 // loss: 0.087\n", "epoch: 13, batch: 1400 // loss: 0.079\n", "epoch: 13, batch: 1500 // loss: 0.080\n", "epoch: 13, batch: 1600 // loss: 0.087\n", "epoch: 13, batch: 1700 // loss: 0.086\n", "epoch: 13, batch: 1800 // loss: 0.087\n", "epoch: 13, batch: 1900 // loss: 0.082\n", "epoch: 13, batch: 2000 // loss: 0.076\n", "epoch: 13, batch: 2100 // loss: 0.085\n", "epoch: 13, batch: 2200 // loss: 0.092\n", "epoch: 13, batch: 2300 // loss: 0.085\n", "epoch: 13, batch: 2400 // loss: 0.079\n", "epoch: 13, batch: 2500 // loss: 0.073\n", "epoch: 13, batch: 2600 // loss: 0.087\n", "epoch: 13, batch: 2700 // loss: 0.074\n", "epoch: 13, batch: 2800 // loss: 0.091\n", "epoch: 13, batch: 2900 // loss: 0.073\n", "epoch: 13, batch: 3000 // loss: 0.078\n", "epoch: 13, batch: 3100 // loss: 0.083\n", "epoch: 13, batch: 3200 // loss: 0.077\n", "epoch: 13, batch: 3300 // loss: 0.076\n", "epoch: 13, batch: 3400 // loss: 0.073\n", "epoch: 13, batch: 3500 // loss: 0.077\n", "epoch: 13, batch: 3600 // loss: 0.085\n", "epoch: 13, batch: 3700 // loss: 0.088\n", "\n", "epoch: 14, batch: 0 // loss: 0.094\n", "epoch: 14, batch: 100 // loss: 0.079\n", "epoch: 14, batch: 200 // loss: 0.090\n", "epoch: 14, batch: 300 // loss: 0.083\n", "epoch: 14, batch: 400 // loss: 0.083\n", "epoch: 14, batch: 500 // loss: 0.074\n", "epoch: 14, batch: 600 // loss: 0.076\n", "epoch: 14, batch: 700 // loss: 0.079\n", "epoch: 14, batch: 800 // loss: 0.081\n", "epoch: 14, batch: 900 // loss: 0.090\n", "epoch: 14, batch: 1000 // loss: 0.074\n", "epoch: 14, batch: 1100 // loss: 0.083\n", "epoch: 14, batch: 1200 // loss: 0.079\n", "epoch: 14, batch: 1300 // loss: 0.085\n", "epoch: 14, batch: 1400 // loss: 0.079\n", "epoch: 14, batch: 1500 // loss: 0.079\n", "epoch: 14, batch: 1600 // loss: 0.086\n", "epoch: 14, batch: 1700 // loss: 0.085\n", "epoch: 14, batch: 1800 // loss: 0.086\n", "epoch: 14, batch: 1900 // loss: 0.081\n", "epoch: 14, batch: 2000 // loss: 0.076\n", "epoch: 14, batch: 2100 // loss: 0.084\n", "epoch: 14, batch: 2200 // loss: 0.091\n", "epoch: 14, batch: 2300 // loss: 0.084\n", "epoch: 14, batch: 2400 // loss: 0.078\n", "epoch: 14, batch: 2500 // loss: 0.073\n", "epoch: 14, batch: 2600 // loss: 0.086\n", "epoch: 14, batch: 2700 // loss: 0.073\n", "epoch: 14, batch: 2800 // loss: 0.090\n", "epoch: 14, batch: 2900 // loss: 0.073\n", "epoch: 14, batch: 3000 // loss: 0.077\n", "epoch: 14, batch: 3100 // loss: 0.082\n", "epoch: 14, batch: 3200 // loss: 0.076\n", "epoch: 14, batch: 3300 // loss: 0.075\n", "epoch: 14, batch: 3400 // loss: 0.072\n", "epoch: 14, batch: 3500 // loss: 0.075\n", "epoch: 14, batch: 3600 // loss: 0.084\n", "epoch: 14, batch: 3700 // loss: 0.086\n", "\n", "epoch: 15, batch: 0 // loss: 0.092\n", "epoch: 15, batch: 100 // loss: 0.078\n", "epoch: 15, batch: 200 // loss: 0.088\n", "epoch: 15, batch: 300 // loss: 0.082\n", "epoch: 15, batch: 400 // loss: 0.082\n", "epoch: 15, batch: 500 // loss: 0.073\n", "epoch: 15, batch: 600 // loss: 0.074\n", "epoch: 15, batch: 700 // loss: 0.078\n", "epoch: 15, batch: 800 // loss: 0.080\n", "epoch: 15, batch: 900 // loss: 0.089\n", "epoch: 15, batch: 1000 // loss: 0.073\n", "epoch: 15, batch: 1100 // loss: 0.081\n", "epoch: 15, batch: 1200 // loss: 0.079\n", "epoch: 15, batch: 1300 // loss: 0.084\n", "epoch: 15, batch: 1400 // loss: 0.077\n", "epoch: 15, batch: 1500 // loss: 0.079\n", "epoch: 15, batch: 1600 // loss: 0.085\n", "epoch: 15, batch: 1700 // loss: 0.083\n", "epoch: 15, batch: 1800 // loss: 0.085\n", "epoch: 15, batch: 1900 // loss: 0.080\n", "epoch: 15, batch: 2000 // loss: 0.075\n", "epoch: 15, batch: 2100 // loss: 0.083\n", "epoch: 15, batch: 2200 // loss: 0.089\n", "epoch: 15, batch: 2300 // loss: 0.083\n", "epoch: 15, batch: 2400 // loss: 0.077\n", "epoch: 15, batch: 2500 // loss: 0.072\n", "epoch: 15, batch: 2600 // loss: 0.084\n", "epoch: 15, batch: 2700 // loss: 0.072\n", "epoch: 15, batch: 2800 // loss: 0.089\n", "epoch: 15, batch: 2900 // loss: 0.072\n", "epoch: 15, batch: 3000 // loss: 0.076\n", "epoch: 15, batch: 3100 // loss: 0.081\n", "epoch: 15, batch: 3200 // loss: 0.075\n", "epoch: 15, batch: 3300 // loss: 0.073\n", "epoch: 15, batch: 3400 // loss: 0.071\n", "epoch: 15, batch: 3500 // loss: 0.074\n", "epoch: 15, batch: 3600 // loss: 0.082\n", "epoch: 15, batch: 3700 // loss: 0.085\n", "\n", "epoch: 16, batch: 0 // loss: 0.091\n", "epoch: 16, batch: 100 // loss: 0.077\n", "epoch: 16, batch: 200 // loss: 0.086\n", "epoch: 16, batch: 300 // loss: 0.081\n", "epoch: 16, batch: 400 // loss: 0.081\n", "epoch: 16, batch: 500 // loss: 0.072\n", "epoch: 16, batch: 600 // loss: 0.073\n", "epoch: 16, batch: 700 // loss: 0.077\n", "epoch: 16, batch: 800 // loss: 0.078\n", "epoch: 16, batch: 900 // loss: 0.087\n", "epoch: 16, batch: 1000 // loss: 0.072\n", "epoch: 16, batch: 1100 // loss: 0.080\n", "epoch: 16, batch: 1200 // loss: 0.078\n", "epoch: 16, batch: 1300 // loss: 0.083\n", "epoch: 16, batch: 1400 // loss: 0.076\n", "epoch: 16, batch: 1500 // loss: 0.078\n", "epoch: 16, batch: 1600 // loss: 0.083\n", "epoch: 16, batch: 1700 // loss: 0.081\n", "epoch: 16, batch: 1800 // loss: 0.084\n", "epoch: 16, batch: 1900 // loss: 0.079\n", "epoch: 16, batch: 2000 // loss: 0.074\n", "epoch: 16, batch: 2100 // loss: 0.082\n", "epoch: 16, batch: 2200 // loss: 0.087\n", "epoch: 16, batch: 2300 // loss: 0.082\n", "epoch: 16, batch: 2400 // loss: 0.076\n", "epoch: 16, batch: 2500 // loss: 0.071\n", "epoch: 16, batch: 2600 // loss: 0.082\n", "epoch: 16, batch: 2700 // loss: 0.071\n", "epoch: 16, batch: 2800 // loss: 0.087\n", "epoch: 16, batch: 2900 // loss: 0.071\n", "epoch: 16, batch: 3000 // loss: 0.074\n", "epoch: 16, batch: 3100 // loss: 0.079\n", "epoch: 16, batch: 3200 // loss: 0.074\n", "epoch: 16, batch: 3300 // loss: 0.072\n", "epoch: 16, batch: 3400 // loss: 0.070\n", "epoch: 16, batch: 3500 // loss: 0.072\n", "epoch: 16, batch: 3600 // loss: 0.080\n", "epoch: 16, batch: 3700 // loss: 0.083\n", "\n", "epoch: 17, batch: 0 // loss: 0.089\n", "epoch: 17, batch: 100 // loss: 0.076\n", "epoch: 17, batch: 200 // loss: 0.084\n", "epoch: 17, batch: 300 // loss: 0.079\n", "epoch: 17, batch: 400 // loss: 0.079\n", "epoch: 17, batch: 500 // loss: 0.070\n", "epoch: 17, batch: 600 // loss: 0.071\n", "epoch: 17, batch: 700 // loss: 0.075\n", "epoch: 17, batch: 800 // loss: 0.077\n", "epoch: 17, batch: 900 // loss: 0.086\n", "epoch: 17, batch: 1000 // loss: 0.071\n", "epoch: 17, batch: 1100 // loss: 0.078\n", "epoch: 17, batch: 1200 // loss: 0.076\n", "epoch: 17, batch: 1300 // loss: 0.081\n", "epoch: 17, batch: 1400 // loss: 0.075\n", "epoch: 17, batch: 1500 // loss: 0.077\n", "epoch: 17, batch: 1600 // loss: 0.082\n", "epoch: 17, batch: 1700 // loss: 0.079\n", "epoch: 17, batch: 1800 // loss: 0.082\n", "epoch: 17, batch: 1900 // loss: 0.078\n", "epoch: 17, batch: 2000 // loss: 0.073\n", "epoch: 17, batch: 2100 // loss: 0.080\n", "epoch: 17, batch: 2200 // loss: 0.085\n", "epoch: 17, batch: 2300 // loss: 0.080\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 17, batch: 2400 // loss: 0.074\n", "epoch: 17, batch: 2500 // loss: 0.069\n", "epoch: 17, batch: 2600 // loss: 0.080\n", "epoch: 17, batch: 2700 // loss: 0.069\n", "epoch: 17, batch: 2800 // loss: 0.085\n", "epoch: 17, batch: 2900 // loss: 0.069\n", "epoch: 17, batch: 3000 // loss: 0.072\n", "epoch: 17, batch: 3100 // loss: 0.077\n", "epoch: 17, batch: 3200 // loss: 0.072\n", "epoch: 17, batch: 3300 // loss: 0.070\n", "epoch: 17, batch: 3400 // loss: 0.069\n", "epoch: 17, batch: 3500 // loss: 0.070\n", "epoch: 17, batch: 3600 // loss: 0.078\n", "epoch: 17, batch: 3700 // loss: 0.082\n", "\n", "epoch: 18, batch: 0 // loss: 0.087\n", "epoch: 18, batch: 100 // loss: 0.075\n", "epoch: 18, batch: 200 // loss: 0.081\n", "epoch: 18, batch: 300 // loss: 0.078\n", "epoch: 18, batch: 400 // loss: 0.078\n", "epoch: 18, batch: 500 // loss: 0.069\n", "epoch: 18, batch: 600 // loss: 0.069\n", "epoch: 18, batch: 700 // loss: 0.073\n", "epoch: 18, batch: 800 // loss: 0.075\n", "epoch: 18, batch: 900 // loss: 0.084\n", "epoch: 18, batch: 1000 // loss: 0.070\n", "epoch: 18, batch: 1100 // loss: 0.075\n", "epoch: 18, batch: 1200 // loss: 0.075\n", "epoch: 18, batch: 1300 // loss: 0.079\n", "epoch: 18, batch: 1400 // loss: 0.073\n", "epoch: 18, batch: 1500 // loss: 0.076\n", "epoch: 18, batch: 1600 // loss: 0.080\n", "epoch: 18, batch: 1700 // loss: 0.076\n", "epoch: 18, batch: 1800 // loss: 0.081\n", "epoch: 18, batch: 1900 // loss: 0.076\n", "epoch: 18, batch: 2000 // loss: 0.072\n", "epoch: 18, batch: 2100 // loss: 0.079\n", "epoch: 18, batch: 2200 // loss: 0.083\n", "epoch: 18, batch: 2300 // loss: 0.078\n", "epoch: 18, batch: 2400 // loss: 0.073\n", "epoch: 18, batch: 2500 // loss: 0.068\n", "epoch: 18, batch: 2600 // loss: 0.078\n", "epoch: 18, batch: 2700 // loss: 0.068\n", "epoch: 18, batch: 2800 // loss: 0.083\n", "epoch: 18, batch: 2900 // loss: 0.068\n", "epoch: 18, batch: 3000 // loss: 0.070\n", "epoch: 18, batch: 3100 // loss: 0.076\n", "epoch: 18, batch: 3200 // loss: 0.071\n", "epoch: 18, batch: 3300 // loss: 0.069\n", "epoch: 18, batch: 3400 // loss: 0.068\n", "epoch: 18, batch: 3500 // loss: 0.068\n", "epoch: 18, batch: 3600 // loss: 0.076\n", "epoch: 18, batch: 3700 // loss: 0.080\n", "\n", "epoch: 19, batch: 0 // loss: 0.085\n", "epoch: 19, batch: 100 // loss: 0.073\n", "epoch: 19, batch: 200 // loss: 0.078\n", "epoch: 19, batch: 300 // loss: 0.076\n", "epoch: 19, batch: 400 // loss: 0.076\n", "epoch: 19, batch: 500 // loss: 0.067\n", "epoch: 19, batch: 600 // loss: 0.067\n", "epoch: 19, batch: 700 // loss: 0.071\n", "epoch: 19, batch: 800 // loss: 0.073\n", "epoch: 19, batch: 900 // loss: 0.082\n", "epoch: 19, batch: 1000 // loss: 0.068\n", "epoch: 19, batch: 1100 // loss: 0.073\n", "epoch: 19, batch: 1200 // loss: 0.074\n", "epoch: 19, batch: 1300 // loss: 0.077\n", "epoch: 19, batch: 1400 // loss: 0.071\n", "epoch: 19, batch: 1500 // loss: 0.074\n", "epoch: 19, batch: 1600 // loss: 0.078\n", "epoch: 19, batch: 1700 // loss: 0.074\n", "epoch: 19, batch: 1800 // loss: 0.079\n", "epoch: 19, batch: 1900 // loss: 0.075\n", "epoch: 19, batch: 2000 // loss: 0.071\n", "epoch: 19, batch: 2100 // loss: 0.077\n", "epoch: 19, batch: 2200 // loss: 0.081\n", "epoch: 19, batch: 2300 // loss: 0.076\n", "epoch: 19, batch: 2400 // loss: 0.071\n", "epoch: 19, batch: 2500 // loss: 0.067\n", "epoch: 19, batch: 2600 // loss: 0.075\n", "epoch: 19, batch: 2700 // loss: 0.067\n", "epoch: 19, batch: 2800 // loss: 0.081\n", "epoch: 19, batch: 2900 // loss: 0.067\n", "epoch: 19, batch: 3000 // loss: 0.068\n", "epoch: 19, batch: 3100 // loss: 0.074\n", "epoch: 19, batch: 3200 // loss: 0.069\n", "epoch: 19, batch: 3300 // loss: 0.067\n", "epoch: 19, batch: 3400 // loss: 0.067\n", "epoch: 19, batch: 3500 // loss: 0.065\n", "epoch: 19, batch: 3600 // loss: 0.073\n", "epoch: 19, batch: 3700 // loss: 0.077\n", "\n", "epoch: 20, batch: 0 // loss: 0.083\n", "epoch: 20, batch: 100 // loss: 0.072\n", "epoch: 20, batch: 200 // loss: 0.076\n", "epoch: 20, batch: 300 // loss: 0.075\n", "epoch: 20, batch: 400 // loss: 0.074\n", "epoch: 20, batch: 500 // loss: 0.065\n", "epoch: 20, batch: 600 // loss: 0.065\n", "epoch: 20, batch: 700 // loss: 0.069\n", "epoch: 20, batch: 800 // loss: 0.071\n", "epoch: 20, batch: 900 // loss: 0.080\n", "epoch: 20, batch: 1000 // loss: 0.067\n", "epoch: 20, batch: 1100 // loss: 0.071\n", "epoch: 20, batch: 1200 // loss: 0.072\n", "epoch: 20, batch: 1300 // loss: 0.075\n", "epoch: 20, batch: 1400 // loss: 0.069\n", "epoch: 20, batch: 1500 // loss: 0.073\n", "epoch: 20, batch: 1600 // loss: 0.077\n", "epoch: 20, batch: 1700 // loss: 0.071\n", "epoch: 20, batch: 1800 // loss: 0.077\n", "epoch: 20, batch: 1900 // loss: 0.073\n", "epoch: 20, batch: 2000 // loss: 0.070\n", "epoch: 20, batch: 2100 // loss: 0.075\n", "epoch: 20, batch: 2200 // loss: 0.079\n", "epoch: 20, batch: 2300 // loss: 0.074\n", "epoch: 20, batch: 2400 // loss: 0.069\n", "epoch: 20, batch: 2500 // loss: 0.065\n", "epoch: 20, batch: 2600 // loss: 0.073\n", "epoch: 20, batch: 2700 // loss: 0.065\n", "epoch: 20, batch: 2800 // loss: 0.079\n", "epoch: 20, batch: 2900 // loss: 0.065\n", "epoch: 20, batch: 3000 // loss: 0.066\n", "epoch: 20, batch: 3100 // loss: 0.072\n", "epoch: 20, batch: 3200 // loss: 0.067\n", "epoch: 20, batch: 3300 // loss: 0.065\n", "epoch: 20, batch: 3400 // loss: 0.066\n", "epoch: 20, batch: 3500 // loss: 0.063\n", "epoch: 20, batch: 3600 // loss: 0.071\n", "epoch: 20, batch: 3700 // loss: 0.075\n", "\n", "epoch: 21, batch: 0 // loss: 0.081\n", "epoch: 21, batch: 100 // loss: 0.071\n", "epoch: 21, batch: 200 // loss: 0.073\n", "epoch: 21, batch: 300 // loss: 0.073\n", "epoch: 21, batch: 400 // loss: 0.072\n", "epoch: 21, batch: 500 // loss: 0.063\n", "epoch: 21, batch: 600 // loss: 0.063\n", "epoch: 21, batch: 700 // loss: 0.067\n", "epoch: 21, batch: 800 // loss: 0.069\n", "epoch: 21, batch: 900 // loss: 0.078\n", "epoch: 21, batch: 1000 // loss: 0.065\n", "epoch: 21, batch: 1100 // loss: 0.068\n", "epoch: 21, batch: 1200 // loss: 0.071\n", "epoch: 21, batch: 1300 // loss: 0.074\n", "epoch: 21, batch: 1400 // loss: 0.068\n", "epoch: 21, batch: 1500 // loss: 0.072\n", "epoch: 21, batch: 1600 // loss: 0.075\n", "epoch: 21, batch: 1700 // loss: 0.069\n", "epoch: 21, batch: 1800 // loss: 0.076\n", "epoch: 21, batch: 1900 // loss: 0.071\n", "epoch: 21, batch: 2000 // loss: 0.069\n", "epoch: 21, batch: 2100 // loss: 0.074\n", "epoch: 21, batch: 2200 // loss: 0.077\n", "epoch: 21, batch: 2300 // loss: 0.072\n", "epoch: 21, batch: 2400 // loss: 0.067\n", "epoch: 21, batch: 2500 // loss: 0.064\n", "epoch: 21, batch: 2600 // loss: 0.070\n", "epoch: 21, batch: 2700 // loss: 0.064\n", "epoch: 21, batch: 2800 // loss: 0.077\n", "epoch: 21, batch: 2900 // loss: 0.064\n", "epoch: 21, batch: 3000 // loss: 0.065\n", "epoch: 21, batch: 3100 // loss: 0.070\n", "epoch: 21, batch: 3200 // loss: 0.065\n", "epoch: 21, batch: 3300 // loss: 0.063\n", "epoch: 21, batch: 3400 // loss: 0.064\n", "epoch: 21, batch: 3500 // loss: 0.061\n", "epoch: 21, batch: 3600 // loss: 0.068\n", "epoch: 21, batch: 3700 // loss: 0.073\n", "\n", "epoch: 22, batch: 0 // loss: 0.079\n", "epoch: 22, batch: 100 // loss: 0.070\n", "epoch: 22, batch: 200 // loss: 0.070\n", "epoch: 22, batch: 300 // loss: 0.072\n", "epoch: 22, batch: 400 // loss: 0.071\n", "epoch: 22, batch: 500 // loss: 0.061\n", "epoch: 22, batch: 600 // loss: 0.061\n", "epoch: 22, batch: 700 // loss: 0.065\n", "epoch: 22, batch: 800 // loss: 0.068\n", "epoch: 22, batch: 900 // loss: 0.076\n", "epoch: 22, batch: 1000 // loss: 0.064\n", "epoch: 22, batch: 1100 // loss: 0.066\n", "epoch: 22, batch: 1200 // loss: 0.069\n", "epoch: 22, batch: 1300 // loss: 0.072\n", "epoch: 22, batch: 1400 // loss: 0.066\n", "epoch: 22, batch: 1500 // loss: 0.071\n", "epoch: 22, batch: 1600 // loss: 0.073\n", "epoch: 22, batch: 1700 // loss: 0.067\n", "epoch: 22, batch: 1800 // loss: 0.074\n", "epoch: 22, batch: 1900 // loss: 0.070\n", "epoch: 22, batch: 2000 // loss: 0.069\n", "epoch: 22, batch: 2100 // loss: 0.072\n", "epoch: 22, batch: 2200 // loss: 0.075\n", "epoch: 22, batch: 2300 // loss: 0.071\n", "epoch: 22, batch: 2400 // loss: 0.066\n", "epoch: 22, batch: 2500 // loss: 0.063\n", "epoch: 22, batch: 2600 // loss: 0.068\n", "epoch: 22, batch: 2700 // loss: 0.062\n", "epoch: 22, batch: 2800 // loss: 0.076\n", "epoch: 22, batch: 2900 // loss: 0.062\n", "epoch: 22, batch: 3000 // loss: 0.063\n", "epoch: 22, batch: 3100 // loss: 0.068\n", "epoch: 22, batch: 3200 // loss: 0.064\n", "epoch: 22, batch: 3300 // loss: 0.061\n", "epoch: 22, batch: 3400 // loss: 0.063\n", "epoch: 22, batch: 3500 // loss: 0.059\n", "epoch: 22, batch: 3600 // loss: 0.066\n", "epoch: 22, batch: 3700 // loss: 0.071\n", "\n", "epoch: 23, batch: 0 // loss: 0.077\n", "epoch: 23, batch: 100 // loss: 0.069\n", "epoch: 23, batch: 200 // loss: 0.068\n", "epoch: 23, batch: 300 // loss: 0.070\n", "epoch: 23, batch: 400 // loss: 0.069\n", "epoch: 23, batch: 500 // loss: 0.059\n", "epoch: 23, batch: 600 // loss: 0.059\n", "epoch: 23, batch: 700 // loss: 0.063\n", "epoch: 23, batch: 800 // loss: 0.066\n", "epoch: 23, batch: 900 // loss: 0.074\n", "epoch: 23, batch: 1000 // loss: 0.063\n", "epoch: 23, batch: 1100 // loss: 0.064\n", "epoch: 23, batch: 1200 // loss: 0.068\n", "epoch: 23, batch: 1300 // loss: 0.070\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 23, batch: 1400 // loss: 0.064\n", "epoch: 23, batch: 1500 // loss: 0.069\n", "epoch: 23, batch: 1600 // loss: 0.072\n", "epoch: 23, batch: 1700 // loss: 0.065\n", "epoch: 23, batch: 1800 // loss: 0.073\n", "epoch: 23, batch: 1900 // loss: 0.069\n", "epoch: 23, batch: 2000 // loss: 0.068\n", "epoch: 23, batch: 2100 // loss: 0.071\n", "epoch: 23, batch: 2200 // loss: 0.073\n", "epoch: 23, batch: 2300 // loss: 0.069\n", "epoch: 23, batch: 2400 // loss: 0.064\n", "epoch: 23, batch: 2500 // loss: 0.061\n", "epoch: 23, batch: 2600 // loss: 0.066\n", "epoch: 23, batch: 2700 // loss: 0.061\n", "epoch: 23, batch: 2800 // loss: 0.074\n", "epoch: 23, batch: 2900 // loss: 0.061\n", "epoch: 23, batch: 3000 // loss: 0.061\n", "epoch: 23, batch: 3100 // loss: 0.067\n", "epoch: 23, batch: 3200 // loss: 0.062\n", "epoch: 23, batch: 3300 // loss: 0.060\n", "epoch: 23, batch: 3400 // loss: 0.062\n", "epoch: 23, batch: 3500 // loss: 0.057\n", "epoch: 23, batch: 3600 // loss: 0.064\n", "epoch: 23, batch: 3700 // loss: 0.070\n", "\n", "epoch: 24, batch: 0 // loss: 0.076\n", "epoch: 24, batch: 100 // loss: 0.068\n", "epoch: 24, batch: 200 // loss: 0.065\n", "epoch: 24, batch: 300 // loss: 0.069\n", "epoch: 24, batch: 400 // loss: 0.068\n", "epoch: 24, batch: 500 // loss: 0.058\n", "epoch: 24, batch: 600 // loss: 0.058\n", "epoch: 24, batch: 700 // loss: 0.062\n", "epoch: 24, batch: 800 // loss: 0.065\n", "epoch: 24, batch: 900 // loss: 0.072\n", "epoch: 24, batch: 1000 // loss: 0.061\n", "epoch: 24, batch: 1100 // loss: 0.062\n", "epoch: 24, batch: 1200 // loss: 0.067\n", "epoch: 24, batch: 1300 // loss: 0.069\n", "epoch: 24, batch: 1400 // loss: 0.063\n", "epoch: 24, batch: 1500 // loss: 0.068\n", "epoch: 24, batch: 1600 // loss: 0.070\n", "epoch: 24, batch: 1700 // loss: 0.063\n", "epoch: 24, batch: 1800 // loss: 0.071\n", "epoch: 24, batch: 1900 // loss: 0.067\n", "epoch: 24, batch: 2000 // loss: 0.067\n", "epoch: 24, batch: 2100 // loss: 0.070\n", "epoch: 24, batch: 2200 // loss: 0.072\n", "epoch: 24, batch: 2300 // loss: 0.068\n", "epoch: 24, batch: 2400 // loss: 0.062\n", "epoch: 24, batch: 2500 // loss: 0.060\n", "epoch: 24, batch: 2600 // loss: 0.065\n", "epoch: 24, batch: 2700 // loss: 0.060\n", "epoch: 24, batch: 2800 // loss: 0.072\n", "epoch: 24, batch: 2900 // loss: 0.060\n", "epoch: 24, batch: 3000 // loss: 0.060\n", "epoch: 24, batch: 3100 // loss: 0.065\n", "epoch: 24, batch: 3200 // loss: 0.061\n", "epoch: 24, batch: 3300 // loss: 0.059\n", "epoch: 24, batch: 3400 // loss: 0.061\n", "epoch: 24, batch: 3500 // loss: 0.056\n", "epoch: 24, batch: 3600 // loss: 0.062\n", "epoch: 24, batch: 3700 // loss: 0.068\n", "\n", "epoch: 25, batch: 0 // loss: 0.075\n", "epoch: 25, batch: 100 // loss: 0.067\n", "epoch: 25, batch: 200 // loss: 0.063\n", "epoch: 25, batch: 300 // loss: 0.068\n", "epoch: 25, batch: 400 // loss: 0.067\n", "epoch: 25, batch: 500 // loss: 0.057\n", "epoch: 25, batch: 600 // loss: 0.057\n", "epoch: 25, batch: 700 // loss: 0.060\n", "epoch: 25, batch: 800 // loss: 0.063\n", "epoch: 25, batch: 900 // loss: 0.071\n", "epoch: 25, batch: 1000 // loss: 0.060\n", "epoch: 25, batch: 1100 // loss: 0.061\n", "epoch: 25, batch: 1200 // loss: 0.066\n", "epoch: 25, batch: 1300 // loss: 0.068\n", "epoch: 25, batch: 1400 // loss: 0.061\n", "epoch: 25, batch: 1500 // loss: 0.068\n", "epoch: 25, batch: 1600 // loss: 0.069\n", "epoch: 25, batch: 1700 // loss: 0.061\n", "epoch: 25, batch: 1800 // loss: 0.070\n", "epoch: 25, batch: 1900 // loss: 0.066\n", "epoch: 25, batch: 2000 // loss: 0.066\n", "epoch: 25, batch: 2100 // loss: 0.069\n", "epoch: 25, batch: 2200 // loss: 0.071\n", "epoch: 25, batch: 2300 // loss: 0.067\n", "epoch: 25, batch: 2400 // loss: 0.061\n", "epoch: 25, batch: 2500 // loss: 0.060\n", "epoch: 25, batch: 2600 // loss: 0.063\n", "epoch: 25, batch: 2700 // loss: 0.059\n", "epoch: 25, batch: 2800 // loss: 0.071\n", "epoch: 25, batch: 2900 // loss: 0.059\n", "epoch: 25, batch: 3000 // loss: 0.059\n", "epoch: 25, batch: 3100 // loss: 0.064\n", "epoch: 25, batch: 3200 // loss: 0.059\n", "epoch: 25, batch: 3300 // loss: 0.057\n", "epoch: 25, batch: 3400 // loss: 0.061\n", "epoch: 25, batch: 3500 // loss: 0.055\n", "epoch: 25, batch: 3600 // loss: 0.060\n", "epoch: 25, batch: 3700 // loss: 0.067\n", "\n", "epoch: 26, batch: 0 // loss: 0.073\n", "epoch: 26, batch: 100 // loss: 0.067\n", "epoch: 26, batch: 200 // loss: 0.062\n", "epoch: 26, batch: 300 // loss: 0.067\n", "epoch: 26, batch: 400 // loss: 0.066\n", "epoch: 26, batch: 500 // loss: 0.055\n", "epoch: 26, batch: 600 // loss: 0.055\n", "epoch: 26, batch: 700 // loss: 0.059\n", "epoch: 26, batch: 800 // loss: 0.062\n", "epoch: 26, batch: 900 // loss: 0.070\n", "epoch: 26, batch: 1000 // loss: 0.060\n", "epoch: 26, batch: 1100 // loss: 0.060\n", "epoch: 26, batch: 1200 // loss: 0.065\n", "epoch: 26, batch: 1300 // loss: 0.067\n", "epoch: 26, batch: 1400 // loss: 0.060\n", "epoch: 26, batch: 1500 // loss: 0.067\n", "epoch: 26, batch: 1600 // loss: 0.068\n", "epoch: 26, batch: 1700 // loss: 0.060\n", "epoch: 26, batch: 1800 // loss: 0.069\n", "epoch: 26, batch: 1900 // loss: 0.065\n", "epoch: 26, batch: 2000 // loss: 0.066\n", "epoch: 26, batch: 2100 // loss: 0.068\n", "epoch: 26, batch: 2200 // loss: 0.070\n", "epoch: 26, batch: 2300 // loss: 0.066\n", "epoch: 26, batch: 2400 // loss: 0.060\n", "epoch: 26, batch: 2500 // loss: 0.059\n", "epoch: 26, batch: 2600 // loss: 0.062\n", "epoch: 26, batch: 2700 // loss: 0.058\n", "epoch: 26, batch: 2800 // loss: 0.070\n", "epoch: 26, batch: 2900 // loss: 0.058\n", "epoch: 26, batch: 3000 // loss: 0.058\n", "epoch: 26, batch: 3100 // loss: 0.063\n", "epoch: 26, batch: 3200 // loss: 0.058\n", "epoch: 26, batch: 3300 // loss: 0.056\n", "epoch: 26, batch: 3400 // loss: 0.060\n", "epoch: 26, batch: 3500 // loss: 0.053\n", "epoch: 26, batch: 3600 // loss: 0.059\n", "epoch: 26, batch: 3700 // loss: 0.066\n", "\n", "epoch: 27, batch: 0 // loss: 0.072\n", "epoch: 27, batch: 100 // loss: 0.066\n", "epoch: 27, batch: 200 // loss: 0.060\n", "epoch: 27, batch: 300 // loss: 0.066\n", "epoch: 27, batch: 400 // loss: 0.065\n", "epoch: 27, batch: 500 // loss: 0.054\n", "epoch: 27, batch: 600 // loss: 0.054\n", "epoch: 27, batch: 700 // loss: 0.058\n", "epoch: 27, batch: 800 // loss: 0.062\n", "epoch: 27, batch: 900 // loss: 0.069\n", "epoch: 27, batch: 1000 // loss: 0.059\n", "epoch: 27, batch: 1100 // loss: 0.058\n", "epoch: 27, batch: 1200 // loss: 0.064\n", "epoch: 27, batch: 1300 // loss: 0.067\n", "epoch: 27, batch: 1400 // loss: 0.059\n", "epoch: 27, batch: 1500 // loss: 0.066\n", "epoch: 27, batch: 1600 // loss: 0.067\n", "epoch: 27, batch: 1700 // loss: 0.059\n", "epoch: 27, batch: 1800 // loss: 0.069\n", "epoch: 27, batch: 1900 // loss: 0.065\n", "epoch: 27, batch: 2000 // loss: 0.065\n", "epoch: 27, batch: 2100 // loss: 0.067\n", "epoch: 27, batch: 2200 // loss: 0.069\n", "epoch: 27, batch: 2300 // loss: 0.065\n", "epoch: 27, batch: 2400 // loss: 0.059\n", "epoch: 27, batch: 2500 // loss: 0.058\n", "epoch: 27, batch: 2600 // loss: 0.061\n", "epoch: 27, batch: 2700 // loss: 0.058\n", "epoch: 27, batch: 2800 // loss: 0.069\n", "epoch: 27, batch: 2900 // loss: 0.058\n", "epoch: 27, batch: 3000 // loss: 0.057\n", "epoch: 27, batch: 3100 // loss: 0.062\n", "epoch: 27, batch: 3200 // loss: 0.057\n", "epoch: 27, batch: 3300 // loss: 0.056\n", "epoch: 27, batch: 3400 // loss: 0.059\n", "epoch: 27, batch: 3500 // loss: 0.053\n", "epoch: 27, batch: 3600 // loss: 0.058\n", "epoch: 27, batch: 3700 // loss: 0.065\n", "\n", "epoch: 28, batch: 0 // loss: 0.071\n", "epoch: 28, batch: 100 // loss: 0.066\n", "epoch: 28, batch: 200 // loss: 0.059\n", "epoch: 28, batch: 300 // loss: 0.066\n", "epoch: 28, batch: 400 // loss: 0.064\n", "epoch: 28, batch: 500 // loss: 0.054\n", "epoch: 28, batch: 600 // loss: 0.054\n", "epoch: 28, batch: 700 // loss: 0.057\n", "epoch: 28, batch: 800 // loss: 0.061\n", "epoch: 28, batch: 900 // loss: 0.068\n", "epoch: 28, batch: 1000 // loss: 0.058\n", "epoch: 28, batch: 1100 // loss: 0.058\n", "epoch: 28, batch: 1200 // loss: 0.063\n", "epoch: 28, batch: 1300 // loss: 0.066\n", "epoch: 28, batch: 1400 // loss: 0.059\n", "epoch: 28, batch: 1500 // loss: 0.065\n", "epoch: 28, batch: 1600 // loss: 0.066\n", "epoch: 28, batch: 1700 // loss: 0.059\n", "epoch: 28, batch: 1800 // loss: 0.068\n", "epoch: 28, batch: 1900 // loss: 0.064\n", "epoch: 28, batch: 2000 // loss: 0.065\n", "epoch: 28, batch: 2100 // loss: 0.066\n", "epoch: 28, batch: 2200 // loss: 0.068\n", "epoch: 28, batch: 2300 // loss: 0.065\n", "epoch: 28, batch: 2400 // loss: 0.058\n", "epoch: 28, batch: 2500 // loss: 0.058\n", "epoch: 28, batch: 2600 // loss: 0.060\n", "epoch: 28, batch: 2700 // loss: 0.057\n", "epoch: 28, batch: 2800 // loss: 0.068\n", "epoch: 28, batch: 2900 // loss: 0.057\n", "epoch: 28, batch: 3000 // loss: 0.056\n", "epoch: 28, batch: 3100 // loss: 0.061\n", "epoch: 28, batch: 3200 // loss: 0.056\n", "epoch: 28, batch: 3300 // loss: 0.055\n", "epoch: 28, batch: 3400 // loss: 0.059\n", "epoch: 28, batch: 3500 // loss: 0.052\n", "epoch: 28, batch: 3600 // loss: 0.057\n", "epoch: 28, batch: 3700 // loss: 0.064\n", "\n", "epoch: 29, batch: 0 // loss: 0.071\n", "epoch: 29, batch: 100 // loss: 0.065\n", "epoch: 29, batch: 200 // loss: 0.058\n", "epoch: 29, batch: 300 // loss: 0.065\n", "epoch: 29, batch: 400 // loss: 0.063\n", "epoch: 29, batch: 500 // loss: 0.053\n", "epoch: 29, batch: 600 // loss: 0.053\n", "epoch: 29, batch: 700 // loss: 0.056\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 29, batch: 800 // loss: 0.060\n", "epoch: 29, batch: 900 // loss: 0.068\n", "epoch: 29, batch: 1000 // loss: 0.058\n", "epoch: 29, batch: 1100 // loss: 0.057\n", "epoch: 29, batch: 1200 // loss: 0.063\n", "epoch: 29, batch: 1300 // loss: 0.066\n", "epoch: 29, batch: 1400 // loss: 0.058\n", "epoch: 29, batch: 1500 // loss: 0.065\n", "epoch: 29, batch: 1600 // loss: 0.066\n", "epoch: 29, batch: 1700 // loss: 0.058\n", "epoch: 29, batch: 1800 // loss: 0.067\n", "epoch: 29, batch: 1900 // loss: 0.063\n", "epoch: 29, batch: 2000 // loss: 0.064\n", "epoch: 29, batch: 2100 // loss: 0.066\n", "epoch: 29, batch: 2200 // loss: 0.068\n", "epoch: 29, batch: 2300 // loss: 0.064\n", "epoch: 29, batch: 2400 // loss: 0.057\n", "epoch: 29, batch: 2500 // loss: 0.057\n", "epoch: 29, batch: 2600 // loss: 0.059\n", "epoch: 29, batch: 2700 // loss: 0.057\n", "epoch: 29, batch: 2800 // loss: 0.068\n", "epoch: 29, batch: 2900 // loss: 0.057\n", "epoch: 29, batch: 3000 // loss: 0.056\n", "epoch: 29, batch: 3100 // loss: 0.061\n", "epoch: 29, batch: 3200 // loss: 0.056\n", "epoch: 29, batch: 3300 // loss: 0.054\n", "epoch: 29, batch: 3400 // loss: 0.059\n", "epoch: 29, batch: 3500 // loss: 0.051\n", "epoch: 29, batch: 3600 // loss: 0.056\n", "epoch: 29, batch: 3700 // loss: 0.063\n", "\n", "epoch: 30, batch: 0 // loss: 0.070\n", "epoch: 30, batch: 100 // loss: 0.065\n", "epoch: 30, batch: 200 // loss: 0.058\n", "epoch: 30, batch: 300 // loss: 0.065\n", "epoch: 30, batch: 400 // loss: 0.063\n", "epoch: 30, batch: 500 // loss: 0.052\n", "epoch: 30, batch: 600 // loss: 0.052\n", "epoch: 30, batch: 700 // loss: 0.056\n", "epoch: 30, batch: 800 // loss: 0.060\n", "epoch: 30, batch: 900 // loss: 0.067\n", "epoch: 30, batch: 1000 // loss: 0.057\n", "epoch: 30, batch: 1100 // loss: 0.056\n", "epoch: 30, batch: 1200 // loss: 0.062\n", "epoch: 30, batch: 1300 // loss: 0.065\n", "epoch: 30, batch: 1400 // loss: 0.057\n", "epoch: 30, batch: 1500 // loss: 0.064\n", "epoch: 30, batch: 1600 // loss: 0.065\n", "epoch: 30, batch: 1700 // loss: 0.058\n", "epoch: 30, batch: 1800 // loss: 0.067\n", "epoch: 30, batch: 1900 // loss: 0.063\n", "epoch: 30, batch: 2000 // loss: 0.064\n", "epoch: 30, batch: 2100 // loss: 0.065\n", "epoch: 30, batch: 2200 // loss: 0.067\n", "epoch: 30, batch: 2300 // loss: 0.064\n", "epoch: 30, batch: 2400 // loss: 0.056\n", "epoch: 30, batch: 2500 // loss: 0.057\n", "epoch: 30, batch: 2600 // loss: 0.058\n", "epoch: 30, batch: 2700 // loss: 0.056\n", "epoch: 30, batch: 2800 // loss: 0.067\n", "epoch: 30, batch: 2900 // loss: 0.056\n", "epoch: 30, batch: 3000 // loss: 0.055\n", "epoch: 30, batch: 3100 // loss: 0.060\n", "epoch: 30, batch: 3200 // loss: 0.055\n", "epoch: 30, batch: 3300 // loss: 0.054\n", "epoch: 30, batch: 3400 // loss: 0.058\n", "epoch: 30, batch: 3500 // loss: 0.051\n", "epoch: 30, batch: 3600 // loss: 0.055\n", "epoch: 30, batch: 3700 // loss: 0.063\n", "\n", "epoch: 31, batch: 0 // loss: 0.070\n", "epoch: 31, batch: 100 // loss: 0.065\n", "epoch: 31, batch: 200 // loss: 0.057\n", "epoch: 31, batch: 300 // loss: 0.064\n", "epoch: 31, batch: 400 // loss: 0.062\n", "epoch: 31, batch: 500 // loss: 0.052\n", "epoch: 31, batch: 600 // loss: 0.052\n", "epoch: 31, batch: 700 // loss: 0.055\n", "epoch: 31, batch: 800 // loss: 0.059\n", "epoch: 31, batch: 900 // loss: 0.066\n", "epoch: 31, batch: 1000 // loss: 0.057\n", "epoch: 31, batch: 1100 // loss: 0.056\n", "epoch: 31, batch: 1200 // loss: 0.062\n", "epoch: 31, batch: 1300 // loss: 0.065\n", "epoch: 31, batch: 1400 // loss: 0.057\n", "epoch: 31, batch: 1500 // loss: 0.064\n", "epoch: 31, batch: 1600 // loss: 0.064\n", "epoch: 31, batch: 1700 // loss: 0.057\n", "epoch: 31, batch: 1800 // loss: 0.067\n", "epoch: 31, batch: 1900 // loss: 0.062\n", "epoch: 31, batch: 2000 // loss: 0.064\n", "epoch: 31, batch: 2100 // loss: 0.065\n", "epoch: 31, batch: 2200 // loss: 0.067\n", "epoch: 31, batch: 2300 // loss: 0.063\n", "epoch: 31, batch: 2400 // loss: 0.056\n", "epoch: 31, batch: 2500 // loss: 0.056\n", "epoch: 31, batch: 2600 // loss: 0.058\n", "epoch: 31, batch: 2700 // loss: 0.056\n", "epoch: 31, batch: 2800 // loss: 0.067\n", "epoch: 31, batch: 2900 // loss: 0.056\n", "epoch: 31, batch: 3000 // loss: 0.055\n", "epoch: 31, batch: 3100 // loss: 0.059\n", "epoch: 31, batch: 3200 // loss: 0.054\n", "epoch: 31, batch: 3300 // loss: 0.053\n", "epoch: 31, batch: 3400 // loss: 0.058\n", "epoch: 31, batch: 3500 // loss: 0.050\n", "epoch: 31, batch: 3600 // loss: 0.055\n", "epoch: 31, batch: 3700 // loss: 0.062\n", "\n", "epoch: 32, batch: 0 // loss: 0.069\n", "epoch: 32, batch: 100 // loss: 0.065\n", "epoch: 32, batch: 200 // loss: 0.056\n", "epoch: 32, batch: 300 // loss: 0.064\n", "epoch: 32, batch: 400 // loss: 0.062\n", "epoch: 32, batch: 500 // loss: 0.051\n", "epoch: 32, batch: 600 // loss: 0.052\n", "epoch: 32, batch: 700 // loss: 0.055\n", "epoch: 32, batch: 800 // loss: 0.059\n", "epoch: 32, batch: 900 // loss: 0.066\n", "epoch: 32, batch: 1000 // loss: 0.056\n", "epoch: 32, batch: 1100 // loss: 0.055\n", "epoch: 32, batch: 1200 // loss: 0.061\n", "epoch: 32, batch: 1300 // loss: 0.065\n", "epoch: 32, batch: 1400 // loss: 0.056\n", "epoch: 32, batch: 1500 // loss: 0.063\n", "epoch: 32, batch: 1600 // loss: 0.064\n", "epoch: 32, batch: 1700 // loss: 0.057\n", "epoch: 32, batch: 1800 // loss: 0.066\n", "epoch: 32, batch: 1900 // loss: 0.062\n", "epoch: 32, batch: 2000 // loss: 0.063\n", "epoch: 32, batch: 2100 // loss: 0.064\n", "epoch: 32, batch: 2200 // loss: 0.067\n", "epoch: 32, batch: 2300 // loss: 0.063\n", "epoch: 32, batch: 2400 // loss: 0.055\n", "epoch: 32, batch: 2500 // loss: 0.056\n", "epoch: 32, batch: 2600 // loss: 0.057\n", "epoch: 32, batch: 2700 // loss: 0.056\n", "epoch: 32, batch: 2800 // loss: 0.066\n", "epoch: 32, batch: 2900 // loss: 0.055\n", "epoch: 32, batch: 3000 // loss: 0.055\n", "epoch: 32, batch: 3100 // loss: 0.059\n", "epoch: 32, batch: 3200 // loss: 0.054\n", "epoch: 32, batch: 3300 // loss: 0.053\n", "epoch: 32, batch: 3400 // loss: 0.057\n", "epoch: 32, batch: 3500 // loss: 0.050\n", "epoch: 32, batch: 3600 // loss: 0.054\n", "epoch: 32, batch: 3700 // loss: 0.061\n", "\n", "epoch: 33, batch: 0 // loss: 0.069\n", "epoch: 33, batch: 100 // loss: 0.064\n", "epoch: 33, batch: 200 // loss: 0.056\n", "epoch: 33, batch: 300 // loss: 0.063\n", "epoch: 33, batch: 400 // loss: 0.061\n", "epoch: 33, batch: 500 // loss: 0.051\n", "epoch: 33, batch: 600 // loss: 0.051\n", "epoch: 33, batch: 700 // loss: 0.054\n", "epoch: 33, batch: 800 // loss: 0.059\n", "epoch: 33, batch: 900 // loss: 0.065\n", "epoch: 33, batch: 1000 // loss: 0.056\n", "epoch: 33, batch: 1100 // loss: 0.055\n", "epoch: 33, batch: 1200 // loss: 0.061\n", "epoch: 33, batch: 1300 // loss: 0.064\n", "epoch: 33, batch: 1400 // loss: 0.056\n", "epoch: 33, batch: 1500 // loss: 0.063\n", "epoch: 33, batch: 1600 // loss: 0.064\n", "epoch: 33, batch: 1700 // loss: 0.056\n", "epoch: 33, batch: 1800 // loss: 0.066\n", "epoch: 33, batch: 1900 // loss: 0.062\n", "epoch: 33, batch: 2000 // loss: 0.063\n", "epoch: 33, batch: 2100 // loss: 0.064\n", "epoch: 33, batch: 2200 // loss: 0.066\n", "epoch: 33, batch: 2300 // loss: 0.063\n", "epoch: 33, batch: 2400 // loss: 0.055\n", "epoch: 33, batch: 2500 // loss: 0.056\n", "epoch: 33, batch: 2600 // loss: 0.057\n", "epoch: 33, batch: 2700 // loss: 0.055\n", "epoch: 33, batch: 2800 // loss: 0.065\n", "epoch: 33, batch: 2900 // loss: 0.055\n", "epoch: 33, batch: 3000 // loss: 0.054\n", "epoch: 33, batch: 3100 // loss: 0.058\n", "epoch: 33, batch: 3200 // loss: 0.053\n", "epoch: 33, batch: 3300 // loss: 0.052\n", "epoch: 33, batch: 3400 // loss: 0.057\n", "epoch: 33, batch: 3500 // loss: 0.049\n", "epoch: 33, batch: 3600 // loss: 0.054\n", "epoch: 33, batch: 3700 // loss: 0.061\n", "\n", "epoch: 34, batch: 0 // loss: 0.068\n", "epoch: 34, batch: 100 // loss: 0.064\n", "epoch: 34, batch: 200 // loss: 0.055\n", "epoch: 34, batch: 300 // loss: 0.063\n", "epoch: 34, batch: 400 // loss: 0.061\n", "epoch: 34, batch: 500 // loss: 0.050\n", "epoch: 34, batch: 600 // loss: 0.051\n", "epoch: 34, batch: 700 // loss: 0.054\n", "epoch: 34, batch: 800 // loss: 0.058\n", "epoch: 34, batch: 900 // loss: 0.065\n", "epoch: 34, batch: 1000 // loss: 0.055\n", "epoch: 34, batch: 1100 // loss: 0.054\n", "epoch: 34, batch: 1200 // loss: 0.060\n", "epoch: 34, batch: 1300 // loss: 0.064\n", "epoch: 34, batch: 1400 // loss: 0.055\n", "epoch: 34, batch: 1500 // loss: 0.062\n", "epoch: 34, batch: 1600 // loss: 0.063\n", "epoch: 34, batch: 1700 // loss: 0.056\n", "epoch: 34, batch: 1800 // loss: 0.065\n", "epoch: 34, batch: 1900 // loss: 0.061\n", "epoch: 34, batch: 2000 // loss: 0.062\n", "epoch: 34, batch: 2100 // loss: 0.063\n", "epoch: 34, batch: 2200 // loss: 0.066\n", "epoch: 34, batch: 2300 // loss: 0.062\n", "epoch: 34, batch: 2400 // loss: 0.054\n", "epoch: 34, batch: 2500 // loss: 0.055\n", "epoch: 34, batch: 2600 // loss: 0.057\n", "epoch: 34, batch: 2700 // loss: 0.055\n", "epoch: 34, batch: 2800 // loss: 0.065\n", "epoch: 34, batch: 2900 // loss: 0.054\n", "epoch: 34, batch: 3000 // loss: 0.054\n", "epoch: 34, batch: 3100 // loss: 0.058\n", "epoch: 34, batch: 3200 // loss: 0.053\n", "epoch: 34, batch: 3300 // loss: 0.052\n", "epoch: 34, batch: 3400 // loss: 0.057\n", "epoch: 34, batch: 3500 // loss: 0.049\n", "epoch: 34, batch: 3600 // loss: 0.053\n", "epoch: 34, batch: 3700 // loss: 0.060\n", "\n", "epoch: 35, batch: 0 // loss: 0.068\n", "epoch: 35, batch: 100 // loss: 0.064\n", "epoch: 35, batch: 200 // loss: 0.055\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 35, batch: 300 // loss: 0.062\n", "epoch: 35, batch: 400 // loss: 0.061\n", "epoch: 35, batch: 500 // loss: 0.050\n", "epoch: 35, batch: 600 // loss: 0.050\n", "epoch: 35, batch: 700 // loss: 0.054\n", "epoch: 35, batch: 800 // loss: 0.058\n", "epoch: 35, batch: 900 // loss: 0.064\n", "epoch: 35, batch: 1000 // loss: 0.055\n", "epoch: 35, batch: 1100 // loss: 0.054\n", "epoch: 35, batch: 1200 // loss: 0.060\n", "epoch: 35, batch: 1300 // loss: 0.063\n", "epoch: 35, batch: 1400 // loss: 0.055\n", "epoch: 35, batch: 1500 // loss: 0.062\n", "epoch: 35, batch: 1600 // loss: 0.063\n", "epoch: 35, batch: 1700 // loss: 0.056\n", "epoch: 35, batch: 1800 // loss: 0.065\n", "epoch: 35, batch: 1900 // loss: 0.061\n", "epoch: 35, batch: 2000 // loss: 0.062\n", "epoch: 35, batch: 2100 // loss: 0.063\n", "epoch: 35, batch: 2200 // loss: 0.065\n", "epoch: 35, batch: 2300 // loss: 0.062\n", "epoch: 35, batch: 2400 // loss: 0.054\n", "epoch: 35, batch: 2500 // loss: 0.055\n", "epoch: 35, batch: 2600 // loss: 0.056\n", "epoch: 35, batch: 2700 // loss: 0.054\n", "epoch: 35, batch: 2800 // loss: 0.064\n", "epoch: 35, batch: 2900 // loss: 0.054\n", "epoch: 35, batch: 3000 // loss: 0.054\n", "epoch: 35, batch: 3100 // loss: 0.057\n", "epoch: 35, batch: 3200 // loss: 0.052\n", "epoch: 35, batch: 3300 // loss: 0.051\n", "epoch: 35, batch: 3400 // loss: 0.056\n", "epoch: 35, batch: 3500 // loss: 0.048\n", "epoch: 35, batch: 3600 // loss: 0.053\n", "epoch: 35, batch: 3700 // loss: 0.060\n", "\n", "epoch: 36, batch: 0 // loss: 0.067\n", "epoch: 36, batch: 100 // loss: 0.063\n", "epoch: 36, batch: 200 // loss: 0.054\n", "epoch: 36, batch: 300 // loss: 0.062\n", "epoch: 36, batch: 400 // loss: 0.060\n", "epoch: 36, batch: 500 // loss: 0.050\n", "epoch: 36, batch: 600 // loss: 0.050\n", "epoch: 36, batch: 700 // loss: 0.053\n", "epoch: 36, batch: 800 // loss: 0.057\n", "epoch: 36, batch: 900 // loss: 0.064\n", "epoch: 36, batch: 1000 // loss: 0.055\n", "epoch: 36, batch: 1100 // loss: 0.054\n", "epoch: 36, batch: 1200 // loss: 0.059\n", "epoch: 36, batch: 1300 // loss: 0.063\n", "epoch: 36, batch: 1400 // loss: 0.054\n", "epoch: 36, batch: 1500 // loss: 0.061\n", "epoch: 36, batch: 1600 // loss: 0.062\n", "epoch: 36, batch: 1700 // loss: 0.056\n", "epoch: 36, batch: 1800 // loss: 0.064\n", "epoch: 36, batch: 1900 // loss: 0.060\n", "epoch: 36, batch: 2000 // loss: 0.061\n", "epoch: 36, batch: 2100 // loss: 0.062\n", "epoch: 36, batch: 2200 // loss: 0.065\n", "epoch: 36, batch: 2300 // loss: 0.062\n", "epoch: 36, batch: 2400 // loss: 0.053\n", "epoch: 36, batch: 2500 // loss: 0.055\n", "epoch: 36, batch: 2600 // loss: 0.056\n", "epoch: 36, batch: 2700 // loss: 0.054\n", "epoch: 36, batch: 2800 // loss: 0.064\n", "epoch: 36, batch: 2900 // loss: 0.054\n", "epoch: 36, batch: 3000 // loss: 0.053\n", "epoch: 36, batch: 3100 // loss: 0.057\n", "epoch: 36, batch: 3200 // loss: 0.051\n", "epoch: 36, batch: 3300 // loss: 0.051\n", "epoch: 36, batch: 3400 // loss: 0.056\n", "epoch: 36, batch: 3500 // loss: 0.048\n", "epoch: 36, batch: 3600 // loss: 0.053\n", "epoch: 36, batch: 3700 // loss: 0.059\n", "\n", "epoch: 37, batch: 0 // loss: 0.067\n", "epoch: 37, batch: 100 // loss: 0.063\n", "epoch: 37, batch: 200 // loss: 0.054\n", "epoch: 37, batch: 300 // loss: 0.061\n", "epoch: 37, batch: 400 // loss: 0.060\n", "epoch: 37, batch: 500 // loss: 0.049\n", "epoch: 37, batch: 600 // loss: 0.050\n", "epoch: 37, batch: 700 // loss: 0.053\n", "epoch: 37, batch: 800 // loss: 0.057\n", "epoch: 37, batch: 900 // loss: 0.063\n", "epoch: 37, batch: 1000 // loss: 0.054\n", "epoch: 37, batch: 1100 // loss: 0.053\n", "epoch: 37, batch: 1200 // loss: 0.058\n", "epoch: 37, batch: 1300 // loss: 0.062\n", "epoch: 37, batch: 1400 // loss: 0.054\n", "epoch: 37, batch: 1500 // loss: 0.061\n", "epoch: 37, batch: 1600 // loss: 0.062\n", "epoch: 37, batch: 1700 // loss: 0.055\n", "epoch: 37, batch: 1800 // loss: 0.064\n", "epoch: 37, batch: 1900 // loss: 0.060\n", "epoch: 37, batch: 2000 // loss: 0.061\n", "epoch: 37, batch: 2100 // loss: 0.062\n", "epoch: 37, batch: 2200 // loss: 0.065\n", "epoch: 37, batch: 2300 // loss: 0.061\n", "epoch: 37, batch: 2400 // loss: 0.052\n", "epoch: 37, batch: 2500 // loss: 0.054\n", "epoch: 37, batch: 2600 // loss: 0.055\n", "epoch: 37, batch: 2700 // loss: 0.054\n", "epoch: 37, batch: 2800 // loss: 0.063\n", "epoch: 37, batch: 2900 // loss: 0.053\n", "epoch: 37, batch: 3000 // loss: 0.053\n", "epoch: 37, batch: 3100 // loss: 0.056\n", "epoch: 37, batch: 3200 // loss: 0.051\n", "epoch: 37, batch: 3300 // loss: 0.050\n", "epoch: 37, batch: 3400 // loss: 0.055\n", "epoch: 37, batch: 3500 // loss: 0.047\n", "epoch: 37, batch: 3600 // loss: 0.052\n", "epoch: 37, batch: 3700 // loss: 0.058\n", "\n", "epoch: 38, batch: 0 // loss: 0.066\n", "epoch: 38, batch: 100 // loss: 0.062\n", "epoch: 38, batch: 200 // loss: 0.053\n", "epoch: 38, batch: 300 // loss: 0.061\n", "epoch: 38, batch: 400 // loss: 0.059\n", "epoch: 38, batch: 500 // loss: 0.049\n", "epoch: 38, batch: 600 // loss: 0.049\n", "epoch: 38, batch: 700 // loss: 0.052\n", "epoch: 38, batch: 800 // loss: 0.056\n", "epoch: 38, batch: 900 // loss: 0.063\n", "epoch: 38, batch: 1000 // loss: 0.054\n", "epoch: 38, batch: 1100 // loss: 0.053\n", "epoch: 38, batch: 1200 // loss: 0.058\n", "epoch: 38, batch: 1300 // loss: 0.062\n", "epoch: 38, batch: 1400 // loss: 0.053\n", "epoch: 38, batch: 1500 // loss: 0.060\n", "epoch: 38, batch: 1600 // loss: 0.061\n", "epoch: 38, batch: 1700 // loss: 0.055\n", "epoch: 38, batch: 1800 // loss: 0.063\n", "epoch: 38, batch: 1900 // loss: 0.059\n", "epoch: 38, batch: 2000 // loss: 0.060\n", "epoch: 38, batch: 2100 // loss: 0.061\n", "epoch: 38, batch: 2200 // loss: 0.064\n", "epoch: 38, batch: 2300 // loss: 0.061\n", "epoch: 38, batch: 2400 // loss: 0.052\n", "epoch: 38, batch: 2500 // loss: 0.054\n", "epoch: 38, batch: 2600 // loss: 0.055\n", "epoch: 38, batch: 2700 // loss: 0.053\n", "epoch: 38, batch: 2800 // loss: 0.062\n", "epoch: 38, batch: 2900 // loss: 0.053\n", "epoch: 38, batch: 3000 // loss: 0.053\n", "epoch: 38, batch: 3100 // loss: 0.056\n", "epoch: 38, batch: 3200 // loss: 0.050\n", "epoch: 38, batch: 3300 // loss: 0.050\n", "epoch: 38, batch: 3400 // loss: 0.055\n", "epoch: 38, batch: 3500 // loss: 0.047\n", "epoch: 38, batch: 3600 // loss: 0.052\n", "epoch: 38, batch: 3700 // loss: 0.058\n", "\n", "epoch: 39, batch: 0 // loss: 0.066\n", "epoch: 39, batch: 100 // loss: 0.062\n", "epoch: 39, batch: 200 // loss: 0.053\n", "epoch: 39, batch: 300 // loss: 0.060\n", "epoch: 39, batch: 400 // loss: 0.059\n", "epoch: 39, batch: 500 // loss: 0.048\n", "epoch: 39, batch: 600 // loss: 0.049\n", "epoch: 39, batch: 700 // loss: 0.052\n", "epoch: 39, batch: 800 // loss: 0.056\n", "epoch: 39, batch: 900 // loss: 0.062\n", "epoch: 39, batch: 1000 // loss: 0.053\n", "epoch: 39, batch: 1100 // loss: 0.052\n", "epoch: 39, batch: 1200 // loss: 0.057\n", "epoch: 39, batch: 1300 // loss: 0.061\n", "epoch: 39, batch: 1400 // loss: 0.053\n", "epoch: 39, batch: 1500 // loss: 0.060\n", "epoch: 39, batch: 1600 // loss: 0.061\n", "epoch: 39, batch: 1700 // loss: 0.055\n", "epoch: 39, batch: 1800 // loss: 0.063\n", "epoch: 39, batch: 1900 // loss: 0.058\n", "epoch: 39, batch: 2000 // loss: 0.060\n", "epoch: 39, batch: 2100 // loss: 0.060\n", "epoch: 39, batch: 2200 // loss: 0.063\n", "epoch: 39, batch: 2300 // loss: 0.060\n", "epoch: 39, batch: 2400 // loss: 0.051\n", "epoch: 39, batch: 2500 // loss: 0.053\n", "epoch: 39, batch: 2600 // loss: 0.054\n", "epoch: 39, batch: 2700 // loss: 0.053\n", "epoch: 39, batch: 2800 // loss: 0.061\n", "epoch: 39, batch: 2900 // loss: 0.052\n", "epoch: 39, batch: 3000 // loss: 0.052\n", "epoch: 39, batch: 3100 // loss: 0.055\n", "epoch: 39, batch: 3200 // loss: 0.050\n", "epoch: 39, batch: 3300 // loss: 0.049\n", "epoch: 39, batch: 3400 // loss: 0.054\n", "epoch: 39, batch: 3500 // loss: 0.046\n", "epoch: 39, batch: 3600 // loss: 0.051\n", "epoch: 39, batch: 3700 // loss: 0.057\n", "\n", "epoch: 40, batch: 0 // loss: 0.065\n", "epoch: 40, batch: 100 // loss: 0.061\n", "epoch: 40, batch: 200 // loss: 0.052\n", "epoch: 40, batch: 300 // loss: 0.060\n", "epoch: 40, batch: 400 // loss: 0.058\n", "epoch: 40, batch: 500 // loss: 0.048\n", "epoch: 40, batch: 600 // loss: 0.048\n", "epoch: 40, batch: 700 // loss: 0.052\n", "epoch: 40, batch: 800 // loss: 0.055\n", "epoch: 40, batch: 900 // loss: 0.061\n", "epoch: 40, batch: 1000 // loss: 0.053\n", "epoch: 40, batch: 1100 // loss: 0.052\n", "epoch: 40, batch: 1200 // loss: 0.056\n", "epoch: 40, batch: 1300 // loss: 0.060\n", "epoch: 40, batch: 1400 // loss: 0.052\n", "epoch: 40, batch: 1500 // loss: 0.059\n", "epoch: 40, batch: 1600 // loss: 0.060\n", "epoch: 40, batch: 1700 // loss: 0.054\n", "epoch: 40, batch: 1800 // loss: 0.062\n", "epoch: 40, batch: 1900 // loss: 0.058\n", "epoch: 40, batch: 2000 // loss: 0.059\n", "epoch: 40, batch: 2100 // loss: 0.060\n", "epoch: 40, batch: 2200 // loss: 0.063\n", "epoch: 40, batch: 2300 // loss: 0.060\n", "epoch: 40, batch: 2400 // loss: 0.051\n", "epoch: 40, batch: 2500 // loss: 0.053\n", "epoch: 40, batch: 2600 // loss: 0.054\n", "epoch: 40, batch: 2700 // loss: 0.052\n", "epoch: 40, batch: 2800 // loss: 0.060\n", "epoch: 40, batch: 2900 // loss: 0.052\n", "epoch: 40, batch: 3000 // loss: 0.052\n", "epoch: 40, batch: 3100 // loss: 0.054\n", "epoch: 40, batch: 3200 // loss: 0.049\n", "epoch: 40, batch: 3300 // loss: 0.048\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 40, batch: 3400 // loss: 0.054\n", "epoch: 40, batch: 3500 // loss: 0.046\n", "epoch: 40, batch: 3600 // loss: 0.051\n", "epoch: 40, batch: 3700 // loss: 0.056\n", "\n", "epoch: 41, batch: 0 // loss: 0.065\n", "epoch: 41, batch: 100 // loss: 0.060\n", "epoch: 41, batch: 200 // loss: 0.052\n", "epoch: 41, batch: 300 // loss: 0.059\n", "epoch: 41, batch: 400 // loss: 0.057\n", "epoch: 41, batch: 500 // loss: 0.047\n", "epoch: 41, batch: 600 // loss: 0.048\n", "epoch: 41, batch: 700 // loss: 0.051\n", "epoch: 41, batch: 800 // loss: 0.054\n", "epoch: 41, batch: 900 // loss: 0.061\n", "epoch: 41, batch: 1000 // loss: 0.052\n", "epoch: 41, batch: 1100 // loss: 0.051\n", "epoch: 41, batch: 1200 // loss: 0.056\n", "epoch: 41, batch: 1300 // loss: 0.060\n", "epoch: 41, batch: 1400 // loss: 0.051\n", "epoch: 41, batch: 1500 // loss: 0.058\n", "epoch: 41, batch: 1600 // loss: 0.060\n", "epoch: 41, batch: 1700 // loss: 0.054\n", "epoch: 41, batch: 1800 // loss: 0.062\n", "epoch: 41, batch: 1900 // loss: 0.057\n", "epoch: 41, batch: 2000 // loss: 0.058\n", "epoch: 41, batch: 2100 // loss: 0.059\n", "epoch: 41, batch: 2200 // loss: 0.062\n", "epoch: 41, batch: 2300 // loss: 0.059\n", "epoch: 41, batch: 2400 // loss: 0.050\n", "epoch: 41, batch: 2500 // loss: 0.052\n", "epoch: 41, batch: 2600 // loss: 0.053\n", "epoch: 41, batch: 2700 // loss: 0.051\n", "epoch: 41, batch: 2800 // loss: 0.060\n", "epoch: 41, batch: 2900 // loss: 0.051\n", "epoch: 41, batch: 3000 // loss: 0.052\n", "epoch: 41, batch: 3100 // loss: 0.054\n", "epoch: 41, batch: 3200 // loss: 0.048\n", "epoch: 41, batch: 3300 // loss: 0.048\n", "epoch: 41, batch: 3400 // loss: 0.053\n", "epoch: 41, batch: 3500 // loss: 0.045\n", "epoch: 41, batch: 3600 // loss: 0.050\n", "epoch: 41, batch: 3700 // loss: 0.055\n", "\n", "epoch: 42, batch: 0 // loss: 0.064\n", "epoch: 42, batch: 100 // loss: 0.060\n", "epoch: 42, batch: 200 // loss: 0.051\n", "epoch: 42, batch: 300 // loss: 0.058\n", "epoch: 42, batch: 400 // loss: 0.057\n", "epoch: 42, batch: 500 // loss: 0.047\n", "epoch: 42, batch: 600 // loss: 0.048\n", "epoch: 42, batch: 700 // loss: 0.051\n", "epoch: 42, batch: 800 // loss: 0.053\n", "epoch: 42, batch: 900 // loss: 0.060\n", "epoch: 42, batch: 1000 // loss: 0.052\n", "epoch: 42, batch: 1100 // loss: 0.051\n", "epoch: 42, batch: 1200 // loss: 0.055\n", "epoch: 42, batch: 1300 // loss: 0.059\n", "epoch: 42, batch: 1400 // loss: 0.051\n", "epoch: 42, batch: 1500 // loss: 0.058\n", "epoch: 42, batch: 1600 // loss: 0.059\n", "epoch: 42, batch: 1700 // loss: 0.053\n", "epoch: 42, batch: 1800 // loss: 0.061\n", "epoch: 42, batch: 1900 // loss: 0.056\n", "epoch: 42, batch: 2000 // loss: 0.057\n", "epoch: 42, batch: 2100 // loss: 0.058\n", "epoch: 42, batch: 2200 // loss: 0.061\n", "epoch: 42, batch: 2300 // loss: 0.059\n", "epoch: 42, batch: 2400 // loss: 0.050\n", "epoch: 42, batch: 2500 // loss: 0.052\n", "epoch: 42, batch: 2600 // loss: 0.053\n", "epoch: 42, batch: 2700 // loss: 0.051\n", "epoch: 42, batch: 2800 // loss: 0.059\n", "epoch: 42, batch: 2900 // loss: 0.050\n", "epoch: 42, batch: 3000 // loss: 0.051\n", "epoch: 42, batch: 3100 // loss: 0.053\n", "epoch: 42, batch: 3200 // loss: 0.048\n", "epoch: 42, batch: 3300 // loss: 0.047\n", "epoch: 42, batch: 3400 // loss: 0.052\n", "epoch: 42, batch: 3500 // loss: 0.044\n", "epoch: 42, batch: 3600 // loss: 0.050\n", "epoch: 42, batch: 3700 // loss: 0.055\n", "\n", "epoch: 43, batch: 0 // loss: 0.063\n", "epoch: 43, batch: 100 // loss: 0.059\n", "epoch: 43, batch: 200 // loss: 0.050\n", "epoch: 43, batch: 300 // loss: 0.058\n", "epoch: 43, batch: 400 // loss: 0.056\n", "epoch: 43, batch: 500 // loss: 0.046\n", "epoch: 43, batch: 600 // loss: 0.047\n", "epoch: 43, batch: 700 // loss: 0.050\n", "epoch: 43, batch: 800 // loss: 0.053\n", "epoch: 43, batch: 900 // loss: 0.059\n", "epoch: 43, batch: 1000 // loss: 0.051\n", "epoch: 43, batch: 1100 // loss: 0.050\n", "epoch: 43, batch: 1200 // loss: 0.054\n", "epoch: 43, batch: 1300 // loss: 0.058\n", "epoch: 43, batch: 1400 // loss: 0.050\n", "epoch: 43, batch: 1500 // loss: 0.057\n", "epoch: 43, batch: 1600 // loss: 0.059\n", "epoch: 43, batch: 1700 // loss: 0.053\n", "epoch: 43, batch: 1800 // loss: 0.060\n", "epoch: 43, batch: 1900 // loss: 0.055\n", "epoch: 43, batch: 2000 // loss: 0.056\n", "epoch: 43, batch: 2100 // loss: 0.057\n", "epoch: 43, batch: 2200 // loss: 0.060\n", "epoch: 43, batch: 2300 // loss: 0.058\n", "epoch: 43, batch: 2400 // loss: 0.049\n", "epoch: 43, batch: 2500 // loss: 0.051\n", "epoch: 43, batch: 2600 // loss: 0.052\n", "epoch: 43, batch: 2700 // loss: 0.050\n", "epoch: 43, batch: 2800 // loss: 0.058\n", "epoch: 43, batch: 2900 // loss: 0.050\n", "epoch: 43, batch: 3000 // loss: 0.051\n", "epoch: 43, batch: 3100 // loss: 0.052\n", "epoch: 43, batch: 3200 // loss: 0.047\n", "epoch: 43, batch: 3300 // loss: 0.046\n", "epoch: 43, batch: 3400 // loss: 0.052\n", "epoch: 43, batch: 3500 // loss: 0.044\n", "epoch: 43, batch: 3600 // loss: 0.049\n", "epoch: 43, batch: 3700 // loss: 0.054\n", "\n", "epoch: 44, batch: 0 // loss: 0.063\n", "epoch: 44, batch: 100 // loss: 0.058\n", "epoch: 44, batch: 200 // loss: 0.050\n", "epoch: 44, batch: 300 // loss: 0.057\n", "epoch: 44, batch: 400 // loss: 0.055\n", "epoch: 44, batch: 500 // loss: 0.046\n", "epoch: 44, batch: 600 // loss: 0.047\n", "epoch: 44, batch: 700 // loss: 0.050\n", "epoch: 44, batch: 800 // loss: 0.052\n", "epoch: 44, batch: 900 // loss: 0.058\n", "epoch: 44, batch: 1000 // loss: 0.051\n", "epoch: 44, batch: 1100 // loss: 0.050\n", "epoch: 44, batch: 1200 // loss: 0.053\n", "epoch: 44, batch: 1300 // loss: 0.057\n", "epoch: 44, batch: 1400 // loss: 0.050\n", "epoch: 44, batch: 1500 // loss: 0.056\n", "epoch: 44, batch: 1600 // loss: 0.058\n", "epoch: 44, batch: 1700 // loss: 0.052\n", "epoch: 44, batch: 1800 // loss: 0.060\n", "epoch: 44, batch: 1900 // loss: 0.055\n", "epoch: 44, batch: 2000 // loss: 0.056\n", "epoch: 44, batch: 2100 // loss: 0.056\n", "epoch: 44, batch: 2200 // loss: 0.060\n", "epoch: 44, batch: 2300 // loss: 0.057\n", "epoch: 44, batch: 2400 // loss: 0.048\n", "epoch: 44, batch: 2500 // loss: 0.050\n", "epoch: 44, batch: 2600 // loss: 0.052\n", "epoch: 44, batch: 2700 // loss: 0.050\n", "epoch: 44, batch: 2800 // loss: 0.057\n", "epoch: 44, batch: 2900 // loss: 0.049\n", "epoch: 44, batch: 3000 // loss: 0.051\n", "epoch: 44, batch: 3100 // loss: 0.051\n", "epoch: 44, batch: 3200 // loss: 0.046\n", "epoch: 44, batch: 3300 // loss: 0.046\n", "epoch: 44, batch: 3400 // loss: 0.051\n", "epoch: 44, batch: 3500 // loss: 0.043\n", "epoch: 44, batch: 3600 // loss: 0.049\n", "epoch: 44, batch: 3700 // loss: 0.053\n", "\n", "epoch: 45, batch: 0 // loss: 0.062\n", "epoch: 45, batch: 100 // loss: 0.057\n", "epoch: 45, batch: 200 // loss: 0.049\n", "epoch: 45, batch: 300 // loss: 0.056\n", "epoch: 45, batch: 400 // loss: 0.055\n", "epoch: 45, batch: 500 // loss: 0.045\n", "epoch: 45, batch: 600 // loss: 0.046\n", "epoch: 45, batch: 700 // loss: 0.049\n", "epoch: 45, batch: 800 // loss: 0.051\n", "epoch: 45, batch: 900 // loss: 0.057\n", "epoch: 45, batch: 1000 // loss: 0.050\n", "epoch: 45, batch: 1100 // loss: 0.049\n", "epoch: 45, batch: 1200 // loss: 0.052\n", "epoch: 45, batch: 1300 // loss: 0.056\n", "epoch: 45, batch: 1400 // loss: 0.049\n", "epoch: 45, batch: 1500 // loss: 0.056\n", "epoch: 45, batch: 1600 // loss: 0.057\n", "epoch: 45, batch: 1700 // loss: 0.052\n", "epoch: 45, batch: 1800 // loss: 0.059\n", "epoch: 45, batch: 1900 // loss: 0.054\n", "epoch: 45, batch: 2000 // loss: 0.055\n", "epoch: 45, batch: 2100 // loss: 0.056\n", "epoch: 45, batch: 2200 // loss: 0.059\n", "epoch: 45, batch: 2300 // loss: 0.057\n", "epoch: 45, batch: 2400 // loss: 0.048\n", "epoch: 45, batch: 2500 // loss: 0.050\n", "epoch: 45, batch: 2600 // loss: 0.051\n", "epoch: 45, batch: 2700 // loss: 0.049\n", "epoch: 45, batch: 2800 // loss: 0.056\n", "epoch: 45, batch: 2900 // loss: 0.049\n", "epoch: 45, batch: 3000 // loss: 0.050\n", "epoch: 45, batch: 3100 // loss: 0.051\n", "epoch: 45, batch: 3200 // loss: 0.046\n", "epoch: 45, batch: 3300 // loss: 0.045\n", "epoch: 45, batch: 3400 // loss: 0.051\n", "epoch: 45, batch: 3500 // loss: 0.042\n", "epoch: 45, batch: 3600 // loss: 0.048\n", "epoch: 45, batch: 3700 // loss: 0.052\n", "\n", "epoch: 46, batch: 0 // loss: 0.061\n", "epoch: 46, batch: 100 // loss: 0.056\n", "epoch: 46, batch: 200 // loss: 0.049\n", "epoch: 46, batch: 300 // loss: 0.055\n", "epoch: 46, batch: 400 // loss: 0.054\n", "epoch: 46, batch: 500 // loss: 0.045\n", "epoch: 46, batch: 600 // loss: 0.046\n", "epoch: 46, batch: 700 // loss: 0.049\n", "epoch: 46, batch: 800 // loss: 0.050\n", "epoch: 46, batch: 900 // loss: 0.057\n", "epoch: 46, batch: 1000 // loss: 0.050\n", "epoch: 46, batch: 1100 // loss: 0.049\n", "epoch: 46, batch: 1200 // loss: 0.052\n", "epoch: 46, batch: 1300 // loss: 0.055\n", "epoch: 46, batch: 1400 // loss: 0.048\n", "epoch: 46, batch: 1500 // loss: 0.055\n", "epoch: 46, batch: 1600 // loss: 0.057\n", "epoch: 46, batch: 1700 // loss: 0.051\n", "epoch: 46, batch: 1800 // loss: 0.059\n", "epoch: 46, batch: 1900 // loss: 0.053\n", "epoch: 46, batch: 2000 // loss: 0.054\n", "epoch: 46, batch: 2100 // loss: 0.055\n", "epoch: 46, batch: 2200 // loss: 0.058\n", "epoch: 46, batch: 2300 // loss: 0.056\n", "epoch: 46, batch: 2400 // loss: 0.047\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 46, batch: 2500 // loss: 0.049\n", "epoch: 46, batch: 2600 // loss: 0.051\n", "epoch: 46, batch: 2700 // loss: 0.048\n", "epoch: 46, batch: 2800 // loss: 0.055\n", "epoch: 46, batch: 2900 // loss: 0.048\n", "epoch: 46, batch: 3000 // loss: 0.050\n", "epoch: 46, batch: 3100 // loss: 0.050\n", "epoch: 46, batch: 3200 // loss: 0.045\n", "epoch: 46, batch: 3300 // loss: 0.044\n", "epoch: 46, batch: 3400 // loss: 0.050\n", "epoch: 46, batch: 3500 // loss: 0.042\n", "epoch: 46, batch: 3600 // loss: 0.048\n", "epoch: 46, batch: 3700 // loss: 0.051\n", "\n", "epoch: 47, batch: 0 // loss: 0.060\n", "epoch: 47, batch: 100 // loss: 0.055\n", "epoch: 47, batch: 200 // loss: 0.048\n", "epoch: 47, batch: 300 // loss: 0.055\n", "epoch: 47, batch: 400 // loss: 0.053\n", "epoch: 47, batch: 500 // loss: 0.044\n", "epoch: 47, batch: 600 // loss: 0.045\n", "epoch: 47, batch: 700 // loss: 0.048\n", "epoch: 47, batch: 800 // loss: 0.050\n", "epoch: 47, batch: 900 // loss: 0.056\n", "epoch: 47, batch: 1000 // loss: 0.050\n", "epoch: 47, batch: 1100 // loss: 0.048\n", "epoch: 47, batch: 1200 // loss: 0.051\n", "epoch: 47, batch: 1300 // loss: 0.054\n", "epoch: 47, batch: 1400 // loss: 0.048\n", "epoch: 47, batch: 1500 // loss: 0.054\n", "epoch: 47, batch: 1600 // loss: 0.056\n", "epoch: 47, batch: 1700 // loss: 0.050\n", "epoch: 47, batch: 1800 // loss: 0.058\n", "epoch: 47, batch: 1900 // loss: 0.052\n", "epoch: 47, batch: 2000 // loss: 0.053\n", "epoch: 47, batch: 2100 // loss: 0.054\n", "epoch: 47, batch: 2200 // loss: 0.057\n", "epoch: 47, batch: 2300 // loss: 0.055\n", "epoch: 47, batch: 2400 // loss: 0.047\n", "epoch: 47, batch: 2500 // loss: 0.049\n", "epoch: 47, batch: 2600 // loss: 0.050\n", "epoch: 47, batch: 2700 // loss: 0.048\n", "epoch: 47, batch: 2800 // loss: 0.054\n", "epoch: 47, batch: 2900 // loss: 0.047\n", "epoch: 47, batch: 3000 // loss: 0.049\n", "epoch: 47, batch: 3100 // loss: 0.049\n", "epoch: 47, batch: 3200 // loss: 0.044\n", "epoch: 47, batch: 3300 // loss: 0.044\n", "epoch: 47, batch: 3400 // loss: 0.049\n", "epoch: 47, batch: 3500 // loss: 0.041\n", "epoch: 47, batch: 3600 // loss: 0.047\n", "epoch: 47, batch: 3700 // loss: 0.050\n", "\n", "epoch: 48, batch: 0 // loss: 0.060\n", "epoch: 48, batch: 100 // loss: 0.055\n", "epoch: 48, batch: 200 // loss: 0.047\n", "epoch: 48, batch: 300 // loss: 0.054\n", "epoch: 48, batch: 400 // loss: 0.052\n", "epoch: 48, batch: 500 // loss: 0.044\n", "epoch: 48, batch: 600 // loss: 0.045\n", "epoch: 48, batch: 700 // loss: 0.048\n", "epoch: 48, batch: 800 // loss: 0.049\n", "epoch: 48, batch: 900 // loss: 0.055\n", "epoch: 48, batch: 1000 // loss: 0.049\n", "epoch: 48, batch: 1100 // loss: 0.048\n", "epoch: 48, batch: 1200 // loss: 0.050\n", "epoch: 48, batch: 1300 // loss: 0.053\n", "epoch: 48, batch: 1400 // loss: 0.047\n", "epoch: 48, batch: 1500 // loss: 0.054\n", "epoch: 48, batch: 1600 // loss: 0.056\n", "epoch: 48, batch: 1700 // loss: 0.050\n", "epoch: 48, batch: 1800 // loss: 0.057\n", "epoch: 48, batch: 1900 // loss: 0.052\n", "epoch: 48, batch: 2000 // loss: 0.052\n", "epoch: 48, batch: 2100 // loss: 0.053\n", "epoch: 48, batch: 2200 // loss: 0.056\n", "epoch: 48, batch: 2300 // loss: 0.055\n", "epoch: 48, batch: 2400 // loss: 0.046\n", "epoch: 48, batch: 2500 // loss: 0.048\n", "epoch: 48, batch: 2600 // loss: 0.049\n", "epoch: 48, batch: 2700 // loss: 0.047\n", "epoch: 48, batch: 2800 // loss: 0.053\n", "epoch: 48, batch: 2900 // loss: 0.047\n", "epoch: 48, batch: 3000 // loss: 0.049\n", "epoch: 48, batch: 3100 // loss: 0.049\n", "epoch: 48, batch: 3200 // loss: 0.044\n", "epoch: 48, batch: 3300 // loss: 0.043\n", "epoch: 48, batch: 3400 // loss: 0.049\n", "epoch: 48, batch: 3500 // loss: 0.040\n", "epoch: 48, batch: 3600 // loss: 0.047\n", "epoch: 48, batch: 3700 // loss: 0.050\n", "\n", "epoch: 49, batch: 0 // loss: 0.059\n", "epoch: 49, batch: 100 // loss: 0.054\n", "epoch: 49, batch: 200 // loss: 0.047\n", "epoch: 49, batch: 300 // loss: 0.054\n", "epoch: 49, batch: 400 // loss: 0.052\n", "epoch: 49, batch: 500 // loss: 0.043\n", "epoch: 49, batch: 600 // loss: 0.044\n", "epoch: 49, batch: 700 // loss: 0.048\n", "epoch: 49, batch: 800 // loss: 0.048\n", "epoch: 49, batch: 900 // loss: 0.054\n", "epoch: 49, batch: 1000 // loss: 0.049\n", "epoch: 49, batch: 1100 // loss: 0.047\n", "epoch: 49, batch: 1200 // loss: 0.049\n", "epoch: 49, batch: 1300 // loss: 0.052\n", "epoch: 49, batch: 1400 // loss: 0.047\n", "epoch: 49, batch: 1500 // loss: 0.053\n", "epoch: 49, batch: 1600 // loss: 0.055\n", "epoch: 49, batch: 1700 // loss: 0.049\n", "epoch: 49, batch: 1800 // loss: 0.057\n", "epoch: 49, batch: 1900 // loss: 0.051\n", "epoch: 49, batch: 2000 // loss: 0.052\n", "epoch: 49, batch: 2100 // loss: 0.053\n", "epoch: 49, batch: 2200 // loss: 0.056\n", "epoch: 49, batch: 2300 // loss: 0.054\n", "epoch: 49, batch: 2400 // loss: 0.046\n", "epoch: 49, batch: 2500 // loss: 0.047\n", "epoch: 49, batch: 2600 // loss: 0.049\n", "epoch: 49, batch: 2700 // loss: 0.047\n", "epoch: 49, batch: 2800 // loss: 0.052\n", "epoch: 49, batch: 2900 // loss: 0.046\n", "epoch: 49, batch: 3000 // loss: 0.049\n", "epoch: 49, batch: 3100 // loss: 0.048\n", "epoch: 49, batch: 3200 // loss: 0.043\n", "epoch: 49, batch: 3300 // loss: 0.043\n", "epoch: 49, batch: 3400 // loss: 0.048\n", "epoch: 49, batch: 3500 // loss: 0.040\n", "epoch: 49, batch: 3600 // loss: 0.047\n", "epoch: 49, batch: 3700 // loss: 0.049\n", "\n", "epoch: 50, batch: 0 // loss: 0.058\n", "epoch: 50, batch: 100 // loss: 0.053\n", "epoch: 50, batch: 200 // loss: 0.046\n", "epoch: 50, batch: 300 // loss: 0.053\n", "epoch: 50, batch: 400 // loss: 0.051\n", "epoch: 50, batch: 500 // loss: 0.043\n", "epoch: 50, batch: 600 // loss: 0.044\n", "epoch: 50, batch: 700 // loss: 0.047\n", "epoch: 50, batch: 800 // loss: 0.047\n", "epoch: 50, batch: 900 // loss: 0.054\n", "epoch: 50, batch: 1000 // loss: 0.048\n", "epoch: 50, batch: 1100 // loss: 0.047\n", "epoch: 50, batch: 1200 // loss: 0.049\n", "epoch: 50, batch: 1300 // loss: 0.051\n", "epoch: 50, batch: 1400 // loss: 0.046\n", "epoch: 50, batch: 1500 // loss: 0.052\n", "epoch: 50, batch: 1600 // loss: 0.055\n", "epoch: 50, batch: 1700 // loss: 0.049\n", "epoch: 50, batch: 1800 // loss: 0.056\n", "epoch: 50, batch: 1900 // loss: 0.050\n", "epoch: 50, batch: 2000 // loss: 0.051\n", "epoch: 50, batch: 2100 // loss: 0.052\n", "epoch: 50, batch: 2200 // loss: 0.055\n", "epoch: 50, batch: 2300 // loss: 0.053\n", "epoch: 50, batch: 2400 // loss: 0.045\n", "epoch: 50, batch: 2500 // loss: 0.047\n", "epoch: 50, batch: 2600 // loss: 0.048\n", "epoch: 50, batch: 2700 // loss: 0.046\n", "epoch: 50, batch: 2800 // loss: 0.051\n", "epoch: 50, batch: 2900 // loss: 0.046\n", "epoch: 50, batch: 3000 // loss: 0.048\n", "epoch: 50, batch: 3100 // loss: 0.047\n", "epoch: 50, batch: 3200 // loss: 0.043\n", "epoch: 50, batch: 3300 // loss: 0.042\n", "epoch: 50, batch: 3400 // loss: 0.048\n", "epoch: 50, batch: 3500 // loss: 0.039\n", "epoch: 50, batch: 3600 // loss: 0.046\n", "epoch: 50, batch: 3700 // loss: 0.048\n", "\n", "epoch: 51, batch: 0 // loss: 0.058\n", "epoch: 51, batch: 100 // loss: 0.052\n", "epoch: 51, batch: 200 // loss: 0.046\n", "epoch: 51, batch: 300 // loss: 0.052\n", "epoch: 51, batch: 400 // loss: 0.051\n", "epoch: 51, batch: 500 // loss: 0.042\n", "epoch: 51, batch: 600 // loss: 0.043\n", "epoch: 51, batch: 700 // loss: 0.047\n", "epoch: 51, batch: 800 // loss: 0.047\n", "epoch: 51, batch: 900 // loss: 0.053\n", "epoch: 51, batch: 1000 // loss: 0.048\n", "epoch: 51, batch: 1100 // loss: 0.046\n", "epoch: 51, batch: 1200 // loss: 0.048\n", "epoch: 51, batch: 1300 // loss: 0.051\n", "epoch: 51, batch: 1400 // loss: 0.046\n", "epoch: 51, batch: 1500 // loss: 0.052\n", "epoch: 51, batch: 1600 // loss: 0.054\n", "epoch: 51, batch: 1700 // loss: 0.049\n", "epoch: 51, batch: 1800 // loss: 0.056\n", "epoch: 51, batch: 1900 // loss: 0.050\n", "epoch: 51, batch: 2000 // loss: 0.051\n", "epoch: 51, batch: 2100 // loss: 0.051\n", "epoch: 51, batch: 2200 // loss: 0.054\n", "epoch: 51, batch: 2300 // loss: 0.053\n", "epoch: 51, batch: 2400 // loss: 0.045\n", "epoch: 51, batch: 2500 // loss: 0.046\n", "epoch: 51, batch: 2600 // loss: 0.048\n", "epoch: 51, batch: 2700 // loss: 0.046\n", "epoch: 51, batch: 2800 // loss: 0.051\n", "epoch: 51, batch: 2900 // loss: 0.045\n", "epoch: 51, batch: 3000 // loss: 0.048\n", "epoch: 51, batch: 3100 // loss: 0.047\n", "epoch: 51, batch: 3200 // loss: 0.042\n", "epoch: 51, batch: 3300 // loss: 0.042\n", "epoch: 51, batch: 3400 // loss: 0.047\n", "epoch: 51, batch: 3500 // loss: 0.039\n", "epoch: 51, batch: 3600 // loss: 0.046\n", "epoch: 51, batch: 3700 // loss: 0.048\n", "\n", "epoch: 52, batch: 0 // loss: 0.057\n", "epoch: 52, batch: 100 // loss: 0.051\n", "epoch: 52, batch: 200 // loss: 0.046\n", "epoch: 52, batch: 300 // loss: 0.052\n", "epoch: 52, batch: 400 // loss: 0.050\n", "epoch: 52, batch: 500 // loss: 0.042\n", "epoch: 52, batch: 600 // loss: 0.043\n", "epoch: 52, batch: 700 // loss: 0.047\n", "epoch: 52, batch: 800 // loss: 0.046\n", "epoch: 52, batch: 900 // loss: 0.052\n", "epoch: 52, batch: 1000 // loss: 0.048\n", "epoch: 52, batch: 1100 // loss: 0.046\n", "epoch: 52, batch: 1200 // loss: 0.048\n", "epoch: 52, batch: 1300 // loss: 0.050\n", "epoch: 52, batch: 1400 // loss: 0.045\n", "epoch: 52, batch: 1500 // loss: 0.051\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 52, batch: 1600 // loss: 0.054\n", "epoch: 52, batch: 1700 // loss: 0.048\n", "epoch: 52, batch: 1800 // loss: 0.055\n", "epoch: 52, batch: 1900 // loss: 0.049\n", "epoch: 52, batch: 2000 // loss: 0.050\n", "epoch: 52, batch: 2100 // loss: 0.051\n", "epoch: 52, batch: 2200 // loss: 0.054\n", "epoch: 52, batch: 2300 // loss: 0.052\n", "epoch: 52, batch: 2400 // loss: 0.044\n", "epoch: 52, batch: 2500 // loss: 0.046\n", "epoch: 52, batch: 2600 // loss: 0.048\n", "epoch: 52, batch: 2700 // loss: 0.045\n", "epoch: 52, batch: 2800 // loss: 0.050\n", "epoch: 52, batch: 2900 // loss: 0.045\n", "epoch: 52, batch: 3000 // loss: 0.048\n", "epoch: 52, batch: 3100 // loss: 0.046\n", "epoch: 52, batch: 3200 // loss: 0.042\n", "epoch: 52, batch: 3300 // loss: 0.041\n", "epoch: 52, batch: 3400 // loss: 0.047\n", "epoch: 52, batch: 3500 // loss: 0.038\n", "epoch: 52, batch: 3600 // loss: 0.046\n", "epoch: 52, batch: 3700 // loss: 0.047\n", "\n", "epoch: 53, batch: 0 // loss: 0.057\n", "epoch: 53, batch: 100 // loss: 0.051\n", "epoch: 53, batch: 200 // loss: 0.045\n", "epoch: 53, batch: 300 // loss: 0.051\n", "epoch: 53, batch: 400 // loss: 0.050\n", "epoch: 53, batch: 500 // loss: 0.042\n", "epoch: 53, batch: 600 // loss: 0.043\n", "epoch: 53, batch: 700 // loss: 0.046\n", "epoch: 53, batch: 800 // loss: 0.046\n", "epoch: 53, batch: 900 // loss: 0.052\n", "epoch: 53, batch: 1000 // loss: 0.047\n", "epoch: 53, batch: 1100 // loss: 0.045\n", "epoch: 53, batch: 1200 // loss: 0.047\n", "epoch: 53, batch: 1300 // loss: 0.049\n", "epoch: 53, batch: 1400 // loss: 0.045\n", "epoch: 53, batch: 1500 // loss: 0.051\n", "epoch: 53, batch: 1600 // loss: 0.054\n", "epoch: 53, batch: 1700 // loss: 0.048\n", "epoch: 53, batch: 1800 // loss: 0.055\n", "epoch: 53, batch: 1900 // loss: 0.049\n", "epoch: 53, batch: 2000 // loss: 0.050\n", "epoch: 53, batch: 2100 // loss: 0.050\n", "epoch: 53, batch: 2200 // loss: 0.053\n", "epoch: 53, batch: 2300 // loss: 0.052\n", "epoch: 53, batch: 2400 // loss: 0.044\n", "epoch: 53, batch: 2500 // loss: 0.045\n", "epoch: 53, batch: 2600 // loss: 0.047\n", "epoch: 53, batch: 2700 // loss: 0.045\n", "epoch: 53, batch: 2800 // loss: 0.050\n", "epoch: 53, batch: 2900 // loss: 0.044\n", "epoch: 53, batch: 3000 // loss: 0.047\n", "epoch: 53, batch: 3100 // loss: 0.046\n", "epoch: 53, batch: 3200 // loss: 0.041\n", "epoch: 53, batch: 3300 // loss: 0.041\n", "epoch: 53, batch: 3400 // loss: 0.046\n", "epoch: 53, batch: 3500 // loss: 0.038\n", "epoch: 53, batch: 3600 // loss: 0.045\n", "epoch: 53, batch: 3700 // loss: 0.047\n", "\n", "epoch: 54, batch: 0 // loss: 0.056\n", "epoch: 54, batch: 100 // loss: 0.050\n", "epoch: 54, batch: 200 // loss: 0.045\n", "epoch: 54, batch: 300 // loss: 0.051\n", "epoch: 54, batch: 400 // loss: 0.049\n", "epoch: 54, batch: 500 // loss: 0.041\n", "epoch: 54, batch: 600 // loss: 0.042\n", "epoch: 54, batch: 700 // loss: 0.046\n", "epoch: 54, batch: 800 // loss: 0.045\n", "epoch: 54, batch: 900 // loss: 0.052\n", "epoch: 54, batch: 1000 // loss: 0.047\n", "epoch: 54, batch: 1100 // loss: 0.045\n", "epoch: 54, batch: 1200 // loss: 0.047\n", "epoch: 54, batch: 1300 // loss: 0.049\n", "epoch: 54, batch: 1400 // loss: 0.045\n", "epoch: 54, batch: 1500 // loss: 0.051\n", "epoch: 54, batch: 1600 // loss: 0.053\n", "epoch: 54, batch: 1700 // loss: 0.047\n", "epoch: 54, batch: 1800 // loss: 0.055\n", "epoch: 54, batch: 1900 // loss: 0.048\n", "epoch: 54, batch: 2000 // loss: 0.049\n", "epoch: 54, batch: 2100 // loss: 0.050\n", "epoch: 54, batch: 2200 // loss: 0.053\n", "epoch: 54, batch: 2300 // loss: 0.051\n", "epoch: 54, batch: 2400 // loss: 0.044\n", "epoch: 54, batch: 2500 // loss: 0.045\n", "epoch: 54, batch: 2600 // loss: 0.047\n", "epoch: 54, batch: 2700 // loss: 0.044\n", "epoch: 54, batch: 2800 // loss: 0.049\n", "epoch: 54, batch: 2900 // loss: 0.044\n", "epoch: 54, batch: 3000 // loss: 0.047\n", "epoch: 54, batch: 3100 // loss: 0.045\n", "epoch: 54, batch: 3200 // loss: 0.041\n", "epoch: 54, batch: 3300 // loss: 0.040\n", "epoch: 54, batch: 3400 // loss: 0.046\n", "epoch: 54, batch: 3500 // loss: 0.037\n", "epoch: 54, batch: 3600 // loss: 0.045\n", "epoch: 54, batch: 3700 // loss: 0.046\n", "\n", "epoch: 55, batch: 0 // loss: 0.056\n", "epoch: 55, batch: 100 // loss: 0.050\n", "epoch: 55, batch: 200 // loss: 0.045\n", "epoch: 55, batch: 300 // loss: 0.051\n", "epoch: 55, batch: 400 // loss: 0.049\n", "epoch: 55, batch: 500 // loss: 0.041\n", "epoch: 55, batch: 600 // loss: 0.042\n", "epoch: 55, batch: 700 // loss: 0.046\n", "epoch: 55, batch: 800 // loss: 0.045\n", "epoch: 55, batch: 900 // loss: 0.051\n", "epoch: 55, batch: 1000 // loss: 0.047\n", "epoch: 55, batch: 1100 // loss: 0.045\n", "epoch: 55, batch: 1200 // loss: 0.046\n", "epoch: 55, batch: 1300 // loss: 0.048\n", "epoch: 55, batch: 1400 // loss: 0.044\n", "epoch: 55, batch: 1500 // loss: 0.050\n", "epoch: 55, batch: 1600 // loss: 0.053\n", "epoch: 55, batch: 1700 // loss: 0.047\n", "epoch: 55, batch: 1800 // loss: 0.054\n", "epoch: 55, batch: 1900 // loss: 0.048\n", "epoch: 55, batch: 2000 // loss: 0.049\n", "epoch: 55, batch: 2100 // loss: 0.049\n", "epoch: 55, batch: 2200 // loss: 0.052\n", "epoch: 55, batch: 2300 // loss: 0.051\n", "epoch: 55, batch: 2400 // loss: 0.044\n", "epoch: 55, batch: 2500 // loss: 0.045\n", "epoch: 55, batch: 2600 // loss: 0.047\n", "epoch: 55, batch: 2700 // loss: 0.044\n", "epoch: 55, batch: 2800 // loss: 0.049\n", "epoch: 55, batch: 2900 // loss: 0.044\n", "epoch: 55, batch: 3000 // loss: 0.047\n", "epoch: 55, batch: 3100 // loss: 0.045\n", "epoch: 55, batch: 3200 // loss: 0.041\n", "epoch: 55, batch: 3300 // loss: 0.040\n", "epoch: 55, batch: 3400 // loss: 0.046\n", "epoch: 55, batch: 3500 // loss: 0.037\n", "epoch: 55, batch: 3600 // loss: 0.045\n", "epoch: 55, batch: 3700 // loss: 0.046\n", "\n", "epoch: 56, batch: 0 // loss: 0.056\n", "epoch: 56, batch: 100 // loss: 0.049\n", "epoch: 56, batch: 200 // loss: 0.044\n", "epoch: 56, batch: 300 // loss: 0.050\n", "epoch: 56, batch: 400 // loss: 0.048\n", "epoch: 56, batch: 500 // loss: 0.041\n", "epoch: 56, batch: 600 // loss: 0.042\n", "epoch: 56, batch: 700 // loss: 0.046\n", "epoch: 56, batch: 800 // loss: 0.044\n", "epoch: 56, batch: 900 // loss: 0.051\n", "epoch: 56, batch: 1000 // loss: 0.047\n", "epoch: 56, batch: 1100 // loss: 0.044\n", "epoch: 56, batch: 1200 // loss: 0.046\n", "epoch: 56, batch: 1300 // loss: 0.048\n", "epoch: 56, batch: 1400 // loss: 0.044\n", "epoch: 56, batch: 1500 // loss: 0.050\n", "epoch: 56, batch: 1600 // loss: 0.053\n", "epoch: 56, batch: 1700 // loss: 0.047\n", "epoch: 56, batch: 1800 // loss: 0.054\n", "epoch: 56, batch: 1900 // loss: 0.047\n", "epoch: 56, batch: 2000 // loss: 0.048\n", "epoch: 56, batch: 2100 // loss: 0.049\n", "epoch: 56, batch: 2200 // loss: 0.052\n", "epoch: 56, batch: 2300 // loss: 0.051\n", "epoch: 56, batch: 2400 // loss: 0.043\n", "epoch: 56, batch: 2500 // loss: 0.044\n", "epoch: 56, batch: 2600 // loss: 0.046\n", "epoch: 56, batch: 2700 // loss: 0.044\n", "epoch: 56, batch: 2800 // loss: 0.048\n", "epoch: 56, batch: 2900 // loss: 0.044\n", "epoch: 56, batch: 3000 // loss: 0.047\n", "epoch: 56, batch: 3100 // loss: 0.045\n", "epoch: 56, batch: 3200 // loss: 0.041\n", "epoch: 56, batch: 3300 // loss: 0.040\n", "epoch: 56, batch: 3400 // loss: 0.046\n", "epoch: 56, batch: 3500 // loss: 0.037\n", "epoch: 56, batch: 3600 // loss: 0.045\n", "epoch: 56, batch: 3700 // loss: 0.045\n", "\n", "epoch: 57, batch: 0 // loss: 0.055\n", "epoch: 57, batch: 100 // loss: 0.049\n", "epoch: 57, batch: 200 // loss: 0.044\n", "epoch: 57, batch: 300 // loss: 0.050\n", "epoch: 57, batch: 400 // loss: 0.048\n", "epoch: 57, batch: 500 // loss: 0.041\n", "epoch: 57, batch: 600 // loss: 0.042\n", "epoch: 57, batch: 700 // loss: 0.045\n", "epoch: 57, batch: 800 // loss: 0.044\n", "epoch: 57, batch: 900 // loss: 0.051\n", "epoch: 57, batch: 1000 // loss: 0.046\n", "epoch: 57, batch: 1100 // loss: 0.044\n", "epoch: 57, batch: 1200 // loss: 0.046\n", "epoch: 57, batch: 1300 // loss: 0.047\n", "epoch: 57, batch: 1400 // loss: 0.044\n", "epoch: 57, batch: 1500 // loss: 0.050\n", "epoch: 57, batch: 1600 // loss: 0.053\n", "epoch: 57, batch: 1700 // loss: 0.047\n", "epoch: 57, batch: 1800 // loss: 0.054\n", "epoch: 57, batch: 1900 // loss: 0.047\n", "epoch: 57, batch: 2000 // loss: 0.048\n", "epoch: 57, batch: 2100 // loss: 0.049\n", "epoch: 57, batch: 2200 // loss: 0.051\n", "epoch: 57, batch: 2300 // loss: 0.051\n", "epoch: 57, batch: 2400 // loss: 0.043\n", "epoch: 57, batch: 2500 // loss: 0.044\n", "epoch: 57, batch: 2600 // loss: 0.046\n", "epoch: 57, batch: 2700 // loss: 0.044\n", "epoch: 57, batch: 2800 // loss: 0.048\n", "epoch: 57, batch: 2900 // loss: 0.043\n", "epoch: 57, batch: 3000 // loss: 0.047\n", "epoch: 57, batch: 3100 // loss: 0.045\n", "epoch: 57, batch: 3200 // loss: 0.040\n", "epoch: 57, batch: 3300 // loss: 0.040\n", "epoch: 57, batch: 3400 // loss: 0.045\n", "epoch: 57, batch: 3500 // loss: 0.036\n", "epoch: 57, batch: 3600 // loss: 0.044\n", "epoch: 57, batch: 3700 // loss: 0.045\n", "\n", "epoch: 58, batch: 0 // loss: 0.055\n", "epoch: 58, batch: 100 // loss: 0.048\n", "epoch: 58, batch: 200 // loss: 0.044\n", "epoch: 58, batch: 300 // loss: 0.050\n", "epoch: 58, batch: 400 // loss: 0.048\n", "epoch: 58, batch: 500 // loss: 0.041\n", "epoch: 58, batch: 600 // loss: 0.041\n", "epoch: 58, batch: 700 // loss: 0.045\n", "epoch: 58, batch: 800 // loss: 0.044\n", "epoch: 58, batch: 900 // loss: 0.050\n", "epoch: 58, batch: 1000 // loss: 0.046\n", "epoch: 58, batch: 1100 // loss: 0.044\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 58, batch: 1200 // loss: 0.045\n", "epoch: 58, batch: 1300 // loss: 0.047\n", "epoch: 58, batch: 1400 // loss: 0.044\n", "epoch: 58, batch: 1500 // loss: 0.049\n", "epoch: 58, batch: 1600 // loss: 0.053\n", "epoch: 58, batch: 1700 // loss: 0.046\n", "epoch: 58, batch: 1800 // loss: 0.054\n", "epoch: 58, batch: 1900 // loss: 0.047\n", "epoch: 58, batch: 2000 // loss: 0.048\n", "epoch: 58, batch: 2100 // loss: 0.048\n", "epoch: 58, batch: 2200 // loss: 0.051\n", "epoch: 58, batch: 2300 // loss: 0.050\n", "epoch: 58, batch: 2400 // loss: 0.043\n", "epoch: 58, batch: 2500 // loss: 0.044\n", "epoch: 58, batch: 2600 // loss: 0.046\n", "epoch: 58, batch: 2700 // loss: 0.044\n", "epoch: 58, batch: 2800 // loss: 0.048\n", "epoch: 58, batch: 2900 // loss: 0.043\n", "epoch: 58, batch: 3000 // loss: 0.046\n", "epoch: 58, batch: 3100 // loss: 0.044\n", "epoch: 58, batch: 3200 // loss: 0.040\n", "epoch: 58, batch: 3300 // loss: 0.039\n", "epoch: 58, batch: 3400 // loss: 0.045\n", "epoch: 58, batch: 3500 // loss: 0.036\n", "epoch: 58, batch: 3600 // loss: 0.044\n", "epoch: 58, batch: 3700 // loss: 0.045\n", "\n", "epoch: 59, batch: 0 // loss: 0.055\n", "epoch: 59, batch: 100 // loss: 0.048\n", "epoch: 59, batch: 200 // loss: 0.044\n", "epoch: 59, batch: 300 // loss: 0.050\n", "epoch: 59, batch: 400 // loss: 0.048\n", "epoch: 59, batch: 500 // loss: 0.040\n", "epoch: 59, batch: 600 // loss: 0.041\n", "epoch: 59, batch: 700 // loss: 0.045\n", "epoch: 59, batch: 800 // loss: 0.044\n", "epoch: 59, batch: 900 // loss: 0.050\n", "epoch: 59, batch: 1000 // loss: 0.046\n", "epoch: 59, batch: 1100 // loss: 0.044\n", "epoch: 59, batch: 1200 // loss: 0.045\n", "epoch: 59, batch: 1300 // loss: 0.047\n", "epoch: 59, batch: 1400 // loss: 0.043\n", "epoch: 59, batch: 1500 // loss: 0.049\n", "epoch: 59, batch: 1600 // loss: 0.052\n", "epoch: 59, batch: 1700 // loss: 0.046\n", "epoch: 59, batch: 1800 // loss: 0.054\n", "epoch: 59, batch: 1900 // loss: 0.047\n", "epoch: 59, batch: 2000 // loss: 0.048\n", "epoch: 59, batch: 2100 // loss: 0.048\n", "epoch: 59, batch: 2200 // loss: 0.051\n", "epoch: 59, batch: 2300 // loss: 0.050\n", "epoch: 59, batch: 2400 // loss: 0.043\n", "epoch: 59, batch: 2500 // loss: 0.044\n", "epoch: 59, batch: 2600 // loss: 0.046\n", "epoch: 59, batch: 2700 // loss: 0.043\n", "epoch: 59, batch: 2800 // loss: 0.047\n", "epoch: 59, batch: 2900 // loss: 0.043\n", "epoch: 59, batch: 3000 // loss: 0.046\n", "epoch: 59, batch: 3100 // loss: 0.044\n", "epoch: 59, batch: 3200 // loss: 0.040\n", "epoch: 59, batch: 3300 // loss: 0.039\n", "epoch: 59, batch: 3400 // loss: 0.045\n", "epoch: 59, batch: 3500 // loss: 0.036\n", "epoch: 59, batch: 3600 // loss: 0.044\n", "epoch: 59, batch: 3700 // loss: 0.045\n", "\n", "epoch: 60, batch: 0 // loss: 0.054\n", "epoch: 60, batch: 100 // loss: 0.048\n", "epoch: 60, batch: 200 // loss: 0.044\n", "epoch: 60, batch: 300 // loss: 0.050\n", "epoch: 60, batch: 400 // loss: 0.047\n", "epoch: 60, batch: 500 // loss: 0.040\n", "epoch: 60, batch: 600 // loss: 0.041\n", "epoch: 60, batch: 700 // loss: 0.045\n", "epoch: 60, batch: 800 // loss: 0.043\n", "epoch: 60, batch: 900 // loss: 0.050\n", "epoch: 60, batch: 1000 // loss: 0.046\n", "epoch: 60, batch: 1100 // loss: 0.044\n", "epoch: 60, batch: 1200 // loss: 0.045\n", "epoch: 60, batch: 1300 // loss: 0.047\n", "epoch: 60, batch: 1400 // loss: 0.043\n", "epoch: 60, batch: 1500 // loss: 0.049\n", "epoch: 60, batch: 1600 // loss: 0.052\n", "epoch: 60, batch: 1700 // loss: 0.046\n", "epoch: 60, batch: 1800 // loss: 0.053\n", "epoch: 60, batch: 1900 // loss: 0.046\n", "epoch: 60, batch: 2000 // loss: 0.048\n", "epoch: 60, batch: 2100 // loss: 0.048\n", "epoch: 60, batch: 2200 // loss: 0.051\n", "epoch: 60, batch: 2300 // loss: 0.050\n", "epoch: 60, batch: 2400 // loss: 0.043\n", "epoch: 60, batch: 2500 // loss: 0.044\n", "epoch: 60, batch: 2600 // loss: 0.046\n", "epoch: 60, batch: 2700 // loss: 0.043\n", "epoch: 60, batch: 2800 // loss: 0.047\n", "epoch: 60, batch: 2900 // loss: 0.043\n", "epoch: 60, batch: 3000 // loss: 0.046\n", "epoch: 60, batch: 3100 // loss: 0.044\n", "epoch: 60, batch: 3200 // loss: 0.040\n", "epoch: 60, batch: 3300 // loss: 0.039\n", "epoch: 60, batch: 3400 // loss: 0.045\n", "epoch: 60, batch: 3500 // loss: 0.036\n", "epoch: 60, batch: 3600 // loss: 0.044\n", "epoch: 60, batch: 3700 // loss: 0.044\n", "\n", "epoch: 61, batch: 0 // loss: 0.054\n", "epoch: 61, batch: 100 // loss: 0.048\n", "epoch: 61, batch: 200 // loss: 0.044\n", "epoch: 61, batch: 300 // loss: 0.050\n", "epoch: 61, batch: 400 // loss: 0.047\n", "epoch: 61, batch: 500 // loss: 0.040\n", "epoch: 61, batch: 600 // loss: 0.041\n", "epoch: 61, batch: 700 // loss: 0.045\n", "epoch: 61, batch: 800 // loss: 0.043\n", "epoch: 61, batch: 900 // loss: 0.050\n", "epoch: 61, batch: 1000 // loss: 0.046\n", "epoch: 61, batch: 1100 // loss: 0.043\n", "epoch: 61, batch: 1200 // loss: 0.045\n", "epoch: 61, batch: 1300 // loss: 0.046\n", "epoch: 61, batch: 1400 // loss: 0.043\n", "epoch: 61, batch: 1500 // loss: 0.049\n", "epoch: 61, batch: 1600 // loss: 0.052\n", "epoch: 61, batch: 1700 // loss: 0.046\n", "epoch: 61, batch: 1800 // loss: 0.053\n", "epoch: 61, batch: 1900 // loss: 0.046\n", "epoch: 61, batch: 2000 // loss: 0.047\n", "epoch: 61, batch: 2100 // loss: 0.048\n", "epoch: 61, batch: 2200 // loss: 0.051\n", "epoch: 61, batch: 2300 // loss: 0.050\n", "epoch: 61, batch: 2400 // loss: 0.043\n", "epoch: 61, batch: 2500 // loss: 0.043\n", "epoch: 61, batch: 2600 // loss: 0.046\n", "epoch: 61, batch: 2700 // loss: 0.043\n", "epoch: 61, batch: 2800 // loss: 0.047\n", "epoch: 61, batch: 2900 // loss: 0.043\n", "epoch: 61, batch: 3000 // loss: 0.046\n", "epoch: 61, batch: 3100 // loss: 0.044\n", "epoch: 61, batch: 3200 // loss: 0.040\n", "epoch: 61, batch: 3300 // loss: 0.039\n", "epoch: 61, batch: 3400 // loss: 0.045\n", "epoch: 61, batch: 3500 // loss: 0.036\n", "epoch: 61, batch: 3600 // loss: 0.044\n", "epoch: 61, batch: 3700 // loss: 0.044\n", "\n", "epoch: 62, batch: 0 // loss: 0.054\n", "epoch: 62, batch: 100 // loss: 0.047\n", "epoch: 62, batch: 200 // loss: 0.043\n", "epoch: 62, batch: 300 // loss: 0.049\n", "epoch: 62, batch: 400 // loss: 0.047\n", "epoch: 62, batch: 500 // loss: 0.040\n", "epoch: 62, batch: 600 // loss: 0.041\n", "epoch: 62, batch: 700 // loss: 0.045\n", "epoch: 62, batch: 800 // loss: 0.043\n", "epoch: 62, batch: 900 // loss: 0.050\n", "epoch: 62, batch: 1000 // loss: 0.046\n", "epoch: 62, batch: 1100 // loss: 0.043\n", "epoch: 62, batch: 1200 // loss: 0.045\n", "epoch: 62, batch: 1300 // loss: 0.046\n", "epoch: 62, batch: 1400 // loss: 0.043\n", "epoch: 62, batch: 1500 // loss: 0.049\n", "epoch: 62, batch: 1600 // loss: 0.052\n", "epoch: 62, batch: 1700 // loss: 0.046\n", "epoch: 62, batch: 1800 // loss: 0.053\n", "epoch: 62, batch: 1900 // loss: 0.046\n", "epoch: 62, batch: 2000 // loss: 0.047\n", "epoch: 62, batch: 2100 // loss: 0.047\n", "epoch: 62, batch: 2200 // loss: 0.050\n", "epoch: 62, batch: 2300 // loss: 0.050\n", "epoch: 62, batch: 2400 // loss: 0.043\n", "epoch: 62, batch: 2500 // loss: 0.043\n", "epoch: 62, batch: 2600 // loss: 0.045\n", "epoch: 62, batch: 2700 // loss: 0.043\n", "epoch: 62, batch: 2800 // loss: 0.047\n", "epoch: 62, batch: 2900 // loss: 0.043\n", "epoch: 62, batch: 3000 // loss: 0.046\n", "epoch: 62, batch: 3100 // loss: 0.044\n", "epoch: 62, batch: 3200 // loss: 0.040\n", "epoch: 62, batch: 3300 // loss: 0.039\n", "epoch: 62, batch: 3400 // loss: 0.045\n", "epoch: 62, batch: 3500 // loss: 0.035\n", "epoch: 62, batch: 3600 // loss: 0.044\n", "epoch: 62, batch: 3700 // loss: 0.044\n", "\n", "epoch: 63, batch: 0 // loss: 0.054\n", "epoch: 63, batch: 100 // loss: 0.047\n", "epoch: 63, batch: 200 // loss: 0.043\n", "epoch: 63, batch: 300 // loss: 0.049\n", "epoch: 63, batch: 400 // loss: 0.047\n", "epoch: 63, batch: 500 // loss: 0.040\n", "epoch: 63, batch: 600 // loss: 0.041\n", "epoch: 63, batch: 700 // loss: 0.045\n", "epoch: 63, batch: 800 // loss: 0.043\n", "epoch: 63, batch: 900 // loss: 0.050\n", "epoch: 63, batch: 1000 // loss: 0.046\n", "epoch: 63, batch: 1100 // loss: 0.043\n", "epoch: 63, batch: 1200 // loss: 0.045\n", "epoch: 63, batch: 1300 // loss: 0.046\n", "epoch: 63, batch: 1400 // loss: 0.043\n", "epoch: 63, batch: 1500 // loss: 0.049\n", "epoch: 63, batch: 1600 // loss: 0.052\n", "epoch: 63, batch: 1700 // loss: 0.046\n", "epoch: 63, batch: 1800 // loss: 0.053\n", "epoch: 63, batch: 1900 // loss: 0.046\n", "epoch: 63, batch: 2000 // loss: 0.047\n", "epoch: 63, batch: 2100 // loss: 0.047\n", "epoch: 63, batch: 2200 // loss: 0.050\n", "epoch: 63, batch: 2300 // loss: 0.049\n", "epoch: 63, batch: 2400 // loss: 0.043\n", "epoch: 63, batch: 2500 // loss: 0.043\n", "epoch: 63, batch: 2600 // loss: 0.045\n", "epoch: 63, batch: 2700 // loss: 0.043\n", "epoch: 63, batch: 2800 // loss: 0.047\n", "epoch: 63, batch: 2900 // loss: 0.043\n", "epoch: 63, batch: 3000 // loss: 0.046\n", "epoch: 63, batch: 3100 // loss: 0.044\n", "epoch: 63, batch: 3200 // loss: 0.040\n", "epoch: 63, batch: 3300 // loss: 0.039\n", "epoch: 63, batch: 3400 // loss: 0.045\n", "epoch: 63, batch: 3500 // loss: 0.035\n", "epoch: 63, batch: 3600 // loss: 0.044\n", "epoch: 63, batch: 3700 // loss: 0.044\n", "\n", "epoch: 64, batch: 0 // loss: 0.054\n", "epoch: 64, batch: 100 // loss: 0.047\n", "epoch: 64, batch: 200 // loss: 0.043\n", "epoch: 64, batch: 300 // loss: 0.049\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 64, batch: 400 // loss: 0.047\n", "epoch: 64, batch: 500 // loss: 0.040\n", "epoch: 64, batch: 600 // loss: 0.041\n", "epoch: 64, batch: 700 // loss: 0.045\n", "epoch: 64, batch: 800 // loss: 0.043\n", "epoch: 64, batch: 900 // loss: 0.049\n", "epoch: 64, batch: 1000 // loss: 0.046\n", "epoch: 64, batch: 1100 // loss: 0.043\n", "epoch: 64, batch: 1200 // loss: 0.045\n", "epoch: 64, batch: 1300 // loss: 0.046\n", "epoch: 64, batch: 1400 // loss: 0.043\n", "epoch: 64, batch: 1500 // loss: 0.049\n", "epoch: 64, batch: 1600 // loss: 0.052\n", "epoch: 64, batch: 1700 // loss: 0.046\n", "epoch: 64, batch: 1800 // loss: 0.053\n", "epoch: 64, batch: 1900 // loss: 0.046\n", "epoch: 64, batch: 2000 // loss: 0.047\n", "epoch: 64, batch: 2100 // loss: 0.047\n", "epoch: 64, batch: 2200 // loss: 0.050\n", "epoch: 64, batch: 2300 // loss: 0.049\n", "epoch: 64, batch: 2400 // loss: 0.043\n", "epoch: 64, batch: 2500 // loss: 0.043\n", "epoch: 64, batch: 2600 // loss: 0.045\n", "epoch: 64, batch: 2700 // loss: 0.043\n", "epoch: 64, batch: 2800 // loss: 0.047\n", "epoch: 64, batch: 2900 // loss: 0.042\n", "epoch: 64, batch: 3000 // loss: 0.046\n", "epoch: 64, batch: 3100 // loss: 0.044\n", "epoch: 64, batch: 3200 // loss: 0.040\n", "epoch: 64, batch: 3300 // loss: 0.039\n", "epoch: 64, batch: 3400 // loss: 0.045\n", "epoch: 64, batch: 3500 // loss: 0.035\n", "epoch: 64, batch: 3600 // loss: 0.044\n", "epoch: 64, batch: 3700 // loss: 0.044\n", "\n", "epoch: 65, batch: 0 // loss: 0.054\n", "epoch: 65, batch: 100 // loss: 0.047\n", "epoch: 65, batch: 200 // loss: 0.043\n", "epoch: 65, batch: 300 // loss: 0.049\n", "epoch: 65, batch: 400 // loss: 0.047\n", "epoch: 65, batch: 500 // loss: 0.040\n", "epoch: 65, batch: 600 // loss: 0.041\n", "epoch: 65, batch: 700 // loss: 0.045\n", "epoch: 65, batch: 800 // loss: 0.043\n", "epoch: 65, batch: 900 // loss: 0.049\n", "epoch: 65, batch: 1000 // loss: 0.046\n", "epoch: 65, batch: 1100 // loss: 0.043\n", "epoch: 65, batch: 1200 // loss: 0.044\n", "epoch: 65, batch: 1300 // loss: 0.046\n", "epoch: 65, batch: 1400 // loss: 0.043\n", "epoch: 65, batch: 1500 // loss: 0.049\n", "epoch: 65, batch: 1600 // loss: 0.052\n", "epoch: 65, batch: 1700 // loss: 0.046\n", "epoch: 65, batch: 1800 // loss: 0.053\n", "epoch: 65, batch: 1900 // loss: 0.046\n", "epoch: 65, batch: 2000 // loss: 0.047\n", "epoch: 65, batch: 2100 // loss: 0.047\n", "epoch: 65, batch: 2200 // loss: 0.050\n", "epoch: 65, batch: 2300 // loss: 0.049\n", "epoch: 65, batch: 2400 // loss: 0.042\n", "epoch: 65, batch: 2500 // loss: 0.043\n", "epoch: 65, batch: 2600 // loss: 0.045\n", "epoch: 65, batch: 2700 // loss: 0.043\n", "epoch: 65, batch: 2800 // loss: 0.047\n", "epoch: 65, batch: 2900 // loss: 0.042\n", "epoch: 65, batch: 3000 // loss: 0.046\n", "epoch: 65, batch: 3100 // loss: 0.043\n", "epoch: 65, batch: 3200 // loss: 0.039\n", "epoch: 65, batch: 3300 // loss: 0.039\n", "epoch: 65, batch: 3400 // loss: 0.045\n", "epoch: 65, batch: 3500 // loss: 0.035\n", "epoch: 65, batch: 3600 // loss: 0.044\n", "epoch: 65, batch: 3700 // loss: 0.044\n", "\n", "epoch: 66, batch: 0 // loss: 0.054\n", "epoch: 66, batch: 100 // loss: 0.047\n", "epoch: 66, batch: 200 // loss: 0.043\n", "epoch: 66, batch: 300 // loss: 0.049\n", "epoch: 66, batch: 400 // loss: 0.047\n", "epoch: 66, batch: 500 // loss: 0.040\n", "epoch: 66, batch: 600 // loss: 0.041\n", "epoch: 66, batch: 700 // loss: 0.045\n", "epoch: 66, batch: 800 // loss: 0.043\n", "epoch: 66, batch: 900 // loss: 0.049\n", "epoch: 66, batch: 1000 // loss: 0.046\n", "epoch: 66, batch: 1100 // loss: 0.043\n", "epoch: 66, batch: 1200 // loss: 0.044\n", "epoch: 66, batch: 1300 // loss: 0.046\n", "epoch: 66, batch: 1400 // loss: 0.043\n", "epoch: 66, batch: 1500 // loss: 0.048\n", "epoch: 66, batch: 1600 // loss: 0.052\n", "epoch: 66, batch: 1700 // loss: 0.046\n", "epoch: 66, batch: 1800 // loss: 0.053\n", "epoch: 66, batch: 1900 // loss: 0.046\n", "epoch: 66, batch: 2000 // loss: 0.047\n", "epoch: 66, batch: 2100 // loss: 0.047\n", "epoch: 66, batch: 2200 // loss: 0.050\n", "epoch: 66, batch: 2300 // loss: 0.049\n", "epoch: 66, batch: 2400 // loss: 0.042\n", "epoch: 66, batch: 2500 // loss: 0.043\n", "epoch: 66, batch: 2600 // loss: 0.045\n", "epoch: 66, batch: 2700 // loss: 0.043\n", "epoch: 66, batch: 2800 // loss: 0.047\n", "epoch: 66, batch: 2900 // loss: 0.042\n", "epoch: 66, batch: 3000 // loss: 0.046\n", "epoch: 66, batch: 3100 // loss: 0.043\n", "epoch: 66, batch: 3200 // loss: 0.039\n", "epoch: 66, batch: 3300 // loss: 0.039\n", "epoch: 66, batch: 3400 // loss: 0.045\n", "epoch: 66, batch: 3500 // loss: 0.035\n", "epoch: 66, batch: 3600 // loss: 0.043\n", "epoch: 66, batch: 3700 // loss: 0.044\n", "\n", "epoch: 67, batch: 0 // loss: 0.054\n", "epoch: 67, batch: 100 // loss: 0.047\n", "epoch: 67, batch: 200 // loss: 0.043\n", "epoch: 67, batch: 300 // loss: 0.049\n", "epoch: 67, batch: 400 // loss: 0.047\n", "epoch: 67, batch: 500 // loss: 0.040\n", "epoch: 67, batch: 600 // loss: 0.041\n", "epoch: 67, batch: 700 // loss: 0.045\n", "epoch: 67, batch: 800 // loss: 0.043\n", "epoch: 67, batch: 900 // loss: 0.049\n", "epoch: 67, batch: 1000 // loss: 0.046\n", "epoch: 67, batch: 1100 // loss: 0.043\n", "epoch: 67, batch: 1200 // loss: 0.044\n", "epoch: 67, batch: 1300 // loss: 0.046\n", "epoch: 67, batch: 1400 // loss: 0.043\n", "epoch: 67, batch: 1500 // loss: 0.048\n", "epoch: 67, batch: 1600 // loss: 0.052\n", "epoch: 67, batch: 1700 // loss: 0.046\n", "epoch: 67, batch: 1800 // loss: 0.053\n", "epoch: 67, batch: 1900 // loss: 0.046\n", "epoch: 67, batch: 2000 // loss: 0.047\n", "epoch: 67, batch: 2100 // loss: 0.047\n", "epoch: 67, batch: 2200 // loss: 0.050\n", "epoch: 67, batch: 2300 // loss: 0.049\n", "epoch: 67, batch: 2400 // loss: 0.042\n", "epoch: 67, batch: 2500 // loss: 0.043\n", "epoch: 67, batch: 2600 // loss: 0.045\n", "epoch: 67, batch: 2700 // loss: 0.043\n", "epoch: 67, batch: 2800 // loss: 0.046\n", "epoch: 67, batch: 2900 // loss: 0.042\n", "epoch: 67, batch: 3000 // loss: 0.046\n", "epoch: 67, batch: 3100 // loss: 0.043\n", "epoch: 67, batch: 3200 // loss: 0.039\n", "epoch: 67, batch: 3300 // loss: 0.039\n", "epoch: 67, batch: 3400 // loss: 0.044\n", "epoch: 67, batch: 3500 // loss: 0.035\n", "epoch: 67, batch: 3600 // loss: 0.043\n", "epoch: 67, batch: 3700 // loss: 0.044\n", "\n", "epoch: 68, batch: 0 // loss: 0.054\n", "epoch: 68, batch: 100 // loss: 0.047\n", "epoch: 68, batch: 200 // loss: 0.043\n", "epoch: 68, batch: 300 // loss: 0.049\n", "epoch: 68, batch: 400 // loss: 0.046\n", "epoch: 68, batch: 500 // loss: 0.040\n", "epoch: 68, batch: 600 // loss: 0.041\n", "epoch: 68, batch: 700 // loss: 0.045\n", "epoch: 68, batch: 800 // loss: 0.042\n", "epoch: 68, batch: 900 // loss: 0.049\n", "epoch: 68, batch: 1000 // loss: 0.046\n", "epoch: 68, batch: 1100 // loss: 0.043\n", "epoch: 68, batch: 1200 // loss: 0.044\n", "epoch: 68, batch: 1300 // loss: 0.046\n", "epoch: 68, batch: 1400 // loss: 0.043\n", "epoch: 68, batch: 1500 // loss: 0.048\n", "epoch: 68, batch: 1600 // loss: 0.052\n", "epoch: 68, batch: 1700 // loss: 0.046\n", "epoch: 68, batch: 1800 // loss: 0.053\n", "epoch: 68, batch: 1900 // loss: 0.046\n", "epoch: 68, batch: 2000 // loss: 0.047\n", "epoch: 68, batch: 2100 // loss: 0.047\n", "epoch: 68, batch: 2200 // loss: 0.050\n", "epoch: 68, batch: 2300 // loss: 0.049\n", "epoch: 68, batch: 2400 // loss: 0.042\n", "epoch: 68, batch: 2500 // loss: 0.043\n", "epoch: 68, batch: 2600 // loss: 0.045\n", "epoch: 68, batch: 2700 // loss: 0.043\n", "epoch: 68, batch: 2800 // loss: 0.046\n", "epoch: 68, batch: 2900 // loss: 0.042\n", "epoch: 68, batch: 3000 // loss: 0.046\n", "epoch: 68, batch: 3100 // loss: 0.043\n", "epoch: 68, batch: 3200 // loss: 0.039\n", "epoch: 68, batch: 3300 // loss: 0.038\n", "epoch: 68, batch: 3400 // loss: 0.044\n", "epoch: 68, batch: 3500 // loss: 0.035\n", "epoch: 68, batch: 3600 // loss: 0.043\n", "epoch: 68, batch: 3700 // loss: 0.044\n", "\n", "epoch: 69, batch: 0 // loss: 0.054\n", "epoch: 69, batch: 100 // loss: 0.047\n", "epoch: 69, batch: 200 // loss: 0.043\n", "epoch: 69, batch: 300 // loss: 0.049\n", "epoch: 69, batch: 400 // loss: 0.046\n", "epoch: 69, batch: 500 // loss: 0.040\n", "epoch: 69, batch: 600 // loss: 0.041\n", "epoch: 69, batch: 700 // loss: 0.044\n", "epoch: 69, batch: 800 // loss: 0.042\n", "epoch: 69, batch: 900 // loss: 0.049\n", "epoch: 69, batch: 1000 // loss: 0.046\n", "epoch: 69, batch: 1100 // loss: 0.043\n", "epoch: 69, batch: 1200 // loss: 0.044\n", "epoch: 69, batch: 1300 // loss: 0.046\n", "epoch: 69, batch: 1400 // loss: 0.043\n", "epoch: 69, batch: 1500 // loss: 0.048\n", "epoch: 69, batch: 1600 // loss: 0.052\n", "epoch: 69, batch: 1700 // loss: 0.045\n", "epoch: 69, batch: 1800 // loss: 0.053\n", "epoch: 69, batch: 1900 // loss: 0.045\n", "epoch: 69, batch: 2000 // loss: 0.047\n", "epoch: 69, batch: 2100 // loss: 0.047\n", "epoch: 69, batch: 2200 // loss: 0.050\n", "epoch: 69, batch: 2300 // loss: 0.049\n", "epoch: 69, batch: 2400 // loss: 0.042\n", "epoch: 69, batch: 2500 // loss: 0.043\n", "epoch: 69, batch: 2600 // loss: 0.045\n", "epoch: 69, batch: 2700 // loss: 0.043\n", "epoch: 69, batch: 2800 // loss: 0.046\n", "epoch: 69, batch: 2900 // loss: 0.042\n", "epoch: 69, batch: 3000 // loss: 0.046\n", "epoch: 69, batch: 3100 // loss: 0.043\n", "epoch: 69, batch: 3200 // loss: 0.039\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 69, batch: 3300 // loss: 0.038\n", "epoch: 69, batch: 3400 // loss: 0.044\n", "epoch: 69, batch: 3500 // loss: 0.035\n", "epoch: 69, batch: 3600 // loss: 0.043\n", "epoch: 69, batch: 3700 // loss: 0.044\n", "\n", "epoch: 70, batch: 0 // loss: 0.053\n", "epoch: 70, batch: 100 // loss: 0.047\n", "epoch: 70, batch: 200 // loss: 0.043\n", "epoch: 70, batch: 300 // loss: 0.049\n", "epoch: 70, batch: 400 // loss: 0.046\n", "epoch: 70, batch: 500 // loss: 0.040\n", "epoch: 70, batch: 600 // loss: 0.041\n", "epoch: 70, batch: 700 // loss: 0.044\n", "epoch: 70, batch: 800 // loss: 0.042\n", "epoch: 70, batch: 900 // loss: 0.049\n", "epoch: 70, batch: 1000 // loss: 0.046\n", "epoch: 70, batch: 1100 // loss: 0.043\n", "epoch: 70, batch: 1200 // loss: 0.044\n", "epoch: 70, batch: 1300 // loss: 0.046\n", "epoch: 70, batch: 1400 // loss: 0.043\n", "epoch: 70, batch: 1500 // loss: 0.048\n", "epoch: 70, batch: 1600 // loss: 0.052\n", "epoch: 70, batch: 1700 // loss: 0.045\n", "epoch: 70, batch: 1800 // loss: 0.053\n", "epoch: 70, batch: 1900 // loss: 0.045\n", "epoch: 70, batch: 2000 // loss: 0.047\n", "epoch: 70, batch: 2100 // loss: 0.047\n", "epoch: 70, batch: 2200 // loss: 0.050\n", "epoch: 70, batch: 2300 // loss: 0.049\n", "epoch: 70, batch: 2400 // loss: 0.042\n", "epoch: 70, batch: 2500 // loss: 0.043\n", "epoch: 70, batch: 2600 // loss: 0.045\n", "epoch: 70, batch: 2700 // loss: 0.043\n", "epoch: 70, batch: 2800 // loss: 0.046\n", "epoch: 70, batch: 2900 // loss: 0.042\n", "epoch: 70, batch: 3000 // loss: 0.046\n", "epoch: 70, batch: 3100 // loss: 0.043\n", "epoch: 70, batch: 3200 // loss: 0.039\n", "epoch: 70, batch: 3300 // loss: 0.038\n", "epoch: 70, batch: 3400 // loss: 0.044\n", "epoch: 70, batch: 3500 // loss: 0.035\n", "epoch: 70, batch: 3600 // loss: 0.043\n", "epoch: 70, batch: 3700 // loss: 0.044\n", "\n", "epoch: 71, batch: 0 // loss: 0.053\n", "epoch: 71, batch: 100 // loss: 0.046\n", "epoch: 71, batch: 200 // loss: 0.043\n", "epoch: 71, batch: 300 // loss: 0.049\n", "epoch: 71, batch: 400 // loss: 0.046\n", "epoch: 71, batch: 500 // loss: 0.040\n", "epoch: 71, batch: 600 // loss: 0.041\n", "epoch: 71, batch: 700 // loss: 0.044\n", "epoch: 71, batch: 800 // loss: 0.042\n", "epoch: 71, batch: 900 // loss: 0.049\n", "epoch: 71, batch: 1000 // loss: 0.046\n", "epoch: 71, batch: 1100 // loss: 0.043\n", "epoch: 71, batch: 1200 // loss: 0.044\n", "epoch: 71, batch: 1300 // loss: 0.046\n", "epoch: 71, batch: 1400 // loss: 0.043\n", "epoch: 71, batch: 1500 // loss: 0.048\n", "epoch: 71, batch: 1600 // loss: 0.052\n", "epoch: 71, batch: 1700 // loss: 0.045\n", "epoch: 71, batch: 1800 // loss: 0.053\n", "epoch: 71, batch: 1900 // loss: 0.045\n", "epoch: 71, batch: 2000 // loss: 0.047\n", "epoch: 71, batch: 2100 // loss: 0.047\n", "epoch: 71, batch: 2200 // loss: 0.050\n", "epoch: 71, batch: 2300 // loss: 0.049\n", "epoch: 71, batch: 2400 // loss: 0.042\n", "epoch: 71, batch: 2500 // loss: 0.043\n", "epoch: 71, batch: 2600 // loss: 0.045\n", "epoch: 71, batch: 2700 // loss: 0.043\n", "epoch: 71, batch: 2800 // loss: 0.046\n", "epoch: 71, batch: 2900 // loss: 0.042\n", "epoch: 71, batch: 3000 // loss: 0.046\n", "epoch: 71, batch: 3100 // loss: 0.043\n", "epoch: 71, batch: 3200 // loss: 0.039\n", "epoch: 71, batch: 3300 // loss: 0.038\n", "epoch: 71, batch: 3400 // loss: 0.044\n", "epoch: 71, batch: 3500 // loss: 0.035\n", "epoch: 71, batch: 3600 // loss: 0.043\n", "epoch: 71, batch: 3700 // loss: 0.043\n", "\n", "epoch: 72, batch: 0 // loss: 0.053\n", "epoch: 72, batch: 100 // loss: 0.046\n", "epoch: 72, batch: 200 // loss: 0.043\n", "epoch: 72, batch: 300 // loss: 0.049\n", "epoch: 72, batch: 400 // loss: 0.046\n", "epoch: 72, batch: 500 // loss: 0.040\n", "epoch: 72, batch: 600 // loss: 0.041\n", "epoch: 72, batch: 700 // loss: 0.044\n", "epoch: 72, batch: 800 // loss: 0.042\n", "epoch: 72, batch: 900 // loss: 0.049\n", "epoch: 72, batch: 1000 // loss: 0.046\n", "epoch: 72, batch: 1100 // loss: 0.043\n", "epoch: 72, batch: 1200 // loss: 0.044\n", "epoch: 72, batch: 1300 // loss: 0.046\n", "epoch: 72, batch: 1400 // loss: 0.043\n", "epoch: 72, batch: 1500 // loss: 0.048\n", "epoch: 72, batch: 1600 // loss: 0.052\n", "epoch: 72, batch: 1700 // loss: 0.045\n", "epoch: 72, batch: 1800 // loss: 0.053\n", "epoch: 72, batch: 1900 // loss: 0.045\n", "epoch: 72, batch: 2000 // loss: 0.047\n", "epoch: 72, batch: 2100 // loss: 0.047\n", "epoch: 72, batch: 2200 // loss: 0.050\n", "epoch: 72, batch: 2300 // loss: 0.049\n", "epoch: 72, batch: 2400 // loss: 0.042\n", "epoch: 72, batch: 2500 // loss: 0.043\n", "epoch: 72, batch: 2600 // loss: 0.045\n", "epoch: 72, batch: 2700 // loss: 0.043\n", "epoch: 72, batch: 2800 // loss: 0.046\n", "epoch: 72, batch: 2900 // loss: 0.042\n", "epoch: 72, batch: 3000 // loss: 0.046\n", "epoch: 72, batch: 3100 // loss: 0.043\n", "epoch: 72, batch: 3200 // loss: 0.039\n", "epoch: 72, batch: 3300 // loss: 0.038\n", "epoch: 72, batch: 3400 // loss: 0.044\n", "epoch: 72, batch: 3500 // loss: 0.035\n", "epoch: 72, batch: 3600 // loss: 0.043\n", "epoch: 72, batch: 3700 // loss: 0.043\n", "\n", "epoch: 73, batch: 0 // loss: 0.053\n", "epoch: 73, batch: 100 // loss: 0.046\n", "epoch: 73, batch: 200 // loss: 0.043\n", "epoch: 73, batch: 300 // loss: 0.049\n", "epoch: 73, batch: 400 // loss: 0.046\n", "epoch: 73, batch: 500 // loss: 0.040\n", "epoch: 73, batch: 600 // loss: 0.040\n", "epoch: 73, batch: 700 // loss: 0.044\n", "epoch: 73, batch: 800 // loss: 0.042\n", "epoch: 73, batch: 900 // loss: 0.049\n", "epoch: 73, batch: 1000 // loss: 0.046\n", "epoch: 73, batch: 1100 // loss: 0.043\n", "epoch: 73, batch: 1200 // loss: 0.044\n", "epoch: 73, batch: 1300 // loss: 0.046\n", "epoch: 73, batch: 1400 // loss: 0.043\n", "epoch: 73, batch: 1500 // loss: 0.048\n", "epoch: 73, batch: 1600 // loss: 0.052\n", "epoch: 73, batch: 1700 // loss: 0.045\n", "epoch: 73, batch: 1800 // loss: 0.053\n", "epoch: 73, batch: 1900 // loss: 0.045\n", "epoch: 73, batch: 2000 // loss: 0.047\n", "epoch: 73, batch: 2100 // loss: 0.047\n", "epoch: 73, batch: 2200 // loss: 0.050\n", "epoch: 73, batch: 2300 // loss: 0.049\n", "epoch: 73, batch: 2400 // loss: 0.042\n", "epoch: 73, batch: 2500 // loss: 0.042\n", "epoch: 73, batch: 2600 // loss: 0.045\n", "epoch: 73, batch: 2700 // loss: 0.043\n", "epoch: 73, batch: 2800 // loss: 0.046\n", "epoch: 73, batch: 2900 // loss: 0.042\n", "epoch: 73, batch: 3000 // loss: 0.046\n", "epoch: 73, batch: 3100 // loss: 0.043\n", "epoch: 73, batch: 3200 // loss: 0.039\n", "epoch: 73, batch: 3300 // loss: 0.038\n", "epoch: 73, batch: 3400 // loss: 0.044\n", "epoch: 73, batch: 3500 // loss: 0.035\n", "epoch: 73, batch: 3600 // loss: 0.043\n", "epoch: 73, batch: 3700 // loss: 0.043\n", "\n", "epoch: 74, batch: 0 // loss: 0.053\n", "epoch: 74, batch: 100 // loss: 0.046\n", "epoch: 74, batch: 200 // loss: 0.043\n", "epoch: 74, batch: 300 // loss: 0.049\n", "epoch: 74, batch: 400 // loss: 0.046\n", "epoch: 74, batch: 500 // loss: 0.040\n", "epoch: 74, batch: 600 // loss: 0.040\n", "epoch: 74, batch: 700 // loss: 0.044\n", "epoch: 74, batch: 800 // loss: 0.042\n", "epoch: 74, batch: 900 // loss: 0.049\n", "epoch: 74, batch: 1000 // loss: 0.046\n", "epoch: 74, batch: 1100 // loss: 0.043\n", "epoch: 74, batch: 1200 // loss: 0.044\n", "epoch: 74, batch: 1300 // loss: 0.046\n", "epoch: 74, batch: 1400 // loss: 0.043\n", "epoch: 74, batch: 1500 // loss: 0.048\n", "epoch: 74, batch: 1600 // loss: 0.052\n", "epoch: 74, batch: 1700 // loss: 0.045\n", "epoch: 74, batch: 1800 // loss: 0.053\n", "epoch: 74, batch: 1900 // loss: 0.045\n", "epoch: 74, batch: 2000 // loss: 0.047\n", "epoch: 74, batch: 2100 // loss: 0.047\n", "epoch: 74, batch: 2200 // loss: 0.050\n", "epoch: 74, batch: 2300 // loss: 0.049\n", "epoch: 74, batch: 2400 // loss: 0.042\n", "epoch: 74, batch: 2500 // loss: 0.042\n", "epoch: 74, batch: 2600 // loss: 0.045\n", "epoch: 74, batch: 2700 // loss: 0.043\n", "epoch: 74, batch: 2800 // loss: 0.046\n", "epoch: 74, batch: 2900 // loss: 0.042\n", "epoch: 74, batch: 3000 // loss: 0.046\n", "epoch: 74, batch: 3100 // loss: 0.043\n", "epoch: 74, batch: 3200 // loss: 0.039\n", "epoch: 74, batch: 3300 // loss: 0.038\n", "epoch: 74, batch: 3400 // loss: 0.044\n", "epoch: 74, batch: 3500 // loss: 0.035\n", "epoch: 74, batch: 3600 // loss: 0.043\n", "epoch: 74, batch: 3700 // loss: 0.043\n", "\n", "epoch: 75, batch: 0 // loss: 0.053\n", "epoch: 75, batch: 100 // loss: 0.046\n", "epoch: 75, batch: 200 // loss: 0.043\n", "epoch: 75, batch: 300 // loss: 0.049\n", "epoch: 75, batch: 400 // loss: 0.046\n", "epoch: 75, batch: 500 // loss: 0.040\n", "epoch: 75, batch: 600 // loss: 0.040\n", "epoch: 75, batch: 700 // loss: 0.044\n", "epoch: 75, batch: 800 // loss: 0.042\n", "epoch: 75, batch: 900 // loss: 0.049\n", "epoch: 75, batch: 1000 // loss: 0.046\n", "epoch: 75, batch: 1100 // loss: 0.043\n", "epoch: 75, batch: 1200 // loss: 0.044\n", "epoch: 75, batch: 1300 // loss: 0.046\n", "epoch: 75, batch: 1400 // loss: 0.043\n", "epoch: 75, batch: 1500 // loss: 0.048\n", "epoch: 75, batch: 1600 // loss: 0.052\n", "epoch: 75, batch: 1700 // loss: 0.045\n", "epoch: 75, batch: 1800 // loss: 0.053\n", "epoch: 75, batch: 1900 // loss: 0.045\n", "epoch: 75, batch: 2000 // loss: 0.047\n", "epoch: 75, batch: 2100 // loss: 0.047\n", "epoch: 75, batch: 2200 // loss: 0.050\n", "epoch: 75, batch: 2300 // loss: 0.049\n", "epoch: 75, batch: 2400 // loss: 0.042\n", "epoch: 75, batch: 2500 // loss: 0.042\n", "epoch: 75, batch: 2600 // loss: 0.045\n", "epoch: 75, batch: 2700 // loss: 0.043\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 75, batch: 2800 // loss: 0.046\n", "epoch: 75, batch: 2900 // loss: 0.042\n", "epoch: 75, batch: 3000 // loss: 0.046\n", "epoch: 75, batch: 3100 // loss: 0.043\n", "epoch: 75, batch: 3200 // loss: 0.039\n", "epoch: 75, batch: 3300 // loss: 0.038\n", "epoch: 75, batch: 3400 // loss: 0.044\n", "epoch: 75, batch: 3500 // loss: 0.035\n", "epoch: 75, batch: 3600 // loss: 0.043\n", "epoch: 75, batch: 3700 // loss: 0.043\n", "\n", "epoch: 76, batch: 0 // loss: 0.053\n", "epoch: 76, batch: 100 // loss: 0.046\n", "epoch: 76, batch: 200 // loss: 0.043\n", "epoch: 76, batch: 300 // loss: 0.049\n", "epoch: 76, batch: 400 // loss: 0.046\n", "epoch: 76, batch: 500 // loss: 0.040\n", "epoch: 76, batch: 600 // loss: 0.040\n", "epoch: 76, batch: 700 // loss: 0.044\n", "epoch: 76, batch: 800 // loss: 0.042\n", "epoch: 76, batch: 900 // loss: 0.049\n", "epoch: 76, batch: 1000 // loss: 0.046\n", "epoch: 76, batch: 1100 // loss: 0.043\n", "epoch: 76, batch: 1200 // loss: 0.044\n", "epoch: 76, batch: 1300 // loss: 0.046\n", "epoch: 76, batch: 1400 // loss: 0.043\n", "epoch: 76, batch: 1500 // loss: 0.048\n", "epoch: 76, batch: 1600 // loss: 0.052\n", "epoch: 76, batch: 1700 // loss: 0.045\n", "epoch: 76, batch: 1800 // loss: 0.053\n", "epoch: 76, batch: 1900 // loss: 0.045\n", "epoch: 76, batch: 2000 // loss: 0.047\n", "epoch: 76, batch: 2100 // loss: 0.047\n", "epoch: 76, batch: 2200 // loss: 0.050\n", "epoch: 76, batch: 2300 // loss: 0.049\n", "epoch: 76, batch: 2400 // loss: 0.042\n", "epoch: 76, batch: 2500 // loss: 0.042\n", "epoch: 76, batch: 2600 // loss: 0.045\n", "epoch: 76, batch: 2700 // loss: 0.043\n", "epoch: 76, batch: 2800 // loss: 0.046\n", "epoch: 76, batch: 2900 // loss: 0.042\n", "epoch: 76, batch: 3000 // loss: 0.046\n", "epoch: 76, batch: 3100 // loss: 0.043\n", "epoch: 76, batch: 3200 // loss: 0.039\n", "epoch: 76, batch: 3300 // loss: 0.038\n", "epoch: 76, batch: 3400 // loss: 0.044\n", "epoch: 76, batch: 3500 // loss: 0.035\n", "epoch: 76, batch: 3600 // loss: 0.043\n", "epoch: 76, batch: 3700 // loss: 0.043\n", "\n", "epoch: 77, batch: 0 // loss: 0.053\n", "epoch: 77, batch: 100 // loss: 0.046\n", "epoch: 77, batch: 200 // loss: 0.043\n", "epoch: 77, batch: 300 // loss: 0.049\n", "epoch: 77, batch: 400 // loss: 0.046\n", "epoch: 77, batch: 500 // loss: 0.040\n", "epoch: 77, batch: 600 // loss: 0.040\n", "epoch: 77, batch: 700 // loss: 0.044\n", "epoch: 77, batch: 800 // loss: 0.042\n", "epoch: 77, batch: 900 // loss: 0.049\n", "epoch: 77, batch: 1000 // loss: 0.046\n", "epoch: 77, batch: 1100 // loss: 0.043\n", "epoch: 77, batch: 1200 // loss: 0.044\n", "epoch: 77, batch: 1300 // loss: 0.046\n", "epoch: 77, batch: 1400 // loss: 0.043\n", "epoch: 77, batch: 1500 // loss: 0.048\n", "epoch: 77, batch: 1600 // loss: 0.052\n", "epoch: 77, batch: 1700 // loss: 0.045\n", "epoch: 77, batch: 1800 // loss: 0.053\n", "epoch: 77, batch: 1900 // loss: 0.045\n", "epoch: 77, batch: 2000 // loss: 0.047\n", "epoch: 77, batch: 2100 // loss: 0.047\n", "epoch: 77, batch: 2200 // loss: 0.050\n", "epoch: 77, batch: 2300 // loss: 0.049\n", "epoch: 77, batch: 2400 // loss: 0.042\n", "epoch: 77, batch: 2500 // loss: 0.042\n", "epoch: 77, batch: 2600 // loss: 0.045\n", "epoch: 77, batch: 2700 // loss: 0.043\n", "epoch: 77, batch: 2800 // loss: 0.046\n", "epoch: 77, batch: 2900 // loss: 0.042\n", "epoch: 77, batch: 3000 // loss: 0.045\n", "epoch: 77, batch: 3100 // loss: 0.043\n", "epoch: 77, batch: 3200 // loss: 0.039\n", "epoch: 77, batch: 3300 // loss: 0.038\n", "epoch: 77, batch: 3400 // loss: 0.044\n", "epoch: 77, batch: 3500 // loss: 0.035\n", "epoch: 77, batch: 3600 // loss: 0.043\n", "epoch: 77, batch: 3700 // loss: 0.043\n", "\n", "epoch: 78, batch: 0 // loss: 0.053\n", "epoch: 78, batch: 100 // loss: 0.046\n", "epoch: 78, batch: 200 // loss: 0.043\n", "epoch: 78, batch: 300 // loss: 0.049\n", "epoch: 78, batch: 400 // loss: 0.046\n", "epoch: 78, batch: 500 // loss: 0.040\n", "epoch: 78, batch: 600 // loss: 0.040\n", "epoch: 78, batch: 700 // loss: 0.044\n", "epoch: 78, batch: 800 // loss: 0.042\n", "epoch: 78, batch: 900 // loss: 0.049\n", "epoch: 78, batch: 1000 // loss: 0.046\n", "epoch: 78, batch: 1100 // loss: 0.043\n", "epoch: 78, batch: 1200 // loss: 0.044\n", "epoch: 78, batch: 1300 // loss: 0.046\n", "epoch: 78, batch: 1400 // loss: 0.043\n", "epoch: 78, batch: 1500 // loss: 0.048\n", "epoch: 78, batch: 1600 // loss: 0.052\n", "epoch: 78, batch: 1700 // loss: 0.045\n", "epoch: 78, batch: 1800 // loss: 0.053\n", "epoch: 78, batch: 1900 // loss: 0.045\n", "epoch: 78, batch: 2000 // loss: 0.047\n", "epoch: 78, batch: 2100 // loss: 0.047\n", "epoch: 78, batch: 2200 // loss: 0.050\n", "epoch: 78, batch: 2300 // loss: 0.049\n", "epoch: 78, batch: 2400 // loss: 0.042\n", "epoch: 78, batch: 2500 // loss: 0.042\n", "epoch: 78, batch: 2600 // loss: 0.045\n", "epoch: 78, batch: 2700 // loss: 0.043\n", "epoch: 78, batch: 2800 // loss: 0.046\n", "epoch: 78, batch: 2900 // loss: 0.042\n", "epoch: 78, batch: 3000 // loss: 0.045\n", "epoch: 78, batch: 3100 // loss: 0.043\n", "epoch: 78, batch: 3200 // loss: 0.039\n", "epoch: 78, batch: 3300 // loss: 0.038\n", "epoch: 78, batch: 3400 // loss: 0.044\n", "epoch: 78, batch: 3500 // loss: 0.035\n", "epoch: 78, batch: 3600 // loss: 0.043\n", "epoch: 78, batch: 3700 // loss: 0.043\n", "\n", "epoch: 79, batch: 0 // loss: 0.053\n", "epoch: 79, batch: 100 // loss: 0.046\n", "epoch: 79, batch: 200 // loss: 0.043\n", "epoch: 79, batch: 300 // loss: 0.049\n", "epoch: 79, batch: 400 // loss: 0.046\n", "epoch: 79, batch: 500 // loss: 0.040\n", "epoch: 79, batch: 600 // loss: 0.040\n", "epoch: 79, batch: 700 // loss: 0.044\n", "epoch: 79, batch: 800 // loss: 0.042\n", "epoch: 79, batch: 900 // loss: 0.049\n", "epoch: 79, batch: 1000 // loss: 0.046\n", "epoch: 79, batch: 1100 // loss: 0.043\n", "epoch: 79, batch: 1200 // loss: 0.044\n", "epoch: 79, batch: 1300 // loss: 0.046\n", "epoch: 79, batch: 1400 // loss: 0.043\n", "epoch: 79, batch: 1500 // loss: 0.048\n", "epoch: 79, batch: 1600 // loss: 0.052\n", "epoch: 79, batch: 1700 // loss: 0.045\n", "epoch: 79, batch: 1800 // loss: 0.053\n", "epoch: 79, batch: 1900 // loss: 0.045\n", "epoch: 79, batch: 2000 // loss: 0.047\n", "epoch: 79, batch: 2100 // loss: 0.047\n", "epoch: 79, batch: 2200 // loss: 0.050\n", "epoch: 79, batch: 2300 // loss: 0.049\n", "epoch: 79, batch: 2400 // loss: 0.042\n", "epoch: 79, batch: 2500 // loss: 0.042\n", "epoch: 79, batch: 2600 // loss: 0.045\n", "epoch: 79, batch: 2700 // loss: 0.043\n", "epoch: 79, batch: 2800 // loss: 0.046\n", "epoch: 79, batch: 2900 // loss: 0.042\n", "epoch: 79, batch: 3000 // loss: 0.045\n", "epoch: 79, batch: 3100 // loss: 0.043\n", "epoch: 79, batch: 3200 // loss: 0.039\n", "epoch: 79, batch: 3300 // loss: 0.038\n", "epoch: 79, batch: 3400 // loss: 0.044\n", "epoch: 79, batch: 3500 // loss: 0.035\n", "epoch: 79, batch: 3600 // loss: 0.043\n", "epoch: 79, batch: 3700 // loss: 0.043\n", "\n", "epoch: 80, batch: 0 // loss: 0.053\n", "epoch: 80, batch: 100 // loss: 0.046\n", "epoch: 80, batch: 200 // loss: 0.043\n", "epoch: 80, batch: 300 // loss: 0.049\n", "epoch: 80, batch: 400 // loss: 0.046\n", "epoch: 80, batch: 500 // loss: 0.040\n", "epoch: 80, batch: 600 // loss: 0.040\n", "epoch: 80, batch: 700 // loss: 0.044\n", "epoch: 80, batch: 800 // loss: 0.042\n", "epoch: 80, batch: 900 // loss: 0.049\n", "epoch: 80, batch: 1000 // loss: 0.046\n", "epoch: 80, batch: 1100 // loss: 0.043\n", "epoch: 80, batch: 1200 // loss: 0.044\n", "epoch: 80, batch: 1300 // loss: 0.046\n", "epoch: 80, batch: 1400 // loss: 0.043\n", "epoch: 80, batch: 1500 // loss: 0.048\n", "epoch: 80, batch: 1600 // loss: 0.052\n", "epoch: 80, batch: 1700 // loss: 0.045\n", "epoch: 80, batch: 1800 // loss: 0.053\n", "epoch: 80, batch: 1900 // loss: 0.045\n", "epoch: 80, batch: 2000 // loss: 0.047\n", "epoch: 80, batch: 2100 // loss: 0.047\n", "epoch: 80, batch: 2200 // loss: 0.050\n", "epoch: 80, batch: 2300 // loss: 0.049\n", "epoch: 80, batch: 2400 // loss: 0.042\n", "epoch: 80, batch: 2500 // loss: 0.042\n", "epoch: 80, batch: 2600 // loss: 0.045\n", "epoch: 80, batch: 2700 // loss: 0.043\n", "epoch: 80, batch: 2800 // loss: 0.046\n", "epoch: 80, batch: 2900 // loss: 0.042\n", "epoch: 80, batch: 3000 // loss: 0.045\n", "epoch: 80, batch: 3100 // loss: 0.043\n", "epoch: 80, batch: 3200 // loss: 0.039\n", "epoch: 80, batch: 3300 // loss: 0.038\n", "epoch: 80, batch: 3400 // loss: 0.044\n", "epoch: 80, batch: 3500 // loss: 0.035\n", "epoch: 80, batch: 3600 // loss: 0.043\n", "epoch: 80, batch: 3700 // loss: 0.043\n", "\n", "epoch: 81, batch: 0 // loss: 0.053\n", "epoch: 81, batch: 100 // loss: 0.046\n", "epoch: 81, batch: 200 // loss: 0.043\n", "epoch: 81, batch: 300 // loss: 0.049\n", "epoch: 81, batch: 400 // loss: 0.046\n", "epoch: 81, batch: 500 // loss: 0.040\n", "epoch: 81, batch: 600 // loss: 0.040\n", "epoch: 81, batch: 700 // loss: 0.044\n", "epoch: 81, batch: 800 // loss: 0.042\n", "epoch: 81, batch: 900 // loss: 0.049\n", "epoch: 81, batch: 1000 // loss: 0.046\n", "epoch: 81, batch: 1100 // loss: 0.043\n", "epoch: 81, batch: 1200 // loss: 0.044\n", "epoch: 81, batch: 1300 // loss: 0.046\n", "epoch: 81, batch: 1400 // loss: 0.043\n", "epoch: 81, batch: 1500 // loss: 0.048\n", "epoch: 81, batch: 1600 // loss: 0.052\n", "epoch: 81, batch: 1700 // loss: 0.045\n", "epoch: 81, batch: 1800 // loss: 0.053\n", "epoch: 81, batch: 1900 // loss: 0.045\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 81, batch: 2000 // loss: 0.047\n", "epoch: 81, batch: 2100 // loss: 0.047\n", "epoch: 81, batch: 2200 // loss: 0.050\n", "epoch: 81, batch: 2300 // loss: 0.049\n", "epoch: 81, batch: 2400 // loss: 0.042\n", "epoch: 81, batch: 2500 // loss: 0.042\n", "epoch: 81, batch: 2600 // loss: 0.045\n", "epoch: 81, batch: 2700 // loss: 0.042\n", "epoch: 81, batch: 2800 // loss: 0.046\n", "epoch: 81, batch: 2900 // loss: 0.042\n", "epoch: 81, batch: 3000 // loss: 0.045\n", "epoch: 81, batch: 3100 // loss: 0.043\n", "epoch: 81, batch: 3200 // loss: 0.039\n", "epoch: 81, batch: 3300 // loss: 0.038\n", "epoch: 81, batch: 3400 // loss: 0.044\n", "epoch: 81, batch: 3500 // loss: 0.035\n", "epoch: 81, batch: 3600 // loss: 0.043\n", "epoch: 81, batch: 3700 // loss: 0.043\n", "\n", "epoch: 82, batch: 0 // loss: 0.053\n", "epoch: 82, batch: 100 // loss: 0.046\n", "epoch: 82, batch: 200 // loss: 0.043\n", "epoch: 82, batch: 300 // loss: 0.049\n", "epoch: 82, batch: 400 // loss: 0.046\n", "epoch: 82, batch: 500 // loss: 0.040\n", "epoch: 82, batch: 600 // loss: 0.040\n", "epoch: 82, batch: 700 // loss: 0.044\n", "epoch: 82, batch: 800 // loss: 0.042\n", "epoch: 82, batch: 900 // loss: 0.049\n", "epoch: 82, batch: 1000 // loss: 0.046\n", "epoch: 82, batch: 1100 // loss: 0.043\n", "epoch: 82, batch: 1200 // loss: 0.044\n", "epoch: 82, batch: 1300 // loss: 0.046\n", "epoch: 82, batch: 1400 // loss: 0.043\n", "epoch: 82, batch: 1500 // loss: 0.048\n", "epoch: 82, batch: 1600 // loss: 0.052\n", "epoch: 82, batch: 1700 // loss: 0.045\n", "epoch: 82, batch: 1800 // loss: 0.053\n", "epoch: 82, batch: 1900 // loss: 0.045\n", "epoch: 82, batch: 2000 // loss: 0.047\n", "epoch: 82, batch: 2100 // loss: 0.047\n", "epoch: 82, batch: 2200 // loss: 0.050\n", "epoch: 82, batch: 2300 // loss: 0.049\n", "epoch: 82, batch: 2400 // loss: 0.042\n", "epoch: 82, batch: 2500 // loss: 0.042\n", "epoch: 82, batch: 2600 // loss: 0.045\n", "epoch: 82, batch: 2700 // loss: 0.042\n", "epoch: 82, batch: 2800 // loss: 0.046\n", "epoch: 82, batch: 2900 // loss: 0.042\n", "epoch: 82, batch: 3000 // loss: 0.045\n", "epoch: 82, batch: 3100 // loss: 0.043\n", "epoch: 82, batch: 3200 // loss: 0.039\n", "epoch: 82, batch: 3300 // loss: 0.038\n", "epoch: 82, batch: 3400 // loss: 0.044\n", "epoch: 82, batch: 3500 // loss: 0.035\n", "epoch: 82, batch: 3600 // loss: 0.043\n", "epoch: 82, batch: 3700 // loss: 0.043\n", "\n", "epoch: 83, batch: 0 // loss: 0.053\n", "epoch: 83, batch: 100 // loss: 0.046\n", "epoch: 83, batch: 200 // loss: 0.043\n", "epoch: 83, batch: 300 // loss: 0.049\n", "epoch: 83, batch: 400 // loss: 0.046\n", "epoch: 83, batch: 500 // loss: 0.040\n", "epoch: 83, batch: 600 // loss: 0.040\n", "epoch: 83, batch: 700 // loss: 0.044\n", "epoch: 83, batch: 800 // loss: 0.042\n", "epoch: 83, batch: 900 // loss: 0.049\n", "epoch: 83, batch: 1000 // loss: 0.046\n", "epoch: 83, batch: 1100 // loss: 0.042\n", "epoch: 83, batch: 1200 // loss: 0.044\n", "epoch: 83, batch: 1300 // loss: 0.046\n", "epoch: 83, batch: 1400 // loss: 0.043\n", "epoch: 83, batch: 1500 // loss: 0.048\n", "epoch: 83, batch: 1600 // loss: 0.052\n", "epoch: 83, batch: 1700 // loss: 0.045\n", "epoch: 83, batch: 1800 // loss: 0.053\n", "epoch: 83, batch: 1900 // loss: 0.045\n", "epoch: 83, batch: 2000 // loss: 0.047\n", "epoch: 83, batch: 2100 // loss: 0.047\n", "epoch: 83, batch: 2200 // loss: 0.050\n", "epoch: 83, batch: 2300 // loss: 0.049\n", "epoch: 83, batch: 2400 // loss: 0.042\n", "epoch: 83, batch: 2500 // loss: 0.042\n", "epoch: 83, batch: 2600 // loss: 0.045\n", "epoch: 83, batch: 2700 // loss: 0.042\n", "epoch: 83, batch: 2800 // loss: 0.046\n", "epoch: 83, batch: 2900 // loss: 0.042\n", "epoch: 83, batch: 3000 // loss: 0.045\n", "epoch: 83, batch: 3100 // loss: 0.043\n", "epoch: 83, batch: 3200 // loss: 0.039\n", "epoch: 83, batch: 3300 // loss: 0.038\n", "epoch: 83, batch: 3400 // loss: 0.044\n", "epoch: 83, batch: 3500 // loss: 0.035\n", "epoch: 83, batch: 3600 // loss: 0.043\n", "epoch: 83, batch: 3700 // loss: 0.043\n", "\n", "epoch: 84, batch: 0 // loss: 0.053\n", "epoch: 84, batch: 100 // loss: 0.046\n", "epoch: 84, batch: 200 // loss: 0.043\n", "epoch: 84, batch: 300 // loss: 0.049\n", "epoch: 84, batch: 400 // loss: 0.046\n", "epoch: 84, batch: 500 // loss: 0.040\n", "epoch: 84, batch: 600 // loss: 0.040\n", "epoch: 84, batch: 700 // loss: 0.044\n", "epoch: 84, batch: 800 // loss: 0.042\n", "epoch: 84, batch: 900 // loss: 0.049\n", "epoch: 84, batch: 1000 // loss: 0.046\n", "epoch: 84, batch: 1100 // loss: 0.042\n", "epoch: 84, batch: 1200 // loss: 0.044\n", "epoch: 84, batch: 1300 // loss: 0.046\n", "epoch: 84, batch: 1400 // loss: 0.043\n", "epoch: 84, batch: 1500 // loss: 0.048\n", "epoch: 84, batch: 1600 // loss: 0.052\n", "epoch: 84, batch: 1700 // loss: 0.045\n", "epoch: 84, batch: 1800 // loss: 0.053\n", "epoch: 84, batch: 1900 // loss: 0.045\n", "epoch: 84, batch: 2000 // loss: 0.047\n", "epoch: 84, batch: 2100 // loss: 0.047\n", "epoch: 84, batch: 2200 // loss: 0.050\n", "epoch: 84, batch: 2300 // loss: 0.049\n", "epoch: 84, batch: 2400 // loss: 0.042\n", "epoch: 84, batch: 2500 // loss: 0.042\n", "epoch: 84, batch: 2600 // loss: 0.045\n", "epoch: 84, batch: 2700 // loss: 0.042\n", "epoch: 84, batch: 2800 // loss: 0.046\n", "epoch: 84, batch: 2900 // loss: 0.042\n", "epoch: 84, batch: 3000 // loss: 0.045\n", "epoch: 84, batch: 3100 // loss: 0.043\n", "epoch: 84, batch: 3200 // loss: 0.039\n", "epoch: 84, batch: 3300 // loss: 0.038\n", "epoch: 84, batch: 3400 // loss: 0.044\n", "epoch: 84, batch: 3500 // loss: 0.035\n", "epoch: 84, batch: 3600 // loss: 0.043\n", "epoch: 84, batch: 3700 // loss: 0.043\n", "\n", "epoch: 85, batch: 0 // loss: 0.053\n", "epoch: 85, batch: 100 // loss: 0.046\n", "epoch: 85, batch: 200 // loss: 0.043\n", "epoch: 85, batch: 300 // loss: 0.049\n", "epoch: 85, batch: 400 // loss: 0.046\n", "epoch: 85, batch: 500 // loss: 0.040\n", "epoch: 85, batch: 600 // loss: 0.040\n", "epoch: 85, batch: 700 // loss: 0.044\n", "epoch: 85, batch: 800 // loss: 0.042\n", "epoch: 85, batch: 900 // loss: 0.049\n", "epoch: 85, batch: 1000 // loss: 0.046\n", "epoch: 85, batch: 1100 // loss: 0.042\n", "epoch: 85, batch: 1200 // loss: 0.044\n", "epoch: 85, batch: 1300 // loss: 0.046\n", "epoch: 85, batch: 1400 // loss: 0.043\n", "epoch: 85, batch: 1500 // loss: 0.048\n", "epoch: 85, batch: 1600 // loss: 0.052\n", "epoch: 85, batch: 1700 // loss: 0.045\n", "epoch: 85, batch: 1800 // loss: 0.053\n", "epoch: 85, batch: 1900 // loss: 0.045\n", "epoch: 85, batch: 2000 // loss: 0.047\n", "epoch: 85, batch: 2100 // loss: 0.046\n", "epoch: 85, batch: 2200 // loss: 0.050\n", "epoch: 85, batch: 2300 // loss: 0.049\n", "epoch: 85, batch: 2400 // loss: 0.042\n", "epoch: 85, batch: 2500 // loss: 0.042\n", "epoch: 85, batch: 2600 // loss: 0.045\n", "epoch: 85, batch: 2700 // loss: 0.042\n", "epoch: 85, batch: 2800 // loss: 0.046\n", "epoch: 85, batch: 2900 // loss: 0.042\n", "epoch: 85, batch: 3000 // loss: 0.045\n", "epoch: 85, batch: 3100 // loss: 0.043\n", "epoch: 85, batch: 3200 // loss: 0.039\n", "epoch: 85, batch: 3300 // loss: 0.038\n", "epoch: 85, batch: 3400 // loss: 0.044\n", "epoch: 85, batch: 3500 // loss: 0.035\n", "epoch: 85, batch: 3600 // loss: 0.043\n", "epoch: 85, batch: 3700 // loss: 0.043\n", "\n", "epoch: 86, batch: 0 // loss: 0.053\n", "epoch: 86, batch: 100 // loss: 0.046\n", "epoch: 86, batch: 200 // loss: 0.043\n", "epoch: 86, batch: 300 // loss: 0.049\n", "epoch: 86, batch: 400 // loss: 0.046\n", "epoch: 86, batch: 500 // loss: 0.040\n", "epoch: 86, batch: 600 // loss: 0.040\n", "epoch: 86, batch: 700 // loss: 0.044\n", "epoch: 86, batch: 800 // loss: 0.042\n", "epoch: 86, batch: 900 // loss: 0.049\n", "epoch: 86, batch: 1000 // loss: 0.046\n", "epoch: 86, batch: 1100 // loss: 0.042\n", "epoch: 86, batch: 1200 // loss: 0.044\n", "epoch: 86, batch: 1300 // loss: 0.046\n", "epoch: 86, batch: 1400 // loss: 0.043\n", "epoch: 86, batch: 1500 // loss: 0.048\n", "epoch: 86, batch: 1600 // loss: 0.052\n", "epoch: 86, batch: 1700 // loss: 0.045\n", "epoch: 86, batch: 1800 // loss: 0.053\n", "epoch: 86, batch: 1900 // loss: 0.045\n", "epoch: 86, batch: 2000 // loss: 0.047\n", "epoch: 86, batch: 2100 // loss: 0.046\n", "epoch: 86, batch: 2200 // loss: 0.050\n", "epoch: 86, batch: 2300 // loss: 0.049\n", "epoch: 86, batch: 2400 // loss: 0.042\n", "epoch: 86, batch: 2500 // loss: 0.042\n", "epoch: 86, batch: 2600 // loss: 0.045\n", "epoch: 86, batch: 2700 // loss: 0.042\n", "epoch: 86, batch: 2800 // loss: 0.046\n", "epoch: 86, batch: 2900 // loss: 0.042\n", "epoch: 86, batch: 3000 // loss: 0.045\n", "epoch: 86, batch: 3100 // loss: 0.043\n", "epoch: 86, batch: 3200 // loss: 0.039\n", "epoch: 86, batch: 3300 // loss: 0.038\n", "epoch: 86, batch: 3400 // loss: 0.044\n", "epoch: 86, batch: 3500 // loss: 0.035\n", "epoch: 86, batch: 3600 // loss: 0.043\n", "epoch: 86, batch: 3700 // loss: 0.043\n", "\n", "epoch: 87, batch: 0 // loss: 0.053\n", "epoch: 87, batch: 100 // loss: 0.046\n", "epoch: 87, batch: 200 // loss: 0.043\n", "epoch: 87, batch: 300 // loss: 0.049\n", "epoch: 87, batch: 400 // loss: 0.046\n", "epoch: 87, batch: 500 // loss: 0.040\n", "epoch: 87, batch: 600 // loss: 0.040\n", "epoch: 87, batch: 700 // loss: 0.044\n", "epoch: 87, batch: 800 // loss: 0.042\n", "epoch: 87, batch: 900 // loss: 0.049\n", "epoch: 87, batch: 1000 // loss: 0.046\n", "epoch: 87, batch: 1100 // loss: 0.042\n", "epoch: 87, batch: 1200 // loss: 0.044\n", "epoch: 87, batch: 1300 // loss: 0.046\n", "epoch: 87, batch: 1400 // loss: 0.043\n", "epoch: 87, batch: 1500 // loss: 0.048\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 87, batch: 1600 // loss: 0.052\n", "epoch: 87, batch: 1700 // loss: 0.045\n", "epoch: 87, batch: 1800 // loss: 0.053\n", "epoch: 87, batch: 1900 // loss: 0.045\n", "epoch: 87, batch: 2000 // loss: 0.047\n", "epoch: 87, batch: 2100 // loss: 0.046\n", "epoch: 87, batch: 2200 // loss: 0.050\n", "epoch: 87, batch: 2300 // loss: 0.049\n", "epoch: 87, batch: 2400 // loss: 0.042\n", "epoch: 87, batch: 2500 // loss: 0.042\n", "epoch: 87, batch: 2600 // loss: 0.045\n", "epoch: 87, batch: 2700 // loss: 0.042\n", "epoch: 87, batch: 2800 // loss: 0.046\n", "epoch: 87, batch: 2900 // loss: 0.042\n", "epoch: 87, batch: 3000 // loss: 0.045\n", "epoch: 87, batch: 3100 // loss: 0.043\n", "epoch: 87, batch: 3200 // loss: 0.039\n", "epoch: 87, batch: 3300 // loss: 0.038\n", "epoch: 87, batch: 3400 // loss: 0.044\n", "epoch: 87, batch: 3500 // loss: 0.035\n", "epoch: 87, batch: 3600 // loss: 0.043\n", "epoch: 87, batch: 3700 // loss: 0.043\n", "\n", "epoch: 88, batch: 0 // loss: 0.053\n", "epoch: 88, batch: 100 // loss: 0.046\n", "epoch: 88, batch: 200 // loss: 0.043\n", "epoch: 88, batch: 300 // loss: 0.049\n", "epoch: 88, batch: 400 // loss: 0.046\n", "epoch: 88, batch: 500 // loss: 0.040\n", "epoch: 88, batch: 600 // loss: 0.040\n", "epoch: 88, batch: 700 // loss: 0.044\n", "epoch: 88, batch: 800 // loss: 0.042\n", "epoch: 88, batch: 900 // loss: 0.049\n", "epoch: 88, batch: 1000 // loss: 0.046\n", "epoch: 88, batch: 1100 // loss: 0.042\n", "epoch: 88, batch: 1200 // loss: 0.044\n", "epoch: 88, batch: 1300 // loss: 0.046\n", "epoch: 88, batch: 1400 // loss: 0.043\n", "epoch: 88, batch: 1500 // loss: 0.048\n", "epoch: 88, batch: 1600 // loss: 0.052\n", "epoch: 88, batch: 1700 // loss: 0.045\n", "epoch: 88, batch: 1800 // loss: 0.053\n", "epoch: 88, batch: 1900 // loss: 0.045\n", "epoch: 88, batch: 2000 // loss: 0.047\n", "epoch: 88, batch: 2100 // loss: 0.046\n", "epoch: 88, batch: 2200 // loss: 0.050\n", "epoch: 88, batch: 2300 // loss: 0.049\n", "epoch: 88, batch: 2400 // loss: 0.042\n", "epoch: 88, batch: 2500 // loss: 0.042\n", "epoch: 88, batch: 2600 // loss: 0.045\n", "epoch: 88, batch: 2700 // loss: 0.042\n", "epoch: 88, batch: 2800 // loss: 0.046\n", "epoch: 88, batch: 2900 // loss: 0.042\n", "epoch: 88, batch: 3000 // loss: 0.045\n", "epoch: 88, batch: 3100 // loss: 0.043\n", "epoch: 88, batch: 3200 // loss: 0.039\n", "epoch: 88, batch: 3300 // loss: 0.038\n", "epoch: 88, batch: 3400 // loss: 0.044\n", "epoch: 88, batch: 3500 // loss: 0.035\n", "epoch: 88, batch: 3600 // loss: 0.043\n", "epoch: 88, batch: 3700 // loss: 0.043\n", "\n", "epoch: 89, batch: 0 // loss: 0.053\n", "epoch: 89, batch: 100 // loss: 0.046\n", "epoch: 89, batch: 200 // loss: 0.043\n", "epoch: 89, batch: 300 // loss: 0.049\n", "epoch: 89, batch: 400 // loss: 0.046\n", "epoch: 89, batch: 500 // loss: 0.040\n", "epoch: 89, batch: 600 // loss: 0.040\n", "epoch: 89, batch: 700 // loss: 0.044\n", "epoch: 89, batch: 800 // loss: 0.042\n", "epoch: 89, batch: 900 // loss: 0.049\n", "epoch: 89, batch: 1000 // loss: 0.046\n", "epoch: 89, batch: 1100 // loss: 0.042\n", "epoch: 89, batch: 1200 // loss: 0.044\n", "epoch: 89, batch: 1300 // loss: 0.046\n", "epoch: 89, batch: 1400 // loss: 0.043\n", "epoch: 89, batch: 1500 // loss: 0.048\n", "epoch: 89, batch: 1600 // loss: 0.052\n", "epoch: 89, batch: 1700 // loss: 0.045\n", "epoch: 89, batch: 1800 // loss: 0.053\n", "epoch: 89, batch: 1900 // loss: 0.045\n", "epoch: 89, batch: 2000 // loss: 0.047\n", "epoch: 89, batch: 2100 // loss: 0.046\n", "epoch: 89, batch: 2200 // loss: 0.050\n", "epoch: 89, batch: 2300 // loss: 0.049\n", "epoch: 89, batch: 2400 // loss: 0.042\n", "epoch: 89, batch: 2500 // loss: 0.042\n", "epoch: 89, batch: 2600 // loss: 0.045\n", "epoch: 89, batch: 2700 // loss: 0.042\n", "epoch: 89, batch: 2800 // loss: 0.046\n", "epoch: 89, batch: 2900 // loss: 0.042\n", "epoch: 89, batch: 3000 // loss: 0.045\n", "epoch: 89, batch: 3100 // loss: 0.043\n", "epoch: 89, batch: 3200 // loss: 0.039\n", "epoch: 89, batch: 3300 // loss: 0.038\n", "epoch: 89, batch: 3400 // loss: 0.044\n", "epoch: 89, batch: 3500 // loss: 0.035\n", "epoch: 89, batch: 3600 // loss: 0.043\n", "epoch: 89, batch: 3700 // loss: 0.043\n", "\n", "epoch: 90, batch: 0 // loss: 0.053\n", "epoch: 90, batch: 100 // loss: 0.046\n", "epoch: 90, batch: 200 // loss: 0.043\n", "epoch: 90, batch: 300 // loss: 0.049\n", "epoch: 90, batch: 400 // loss: 0.046\n", "epoch: 90, batch: 500 // loss: 0.040\n", "epoch: 90, batch: 600 // loss: 0.040\n", "epoch: 90, batch: 700 // loss: 0.044\n", "epoch: 90, batch: 800 // loss: 0.042\n", "epoch: 90, batch: 900 // loss: 0.049\n", "epoch: 90, batch: 1000 // loss: 0.046\n", "epoch: 90, batch: 1100 // loss: 0.042\n", "epoch: 90, batch: 1200 // loss: 0.044\n", "epoch: 90, batch: 1300 // loss: 0.046\n", "epoch: 90, batch: 1400 // loss: 0.043\n", "epoch: 90, batch: 1500 // loss: 0.048\n", "epoch: 90, batch: 1600 // loss: 0.052\n", "epoch: 90, batch: 1700 // loss: 0.045\n", "epoch: 90, batch: 1800 // loss: 0.053\n", "epoch: 90, batch: 1900 // loss: 0.045\n", "epoch: 90, batch: 2000 // loss: 0.047\n", "epoch: 90, batch: 2100 // loss: 0.046\n", "epoch: 90, batch: 2200 // loss: 0.050\n", "epoch: 90, batch: 2300 // loss: 0.049\n", "epoch: 90, batch: 2400 // loss: 0.042\n", "epoch: 90, batch: 2500 // loss: 0.042\n", "epoch: 90, batch: 2600 // loss: 0.045\n", "epoch: 90, batch: 2700 // loss: 0.042\n", "epoch: 90, batch: 2800 // loss: 0.046\n", "epoch: 90, batch: 2900 // loss: 0.042\n", "epoch: 90, batch: 3000 // loss: 0.045\n", "epoch: 90, batch: 3100 // loss: 0.043\n", "epoch: 90, batch: 3200 // loss: 0.039\n", "epoch: 90, batch: 3300 // loss: 0.038\n", "epoch: 90, batch: 3400 // loss: 0.044\n", "epoch: 90, batch: 3500 // loss: 0.035\n", "epoch: 90, batch: 3600 // loss: 0.043\n", "epoch: 90, batch: 3700 // loss: 0.043\n", "\n", "epoch: 91, batch: 0 // loss: 0.053\n", "epoch: 91, batch: 100 // loss: 0.046\n", "epoch: 91, batch: 200 // loss: 0.043\n", "epoch: 91, batch: 300 // loss: 0.049\n", "epoch: 91, batch: 400 // loss: 0.046\n", "epoch: 91, batch: 500 // loss: 0.040\n", "epoch: 91, batch: 600 // loss: 0.040\n", "epoch: 91, batch: 700 // loss: 0.044\n", "epoch: 91, batch: 800 // loss: 0.042\n", "epoch: 91, batch: 900 // loss: 0.049\n", "epoch: 91, batch: 1000 // loss: 0.046\n", "epoch: 91, batch: 1100 // loss: 0.042\n", "epoch: 91, batch: 1200 // loss: 0.044\n", "epoch: 91, batch: 1300 // loss: 0.046\n", "epoch: 91, batch: 1400 // loss: 0.043\n", "epoch: 91, batch: 1500 // loss: 0.048\n", "epoch: 91, batch: 1600 // loss: 0.052\n", "epoch: 91, batch: 1700 // loss: 0.045\n", "epoch: 91, batch: 1800 // loss: 0.053\n", "epoch: 91, batch: 1900 // loss: 0.045\n", "epoch: 91, batch: 2000 // loss: 0.047\n", "epoch: 91, batch: 2100 // loss: 0.046\n", "epoch: 91, batch: 2200 // loss: 0.050\n", "epoch: 91, batch: 2300 // loss: 0.049\n", "epoch: 91, batch: 2400 // loss: 0.042\n", "epoch: 91, batch: 2500 // loss: 0.042\n", "epoch: 91, batch: 2600 // loss: 0.045\n", "epoch: 91, batch: 2700 // loss: 0.042\n", "epoch: 91, batch: 2800 // loss: 0.046\n", "epoch: 91, batch: 2900 // loss: 0.042\n", "epoch: 91, batch: 3000 // loss: 0.045\n", "epoch: 91, batch: 3100 // loss: 0.043\n", "epoch: 91, batch: 3200 // loss: 0.039\n", "epoch: 91, batch: 3300 // loss: 0.038\n", "epoch: 91, batch: 3400 // loss: 0.044\n", "epoch: 91, batch: 3500 // loss: 0.035\n", "epoch: 91, batch: 3600 // loss: 0.043\n", "epoch: 91, batch: 3700 // loss: 0.043\n", "\n", "epoch: 92, batch: 0 // loss: 0.053\n", "epoch: 92, batch: 100 // loss: 0.046\n", "epoch: 92, batch: 200 // loss: 0.043\n", "epoch: 92, batch: 300 // loss: 0.049\n", "epoch: 92, batch: 400 // loss: 0.046\n", "epoch: 92, batch: 500 // loss: 0.040\n", "epoch: 92, batch: 600 // loss: 0.040\n", "epoch: 92, batch: 700 // loss: 0.044\n", "epoch: 92, batch: 800 // loss: 0.042\n", "epoch: 92, batch: 900 // loss: 0.049\n", "epoch: 92, batch: 1000 // loss: 0.046\n", "epoch: 92, batch: 1100 // loss: 0.042\n", "epoch: 92, batch: 1200 // loss: 0.044\n", "epoch: 92, batch: 1300 // loss: 0.046\n", "epoch: 92, batch: 1400 // loss: 0.043\n", "epoch: 92, batch: 1500 // loss: 0.048\n", "epoch: 92, batch: 1600 // loss: 0.052\n", "epoch: 92, batch: 1700 // loss: 0.045\n", "epoch: 92, batch: 1800 // loss: 0.053\n", "epoch: 92, batch: 1900 // loss: 0.045\n", "epoch: 92, batch: 2000 // loss: 0.047\n", "epoch: 92, batch: 2100 // loss: 0.046\n", "epoch: 92, batch: 2200 // loss: 0.050\n", "epoch: 92, batch: 2300 // loss: 0.049\n", "epoch: 92, batch: 2400 // loss: 0.042\n", "epoch: 92, batch: 2500 // loss: 0.042\n", "epoch: 92, batch: 2600 // loss: 0.045\n", "epoch: 92, batch: 2700 // loss: 0.042\n", "epoch: 92, batch: 2800 // loss: 0.046\n", "epoch: 92, batch: 2900 // loss: 0.042\n", "epoch: 92, batch: 3000 // loss: 0.045\n", "epoch: 92, batch: 3100 // loss: 0.043\n", "epoch: 92, batch: 3200 // loss: 0.039\n", "epoch: 92, batch: 3300 // loss: 0.038\n", "epoch: 92, batch: 3400 // loss: 0.044\n", "epoch: 92, batch: 3500 // loss: 0.035\n", "epoch: 92, batch: 3600 // loss: 0.043\n", "epoch: 92, batch: 3700 // loss: 0.043\n", "\n", "epoch: 93, batch: 0 // loss: 0.053\n", "epoch: 93, batch: 100 // loss: 0.046\n", "epoch: 93, batch: 200 // loss: 0.043\n", "epoch: 93, batch: 300 // loss: 0.049\n", "epoch: 93, batch: 400 // loss: 0.046\n", "epoch: 93, batch: 500 // loss: 0.040\n", "epoch: 93, batch: 600 // loss: 0.040\n", "epoch: 93, batch: 700 // loss: 0.044\n", "epoch: 93, batch: 800 // loss: 0.042\n", "epoch: 93, batch: 900 // loss: 0.049\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 93, batch: 1000 // loss: 0.046\n", "epoch: 93, batch: 1100 // loss: 0.042\n", "epoch: 93, batch: 1200 // loss: 0.044\n", "epoch: 93, batch: 1300 // loss: 0.046\n", "epoch: 93, batch: 1400 // loss: 0.043\n", "epoch: 93, batch: 1500 // loss: 0.048\n", "epoch: 93, batch: 1600 // loss: 0.052\n", "epoch: 93, batch: 1700 // loss: 0.045\n", "epoch: 93, batch: 1800 // loss: 0.053\n", "epoch: 93, batch: 1900 // loss: 0.045\n", "epoch: 93, batch: 2000 // loss: 0.047\n", "epoch: 93, batch: 2100 // loss: 0.046\n", "epoch: 93, batch: 2200 // loss: 0.050\n", "epoch: 93, batch: 2300 // loss: 0.049\n", "epoch: 93, batch: 2400 // loss: 0.042\n", "epoch: 93, batch: 2500 // loss: 0.042\n", "epoch: 93, batch: 2600 // loss: 0.045\n", "epoch: 93, batch: 2700 // loss: 0.042\n", "epoch: 93, batch: 2800 // loss: 0.046\n", "epoch: 93, batch: 2900 // loss: 0.042\n", "epoch: 93, batch: 3000 // loss: 0.045\n", "epoch: 93, batch: 3100 // loss: 0.043\n", "epoch: 93, batch: 3200 // loss: 0.039\n", "epoch: 93, batch: 3300 // loss: 0.038\n", "epoch: 93, batch: 3400 // loss: 0.044\n", "epoch: 93, batch: 3500 // loss: 0.035\n", "epoch: 93, batch: 3600 // loss: 0.043\n", "epoch: 93, batch: 3700 // loss: 0.043\n", "\n", "epoch: 94, batch: 0 // loss: 0.053\n", "epoch: 94, batch: 100 // loss: 0.046\n", "epoch: 94, batch: 200 // loss: 0.043\n", "epoch: 94, batch: 300 // loss: 0.049\n", "epoch: 94, batch: 400 // loss: 0.046\n", "epoch: 94, batch: 500 // loss: 0.040\n", "epoch: 94, batch: 600 // loss: 0.040\n", "epoch: 94, batch: 700 // loss: 0.044\n", "epoch: 94, batch: 800 // loss: 0.042\n", "epoch: 94, batch: 900 // loss: 0.049\n", "epoch: 94, batch: 1000 // loss: 0.046\n", "epoch: 94, batch: 1100 // loss: 0.042\n", "epoch: 94, batch: 1200 // loss: 0.044\n", "epoch: 94, batch: 1300 // loss: 0.046\n", "epoch: 94, batch: 1400 // loss: 0.043\n", "epoch: 94, batch: 1500 // loss: 0.048\n", "epoch: 94, batch: 1600 // loss: 0.052\n", "epoch: 94, batch: 1700 // loss: 0.045\n", "epoch: 94, batch: 1800 // loss: 0.053\n", "epoch: 94, batch: 1900 // loss: 0.045\n", "epoch: 94, batch: 2000 // loss: 0.047\n", "epoch: 94, batch: 2100 // loss: 0.046\n", "epoch: 94, batch: 2200 // loss: 0.050\n", "epoch: 94, batch: 2300 // loss: 0.049\n", "epoch: 94, batch: 2400 // loss: 0.042\n", "epoch: 94, batch: 2500 // loss: 0.042\n", "epoch: 94, batch: 2600 // loss: 0.045\n", "epoch: 94, batch: 2700 // loss: 0.042\n", "epoch: 94, batch: 2800 // loss: 0.046\n", "epoch: 94, batch: 2900 // loss: 0.042\n", "epoch: 94, batch: 3000 // loss: 0.045\n", "epoch: 94, batch: 3100 // loss: 0.043\n", "epoch: 94, batch: 3200 // loss: 0.039\n", "epoch: 94, batch: 3300 // loss: 0.038\n", "epoch: 94, batch: 3400 // loss: 0.044\n", "epoch: 94, batch: 3500 // loss: 0.035\n", "epoch: 94, batch: 3600 // loss: 0.043\n", "epoch: 94, batch: 3700 // loss: 0.043\n", "\n", "epoch: 95, batch: 0 // loss: 0.053\n", "epoch: 95, batch: 100 // loss: 0.046\n", "epoch: 95, batch: 200 // loss: 0.043\n", "epoch: 95, batch: 300 // loss: 0.049\n", "epoch: 95, batch: 400 // loss: 0.046\n", "epoch: 95, batch: 500 // loss: 0.040\n", "epoch: 95, batch: 600 // loss: 0.040\n", "epoch: 95, batch: 700 // loss: 0.044\n", "epoch: 95, batch: 800 // loss: 0.042\n", "epoch: 95, batch: 900 // loss: 0.049\n", "epoch: 95, batch: 1000 // loss: 0.046\n", "epoch: 95, batch: 1100 // loss: 0.042\n", "epoch: 95, batch: 1200 // loss: 0.044\n", "epoch: 95, batch: 1300 // loss: 0.046\n", "epoch: 95, batch: 1400 // loss: 0.043\n", "epoch: 95, batch: 1500 // loss: 0.048\n", "epoch: 95, batch: 1600 // loss: 0.052\n", "epoch: 95, batch: 1700 // loss: 0.045\n", "epoch: 95, batch: 1800 // loss: 0.053\n", "epoch: 95, batch: 1900 // loss: 0.045\n", "epoch: 95, batch: 2000 // loss: 0.047\n", "epoch: 95, batch: 2100 // loss: 0.046\n", "epoch: 95, batch: 2200 // loss: 0.050\n", "epoch: 95, batch: 2300 // loss: 0.049\n", "epoch: 95, batch: 2400 // loss: 0.042\n", "epoch: 95, batch: 2500 // loss: 0.042\n", "epoch: 95, batch: 2600 // loss: 0.045\n", "epoch: 95, batch: 2700 // loss: 0.042\n", "epoch: 95, batch: 2800 // loss: 0.046\n", "epoch: 95, batch: 2900 // loss: 0.042\n", "epoch: 95, batch: 3000 // loss: 0.045\n", "epoch: 95, batch: 3100 // loss: 0.043\n", "epoch: 95, batch: 3200 // loss: 0.039\n", "epoch: 95, batch: 3300 // loss: 0.038\n", "epoch: 95, batch: 3400 // loss: 0.044\n", "epoch: 95, batch: 3500 // loss: 0.035\n", "epoch: 95, batch: 3600 // loss: 0.043\n", "epoch: 95, batch: 3700 // loss: 0.043\n", "\n", "epoch: 96, batch: 0 // loss: 0.053\n", "epoch: 96, batch: 100 // loss: 0.046\n", "epoch: 96, batch: 200 // loss: 0.043\n", "epoch: 96, batch: 300 // loss: 0.049\n", "epoch: 96, batch: 400 // loss: 0.046\n", "epoch: 96, batch: 500 // loss: 0.040\n", "epoch: 96, batch: 600 // loss: 0.040\n", "epoch: 96, batch: 700 // loss: 0.044\n", "epoch: 96, batch: 800 // loss: 0.042\n", "epoch: 96, batch: 900 // loss: 0.049\n", "epoch: 96, batch: 1000 // loss: 0.046\n", "epoch: 96, batch: 1100 // loss: 0.042\n", "epoch: 96, batch: 1200 // loss: 0.044\n", "epoch: 96, batch: 1300 // loss: 0.046\n", "epoch: 96, batch: 1400 // loss: 0.043\n", "epoch: 96, batch: 1500 // loss: 0.048\n", "epoch: 96, batch: 1600 // loss: 0.052\n", "epoch: 96, batch: 1700 // loss: 0.045\n", "epoch: 96, batch: 1800 // loss: 0.053\n", "epoch: 96, batch: 1900 // loss: 0.045\n", "epoch: 96, batch: 2000 // loss: 0.047\n", "epoch: 96, batch: 2100 // loss: 0.046\n", "epoch: 96, batch: 2200 // loss: 0.050\n", "epoch: 96, batch: 2300 // loss: 0.049\n", "epoch: 96, batch: 2400 // loss: 0.042\n", "epoch: 96, batch: 2500 // loss: 0.042\n", "epoch: 96, batch: 2600 // loss: 0.045\n", "epoch: 96, batch: 2700 // loss: 0.042\n", "epoch: 96, batch: 2800 // loss: 0.046\n", "epoch: 96, batch: 2900 // loss: 0.042\n", "epoch: 96, batch: 3000 // loss: 0.045\n", "epoch: 96, batch: 3100 // loss: 0.043\n", "epoch: 96, batch: 3200 // loss: 0.039\n", "epoch: 96, batch: 3300 // loss: 0.038\n", "epoch: 96, batch: 3400 // loss: 0.044\n", "epoch: 96, batch: 3500 // loss: 0.035\n", "epoch: 96, batch: 3600 // loss: 0.043\n", "epoch: 96, batch: 3700 // loss: 0.043\n", "\n", "epoch: 97, batch: 0 // loss: 0.053\n", "epoch: 97, batch: 100 // loss: 0.046\n", "epoch: 97, batch: 200 // loss: 0.043\n", "epoch: 97, batch: 300 // loss: 0.049\n", "epoch: 97, batch: 400 // loss: 0.046\n", "epoch: 97, batch: 500 // loss: 0.040\n", "epoch: 97, batch: 600 // loss: 0.040\n", "epoch: 97, batch: 700 // loss: 0.044\n", "epoch: 97, batch: 800 // loss: 0.042\n", "epoch: 97, batch: 900 // loss: 0.049\n", "epoch: 97, batch: 1000 // loss: 0.046\n", "epoch: 97, batch: 1100 // loss: 0.042\n", "epoch: 97, batch: 1200 // loss: 0.044\n", "epoch: 97, batch: 1300 // loss: 0.046\n", "epoch: 97, batch: 1400 // loss: 0.043\n", "epoch: 97, batch: 1500 // loss: 0.048\n", "epoch: 97, batch: 1600 // loss: 0.052\n", "epoch: 97, batch: 1700 // loss: 0.045\n", "epoch: 97, batch: 1800 // loss: 0.053\n", "epoch: 97, batch: 1900 // loss: 0.045\n", "epoch: 97, batch: 2000 // loss: 0.047\n", "epoch: 97, batch: 2100 // loss: 0.046\n", "epoch: 97, batch: 2200 // loss: 0.050\n", "epoch: 97, batch: 2300 // loss: 0.049\n", "epoch: 97, batch: 2400 // loss: 0.042\n", "epoch: 97, batch: 2500 // loss: 0.042\n", "epoch: 97, batch: 2600 // loss: 0.045\n", "epoch: 97, batch: 2700 // loss: 0.042\n", "epoch: 97, batch: 2800 // loss: 0.046\n", "epoch: 97, batch: 2900 // loss: 0.042\n", "epoch: 97, batch: 3000 // loss: 0.045\n", "epoch: 97, batch: 3100 // loss: 0.043\n", "epoch: 97, batch: 3200 // loss: 0.039\n", "epoch: 97, batch: 3300 // loss: 0.038\n", "epoch: 97, batch: 3400 // loss: 0.044\n", "epoch: 97, batch: 3500 // loss: 0.035\n", "epoch: 97, batch: 3600 // loss: 0.043\n", "epoch: 97, batch: 3700 // loss: 0.043\n", "\n", "epoch: 98, batch: 0 // loss: 0.053\n", "epoch: 98, batch: 100 // loss: 0.046\n", "epoch: 98, batch: 200 // loss: 0.043\n", "epoch: 98, batch: 300 // loss: 0.049\n", "epoch: 98, batch: 400 // loss: 0.046\n", "epoch: 98, batch: 500 // loss: 0.040\n", "epoch: 98, batch: 600 // loss: 0.040\n", "epoch: 98, batch: 700 // loss: 0.044\n", "epoch: 98, batch: 800 // loss: 0.042\n", "epoch: 98, batch: 900 // loss: 0.049\n", "epoch: 98, batch: 1000 // loss: 0.046\n", "epoch: 98, batch: 1100 // loss: 0.042\n", "epoch: 98, batch: 1200 // loss: 0.044\n", "epoch: 98, batch: 1300 // loss: 0.046\n", "epoch: 98, batch: 1400 // loss: 0.043\n", "epoch: 98, batch: 1500 // loss: 0.048\n", "epoch: 98, batch: 1600 // loss: 0.052\n", "epoch: 98, batch: 1700 // loss: 0.045\n", "epoch: 98, batch: 1800 // loss: 0.053\n", "epoch: 98, batch: 1900 // loss: 0.045\n", "epoch: 98, batch: 2000 // loss: 0.047\n", "epoch: 98, batch: 2100 // loss: 0.046\n", "epoch: 98, batch: 2200 // loss: 0.050\n", "epoch: 98, batch: 2300 // loss: 0.049\n", "epoch: 98, batch: 2400 // loss: 0.042\n", "epoch: 98, batch: 2500 // loss: 0.042\n", "epoch: 98, batch: 2600 // loss: 0.045\n", "epoch: 98, batch: 2700 // loss: 0.042\n", "epoch: 98, batch: 2800 // loss: 0.046\n", "epoch: 98, batch: 2900 // loss: 0.042\n", "epoch: 98, batch: 3000 // loss: 0.045\n", "epoch: 98, batch: 3100 // loss: 0.043\n", "epoch: 98, batch: 3200 // loss: 0.039\n", "epoch: 98, batch: 3300 // loss: 0.038\n", "epoch: 98, batch: 3400 // loss: 0.044\n", "epoch: 98, batch: 3500 // loss: 0.035\n", "epoch: 98, batch: 3600 // loss: 0.043\n", "epoch: 98, batch: 3700 // loss: 0.043\n", "\n", "epoch: 99, batch: 0 // loss: 0.053\n", "epoch: 99, batch: 100 // loss: 0.046\n", "epoch: 99, batch: 200 // loss: 0.043\n", "epoch: 99, batch: 300 // loss: 0.049\n", "epoch: 99, batch: 400 // loss: 0.046\n", "epoch: 99, batch: 500 // loss: 0.040\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 99, batch: 600 // loss: 0.040\n", "epoch: 99, batch: 700 // loss: 0.044\n", "epoch: 99, batch: 800 // loss: 0.042\n", "epoch: 99, batch: 900 // loss: 0.049\n", "epoch: 99, batch: 1000 // loss: 0.046\n", "epoch: 99, batch: 1100 // loss: 0.042\n", "epoch: 99, batch: 1200 // loss: 0.044\n", "epoch: 99, batch: 1300 // loss: 0.046\n", "epoch: 99, batch: 1400 // loss: 0.043\n", "epoch: 99, batch: 1500 // loss: 0.048\n", "epoch: 99, batch: 1600 // loss: 0.052\n", "epoch: 99, batch: 1700 // loss: 0.045\n", "epoch: 99, batch: 1800 // loss: 0.053\n", "epoch: 99, batch: 1900 // loss: 0.045\n", "epoch: 99, batch: 2000 // loss: 0.047\n", "epoch: 99, batch: 2100 // loss: 0.046\n", "epoch: 99, batch: 2200 // loss: 0.050\n", "epoch: 99, batch: 2300 // loss: 0.049\n", "epoch: 99, batch: 2400 // loss: 0.042\n", "epoch: 99, batch: 2500 // loss: 0.042\n", "epoch: 99, batch: 2600 // loss: 0.045\n", "epoch: 99, batch: 2700 // loss: 0.042\n", "epoch: 99, batch: 2800 // loss: 0.046\n", "epoch: 99, batch: 2900 // loss: 0.042\n", "epoch: 99, batch: 3000 // loss: 0.045\n", "epoch: 99, batch: 3100 // loss: 0.043\n", "epoch: 99, batch: 3200 // loss: 0.039\n", "epoch: 99, batch: 3300 // loss: 0.038\n", "epoch: 99, batch: 3400 // loss: 0.044\n", "epoch: 99, batch: 3500 // loss: 0.035\n", "epoch: 99, batch: 3600 // loss: 0.043\n", "epoch: 99, batch: 3700 // loss: 0.043\n", "\n", "epoch: 100, batch: 0 // loss: 0.053\n", "epoch: 100, batch: 100 // loss: 0.046\n", "epoch: 100, batch: 200 // loss: 0.043\n", "epoch: 100, batch: 300 // loss: 0.049\n", "epoch: 100, batch: 400 // loss: 0.046\n", "epoch: 100, batch: 500 // loss: 0.040\n", "epoch: 100, batch: 600 // loss: 0.040\n", "epoch: 100, batch: 700 // loss: 0.044\n", "epoch: 100, batch: 800 // loss: 0.042\n", "epoch: 100, batch: 900 // loss: 0.049\n", "epoch: 100, batch: 1000 // loss: 0.046\n", "epoch: 100, batch: 1100 // loss: 0.042\n", "epoch: 100, batch: 1200 // loss: 0.044\n", "epoch: 100, batch: 1300 // loss: 0.046\n", "epoch: 100, batch: 1400 // loss: 0.043\n", "epoch: 100, batch: 1500 // loss: 0.048\n", "epoch: 100, batch: 1600 // loss: 0.052\n", "epoch: 100, batch: 1700 // loss: 0.045\n", "epoch: 100, batch: 1800 // loss: 0.053\n", "epoch: 100, batch: 1900 // loss: 0.045\n", "epoch: 100, batch: 2000 // loss: 0.047\n", "epoch: 100, batch: 2100 // loss: 0.046\n", "epoch: 100, batch: 2200 // loss: 0.050\n", "epoch: 100, batch: 2300 // loss: 0.049\n", "epoch: 100, batch: 2400 // loss: 0.042\n", "epoch: 100, batch: 2500 // loss: 0.042\n", "epoch: 100, batch: 2600 // loss: 0.045\n", "epoch: 100, batch: 2700 // loss: 0.042\n", "epoch: 100, batch: 2800 // loss: 0.046\n", "epoch: 100, batch: 2900 // loss: 0.042\n", "epoch: 100, batch: 3000 // loss: 0.045\n", "epoch: 100, batch: 3100 // loss: 0.043\n", "epoch: 100, batch: 3200 // loss: 0.039\n", "epoch: 100, batch: 3300 // loss: 0.038\n", "epoch: 100, batch: 3400 // loss: 0.044\n", "epoch: 100, batch: 3500 // loss: 0.035\n", "epoch: 100, batch: 3600 // loss: 0.043\n", "epoch: 100, batch: 3700 // loss: 0.043\n", "\n", "epoch: 101, batch: 0 // loss: 0.053\n", "epoch: 101, batch: 100 // loss: 0.046\n", "epoch: 101, batch: 200 // loss: 0.043\n", "epoch: 101, batch: 300 // loss: 0.049\n", "epoch: 101, batch: 400 // loss: 0.046\n", "epoch: 101, batch: 500 // loss: 0.040\n", "epoch: 101, batch: 600 // loss: 0.040\n", "epoch: 101, batch: 700 // loss: 0.044\n", "epoch: 101, batch: 800 // loss: 0.042\n", "epoch: 101, batch: 900 // loss: 0.049\n", "epoch: 101, batch: 1000 // loss: 0.046\n", "epoch: 101, batch: 1100 // loss: 0.042\n", "epoch: 101, batch: 1200 // loss: 0.044\n", "epoch: 101, batch: 1300 // loss: 0.046\n", "epoch: 101, batch: 1400 // loss: 0.043\n", "epoch: 101, batch: 1500 // loss: 0.048\n", "epoch: 101, batch: 1600 // loss: 0.052\n", "epoch: 101, batch: 1700 // loss: 0.045\n", "epoch: 101, batch: 1800 // loss: 0.053\n", "epoch: 101, batch: 1900 // loss: 0.045\n", "epoch: 101, batch: 2000 // loss: 0.047\n", "epoch: 101, batch: 2100 // loss: 0.046\n", "epoch: 101, batch: 2200 // loss: 0.050\n", "epoch: 101, batch: 2300 // loss: 0.049\n", "epoch: 101, batch: 2400 // loss: 0.042\n", "epoch: 101, batch: 2500 // loss: 0.042\n", "epoch: 101, batch: 2600 // loss: 0.045\n", "epoch: 101, batch: 2700 // loss: 0.042\n", "epoch: 101, batch: 2800 // loss: 0.046\n", "epoch: 101, batch: 2900 // loss: 0.042\n", "epoch: 101, batch: 3000 // loss: 0.045\n", "epoch: 101, batch: 3100 // loss: 0.043\n", "epoch: 101, batch: 3200 // loss: 0.039\n", "epoch: 101, batch: 3300 // loss: 0.038\n", "epoch: 101, batch: 3400 // loss: 0.044\n", "epoch: 101, batch: 3500 // loss: 0.035\n", "epoch: 101, batch: 3600 // loss: 0.043\n", "epoch: 101, batch: 3700 // loss: 0.043\n", "\n", "epoch: 102, batch: 0 // loss: 0.053\n", "epoch: 102, batch: 100 // loss: 0.046\n", "epoch: 102, batch: 200 // loss: 0.043\n", "epoch: 102, batch: 300 // loss: 0.049\n", "epoch: 102, batch: 400 // loss: 0.046\n", "epoch: 102, batch: 500 // loss: 0.040\n", "epoch: 102, batch: 600 // loss: 0.040\n", "epoch: 102, batch: 700 // loss: 0.044\n", "epoch: 102, batch: 800 // loss: 0.042\n", "epoch: 102, batch: 900 // loss: 0.049\n", "epoch: 102, batch: 1000 // loss: 0.046\n", "epoch: 102, batch: 1100 // loss: 0.042\n", "epoch: 102, batch: 1200 // loss: 0.044\n", "epoch: 102, batch: 1300 // loss: 0.046\n", "epoch: 102, batch: 1400 // loss: 0.043\n", "epoch: 102, batch: 1500 // loss: 0.048\n", "epoch: 102, batch: 1600 // loss: 0.052\n", "epoch: 102, batch: 1700 // loss: 0.045\n", "epoch: 102, batch: 1800 // loss: 0.053\n", "epoch: 102, batch: 1900 // loss: 0.045\n", "epoch: 102, batch: 2000 // loss: 0.047\n", "epoch: 102, batch: 2100 // loss: 0.046\n", "epoch: 102, batch: 2200 // loss: 0.050\n", "epoch: 102, batch: 2300 // loss: 0.049\n", "epoch: 102, batch: 2400 // loss: 0.042\n", "epoch: 102, batch: 2500 // loss: 0.042\n", "epoch: 102, batch: 2600 // loss: 0.045\n", "epoch: 102, batch: 2700 // loss: 0.042\n", "epoch: 102, batch: 2800 // loss: 0.046\n", "epoch: 102, batch: 2900 // loss: 0.042\n", "epoch: 102, batch: 3000 // loss: 0.045\n", "epoch: 102, batch: 3100 // loss: 0.043\n", "epoch: 102, batch: 3200 // loss: 0.039\n", "epoch: 102, batch: 3300 // loss: 0.038\n", "epoch: 102, batch: 3400 // loss: 0.044\n", "epoch: 102, batch: 3500 // loss: 0.035\n", "epoch: 102, batch: 3600 // loss: 0.043\n", "epoch: 102, batch: 3700 // loss: 0.043\n", "\n", "epoch: 103, batch: 0 // loss: 0.053\n", "epoch: 103, batch: 100 // loss: 0.046\n", "epoch: 103, batch: 200 // loss: 0.043\n", "epoch: 103, batch: 300 // loss: 0.049\n", "epoch: 103, batch: 400 // loss: 0.046\n", "epoch: 103, batch: 500 // loss: 0.040\n", "epoch: 103, batch: 600 // loss: 0.040\n", "epoch: 103, batch: 700 // loss: 0.044\n", "epoch: 103, batch: 800 // loss: 0.042\n", "epoch: 103, batch: 900 // loss: 0.049\n", "epoch: 103, batch: 1000 // loss: 0.046\n", "epoch: 103, batch: 1100 // loss: 0.042\n", "epoch: 103, batch: 1200 // loss: 0.044\n", "epoch: 103, batch: 1300 // loss: 0.046\n", "epoch: 103, batch: 1400 // loss: 0.043\n", "epoch: 103, batch: 1500 // loss: 0.048\n", "epoch: 103, batch: 1600 // loss: 0.052\n", "epoch: 103, batch: 1700 // loss: 0.045\n", "epoch: 103, batch: 1800 // loss: 0.053\n", "epoch: 103, batch: 1900 // loss: 0.045\n", "epoch: 103, batch: 2000 // loss: 0.047\n", "epoch: 103, batch: 2100 // loss: 0.046\n", "epoch: 103, batch: 2200 // loss: 0.050\n", "epoch: 103, batch: 2300 // loss: 0.049\n", "epoch: 103, batch: 2400 // loss: 0.042\n", "epoch: 103, batch: 2500 // loss: 0.042\n", "epoch: 103, batch: 2600 // loss: 0.045\n", "epoch: 103, batch: 2700 // loss: 0.042\n", "epoch: 103, batch: 2800 // loss: 0.046\n", "epoch: 103, batch: 2900 // loss: 0.042\n", "epoch: 103, batch: 3000 // loss: 0.045\n", "epoch: 103, batch: 3100 // loss: 0.043\n", "epoch: 103, batch: 3200 // loss: 0.039\n", "epoch: 103, batch: 3300 // loss: 0.038\n", "epoch: 103, batch: 3400 // loss: 0.044\n", "epoch: 103, batch: 3500 // loss: 0.035\n", "epoch: 103, batch: 3600 // loss: 0.043\n", "epoch: 103, batch: 3700 // loss: 0.043\n", "\n", "epoch: 104, batch: 0 // loss: 0.053\n", "epoch: 104, batch: 100 // loss: 0.046\n", "epoch: 104, batch: 200 // loss: 0.043\n", "epoch: 104, batch: 300 // loss: 0.049\n", "epoch: 104, batch: 400 // loss: 0.046\n", "epoch: 104, batch: 500 // loss: 0.040\n", "epoch: 104, batch: 600 // loss: 0.040\n", "epoch: 104, batch: 700 // loss: 0.044\n", "epoch: 104, batch: 800 // loss: 0.042\n", "epoch: 104, batch: 900 // loss: 0.049\n", "epoch: 104, batch: 1000 // loss: 0.046\n", "epoch: 104, batch: 1100 // loss: 0.042\n", "epoch: 104, batch: 1200 // loss: 0.044\n", "epoch: 104, batch: 1300 // loss: 0.046\n", "epoch: 104, batch: 1400 // loss: 0.043\n", "epoch: 104, batch: 1500 // loss: 0.048\n", "epoch: 104, batch: 1600 // loss: 0.052\n", "epoch: 104, batch: 1700 // loss: 0.045\n", "epoch: 104, batch: 1800 // loss: 0.053\n", "epoch: 104, batch: 1900 // loss: 0.045\n", "epoch: 104, batch: 2000 // loss: 0.047\n", "epoch: 104, batch: 2100 // loss: 0.046\n", "epoch: 104, batch: 2200 // loss: 0.050\n", "epoch: 104, batch: 2300 // loss: 0.049\n", "epoch: 104, batch: 2400 // loss: 0.042\n", "epoch: 104, batch: 2500 // loss: 0.042\n", "epoch: 104, batch: 2600 // loss: 0.045\n", "epoch: 104, batch: 2700 // loss: 0.042\n", "epoch: 104, batch: 2800 // loss: 0.046\n", "epoch: 104, batch: 2900 // loss: 0.042\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 104, batch: 3000 // loss: 0.045\n", "epoch: 104, batch: 3100 // loss: 0.043\n", "epoch: 104, batch: 3200 // loss: 0.039\n", "epoch: 104, batch: 3300 // loss: 0.038\n", "epoch: 104, batch: 3400 // loss: 0.044\n", "epoch: 104, batch: 3500 // loss: 0.035\n", "epoch: 104, batch: 3600 // loss: 0.043\n", "epoch: 104, batch: 3700 // loss: 0.043\n", "\n", "epoch: 105, batch: 0 // loss: 0.053\n", "epoch: 105, batch: 100 // loss: 0.046\n", "epoch: 105, batch: 200 // loss: 0.043\n", "epoch: 105, batch: 300 // loss: 0.049\n", "epoch: 105, batch: 400 // loss: 0.046\n", "epoch: 105, batch: 500 // loss: 0.040\n", "epoch: 105, batch: 600 // loss: 0.040\n", "epoch: 105, batch: 700 // loss: 0.044\n", "epoch: 105, batch: 800 // loss: 0.042\n", "epoch: 105, batch: 900 // loss: 0.049\n", "epoch: 105, batch: 1000 // loss: 0.046\n", "epoch: 105, batch: 1100 // loss: 0.042\n", "epoch: 105, batch: 1200 // loss: 0.044\n", "epoch: 105, batch: 1300 // loss: 0.046\n", "epoch: 105, batch: 1400 // loss: 0.043\n", "epoch: 105, batch: 1500 // loss: 0.048\n", "epoch: 105, batch: 1600 // loss: 0.052\n", "epoch: 105, batch: 1700 // loss: 0.045\n", "epoch: 105, batch: 1800 // loss: 0.053\n", "epoch: 105, batch: 1900 // loss: 0.045\n", "epoch: 105, batch: 2000 // loss: 0.047\n", "epoch: 105, batch: 2100 // loss: 0.046\n", "epoch: 105, batch: 2200 // loss: 0.050\n", "epoch: 105, batch: 2300 // loss: 0.049\n", "epoch: 105, batch: 2400 // loss: 0.042\n", "epoch: 105, batch: 2500 // loss: 0.042\n", "epoch: 105, batch: 2600 // loss: 0.045\n", "epoch: 105, batch: 2700 // loss: 0.042\n", "epoch: 105, batch: 2800 // loss: 0.046\n", "epoch: 105, batch: 2900 // loss: 0.042\n", "epoch: 105, batch: 3000 // loss: 0.045\n", "epoch: 105, batch: 3100 // loss: 0.043\n", "epoch: 105, batch: 3200 // loss: 0.039\n", "epoch: 105, batch: 3300 // loss: 0.038\n", "epoch: 105, batch: 3400 // loss: 0.044\n", "epoch: 105, batch: 3500 // loss: 0.035\n", "epoch: 105, batch: 3600 // loss: 0.043\n", "epoch: 105, batch: 3700 // loss: 0.043\n", "\n", "epoch: 106, batch: 0 // loss: 0.053\n", "epoch: 106, batch: 100 // loss: 0.046\n", "epoch: 106, batch: 200 // loss: 0.043\n", "epoch: 106, batch: 300 // loss: 0.049\n", "epoch: 106, batch: 400 // loss: 0.046\n", "epoch: 106, batch: 500 // loss: 0.040\n", "epoch: 106, batch: 600 // loss: 0.040\n", "epoch: 106, batch: 700 // loss: 0.044\n", "epoch: 106, batch: 800 // loss: 0.042\n", "epoch: 106, batch: 900 // loss: 0.049\n", "epoch: 106, batch: 1000 // loss: 0.046\n", "epoch: 106, batch: 1100 // loss: 0.042\n", "epoch: 106, batch: 1200 // loss: 0.044\n", "epoch: 106, batch: 1300 // loss: 0.046\n", "epoch: 106, batch: 1400 // loss: 0.043\n", "epoch: 106, batch: 1500 // loss: 0.048\n", "epoch: 106, batch: 1600 // loss: 0.052\n", "epoch: 106, batch: 1700 // loss: 0.045\n", "epoch: 106, batch: 1800 // loss: 0.053\n", "epoch: 106, batch: 1900 // loss: 0.045\n", "epoch: 106, batch: 2000 // loss: 0.047\n", "epoch: 106, batch: 2100 // loss: 0.046\n", "epoch: 106, batch: 2200 // loss: 0.050\n", "epoch: 106, batch: 2300 // loss: 0.049\n", "epoch: 106, batch: 2400 // loss: 0.042\n", "epoch: 106, batch: 2500 // loss: 0.042\n", "epoch: 106, batch: 2600 // loss: 0.045\n", "epoch: 106, batch: 2700 // loss: 0.042\n", "epoch: 106, batch: 2800 // loss: 0.046\n", "epoch: 106, batch: 2900 // loss: 0.042\n", "epoch: 106, batch: 3000 // loss: 0.045\n", "epoch: 106, batch: 3100 // loss: 0.043\n", "epoch: 106, batch: 3200 // loss: 0.039\n", "epoch: 106, batch: 3300 // loss: 0.038\n", "epoch: 106, batch: 3400 // loss: 0.044\n", "epoch: 106, batch: 3500 // loss: 0.035\n", "epoch: 106, batch: 3600 // loss: 0.043\n", "epoch: 106, batch: 3700 // loss: 0.043\n", "\n", "epoch: 107, batch: 0 // loss: 0.053\n", "epoch: 107, batch: 100 // loss: 0.046\n", "epoch: 107, batch: 200 // loss: 0.043\n", "epoch: 107, batch: 300 // loss: 0.049\n", "epoch: 107, batch: 400 // loss: 0.046\n", "epoch: 107, batch: 500 // loss: 0.040\n", "epoch: 107, batch: 600 // loss: 0.040\n", "epoch: 107, batch: 700 // loss: 0.044\n", "epoch: 107, batch: 800 // loss: 0.042\n", "epoch: 107, batch: 900 // loss: 0.049\n", "epoch: 107, batch: 1000 // loss: 0.046\n", "epoch: 107, batch: 1100 // loss: 0.042\n", "epoch: 107, batch: 1200 // loss: 0.044\n", "epoch: 107, batch: 1300 // loss: 0.046\n", "epoch: 107, batch: 1400 // loss: 0.043\n", "epoch: 107, batch: 1500 // loss: 0.048\n", "epoch: 107, batch: 1600 // loss: 0.052\n", "epoch: 107, batch: 1700 // loss: 0.045\n", "epoch: 107, batch: 1800 // loss: 0.053\n", "epoch: 107, batch: 1900 // loss: 0.045\n", "epoch: 107, batch: 2000 // loss: 0.047\n", "epoch: 107, batch: 2100 // loss: 0.046\n", "epoch: 107, batch: 2200 // loss: 0.050\n", "epoch: 107, batch: 2300 // loss: 0.049\n", "epoch: 107, batch: 2400 // loss: 0.042\n", "epoch: 107, batch: 2500 // loss: 0.042\n", "epoch: 107, batch: 2600 // loss: 0.045\n", "epoch: 107, batch: 2700 // loss: 0.042\n", "epoch: 107, batch: 2800 // loss: 0.046\n", "epoch: 107, batch: 2900 // loss: 0.042\n", "epoch: 107, batch: 3000 // loss: 0.045\n", "epoch: 107, batch: 3100 // loss: 0.043\n", "epoch: 107, batch: 3200 // loss: 0.039\n", "epoch: 107, batch: 3300 // loss: 0.038\n", "epoch: 107, batch: 3400 // loss: 0.044\n", "epoch: 107, batch: 3500 // loss: 0.035\n", "epoch: 107, batch: 3600 // loss: 0.043\n", "epoch: 107, batch: 3700 // loss: 0.043\n", "\n", "epoch: 108, batch: 0 // loss: 0.053\n", "epoch: 108, batch: 100 // loss: 0.046\n", "epoch: 108, batch: 200 // loss: 0.043\n", "epoch: 108, batch: 300 // loss: 0.049\n", "epoch: 108, batch: 400 // loss: 0.046\n", "epoch: 108, batch: 500 // loss: 0.040\n", "epoch: 108, batch: 600 // loss: 0.040\n", "epoch: 108, batch: 700 // loss: 0.044\n", "epoch: 108, batch: 800 // loss: 0.042\n", "epoch: 108, batch: 900 // loss: 0.049\n", "epoch: 108, batch: 1000 // loss: 0.046\n", "epoch: 108, batch: 1100 // loss: 0.042\n", "epoch: 108, batch: 1200 // loss: 0.044\n", "epoch: 108, batch: 1300 // loss: 0.046\n", "epoch: 108, batch: 1400 // loss: 0.043\n", "epoch: 108, batch: 1500 // loss: 0.048\n", "epoch: 108, batch: 1600 // loss: 0.052\n", "epoch: 108, batch: 1700 // loss: 0.045\n", "epoch: 108, batch: 1800 // loss: 0.053\n", "epoch: 108, batch: 1900 // loss: 0.045\n", "epoch: 108, batch: 2000 // loss: 0.047\n", "epoch: 108, batch: 2100 // loss: 0.046\n", "epoch: 108, batch: 2200 // loss: 0.050\n", "epoch: 108, batch: 2300 // loss: 0.049\n", "epoch: 108, batch: 2400 // loss: 0.042\n", "epoch: 108, batch: 2500 // loss: 0.042\n", "epoch: 108, batch: 2600 // loss: 0.045\n", "epoch: 108, batch: 2700 // loss: 0.042\n", "epoch: 108, batch: 2800 // loss: 0.046\n", "epoch: 108, batch: 2900 // loss: 0.042\n", "epoch: 108, batch: 3000 // loss: 0.045\n", "epoch: 108, batch: 3100 // loss: 0.043\n", "epoch: 108, batch: 3200 // loss: 0.039\n", "epoch: 108, batch: 3300 // loss: 0.038\n", "epoch: 108, batch: 3400 // loss: 0.044\n", "epoch: 108, batch: 3500 // loss: 0.035\n", "epoch: 108, batch: 3600 // loss: 0.043\n", "epoch: 108, batch: 3700 // loss: 0.043\n", "\n", "epoch: 109, batch: 0 // loss: 0.053\n", "epoch: 109, batch: 100 // loss: 0.046\n", "epoch: 109, batch: 200 // loss: 0.043\n", "epoch: 109, batch: 300 // loss: 0.049\n", "epoch: 109, batch: 400 // loss: 0.046\n", "epoch: 109, batch: 500 // loss: 0.040\n", "epoch: 109, batch: 600 // loss: 0.040\n", "epoch: 109, batch: 700 // loss: 0.044\n", "epoch: 109, batch: 800 // loss: 0.042\n", "epoch: 109, batch: 900 // loss: 0.049\n", "epoch: 109, batch: 1000 // loss: 0.046\n", "epoch: 109, batch: 1100 // loss: 0.042\n", "epoch: 109, batch: 1200 // loss: 0.044\n", "epoch: 109, batch: 1300 // loss: 0.046\n", "epoch: 109, batch: 1400 // loss: 0.043\n", "epoch: 109, batch: 1500 // loss: 0.048\n", "epoch: 109, batch: 1600 // loss: 0.052\n", "epoch: 109, batch: 1700 // loss: 0.045\n", "epoch: 109, batch: 1800 // loss: 0.053\n", "epoch: 109, batch: 1900 // loss: 0.045\n", "epoch: 109, batch: 2000 // loss: 0.047\n", "epoch: 109, batch: 2100 // loss: 0.046\n", "epoch: 109, batch: 2200 // loss: 0.050\n", "epoch: 109, batch: 2300 // loss: 0.049\n", "epoch: 109, batch: 2400 // loss: 0.042\n", "epoch: 109, batch: 2500 // loss: 0.042\n", "epoch: 109, batch: 2600 // loss: 0.045\n", "epoch: 109, batch: 2700 // loss: 0.042\n", "epoch: 109, batch: 2800 // loss: 0.046\n", "epoch: 109, batch: 2900 // loss: 0.042\n", "epoch: 109, batch: 3000 // loss: 0.045\n", "epoch: 109, batch: 3100 // loss: 0.043\n", "epoch: 109, batch: 3200 // loss: 0.039\n", "epoch: 109, batch: 3300 // loss: 0.038\n", "epoch: 109, batch: 3400 // loss: 0.044\n", "epoch: 109, batch: 3500 // loss: 0.035\n", "epoch: 109, batch: 3600 // loss: 0.043\n", "epoch: 109, batch: 3700 // loss: 0.043\n", "\n", "epoch: 110, batch: 0 // loss: 0.053\n", "epoch: 110, batch: 100 // loss: 0.046\n", "epoch: 110, batch: 200 // loss: 0.043\n", "epoch: 110, batch: 300 // loss: 0.049\n", "epoch: 110, batch: 400 // loss: 0.046\n", "epoch: 110, batch: 500 // loss: 0.040\n", "epoch: 110, batch: 600 // loss: 0.040\n", "epoch: 110, batch: 700 // loss: 0.044\n", "epoch: 110, batch: 800 // loss: 0.042\n", "epoch: 110, batch: 900 // loss: 0.049\n", "epoch: 110, batch: 1000 // loss: 0.046\n", "epoch: 110, batch: 1100 // loss: 0.042\n", "epoch: 110, batch: 1200 // loss: 0.044\n", "epoch: 110, batch: 1300 // loss: 0.046\n", "epoch: 110, batch: 1400 // loss: 0.043\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 110, batch: 1500 // loss: 0.048\n", "epoch: 110, batch: 1600 // loss: 0.052\n", "epoch: 110, batch: 1700 // loss: 0.045\n", "epoch: 110, batch: 1800 // loss: 0.053\n", "epoch: 110, batch: 1900 // loss: 0.045\n", "epoch: 110, batch: 2000 // loss: 0.047\n", "epoch: 110, batch: 2100 // loss: 0.046\n", "epoch: 110, batch: 2200 // loss: 0.050\n", "epoch: 110, batch: 2300 // loss: 0.049\n", "epoch: 110, batch: 2400 // loss: 0.042\n", "epoch: 110, batch: 2500 // loss: 0.042\n", "epoch: 110, batch: 2600 // loss: 0.045\n", "epoch: 110, batch: 2700 // loss: 0.042\n", "epoch: 110, batch: 2800 // loss: 0.046\n", "epoch: 110, batch: 2900 // loss: 0.042\n", "epoch: 110, batch: 3000 // loss: 0.045\n", "epoch: 110, batch: 3100 // loss: 0.043\n", "epoch: 110, batch: 3200 // loss: 0.039\n", "epoch: 110, batch: 3300 // loss: 0.038\n", "epoch: 110, batch: 3400 // loss: 0.044\n", "epoch: 110, batch: 3500 // loss: 0.035\n", "epoch: 110, batch: 3600 // loss: 0.043\n", "epoch: 110, batch: 3700 // loss: 0.043\n", "\n", "epoch: 111, batch: 0 // loss: 0.053\n", "epoch: 111, batch: 100 // loss: 0.046\n", "epoch: 111, batch: 200 // loss: 0.043\n", "epoch: 111, batch: 300 // loss: 0.049\n", "epoch: 111, batch: 400 // loss: 0.046\n", "epoch: 111, batch: 500 // loss: 0.040\n", "epoch: 111, batch: 600 // loss: 0.040\n", "epoch: 111, batch: 700 // loss: 0.044\n", "epoch: 111, batch: 800 // loss: 0.042\n", "epoch: 111, batch: 900 // loss: 0.049\n", "epoch: 111, batch: 1000 // loss: 0.046\n", "epoch: 111, batch: 1100 // loss: 0.042\n", "epoch: 111, batch: 1200 // loss: 0.044\n", "epoch: 111, batch: 1300 // loss: 0.046\n", "epoch: 111, batch: 1400 // loss: 0.043\n", "epoch: 111, batch: 1500 // loss: 0.048\n", "epoch: 111, batch: 1600 // loss: 0.052\n", "epoch: 111, batch: 1700 // loss: 0.045\n", "epoch: 111, batch: 1800 // loss: 0.053\n", "epoch: 111, batch: 1900 // loss: 0.045\n", "epoch: 111, batch: 2000 // loss: 0.047\n", "epoch: 111, batch: 2100 // loss: 0.046\n", "epoch: 111, batch: 2200 // loss: 0.050\n", "epoch: 111, batch: 2300 // loss: 0.049\n", "epoch: 111, batch: 2400 // loss: 0.042\n", "epoch: 111, batch: 2500 // loss: 0.042\n", "epoch: 111, batch: 2600 // loss: 0.045\n", "epoch: 111, batch: 2700 // loss: 0.042\n", "epoch: 111, batch: 2800 // loss: 0.046\n", "epoch: 111, batch: 2900 // loss: 0.042\n", "epoch: 111, batch: 3000 // loss: 0.045\n", "epoch: 111, batch: 3100 // loss: 0.043\n", "epoch: 111, batch: 3200 // loss: 0.039\n", "epoch: 111, batch: 3300 // loss: 0.038\n", "epoch: 111, batch: 3400 // loss: 0.044\n", "epoch: 111, batch: 3500 // loss: 0.035\n", "epoch: 111, batch: 3600 // loss: 0.043\n", "epoch: 111, batch: 3700 // loss: 0.043\n", "\n", "epoch: 112, batch: 0 // loss: 0.053\n", "epoch: 112, batch: 100 // loss: 0.046\n", "epoch: 112, batch: 200 // loss: 0.043\n", "epoch: 112, batch: 300 // loss: 0.049\n", "epoch: 112, batch: 400 // loss: 0.046\n", "epoch: 112, batch: 500 // loss: 0.040\n", "epoch: 112, batch: 600 // loss: 0.040\n", "epoch: 112, batch: 700 // loss: 0.044\n", "epoch: 112, batch: 800 // loss: 0.042\n", "epoch: 112, batch: 900 // loss: 0.049\n", "epoch: 112, batch: 1000 // loss: 0.046\n", "epoch: 112, batch: 1100 // loss: 0.042\n", "epoch: 112, batch: 1200 // loss: 0.044\n", "epoch: 112, batch: 1300 // loss: 0.046\n", "epoch: 112, batch: 1400 // loss: 0.043\n", "epoch: 112, batch: 1500 // loss: 0.048\n", "epoch: 112, batch: 1600 // loss: 0.052\n", "epoch: 112, batch: 1700 // loss: 0.045\n", "epoch: 112, batch: 1800 // loss: 0.053\n", "epoch: 112, batch: 1900 // loss: 0.045\n", "epoch: 112, batch: 2000 // loss: 0.047\n", "epoch: 112, batch: 2100 // loss: 0.046\n", "epoch: 112, batch: 2200 // loss: 0.050\n", "epoch: 112, batch: 2300 // loss: 0.049\n", "epoch: 112, batch: 2400 // loss: 0.042\n", "epoch: 112, batch: 2500 // loss: 0.042\n", "epoch: 112, batch: 2600 // loss: 0.045\n", "epoch: 112, batch: 2700 // loss: 0.042\n", "epoch: 112, batch: 2800 // loss: 0.046\n", "epoch: 112, batch: 2900 // loss: 0.042\n", "epoch: 112, batch: 3000 // loss: 0.045\n", "epoch: 112, batch: 3100 // loss: 0.043\n", "epoch: 112, batch: 3200 // loss: 0.039\n", "epoch: 112, batch: 3300 // loss: 0.038\n", "epoch: 112, batch: 3400 // loss: 0.044\n", "epoch: 112, batch: 3500 // loss: 0.035\n", "epoch: 112, batch: 3600 // loss: 0.043\n", "epoch: 112, batch: 3700 // loss: 0.043\n", "\n", "epoch: 113, batch: 0 // loss: 0.053\n", "epoch: 113, batch: 100 // loss: 0.046\n", "epoch: 113, batch: 200 // loss: 0.043\n", "epoch: 113, batch: 300 // loss: 0.049\n", "epoch: 113, batch: 400 // loss: 0.046\n", "epoch: 113, batch: 500 // loss: 0.040\n", "epoch: 113, batch: 600 // loss: 0.040\n", "epoch: 113, batch: 700 // loss: 0.044\n", "epoch: 113, batch: 800 // loss: 0.042\n", "epoch: 113, batch: 900 // loss: 0.049\n", "epoch: 113, batch: 1000 // loss: 0.046\n", "epoch: 113, batch: 1100 // loss: 0.042\n", "epoch: 113, batch: 1200 // loss: 0.044\n", "epoch: 113, batch: 1300 // loss: 0.046\n", "epoch: 113, batch: 1400 // loss: 0.043\n", "epoch: 113, batch: 1500 // loss: 0.048\n", "epoch: 113, batch: 1600 // loss: 0.052\n", "epoch: 113, batch: 1700 // loss: 0.045\n", "epoch: 113, batch: 1800 // loss: 0.053\n", "epoch: 113, batch: 1900 // loss: 0.045\n", "epoch: 113, batch: 2000 // loss: 0.047\n", "epoch: 113, batch: 2100 // loss: 0.046\n", "epoch: 113, batch: 2200 // loss: 0.050\n", "epoch: 113, batch: 2300 // loss: 0.049\n", "epoch: 113, batch: 2400 // loss: 0.042\n", "epoch: 113, batch: 2500 // loss: 0.042\n", "epoch: 113, batch: 2600 // loss: 0.045\n", "epoch: 113, batch: 2700 // loss: 0.042\n", "epoch: 113, batch: 2800 // loss: 0.046\n", "epoch: 113, batch: 2900 // loss: 0.042\n", "epoch: 113, batch: 3000 // loss: 0.045\n", "epoch: 113, batch: 3100 // loss: 0.043\n", "epoch: 113, batch: 3200 // loss: 0.039\n", "epoch: 113, batch: 3300 // loss: 0.038\n", "epoch: 113, batch: 3400 // loss: 0.044\n", "epoch: 113, batch: 3500 // loss: 0.035\n", "epoch: 113, batch: 3600 // loss: 0.043\n", "epoch: 113, batch: 3700 // loss: 0.043\n", "\n", "epoch: 114, batch: 0 // loss: 0.053\n", "epoch: 114, batch: 100 // loss: 0.046\n", "epoch: 114, batch: 200 // loss: 0.043\n", "epoch: 114, batch: 300 // loss: 0.049\n", "epoch: 114, batch: 400 // loss: 0.046\n", "epoch: 114, batch: 500 // loss: 0.040\n", "epoch: 114, batch: 600 // loss: 0.040\n", "epoch: 114, batch: 700 // loss: 0.044\n", "epoch: 114, batch: 800 // loss: 0.042\n", "epoch: 114, batch: 900 // loss: 0.049\n", "epoch: 114, batch: 1000 // loss: 0.046\n", "epoch: 114, batch: 1100 // loss: 0.042\n", "epoch: 114, batch: 1200 // loss: 0.044\n", "epoch: 114, batch: 1300 // loss: 0.046\n", "epoch: 114, batch: 1400 // loss: 0.043\n", "epoch: 114, batch: 1500 // loss: 0.048\n", "epoch: 114, batch: 1600 // loss: 0.052\n", "epoch: 114, batch: 1700 // loss: 0.045\n", "epoch: 114, batch: 1800 // loss: 0.053\n", "epoch: 114, batch: 1900 // loss: 0.045\n", "epoch: 114, batch: 2000 // loss: 0.047\n", "epoch: 114, batch: 2100 // loss: 0.046\n", "epoch: 114, batch: 2200 // loss: 0.050\n", "epoch: 114, batch: 2300 // loss: 0.049\n", "epoch: 114, batch: 2400 // loss: 0.042\n", "epoch: 114, batch: 2500 // loss: 0.042\n", "epoch: 114, batch: 2600 // loss: 0.045\n", "epoch: 114, batch: 2700 // loss: 0.042\n", "epoch: 114, batch: 2800 // loss: 0.046\n", "epoch: 114, batch: 2900 // loss: 0.042\n", "epoch: 114, batch: 3000 // loss: 0.045\n", "epoch: 114, batch: 3100 // loss: 0.043\n", "epoch: 114, batch: 3200 // loss: 0.039\n", "epoch: 114, batch: 3300 // loss: 0.038\n", "epoch: 114, batch: 3400 // loss: 0.044\n", "epoch: 114, batch: 3500 // loss: 0.035\n", "epoch: 114, batch: 3600 // loss: 0.043\n", "epoch: 114, batch: 3700 // loss: 0.043\n", "\n", "epoch: 115, batch: 0 // loss: 0.053\n", "epoch: 115, batch: 100 // loss: 0.046\n", "epoch: 115, batch: 200 // loss: 0.043\n", "epoch: 115, batch: 300 // loss: 0.049\n", "epoch: 115, batch: 400 // loss: 0.046\n", "epoch: 115, batch: 500 // loss: 0.040\n", "epoch: 115, batch: 600 // loss: 0.040\n", "epoch: 115, batch: 700 // loss: 0.044\n", "epoch: 115, batch: 800 // loss: 0.042\n", "epoch: 115, batch: 900 // loss: 0.049\n", "epoch: 115, batch: 1000 // loss: 0.046\n", "epoch: 115, batch: 1100 // loss: 0.042\n", "epoch: 115, batch: 1200 // loss: 0.044\n", "epoch: 115, batch: 1300 // loss: 0.046\n", "epoch: 115, batch: 1400 // loss: 0.043\n", "epoch: 115, batch: 1500 // loss: 0.048\n", "epoch: 115, batch: 1600 // loss: 0.052\n", "epoch: 115, batch: 1700 // loss: 0.045\n", "epoch: 115, batch: 1800 // loss: 0.053\n", "epoch: 115, batch: 1900 // loss: 0.045\n", "epoch: 115, batch: 2000 // loss: 0.047\n", "epoch: 115, batch: 2100 // loss: 0.046\n", "epoch: 115, batch: 2200 // loss: 0.050\n", "epoch: 115, batch: 2300 // loss: 0.049\n", "epoch: 115, batch: 2400 // loss: 0.042\n", "epoch: 115, batch: 2500 // loss: 0.042\n", "epoch: 115, batch: 2600 // loss: 0.045\n", "epoch: 115, batch: 2700 // loss: 0.042\n", "epoch: 115, batch: 2800 // loss: 0.046\n", "epoch: 115, batch: 2900 // loss: 0.042\n", "epoch: 115, batch: 3000 // loss: 0.045\n", "epoch: 115, batch: 3100 // loss: 0.043\n", "epoch: 115, batch: 3200 // loss: 0.039\n", "epoch: 115, batch: 3300 // loss: 0.038\n", "epoch: 115, batch: 3400 // loss: 0.044\n", "epoch: 115, batch: 3500 // loss: 0.035\n", "epoch: 115, batch: 3600 // loss: 0.043\n", "epoch: 115, batch: 3700 // loss: 0.043\n", "\n", "epoch: 116, batch: 0 // loss: 0.053\n", "epoch: 116, batch: 100 // loss: 0.046\n", "epoch: 116, batch: 200 // loss: 0.043\n", "epoch: 116, batch: 300 // loss: 0.049\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 116, batch: 400 // loss: 0.046\n", "epoch: 116, batch: 500 // loss: 0.040\n", "epoch: 116, batch: 600 // loss: 0.040\n", "epoch: 116, batch: 700 // loss: 0.044\n", "epoch: 116, batch: 800 // loss: 0.042\n", "epoch: 116, batch: 900 // loss: 0.049\n", "epoch: 116, batch: 1000 // loss: 0.046\n", "epoch: 116, batch: 1100 // loss: 0.042\n", "epoch: 116, batch: 1200 // loss: 0.044\n", "epoch: 116, batch: 1300 // loss: 0.046\n", "epoch: 116, batch: 1400 // loss: 0.043\n", "epoch: 116, batch: 1500 // loss: 0.048\n", "epoch: 116, batch: 1600 // loss: 0.052\n", "epoch: 116, batch: 1700 // loss: 0.045\n", "epoch: 116, batch: 1800 // loss: 0.053\n", "epoch: 116, batch: 1900 // loss: 0.045\n", "epoch: 116, batch: 2000 // loss: 0.047\n", "epoch: 116, batch: 2100 // loss: 0.046\n", "epoch: 116, batch: 2200 // loss: 0.050\n", "epoch: 116, batch: 2300 // loss: 0.049\n", "epoch: 116, batch: 2400 // loss: 0.042\n", "epoch: 116, batch: 2500 // loss: 0.042\n", "epoch: 116, batch: 2600 // loss: 0.045\n", "epoch: 116, batch: 2700 // loss: 0.042\n", "epoch: 116, batch: 2800 // loss: 0.046\n", "epoch: 116, batch: 2900 // loss: 0.042\n", "epoch: 116, batch: 3000 // loss: 0.045\n", "epoch: 116, batch: 3100 // loss: 0.043\n", "epoch: 116, batch: 3200 // loss: 0.039\n", "epoch: 116, batch: 3300 // loss: 0.038\n", "epoch: 116, batch: 3400 // loss: 0.044\n", "epoch: 116, batch: 3500 // loss: 0.035\n", "epoch: 116, batch: 3600 // loss: 0.043\n", "epoch: 116, batch: 3700 // loss: 0.043\n", "\n", "epoch: 117, batch: 0 // loss: 0.053\n", "epoch: 117, batch: 100 // loss: 0.046\n", "epoch: 117, batch: 200 // loss: 0.043\n", "epoch: 117, batch: 300 // loss: 0.049\n", "epoch: 117, batch: 400 // loss: 0.046\n", "epoch: 117, batch: 500 // loss: 0.040\n", "epoch: 117, batch: 600 // loss: 0.040\n", "epoch: 117, batch: 700 // loss: 0.044\n", "epoch: 117, batch: 800 // loss: 0.042\n", "epoch: 117, batch: 900 // loss: 0.049\n", "epoch: 117, batch: 1000 // loss: 0.046\n", "epoch: 117, batch: 1100 // loss: 0.042\n", "epoch: 117, batch: 1200 // loss: 0.044\n", "epoch: 117, batch: 1300 // loss: 0.046\n", "epoch: 117, batch: 1400 // loss: 0.043\n", "epoch: 117, batch: 1500 // loss: 0.048\n", "epoch: 117, batch: 1600 // loss: 0.052\n", "epoch: 117, batch: 1700 // loss: 0.045\n", "epoch: 117, batch: 1800 // loss: 0.053\n", "epoch: 117, batch: 1900 // loss: 0.045\n", "epoch: 117, batch: 2000 // loss: 0.047\n", "epoch: 117, batch: 2100 // loss: 0.046\n", "epoch: 117, batch: 2200 // loss: 0.050\n", "epoch: 117, batch: 2300 // loss: 0.049\n", "epoch: 117, batch: 2400 // loss: 0.042\n", "epoch: 117, batch: 2500 // loss: 0.042\n", "epoch: 117, batch: 2600 // loss: 0.045\n", "epoch: 117, batch: 2700 // loss: 0.042\n", "epoch: 117, batch: 2800 // loss: 0.046\n", "epoch: 117, batch: 2900 // loss: 0.042\n", "epoch: 117, batch: 3000 // loss: 0.045\n", "epoch: 117, batch: 3100 // loss: 0.043\n", "epoch: 117, batch: 3200 // loss: 0.039\n", "epoch: 117, batch: 3300 // loss: 0.038\n", "epoch: 117, batch: 3400 // loss: 0.044\n", "epoch: 117, batch: 3500 // loss: 0.035\n", "epoch: 117, batch: 3600 // loss: 0.043\n", "epoch: 117, batch: 3700 // loss: 0.043\n", "\n", "epoch: 118, batch: 0 // loss: 0.053\n", "epoch: 118, batch: 100 // loss: 0.046\n", "epoch: 118, batch: 200 // loss: 0.043\n", "epoch: 118, batch: 300 // loss: 0.049\n", "epoch: 118, batch: 400 // loss: 0.046\n", "epoch: 118, batch: 500 // loss: 0.040\n", "epoch: 118, batch: 600 // loss: 0.040\n", "epoch: 118, batch: 700 // loss: 0.044\n", "epoch: 118, batch: 800 // loss: 0.042\n", "epoch: 118, batch: 900 // loss: 0.049\n", "epoch: 118, batch: 1000 // loss: 0.046\n", "epoch: 118, batch: 1100 // loss: 0.042\n", "epoch: 118, batch: 1200 // loss: 0.044\n", "epoch: 118, batch: 1300 // loss: 0.046\n", "epoch: 118, batch: 1400 // loss: 0.043\n", "epoch: 118, batch: 1500 // loss: 0.048\n", "epoch: 118, batch: 1600 // loss: 0.052\n", "epoch: 118, batch: 1700 // loss: 0.045\n", "epoch: 118, batch: 1800 // loss: 0.053\n", "epoch: 118, batch: 1900 // loss: 0.045\n", "epoch: 118, batch: 2000 // loss: 0.047\n", "epoch: 118, batch: 2100 // loss: 0.046\n", "epoch: 118, batch: 2200 // loss: 0.050\n", "epoch: 118, batch: 2300 // loss: 0.049\n", "epoch: 118, batch: 2400 // loss: 0.042\n", "epoch: 118, batch: 2500 // loss: 0.042\n", "epoch: 118, batch: 2600 // loss: 0.045\n", "epoch: 118, batch: 2700 // loss: 0.042\n", "epoch: 118, batch: 2800 // loss: 0.046\n", "epoch: 118, batch: 2900 // loss: 0.042\n", "epoch: 118, batch: 3000 // loss: 0.045\n", "epoch: 118, batch: 3100 // loss: 0.043\n", "epoch: 118, batch: 3200 // loss: 0.039\n", "epoch: 118, batch: 3300 // loss: 0.038\n", "epoch: 118, batch: 3400 // loss: 0.044\n", "epoch: 118, batch: 3500 // loss: 0.035\n", "epoch: 118, batch: 3600 // loss: 0.043\n", "epoch: 118, batch: 3700 // loss: 0.043\n", "\n", "epoch: 119, batch: 0 // loss: 0.053\n", "epoch: 119, batch: 100 // loss: 0.046\n", "epoch: 119, batch: 200 // loss: 0.043\n", "epoch: 119, batch: 300 // loss: 0.049\n", "epoch: 119, batch: 400 // loss: 0.046\n", "epoch: 119, batch: 500 // loss: 0.040\n", "epoch: 119, batch: 600 // loss: 0.040\n", "epoch: 119, batch: 700 // loss: 0.044\n", "epoch: 119, batch: 800 // loss: 0.042\n", "epoch: 119, batch: 900 // loss: 0.049\n", "epoch: 119, batch: 1000 // loss: 0.046\n", "epoch: 119, batch: 1100 // loss: 0.042\n", "epoch: 119, batch: 1200 // loss: 0.044\n", "epoch: 119, batch: 1300 // loss: 0.046\n", "epoch: 119, batch: 1400 // loss: 0.043\n", "epoch: 119, batch: 1500 // loss: 0.048\n", "epoch: 119, batch: 1600 // loss: 0.052\n", "epoch: 119, batch: 1700 // loss: 0.045\n", "epoch: 119, batch: 1800 // loss: 0.053\n", "epoch: 119, batch: 1900 // loss: 0.045\n", "epoch: 119, batch: 2000 // loss: 0.047\n", "epoch: 119, batch: 2100 // loss: 0.046\n", "epoch: 119, batch: 2200 // loss: 0.050\n", "epoch: 119, batch: 2300 // loss: 0.049\n", "epoch: 119, batch: 2400 // loss: 0.042\n", "epoch: 119, batch: 2500 // loss: 0.042\n", "epoch: 119, batch: 2600 // loss: 0.045\n", "epoch: 119, batch: 2700 // loss: 0.042\n", "epoch: 119, batch: 2800 // loss: 0.046\n", "epoch: 119, batch: 2900 // loss: 0.042\n", "epoch: 119, batch: 3000 // loss: 0.045\n", "epoch: 119, batch: 3100 // loss: 0.043\n", "epoch: 119, batch: 3200 // loss: 0.039\n", "epoch: 119, batch: 3300 // loss: 0.038\n", "epoch: 119, batch: 3400 // loss: 0.044\n", "epoch: 119, batch: 3500 // loss: 0.035\n", "epoch: 119, batch: 3600 // loss: 0.043\n", "epoch: 119, batch: 3700 // loss: 0.043\n", "\n", "epoch: 120, batch: 0 // loss: 0.053\n", "epoch: 120, batch: 100 // loss: 0.046\n", "epoch: 120, batch: 200 // loss: 0.043\n", "epoch: 120, batch: 300 // loss: 0.049\n", "epoch: 120, batch: 400 // loss: 0.046\n", "epoch: 120, batch: 500 // loss: 0.040\n", "epoch: 120, batch: 600 // loss: 0.040\n", "epoch: 120, batch: 700 // loss: 0.044\n", "epoch: 120, batch: 800 // loss: 0.042\n", "epoch: 120, batch: 900 // loss: 0.049\n", "epoch: 120, batch: 1000 // loss: 0.046\n", "epoch: 120, batch: 1100 // loss: 0.042\n", "epoch: 120, batch: 1200 // loss: 0.044\n", "epoch: 120, batch: 1300 // loss: 0.046\n", "epoch: 120, batch: 1400 // loss: 0.043\n", "epoch: 120, batch: 1500 // loss: 0.048\n", "epoch: 120, batch: 1600 // loss: 0.052\n", "epoch: 120, batch: 1700 // loss: 0.045\n", "epoch: 120, batch: 1800 // loss: 0.053\n", "epoch: 120, batch: 1900 // loss: 0.045\n", "epoch: 120, batch: 2000 // loss: 0.047\n", "epoch: 120, batch: 2100 // loss: 0.046\n", "epoch: 120, batch: 2200 // loss: 0.050\n", "epoch: 120, batch: 2300 // loss: 0.049\n", "epoch: 120, batch: 2400 // loss: 0.042\n", "epoch: 120, batch: 2500 // loss: 0.042\n", "epoch: 120, batch: 2600 // loss: 0.045\n", "epoch: 120, batch: 2700 // loss: 0.042\n", "epoch: 120, batch: 2800 // loss: 0.046\n", "epoch: 120, batch: 2900 // loss: 0.042\n", "epoch: 120, batch: 3000 // loss: 0.045\n", "epoch: 120, batch: 3100 // loss: 0.043\n", "epoch: 120, batch: 3200 // loss: 0.039\n", "epoch: 120, batch: 3300 // loss: 0.038\n", "epoch: 120, batch: 3400 // loss: 0.044\n", "epoch: 120, batch: 3500 // loss: 0.035\n", "epoch: 120, batch: 3600 // loss: 0.043\n", "epoch: 120, batch: 3700 // loss: 0.043\n", "\n", "epoch: 121, batch: 0 // loss: 0.053\n", "epoch: 121, batch: 100 // loss: 0.046\n", "epoch: 121, batch: 200 // loss: 0.043\n", "epoch: 121, batch: 300 // loss: 0.049\n", "epoch: 121, batch: 400 // loss: 0.046\n", "epoch: 121, batch: 500 // loss: 0.040\n", "epoch: 121, batch: 600 // loss: 0.040\n", "epoch: 121, batch: 700 // loss: 0.044\n", "epoch: 121, batch: 800 // loss: 0.042\n", "epoch: 121, batch: 900 // loss: 0.049\n", "epoch: 121, batch: 1000 // loss: 0.046\n", "epoch: 121, batch: 1100 // loss: 0.042\n", "epoch: 121, batch: 1200 // loss: 0.044\n", "epoch: 121, batch: 1300 // loss: 0.046\n", "epoch: 121, batch: 1400 // loss: 0.043\n", "epoch: 121, batch: 1500 // loss: 0.048\n", "epoch: 121, batch: 1600 // loss: 0.052\n", "epoch: 121, batch: 1700 // loss: 0.045\n", "epoch: 121, batch: 1800 // loss: 0.053\n", "epoch: 121, batch: 1900 // loss: 0.045\n", "epoch: 121, batch: 2000 // loss: 0.047\n", "epoch: 121, batch: 2100 // loss: 0.046\n", "epoch: 121, batch: 2200 // loss: 0.050\n", "epoch: 121, batch: 2300 // loss: 0.049\n", "epoch: 121, batch: 2400 // loss: 0.042\n", "epoch: 121, batch: 2500 // loss: 0.042\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 121, batch: 2600 // loss: 0.045\n", "epoch: 121, batch: 2700 // loss: 0.042\n", "epoch: 121, batch: 2800 // loss: 0.046\n", "epoch: 121, batch: 2900 // loss: 0.042\n", "epoch: 121, batch: 3000 // loss: 0.045\n", "epoch: 121, batch: 3100 // loss: 0.043\n", "epoch: 121, batch: 3200 // loss: 0.039\n", "epoch: 121, batch: 3300 // loss: 0.038\n", "epoch: 121, batch: 3400 // loss: 0.044\n", "epoch: 121, batch: 3500 // loss: 0.035\n", "epoch: 121, batch: 3600 // loss: 0.043\n", "epoch: 121, batch: 3700 // loss: 0.043\n", "\n", "epoch: 122, batch: 0 // loss: 0.053\n", "epoch: 122, batch: 100 // loss: 0.046\n", "epoch: 122, batch: 200 // loss: 0.043\n", "epoch: 122, batch: 300 // loss: 0.049\n", "epoch: 122, batch: 400 // loss: 0.046\n", "epoch: 122, batch: 500 // loss: 0.040\n", "epoch: 122, batch: 600 // loss: 0.040\n", "epoch: 122, batch: 700 // loss: 0.044\n", "epoch: 122, batch: 800 // loss: 0.042\n", "epoch: 122, batch: 900 // loss: 0.049\n", "epoch: 122, batch: 1000 // loss: 0.046\n", "epoch: 122, batch: 1100 // loss: 0.042\n", "epoch: 122, batch: 1200 // loss: 0.044\n", "epoch: 122, batch: 1300 // loss: 0.046\n", "epoch: 122, batch: 1400 // loss: 0.043\n", "epoch: 122, batch: 1500 // loss: 0.048\n", "epoch: 122, batch: 1600 // loss: 0.052\n", "epoch: 122, batch: 1700 // loss: 0.045\n", "epoch: 122, batch: 1800 // loss: 0.053\n", "epoch: 122, batch: 1900 // loss: 0.045\n", "epoch: 122, batch: 2000 // loss: 0.047\n", "epoch: 122, batch: 2100 // loss: 0.046\n", "epoch: 122, batch: 2200 // loss: 0.050\n", "epoch: 122, batch: 2300 // loss: 0.049\n", "epoch: 122, batch: 2400 // loss: 0.042\n", "epoch: 122, batch: 2500 // loss: 0.042\n", "epoch: 122, batch: 2600 // loss: 0.045\n", "epoch: 122, batch: 2700 // loss: 0.042\n", "epoch: 122, batch: 2800 // loss: 0.046\n", "epoch: 122, batch: 2900 // loss: 0.042\n", "epoch: 122, batch: 3000 // loss: 0.045\n", "epoch: 122, batch: 3100 // loss: 0.043\n", "epoch: 122, batch: 3200 // loss: 0.039\n", "epoch: 122, batch: 3300 // loss: 0.038\n", "epoch: 122, batch: 3400 // loss: 0.044\n", "epoch: 122, batch: 3500 // loss: 0.035\n", "epoch: 122, batch: 3600 // loss: 0.043\n", "epoch: 122, batch: 3700 // loss: 0.043\n", "\n", "epoch: 123, batch: 0 // loss: 0.053\n", "epoch: 123, batch: 100 // loss: 0.046\n", "epoch: 123, batch: 200 // loss: 0.043\n", "epoch: 123, batch: 300 // loss: 0.049\n", "epoch: 123, batch: 400 // loss: 0.046\n", "epoch: 123, batch: 500 // loss: 0.040\n", "epoch: 123, batch: 600 // loss: 0.040\n", "epoch: 123, batch: 700 // loss: 0.044\n", "epoch: 123, batch: 800 // loss: 0.042\n", "epoch: 123, batch: 900 // loss: 0.049\n", "epoch: 123, batch: 1000 // loss: 0.046\n", "epoch: 123, batch: 1100 // loss: 0.042\n", "epoch: 123, batch: 1200 // loss: 0.044\n", "epoch: 123, batch: 1300 // loss: 0.046\n", "epoch: 123, batch: 1400 // loss: 0.043\n", "epoch: 123, batch: 1500 // loss: 0.048\n", "epoch: 123, batch: 1600 // loss: 0.052\n", "epoch: 123, batch: 1700 // loss: 0.045\n", "epoch: 123, batch: 1800 // loss: 0.053\n", "epoch: 123, batch: 1900 // loss: 0.045\n", "epoch: 123, batch: 2000 // loss: 0.047\n", "epoch: 123, batch: 2100 // loss: 0.046\n", "epoch: 123, batch: 2200 // loss: 0.050\n", "epoch: 123, batch: 2300 // loss: 0.049\n", "epoch: 123, batch: 2400 // loss: 0.042\n", "epoch: 123, batch: 2500 // loss: 0.042\n", "epoch: 123, batch: 2600 // loss: 0.045\n", "epoch: 123, batch: 2700 // loss: 0.042\n", "epoch: 123, batch: 2800 // loss: 0.046\n", "epoch: 123, batch: 2900 // loss: 0.042\n", "epoch: 123, batch: 3000 // loss: 0.045\n", "epoch: 123, batch: 3100 // loss: 0.043\n", "epoch: 123, batch: 3200 // loss: 0.039\n", "epoch: 123, batch: 3300 // loss: 0.038\n", "epoch: 123, batch: 3400 // loss: 0.044\n", "epoch: 123, batch: 3500 // loss: 0.035\n", "epoch: 123, batch: 3600 // loss: 0.043\n", "epoch: 123, batch: 3700 // loss: 0.043\n", "\n", "epoch: 124, batch: 0 // loss: 0.053\n", "epoch: 124, batch: 100 // loss: 0.046\n", "epoch: 124, batch: 200 // loss: 0.043\n", "epoch: 124, batch: 300 // loss: 0.049\n", "epoch: 124, batch: 400 // loss: 0.046\n", "epoch: 124, batch: 500 // loss: 0.040\n", "epoch: 124, batch: 600 // loss: 0.040\n", "epoch: 124, batch: 700 // loss: 0.044\n", "epoch: 124, batch: 800 // loss: 0.042\n", "epoch: 124, batch: 900 // loss: 0.049\n", "epoch: 124, batch: 1000 // loss: 0.046\n", "epoch: 124, batch: 1100 // loss: 0.042\n", "epoch: 124, batch: 1200 // loss: 0.044\n", "epoch: 124, batch: 1300 // loss: 0.046\n", "epoch: 124, batch: 1400 // loss: 0.043\n", "epoch: 124, batch: 1500 // loss: 0.048\n", "epoch: 124, batch: 1600 // loss: 0.052\n", "epoch: 124, batch: 1700 // loss: 0.045\n", "epoch: 124, batch: 1800 // loss: 0.053\n", "epoch: 124, batch: 1900 // loss: 0.045\n", "epoch: 124, batch: 2000 // loss: 0.047\n", "epoch: 124, batch: 2100 // loss: 0.046\n", "epoch: 124, batch: 2200 // loss: 0.050\n", "epoch: 124, batch: 2300 // loss: 0.049\n", "epoch: 124, batch: 2400 // loss: 0.042\n", "epoch: 124, batch: 2500 // loss: 0.042\n", "epoch: 124, batch: 2600 // loss: 0.045\n", "epoch: 124, batch: 2700 // loss: 0.042\n", "epoch: 124, batch: 2800 // loss: 0.046\n", "epoch: 124, batch: 2900 // loss: 0.042\n", "epoch: 124, batch: 3000 // loss: 0.045\n", "epoch: 124, batch: 3100 // loss: 0.043\n", "epoch: 124, batch: 3200 // loss: 0.039\n", "epoch: 124, batch: 3300 // loss: 0.038\n", "epoch: 124, batch: 3400 // loss: 0.044\n", "epoch: 124, batch: 3500 // loss: 0.035\n", "epoch: 124, batch: 3600 // loss: 0.043\n", "epoch: 124, batch: 3700 // loss: 0.043\n", "\n", "epoch: 125, batch: 0 // loss: 0.053\n", "epoch: 125, batch: 100 // loss: 0.046\n", "epoch: 125, batch: 200 // loss: 0.043\n", "epoch: 125, batch: 300 // loss: 0.049\n", "epoch: 125, batch: 400 // loss: 0.046\n", "epoch: 125, batch: 500 // loss: 0.040\n", "epoch: 125, batch: 600 // loss: 0.040\n", "epoch: 125, batch: 700 // loss: 0.044\n", "epoch: 125, batch: 800 // loss: 0.042\n", "epoch: 125, batch: 900 // loss: 0.049\n", "epoch: 125, batch: 1000 // loss: 0.046\n", "epoch: 125, batch: 1100 // loss: 0.042\n", "epoch: 125, batch: 1200 // loss: 0.044\n", "epoch: 125, batch: 1300 // loss: 0.046\n", "epoch: 125, batch: 1400 // loss: 0.043\n", "epoch: 125, batch: 1500 // loss: 0.048\n", "epoch: 125, batch: 1600 // loss: 0.052\n", "epoch: 125, batch: 1700 // loss: 0.045\n", "epoch: 125, batch: 1800 // loss: 0.053\n", "epoch: 125, batch: 1900 // loss: 0.045\n", "epoch: 125, batch: 2000 // loss: 0.047\n", "epoch: 125, batch: 2100 // loss: 0.046\n", "epoch: 125, batch: 2200 // loss: 0.050\n", "epoch: 125, batch: 2300 // loss: 0.049\n", "epoch: 125, batch: 2400 // loss: 0.042\n", "epoch: 125, batch: 2500 // loss: 0.042\n", "epoch: 125, batch: 2600 // loss: 0.045\n", "epoch: 125, batch: 2700 // loss: 0.042\n", "epoch: 125, batch: 2800 // loss: 0.046\n", "epoch: 125, batch: 2900 // loss: 0.042\n", "epoch: 125, batch: 3000 // loss: 0.045\n", "epoch: 125, batch: 3100 // loss: 0.043\n", "epoch: 125, batch: 3200 // loss: 0.039\n", "epoch: 125, batch: 3300 // loss: 0.038\n", "epoch: 125, batch: 3400 // loss: 0.044\n", "epoch: 125, batch: 3500 // loss: 0.035\n", "epoch: 125, batch: 3600 // loss: 0.043\n", "epoch: 125, batch: 3700 // loss: 0.043\n", "\n", "epoch: 126, batch: 0 // loss: 0.053\n", "epoch: 126, batch: 100 // loss: 0.046\n", "epoch: 126, batch: 200 // loss: 0.043\n", "epoch: 126, batch: 300 // loss: 0.049\n", "epoch: 126, batch: 400 // loss: 0.046\n", "epoch: 126, batch: 500 // loss: 0.040\n", "epoch: 126, batch: 600 // loss: 0.040\n", "epoch: 126, batch: 700 // loss: 0.044\n", "epoch: 126, batch: 800 // loss: 0.042\n", "epoch: 126, batch: 900 // loss: 0.049\n", "epoch: 126, batch: 1000 // loss: 0.046\n", "epoch: 126, batch: 1100 // loss: 0.042\n", "epoch: 126, batch: 1200 // loss: 0.044\n", "epoch: 126, batch: 1300 // loss: 0.046\n", "epoch: 126, batch: 1400 // loss: 0.043\n", "epoch: 126, batch: 1500 // loss: 0.048\n", "epoch: 126, batch: 1600 // loss: 0.052\n", "epoch: 126, batch: 1700 // loss: 0.045\n", "epoch: 126, batch: 1800 // loss: 0.053\n", "epoch: 126, batch: 1900 // loss: 0.045\n", "epoch: 126, batch: 2000 // loss: 0.047\n", "epoch: 126, batch: 2100 // loss: 0.046\n", "epoch: 126, batch: 2200 // loss: 0.050\n", "epoch: 126, batch: 2300 // loss: 0.049\n", "epoch: 126, batch: 2400 // loss: 0.042\n", "epoch: 126, batch: 2500 // loss: 0.042\n", "epoch: 126, batch: 2600 // loss: 0.045\n", "epoch: 126, batch: 2700 // loss: 0.042\n", "epoch: 126, batch: 2800 // loss: 0.046\n", "epoch: 126, batch: 2900 // loss: 0.042\n", "epoch: 126, batch: 3000 // loss: 0.045\n", "epoch: 126, batch: 3100 // loss: 0.043\n", "epoch: 126, batch: 3200 // loss: 0.039\n", "epoch: 126, batch: 3300 // loss: 0.038\n", "epoch: 126, batch: 3400 // loss: 0.044\n", "epoch: 126, batch: 3500 // loss: 0.035\n", "epoch: 126, batch: 3600 // loss: 0.043\n", "epoch: 126, batch: 3700 // loss: 0.043\n", "\n", "epoch: 127, batch: 0 // loss: 0.053\n", "epoch: 127, batch: 100 // loss: 0.046\n", "epoch: 127, batch: 200 // loss: 0.043\n", "epoch: 127, batch: 300 // loss: 0.049\n", "epoch: 127, batch: 400 // loss: 0.046\n", "epoch: 127, batch: 500 // loss: 0.040\n", "epoch: 127, batch: 600 // loss: 0.040\n", "epoch: 127, batch: 700 // loss: 0.044\n", "epoch: 127, batch: 800 // loss: 0.042\n", "epoch: 127, batch: 900 // loss: 0.049\n", "epoch: 127, batch: 1000 // loss: 0.046\n", "epoch: 127, batch: 1100 // loss: 0.042\n", "epoch: 127, batch: 1200 // loss: 0.044\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 127, batch: 1300 // loss: 0.046\n", "epoch: 127, batch: 1400 // loss: 0.043\n", "epoch: 127, batch: 1500 // loss: 0.048\n", "epoch: 127, batch: 1600 // loss: 0.052\n", "epoch: 127, batch: 1700 // loss: 0.045\n", "epoch: 127, batch: 1800 // loss: 0.053\n", "epoch: 127, batch: 1900 // loss: 0.045\n", "epoch: 127, batch: 2000 // loss: 0.047\n", "epoch: 127, batch: 2100 // loss: 0.046\n", "epoch: 127, batch: 2200 // loss: 0.050\n", "epoch: 127, batch: 2300 // loss: 0.049\n", "epoch: 127, batch: 2400 // loss: 0.042\n", "epoch: 127, batch: 2500 // loss: 0.042\n", "epoch: 127, batch: 2600 // loss: 0.045\n", "epoch: 127, batch: 2700 // loss: 0.042\n", "epoch: 127, batch: 2800 // loss: 0.046\n", "epoch: 127, batch: 2900 // loss: 0.042\n", "epoch: 127, batch: 3000 // loss: 0.045\n", "epoch: 127, batch: 3100 // loss: 0.043\n", "epoch: 127, batch: 3200 // loss: 0.039\n", "epoch: 127, batch: 3300 // loss: 0.038\n", "epoch: 127, batch: 3400 // loss: 0.044\n", "epoch: 127, batch: 3500 // loss: 0.035\n", "epoch: 127, batch: 3600 // loss: 0.043\n", "epoch: 127, batch: 3700 // loss: 0.043\n", "\n", "epoch: 128, batch: 0 // loss: 0.053\n", "epoch: 128, batch: 100 // loss: 0.046\n", "epoch: 128, batch: 200 // loss: 0.043\n", "epoch: 128, batch: 300 // loss: 0.049\n", "epoch: 128, batch: 400 // loss: 0.046\n", "epoch: 128, batch: 500 // loss: 0.040\n", "epoch: 128, batch: 600 // loss: 0.040\n", "epoch: 128, batch: 700 // loss: 0.044\n", "epoch: 128, batch: 800 // loss: 0.042\n", "epoch: 128, batch: 900 // loss: 0.049\n", "epoch: 128, batch: 1000 // loss: 0.046\n", "epoch: 128, batch: 1100 // loss: 0.042\n", "epoch: 128, batch: 1200 // loss: 0.044\n", "epoch: 128, batch: 1300 // loss: 0.046\n", "epoch: 128, batch: 1400 // loss: 0.043\n", "epoch: 128, batch: 1500 // loss: 0.048\n", "epoch: 128, batch: 1600 // loss: 0.052\n", "epoch: 128, batch: 1700 // loss: 0.045\n", "epoch: 128, batch: 1800 // loss: 0.053\n", "epoch: 128, batch: 1900 // loss: 0.045\n", "epoch: 128, batch: 2000 // loss: 0.047\n", "epoch: 128, batch: 2100 // loss: 0.046\n", "epoch: 128, batch: 2200 // loss: 0.050\n", "epoch: 128, batch: 2300 // loss: 0.049\n", "epoch: 128, batch: 2400 // loss: 0.042\n", "epoch: 128, batch: 2500 // loss: 0.042\n", "epoch: 128, batch: 2600 // loss: 0.045\n", "epoch: 128, batch: 2700 // loss: 0.042\n", "epoch: 128, batch: 2800 // loss: 0.046\n", "epoch: 128, batch: 2900 // loss: 0.042\n", "epoch: 128, batch: 3000 // loss: 0.045\n", "epoch: 128, batch: 3100 // loss: 0.043\n", "epoch: 128, batch: 3200 // loss: 0.039\n", "epoch: 128, batch: 3300 // loss: 0.038\n", "epoch: 128, batch: 3400 // loss: 0.044\n", "epoch: 128, batch: 3500 // loss: 0.035\n", "epoch: 128, batch: 3600 // loss: 0.043\n", "epoch: 128, batch: 3700 // loss: 0.043\n", "\n", "epoch: 129, batch: 0 // loss: 0.053\n", "epoch: 129, batch: 100 // loss: 0.046\n", "epoch: 129, batch: 200 // loss: 0.043\n", "epoch: 129, batch: 300 // loss: 0.049\n", "epoch: 129, batch: 400 // loss: 0.046\n", "epoch: 129, batch: 500 // loss: 0.040\n", "epoch: 129, batch: 600 // loss: 0.040\n", "epoch: 129, batch: 700 // loss: 0.044\n", "epoch: 129, batch: 800 // loss: 0.042\n", "epoch: 129, batch: 900 // loss: 0.049\n", "epoch: 129, batch: 1000 // loss: 0.046\n", "epoch: 129, batch: 1100 // loss: 0.042\n", "epoch: 129, batch: 1200 // loss: 0.044\n", "epoch: 129, batch: 1300 // loss: 0.046\n", "epoch: 129, batch: 1400 // loss: 0.043\n", "epoch: 129, batch: 1500 // loss: 0.048\n", "epoch: 129, batch: 1600 // loss: 0.052\n", "epoch: 129, batch: 1700 // loss: 0.045\n", "epoch: 129, batch: 1800 // loss: 0.053\n", "epoch: 129, batch: 1900 // loss: 0.045\n", "epoch: 129, batch: 2000 // loss: 0.047\n", "epoch: 129, batch: 2100 // loss: 0.046\n", "epoch: 129, batch: 2200 // loss: 0.050\n", "epoch: 129, batch: 2300 // loss: 0.049\n", "epoch: 129, batch: 2400 // loss: 0.042\n", "epoch: 129, batch: 2500 // loss: 0.042\n", "epoch: 129, batch: 2600 // loss: 0.045\n", "epoch: 129, batch: 2700 // loss: 0.042\n", "epoch: 129, batch: 2800 // loss: 0.046\n", "epoch: 129, batch: 2900 // loss: 0.042\n", "epoch: 129, batch: 3000 // loss: 0.045\n", "epoch: 129, batch: 3100 // loss: 0.043\n", "epoch: 129, batch: 3200 // loss: 0.039\n", "epoch: 129, batch: 3300 // loss: 0.038\n", "epoch: 129, batch: 3400 // loss: 0.044\n", "epoch: 129, batch: 3500 // loss: 0.035\n", "epoch: 129, batch: 3600 // loss: 0.043\n", "epoch: 129, batch: 3700 // loss: 0.043\n", "\n", "epoch: 130, batch: 0 // loss: 0.053\n", "epoch: 130, batch: 100 // loss: 0.046\n", "epoch: 130, batch: 200 // loss: 0.043\n", "epoch: 130, batch: 300 // loss: 0.049\n", "epoch: 130, batch: 400 // loss: 0.046\n", "epoch: 130, batch: 500 // loss: 0.040\n", "epoch: 130, batch: 600 // loss: 0.040\n", "epoch: 130, batch: 700 // loss: 0.044\n", "epoch: 130, batch: 800 // loss: 0.042\n", "epoch: 130, batch: 900 // loss: 0.049\n", "epoch: 130, batch: 1000 // loss: 0.046\n", "epoch: 130, batch: 1100 // loss: 0.042\n", "epoch: 130, batch: 1200 // loss: 0.044\n", "epoch: 130, batch: 1300 // loss: 0.046\n", "epoch: 130, batch: 1400 // loss: 0.043\n", "epoch: 130, batch: 1500 // loss: 0.048\n", "epoch: 130, batch: 1600 // loss: 0.052\n", "epoch: 130, batch: 1700 // loss: 0.045\n", "epoch: 130, batch: 1800 // loss: 0.053\n", "epoch: 130, batch: 1900 // loss: 0.045\n", "epoch: 130, batch: 2000 // loss: 0.047\n", "epoch: 130, batch: 2100 // loss: 0.046\n", "epoch: 130, batch: 2200 // loss: 0.050\n", "epoch: 130, batch: 2300 // loss: 0.049\n", "epoch: 130, batch: 2400 // loss: 0.042\n", "epoch: 130, batch: 2500 // loss: 0.042\n", "epoch: 130, batch: 2600 // loss: 0.045\n", "epoch: 130, batch: 2700 // loss: 0.042\n", "epoch: 130, batch: 2800 // loss: 0.046\n", "epoch: 130, batch: 2900 // loss: 0.042\n", "epoch: 130, batch: 3000 // loss: 0.045\n", "epoch: 130, batch: 3100 // loss: 0.043\n", "epoch: 130, batch: 3200 // loss: 0.039\n", "epoch: 130, batch: 3300 // loss: 0.038\n", "epoch: 130, batch: 3400 // loss: 0.044\n", "epoch: 130, batch: 3500 // loss: 0.035\n", "epoch: 130, batch: 3600 // loss: 0.043\n", "epoch: 130, batch: 3700 // loss: 0.043\n", "\n", "epoch: 131, batch: 0 // loss: 0.053\n", "epoch: 131, batch: 100 // loss: 0.046\n", "epoch: 131, batch: 200 // loss: 0.043\n", "epoch: 131, batch: 300 // loss: 0.049\n", "epoch: 131, batch: 400 // loss: 0.046\n", "epoch: 131, batch: 500 // loss: 0.040\n", "epoch: 131, batch: 600 // loss: 0.040\n", "epoch: 131, batch: 700 // loss: 0.044\n", "epoch: 131, batch: 800 // loss: 0.042\n", "epoch: 131, batch: 900 // loss: 0.049\n", "epoch: 131, batch: 1000 // loss: 0.046\n", "epoch: 131, batch: 1100 // loss: 0.042\n", "epoch: 131, batch: 1200 // loss: 0.044\n", "epoch: 131, batch: 1300 // loss: 0.046\n", "epoch: 131, batch: 1400 // loss: 0.043\n", "epoch: 131, batch: 1500 // loss: 0.048\n", "epoch: 131, batch: 1600 // loss: 0.052\n", "epoch: 131, batch: 1700 // loss: 0.045\n", "epoch: 131, batch: 1800 // loss: 0.053\n", "epoch: 131, batch: 1900 // loss: 0.045\n", "epoch: 131, batch: 2000 // loss: 0.047\n", "epoch: 131, batch: 2100 // loss: 0.046\n", "epoch: 131, batch: 2200 // loss: 0.050\n", "epoch: 131, batch: 2300 // loss: 0.049\n", "epoch: 131, batch: 2400 // loss: 0.042\n", "epoch: 131, batch: 2500 // loss: 0.042\n", "epoch: 131, batch: 2600 // loss: 0.045\n", "epoch: 131, batch: 2700 // loss: 0.042\n", "epoch: 131, batch: 2800 // loss: 0.046\n", "epoch: 131, batch: 2900 // loss: 0.042\n", "epoch: 131, batch: 3000 // loss: 0.045\n", "epoch: 131, batch: 3100 // loss: 0.043\n", "epoch: 131, batch: 3200 // loss: 0.039\n", "epoch: 131, batch: 3300 // loss: 0.038\n", "epoch: 131, batch: 3400 // loss: 0.044\n", "epoch: 131, batch: 3500 // loss: 0.035\n", "epoch: 131, batch: 3600 // loss: 0.043\n", "epoch: 131, batch: 3700 // loss: 0.043\n", "\n", "epoch: 132, batch: 0 // loss: 0.053\n", "epoch: 132, batch: 100 // loss: 0.046\n", "epoch: 132, batch: 200 // loss: 0.043\n", "epoch: 132, batch: 300 // loss: 0.049\n", "epoch: 132, batch: 400 // loss: 0.046\n", "epoch: 132, batch: 500 // loss: 0.040\n", "epoch: 132, batch: 600 // loss: 0.040\n", "epoch: 132, batch: 700 // loss: 0.044\n", "epoch: 132, batch: 800 // loss: 0.042\n", "epoch: 132, batch: 900 // loss: 0.049\n", "epoch: 132, batch: 1000 // loss: 0.046\n", "epoch: 132, batch: 1100 // loss: 0.042\n", "epoch: 132, batch: 1200 // loss: 0.044\n", "epoch: 132, batch: 1300 // loss: 0.046\n", "epoch: 132, batch: 1400 // loss: 0.043\n", "epoch: 132, batch: 1500 // loss: 0.048\n", "epoch: 132, batch: 1600 // loss: 0.052\n", "epoch: 132, batch: 1700 // loss: 0.045\n", "epoch: 132, batch: 1800 // loss: 0.053\n", "epoch: 132, batch: 1900 // loss: 0.045\n", "epoch: 132, batch: 2000 // loss: 0.047\n", "epoch: 132, batch: 2100 // loss: 0.046\n", "epoch: 132, batch: 2200 // loss: 0.050\n", "epoch: 132, batch: 2300 // loss: 0.049\n", "epoch: 132, batch: 2400 // loss: 0.042\n", "epoch: 132, batch: 2500 // loss: 0.042\n", "epoch: 132, batch: 2600 // loss: 0.045\n", "epoch: 132, batch: 2700 // loss: 0.042\n", "epoch: 132, batch: 2800 // loss: 0.046\n", "epoch: 132, batch: 2900 // loss: 0.042\n", "epoch: 132, batch: 3000 // loss: 0.045\n", "epoch: 132, batch: 3100 // loss: 0.043\n", "epoch: 132, batch: 3200 // loss: 0.039\n", "epoch: 132, batch: 3300 // loss: 0.038\n", "epoch: 132, batch: 3400 // loss: 0.044\n", "epoch: 132, batch: 3500 // loss: 0.035\n", "epoch: 132, batch: 3600 // loss: 0.043\n", "epoch: 132, batch: 3700 // loss: 0.043\n", "\n", "epoch: 133, batch: 0 // loss: 0.053\n", "epoch: 133, batch: 100 // loss: 0.046\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 133, batch: 200 // loss: 0.043\n", "epoch: 133, batch: 300 // loss: 0.049\n", "epoch: 133, batch: 400 // loss: 0.046\n", "epoch: 133, batch: 500 // loss: 0.040\n", "epoch: 133, batch: 600 // loss: 0.040\n", "epoch: 133, batch: 700 // loss: 0.044\n", "epoch: 133, batch: 800 // loss: 0.042\n", "epoch: 133, batch: 900 // loss: 0.049\n", "epoch: 133, batch: 1000 // loss: 0.046\n", "epoch: 133, batch: 1100 // loss: 0.042\n", "epoch: 133, batch: 1200 // loss: 0.044\n", "epoch: 133, batch: 1300 // loss: 0.046\n", "epoch: 133, batch: 1400 // loss: 0.043\n", "epoch: 133, batch: 1500 // loss: 0.048\n", "epoch: 133, batch: 1600 // loss: 0.052\n", "epoch: 133, batch: 1700 // loss: 0.045\n", "epoch: 133, batch: 1800 // loss: 0.053\n", "epoch: 133, batch: 1900 // loss: 0.045\n", "epoch: 133, batch: 2000 // loss: 0.047\n", "epoch: 133, batch: 2100 // loss: 0.046\n", "epoch: 133, batch: 2200 // loss: 0.050\n", "epoch: 133, batch: 2300 // loss: 0.049\n", "epoch: 133, batch: 2400 // loss: 0.042\n", "epoch: 133, batch: 2500 // loss: 0.042\n", "epoch: 133, batch: 2600 // loss: 0.045\n", "epoch: 133, batch: 2700 // loss: 0.042\n", "epoch: 133, batch: 2800 // loss: 0.046\n", "epoch: 133, batch: 2900 // loss: 0.042\n", "epoch: 133, batch: 3000 // loss: 0.045\n", "epoch: 133, batch: 3100 // loss: 0.043\n", "epoch: 133, batch: 3200 // loss: 0.039\n", "epoch: 133, batch: 3300 // loss: 0.038\n", "epoch: 133, batch: 3400 // loss: 0.044\n", "epoch: 133, batch: 3500 // loss: 0.035\n", "epoch: 133, batch: 3600 // loss: 0.043\n", "epoch: 133, batch: 3700 // loss: 0.043\n", "\n", "epoch: 134, batch: 0 // loss: 0.053\n", "epoch: 134, batch: 100 // loss: 0.046\n", "epoch: 134, batch: 200 // loss: 0.043\n", "epoch: 134, batch: 300 // loss: 0.049\n", "epoch: 134, batch: 400 // loss: 0.046\n", "epoch: 134, batch: 500 // loss: 0.040\n", "epoch: 134, batch: 600 // loss: 0.040\n", "epoch: 134, batch: 700 // loss: 0.044\n", "epoch: 134, batch: 800 // loss: 0.042\n", "epoch: 134, batch: 900 // loss: 0.049\n", "epoch: 134, batch: 1000 // loss: 0.046\n", "epoch: 134, batch: 1100 // loss: 0.042\n", "epoch: 134, batch: 1200 // loss: 0.044\n", "epoch: 134, batch: 1300 // loss: 0.046\n", "epoch: 134, batch: 1400 // loss: 0.043\n", "epoch: 134, batch: 1500 // loss: 0.048\n", "epoch: 134, batch: 1600 // loss: 0.052\n", "epoch: 134, batch: 1700 // loss: 0.045\n", "epoch: 134, batch: 1800 // loss: 0.053\n", "epoch: 134, batch: 1900 // loss: 0.045\n", "epoch: 134, batch: 2000 // loss: 0.047\n", "epoch: 134, batch: 2100 // loss: 0.046\n", "epoch: 134, batch: 2200 // loss: 0.050\n", "epoch: 134, batch: 2300 // loss: 0.049\n", "epoch: 134, batch: 2400 // loss: 0.042\n", "epoch: 134, batch: 2500 // loss: 0.042\n", "epoch: 134, batch: 2600 // loss: 0.045\n", "epoch: 134, batch: 2700 // loss: 0.042\n", "epoch: 134, batch: 2800 // loss: 0.046\n", "epoch: 134, batch: 2900 // loss: 0.042\n", "epoch: 134, batch: 3000 // loss: 0.045\n", "epoch: 134, batch: 3100 // loss: 0.043\n", "epoch: 134, batch: 3200 // loss: 0.039\n", "epoch: 134, batch: 3300 // loss: 0.038\n", "epoch: 134, batch: 3400 // loss: 0.044\n", "epoch: 134, batch: 3500 // loss: 0.035\n", "epoch: 134, batch: 3600 // loss: 0.043\n", "epoch: 134, batch: 3700 // loss: 0.043\n", "\n", "epoch: 135, batch: 0 // loss: 0.053\n", "epoch: 135, batch: 100 // loss: 0.046\n", "epoch: 135, batch: 200 // loss: 0.043\n", "epoch: 135, batch: 300 // loss: 0.049\n", "epoch: 135, batch: 400 // loss: 0.046\n", "epoch: 135, batch: 500 // loss: 0.040\n", "epoch: 135, batch: 600 // loss: 0.040\n", "epoch: 135, batch: 700 // loss: 0.044\n", "epoch: 135, batch: 800 // loss: 0.042\n", "epoch: 135, batch: 900 // loss: 0.049\n", "epoch: 135, batch: 1000 // loss: 0.046\n", "epoch: 135, batch: 1100 // loss: 0.042\n", "epoch: 135, batch: 1200 // loss: 0.044\n", "epoch: 135, batch: 1300 // loss: 0.046\n", "epoch: 135, batch: 1400 // loss: 0.043\n", "epoch: 135, batch: 1500 // loss: 0.048\n", "epoch: 135, batch: 1600 // loss: 0.052\n", "epoch: 135, batch: 1700 // loss: 0.045\n", "epoch: 135, batch: 1800 // loss: 0.053\n", "epoch: 135, batch: 1900 // loss: 0.045\n", "epoch: 135, batch: 2000 // loss: 0.047\n", "epoch: 135, batch: 2100 // loss: 0.046\n", "epoch: 135, batch: 2200 // loss: 0.050\n", "epoch: 135, batch: 2300 // loss: 0.049\n", "epoch: 135, batch: 2400 // loss: 0.042\n", "epoch: 135, batch: 2500 // loss: 0.042\n", "epoch: 135, batch: 2600 // loss: 0.045\n", "epoch: 135, batch: 2700 // loss: 0.042\n", "epoch: 135, batch: 2800 // loss: 0.046\n", "epoch: 135, batch: 2900 // loss: 0.042\n", "epoch: 135, batch: 3000 // loss: 0.045\n", "epoch: 135, batch: 3100 // loss: 0.043\n", "epoch: 135, batch: 3200 // loss: 0.039\n", "epoch: 135, batch: 3300 // loss: 0.038\n", "epoch: 135, batch: 3400 // loss: 0.044\n", "epoch: 135, batch: 3500 // loss: 0.035\n", "epoch: 135, batch: 3600 // loss: 0.043\n", "epoch: 135, batch: 3700 // loss: 0.043\n", "\n", "epoch: 136, batch: 0 // loss: 0.053\n", "epoch: 136, batch: 100 // loss: 0.046\n", "epoch: 136, batch: 200 // loss: 0.043\n", "epoch: 136, batch: 300 // loss: 0.049\n", "epoch: 136, batch: 400 // loss: 0.046\n", "epoch: 136, batch: 500 // loss: 0.040\n", "epoch: 136, batch: 600 // loss: 0.040\n", "epoch: 136, batch: 700 // loss: 0.044\n", "epoch: 136, batch: 800 // loss: 0.042\n", "epoch: 136, batch: 900 // loss: 0.049\n", "epoch: 136, batch: 1000 // loss: 0.046\n", "epoch: 136, batch: 1100 // loss: 0.042\n", "epoch: 136, batch: 1200 // loss: 0.044\n", "epoch: 136, batch: 1300 // loss: 0.046\n", "epoch: 136, batch: 1400 // loss: 0.043\n", "epoch: 136, batch: 1500 // loss: 0.048\n", "epoch: 136, batch: 1600 // loss: 0.052\n", "epoch: 136, batch: 1700 // loss: 0.045\n", "epoch: 136, batch: 1800 // loss: 0.053\n", "epoch: 136, batch: 1900 // loss: 0.045\n", "epoch: 136, batch: 2000 // loss: 0.047\n", "epoch: 136, batch: 2100 // loss: 0.046\n", "epoch: 136, batch: 2200 // loss: 0.050\n", "epoch: 136, batch: 2300 // loss: 0.049\n", "epoch: 136, batch: 2400 // loss: 0.042\n", "epoch: 136, batch: 2500 // loss: 0.042\n", "epoch: 136, batch: 2600 // loss: 0.045\n", "epoch: 136, batch: 2700 // loss: 0.042\n", "epoch: 136, batch: 2800 // loss: 0.046\n", "epoch: 136, batch: 2900 // loss: 0.042\n", "epoch: 136, batch: 3000 // loss: 0.045\n", "epoch: 136, batch: 3100 // loss: 0.043\n", "epoch: 136, batch: 3200 // loss: 0.039\n", "epoch: 136, batch: 3300 // loss: 0.038\n", "epoch: 136, batch: 3400 // loss: 0.044\n", "epoch: 136, batch: 3500 // loss: 0.035\n", "epoch: 136, batch: 3600 // loss: 0.043\n", "epoch: 136, batch: 3700 // loss: 0.043\n", "\n", "epoch: 137, batch: 0 // loss: 0.053\n", "epoch: 137, batch: 100 // loss: 0.046\n", "epoch: 137, batch: 200 // loss: 0.043\n", "epoch: 137, batch: 300 // loss: 0.049\n", "epoch: 137, batch: 400 // loss: 0.046\n", "epoch: 137, batch: 500 // loss: 0.040\n", "epoch: 137, batch: 600 // loss: 0.040\n", "epoch: 137, batch: 700 // loss: 0.044\n", "epoch: 137, batch: 800 // loss: 0.042\n", "epoch: 137, batch: 900 // loss: 0.049\n", "epoch: 137, batch: 1000 // loss: 0.046\n", "epoch: 137, batch: 1100 // loss: 0.042\n", "epoch: 137, batch: 1200 // loss: 0.044\n", "epoch: 137, batch: 1300 // loss: 0.046\n", "epoch: 137, batch: 1400 // loss: 0.043\n", "epoch: 137, batch: 1500 // loss: 0.048\n", "epoch: 137, batch: 1600 // loss: 0.052\n", "epoch: 137, batch: 1700 // loss: 0.045\n", "epoch: 137, batch: 1800 // loss: 0.053\n", "epoch: 137, batch: 1900 // loss: 0.045\n", "epoch: 137, batch: 2000 // loss: 0.047\n", "epoch: 137, batch: 2100 // loss: 0.046\n", "epoch: 137, batch: 2200 // loss: 0.050\n", "epoch: 137, batch: 2300 // loss: 0.049\n", "epoch: 137, batch: 2400 // loss: 0.042\n", "epoch: 137, batch: 2500 // loss: 0.042\n", "epoch: 137, batch: 2600 // loss: 0.045\n", "epoch: 137, batch: 2700 // loss: 0.042\n", "epoch: 137, batch: 2800 // loss: 0.046\n", "epoch: 137, batch: 2900 // loss: 0.042\n", "epoch: 137, batch: 3000 // loss: 0.045\n", "epoch: 137, batch: 3100 // loss: 0.043\n", "epoch: 137, batch: 3200 // loss: 0.039\n", "epoch: 137, batch: 3300 // loss: 0.038\n", "epoch: 137, batch: 3400 // loss: 0.044\n", "epoch: 137, batch: 3500 // loss: 0.035\n", "epoch: 137, batch: 3600 // loss: 0.043\n", "epoch: 137, batch: 3700 // loss: 0.043\n", "\n", "epoch: 138, batch: 0 // loss: 0.053\n", "epoch: 138, batch: 100 // loss: 0.046\n", "epoch: 138, batch: 200 // loss: 0.043\n", "epoch: 138, batch: 300 // loss: 0.049\n", "epoch: 138, batch: 400 // loss: 0.046\n", "epoch: 138, batch: 500 // loss: 0.040\n", "epoch: 138, batch: 600 // loss: 0.040\n", "epoch: 138, batch: 700 // loss: 0.044\n", "epoch: 138, batch: 800 // loss: 0.042\n", "epoch: 138, batch: 900 // loss: 0.049\n", "epoch: 138, batch: 1000 // loss: 0.046\n", "epoch: 138, batch: 1100 // loss: 0.042\n", "epoch: 138, batch: 1200 // loss: 0.044\n", "epoch: 138, batch: 1300 // loss: 0.046\n", "epoch: 138, batch: 1400 // loss: 0.043\n", "epoch: 138, batch: 1500 // loss: 0.048\n", "epoch: 138, batch: 1600 // loss: 0.052\n", "epoch: 138, batch: 1700 // loss: 0.045\n", "epoch: 138, batch: 1800 // loss: 0.053\n", "epoch: 138, batch: 1900 // loss: 0.045\n", "epoch: 138, batch: 2000 // loss: 0.047\n", "epoch: 138, batch: 2100 // loss: 0.046\n", "epoch: 138, batch: 2200 // loss: 0.050\n", "epoch: 138, batch: 2300 // loss: 0.049\n", "epoch: 138, batch: 2400 // loss: 0.042\n", "epoch: 138, batch: 2500 // loss: 0.042\n", "epoch: 138, batch: 2600 // loss: 0.045\n", "epoch: 138, batch: 2700 // loss: 0.042\n", "epoch: 138, batch: 2800 // loss: 0.046\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 138, batch: 2900 // loss: 0.042\n", "epoch: 138, batch: 3000 // loss: 0.045\n", "epoch: 138, batch: 3100 // loss: 0.043\n", "epoch: 138, batch: 3200 // loss: 0.039\n", "epoch: 138, batch: 3300 // loss: 0.038\n", "epoch: 138, batch: 3400 // loss: 0.044\n", "epoch: 138, batch: 3500 // loss: 0.035\n", "epoch: 138, batch: 3600 // loss: 0.043\n", "epoch: 138, batch: 3700 // loss: 0.043\n", "\n", "epoch: 139, batch: 0 // loss: 0.053\n", "epoch: 139, batch: 100 // loss: 0.046\n", "epoch: 139, batch: 200 // loss: 0.043\n", "epoch: 139, batch: 300 // loss: 0.049\n", "epoch: 139, batch: 400 // loss: 0.046\n", "epoch: 139, batch: 500 // loss: 0.040\n", "epoch: 139, batch: 600 // loss: 0.040\n", "epoch: 139, batch: 700 // loss: 0.044\n", "epoch: 139, batch: 800 // loss: 0.042\n", "epoch: 139, batch: 900 // loss: 0.049\n", "epoch: 139, batch: 1000 // loss: 0.046\n", "epoch: 139, batch: 1100 // loss: 0.042\n", "epoch: 139, batch: 1200 // loss: 0.044\n", "epoch: 139, batch: 1300 // loss: 0.046\n", "epoch: 139, batch: 1400 // loss: 0.043\n", "epoch: 139, batch: 1500 // loss: 0.048\n", "epoch: 139, batch: 1600 // loss: 0.052\n", "epoch: 139, batch: 1700 // loss: 0.045\n", "epoch: 139, batch: 1800 // loss: 0.053\n", "epoch: 139, batch: 1900 // loss: 0.045\n", "epoch: 139, batch: 2000 // loss: 0.047\n", "epoch: 139, batch: 2100 // loss: 0.046\n", "epoch: 139, batch: 2200 // loss: 0.050\n", "epoch: 139, batch: 2300 // loss: 0.049\n", "epoch: 139, batch: 2400 // loss: 0.042\n", "epoch: 139, batch: 2500 // loss: 0.042\n", "epoch: 139, batch: 2600 // loss: 0.045\n", "epoch: 139, batch: 2700 // loss: 0.042\n", "epoch: 139, batch: 2800 // loss: 0.046\n", "epoch: 139, batch: 2900 // loss: 0.042\n", "epoch: 139, batch: 3000 // loss: 0.045\n", "epoch: 139, batch: 3100 // loss: 0.043\n", "epoch: 139, batch: 3200 // loss: 0.039\n", "epoch: 139, batch: 3300 // loss: 0.038\n", "epoch: 139, batch: 3400 // loss: 0.044\n", "epoch: 139, batch: 3500 // loss: 0.035\n", "epoch: 139, batch: 3600 // loss: 0.043\n", "epoch: 139, batch: 3700 // loss: 0.043\n", "\n", "epoch: 140, batch: 0 // loss: 0.053\n", "epoch: 140, batch: 100 // loss: 0.046\n", "epoch: 140, batch: 200 // loss: 0.043\n", "epoch: 140, batch: 300 // loss: 0.049\n", "epoch: 140, batch: 400 // loss: 0.046\n", "epoch: 140, batch: 500 // loss: 0.040\n", "epoch: 140, batch: 600 // loss: 0.040\n", "epoch: 140, batch: 700 // loss: 0.044\n", "epoch: 140, batch: 800 // loss: 0.042\n", "epoch: 140, batch: 900 // loss: 0.049\n", "epoch: 140, batch: 1000 // loss: 0.046\n", "epoch: 140, batch: 1100 // loss: 0.042\n", "epoch: 140, batch: 1200 // loss: 0.044\n", "epoch: 140, batch: 1300 // loss: 0.046\n", "epoch: 140, batch: 1400 // loss: 0.043\n", "epoch: 140, batch: 1500 // loss: 0.048\n", "epoch: 140, batch: 1600 // loss: 0.052\n", "epoch: 140, batch: 1700 // loss: 0.045\n", "epoch: 140, batch: 1800 // loss: 0.053\n", "epoch: 140, batch: 1900 // loss: 0.045\n", "epoch: 140, batch: 2000 // loss: 0.047\n", "epoch: 140, batch: 2100 // loss: 0.046\n", "epoch: 140, batch: 2200 // loss: 0.050\n", "epoch: 140, batch: 2300 // loss: 0.049\n", "epoch: 140, batch: 2400 // loss: 0.042\n", "epoch: 140, batch: 2500 // loss: 0.042\n", "epoch: 140, batch: 2600 // loss: 0.045\n", "epoch: 140, batch: 2700 // loss: 0.042\n", "epoch: 140, batch: 2800 // loss: 0.046\n", "epoch: 140, batch: 2900 // loss: 0.042\n", "epoch: 140, batch: 3000 // loss: 0.045\n", "epoch: 140, batch: 3100 // loss: 0.043\n", "epoch: 140, batch: 3200 // loss: 0.039\n", "epoch: 140, batch: 3300 // loss: 0.038\n", "epoch: 140, batch: 3400 // loss: 0.044\n", "epoch: 140, batch: 3500 // loss: 0.035\n", "epoch: 140, batch: 3600 // loss: 0.043\n", "epoch: 140, batch: 3700 // loss: 0.043\n", "\n", "epoch: 141, batch: 0 // loss: 0.053\n", "epoch: 141, batch: 100 // loss: 0.046\n", "epoch: 141, batch: 200 // loss: 0.043\n", "epoch: 141, batch: 300 // loss: 0.049\n", "epoch: 141, batch: 400 // loss: 0.046\n", "epoch: 141, batch: 500 // loss: 0.040\n", "epoch: 141, batch: 600 // loss: 0.040\n", "epoch: 141, batch: 700 // loss: 0.044\n", "epoch: 141, batch: 800 // loss: 0.042\n", "epoch: 141, batch: 900 // loss: 0.049\n", "epoch: 141, batch: 1000 // loss: 0.046\n", "epoch: 141, batch: 1100 // loss: 0.042\n", "epoch: 141, batch: 1200 // loss: 0.044\n", "epoch: 141, batch: 1300 // loss: 0.046\n", "epoch: 141, batch: 1400 // loss: 0.043\n", "epoch: 141, batch: 1500 // loss: 0.048\n", "epoch: 141, batch: 1600 // loss: 0.052\n", "epoch: 141, batch: 1700 // loss: 0.045\n", "epoch: 141, batch: 1800 // loss: 0.053\n", "epoch: 141, batch: 1900 // loss: 0.045\n", "epoch: 141, batch: 2000 // loss: 0.047\n", "epoch: 141, batch: 2100 // loss: 0.046\n", "epoch: 141, batch: 2200 // loss: 0.050\n", "epoch: 141, batch: 2300 // loss: 0.049\n", "epoch: 141, batch: 2400 // loss: 0.042\n", "epoch: 141, batch: 2500 // loss: 0.042\n", "epoch: 141, batch: 2600 // loss: 0.045\n", "epoch: 141, batch: 2700 // loss: 0.042\n", "epoch: 141, batch: 2800 // loss: 0.046\n", "epoch: 141, batch: 2900 // loss: 0.042\n", "epoch: 141, batch: 3000 // loss: 0.045\n", "epoch: 141, batch: 3100 // loss: 0.043\n", "epoch: 141, batch: 3200 // loss: 0.039\n", "epoch: 141, batch: 3300 // loss: 0.038\n", "epoch: 141, batch: 3400 // loss: 0.044\n", "epoch: 141, batch: 3500 // loss: 0.035\n", "epoch: 141, batch: 3600 // loss: 0.043\n", "epoch: 141, batch: 3700 // loss: 0.043\n", "\n", "epoch: 142, batch: 0 // loss: 0.053\n", "epoch: 142, batch: 100 // loss: 0.046\n", "epoch: 142, batch: 200 // loss: 0.043\n", "epoch: 142, batch: 300 // loss: 0.049\n", "epoch: 142, batch: 400 // loss: 0.046\n", "epoch: 142, batch: 500 // loss: 0.040\n", "epoch: 142, batch: 600 // loss: 0.040\n", "epoch: 142, batch: 700 // loss: 0.044\n", "epoch: 142, batch: 800 // loss: 0.042\n", "epoch: 142, batch: 900 // loss: 0.049\n", "epoch: 142, batch: 1000 // loss: 0.046\n", "epoch: 142, batch: 1100 // loss: 0.042\n", "epoch: 142, batch: 1200 // loss: 0.044\n", "epoch: 142, batch: 1300 // loss: 0.046\n", "epoch: 142, batch: 1400 // loss: 0.043\n", "epoch: 142, batch: 1500 // loss: 0.048\n", "epoch: 142, batch: 1600 // loss: 0.052\n", "epoch: 142, batch: 1700 // loss: 0.045\n", "epoch: 142, batch: 1800 // loss: 0.053\n", "epoch: 142, batch: 1900 // loss: 0.045\n", "epoch: 142, batch: 2000 // loss: 0.047\n", "epoch: 142, batch: 2100 // loss: 0.046\n", "epoch: 142, batch: 2200 // loss: 0.050\n", "epoch: 142, batch: 2300 // loss: 0.049\n", "epoch: 142, batch: 2400 // loss: 0.042\n", "epoch: 142, batch: 2500 // loss: 0.042\n", "epoch: 142, batch: 2600 // loss: 0.045\n", "epoch: 142, batch: 2700 // loss: 0.042\n", "epoch: 142, batch: 2800 // loss: 0.046\n", "epoch: 142, batch: 2900 // loss: 0.042\n", "epoch: 142, batch: 3000 // loss: 0.045\n", "epoch: 142, batch: 3100 // loss: 0.043\n", "epoch: 142, batch: 3200 // loss: 0.039\n", "epoch: 142, batch: 3300 // loss: 0.038\n", "epoch: 142, batch: 3400 // loss: 0.044\n", "epoch: 142, batch: 3500 // loss: 0.035\n", "epoch: 142, batch: 3600 // loss: 0.043\n", "epoch: 142, batch: 3700 // loss: 0.043\n", "\n", "epoch: 143, batch: 0 // loss: 0.053\n", "epoch: 143, batch: 100 // loss: 0.046\n", "epoch: 143, batch: 200 // loss: 0.043\n", "epoch: 143, batch: 300 // loss: 0.049\n", "epoch: 143, batch: 400 // loss: 0.046\n", "epoch: 143, batch: 500 // loss: 0.040\n", "epoch: 143, batch: 600 // loss: 0.040\n", "epoch: 143, batch: 700 // loss: 0.044\n", "epoch: 143, batch: 800 // loss: 0.042\n", "epoch: 143, batch: 900 // loss: 0.049\n", "epoch: 143, batch: 1000 // loss: 0.046\n", "epoch: 143, batch: 1100 // loss: 0.042\n", "epoch: 143, batch: 1200 // loss: 0.044\n", "epoch: 143, batch: 1300 // loss: 0.046\n", "epoch: 143, batch: 1400 // loss: 0.043\n", "epoch: 143, batch: 1500 // loss: 0.048\n", "epoch: 143, batch: 1600 // loss: 0.052\n", "epoch: 143, batch: 1700 // loss: 0.045\n", "epoch: 143, batch: 1800 // loss: 0.053\n", "epoch: 143, batch: 1900 // loss: 0.045\n", "epoch: 143, batch: 2000 // loss: 0.047\n", "epoch: 143, batch: 2100 // loss: 0.046\n", "epoch: 143, batch: 2200 // loss: 0.050\n", "epoch: 143, batch: 2300 // loss: 0.049\n", "epoch: 143, batch: 2400 // loss: 0.042\n", "epoch: 143, batch: 2500 // loss: 0.042\n", "epoch: 143, batch: 2600 // loss: 0.045\n", "epoch: 143, batch: 2700 // loss: 0.042\n", "epoch: 143, batch: 2800 // loss: 0.046\n", "epoch: 143, batch: 2900 // loss: 0.042\n", "epoch: 143, batch: 3000 // loss: 0.045\n", "epoch: 143, batch: 3100 // loss: 0.043\n", "epoch: 143, batch: 3200 // loss: 0.039\n", "epoch: 143, batch: 3300 // loss: 0.038\n", "epoch: 143, batch: 3400 // loss: 0.044\n", "epoch: 143, batch: 3500 // loss: 0.035\n", "epoch: 143, batch: 3600 // loss: 0.043\n", "epoch: 143, batch: 3700 // loss: 0.043\n", "\n", "epoch: 144, batch: 0 // loss: 0.053\n", "epoch: 144, batch: 100 // loss: 0.046\n", "epoch: 144, batch: 200 // loss: 0.043\n", "epoch: 144, batch: 300 // loss: 0.049\n", "epoch: 144, batch: 400 // loss: 0.046\n", "epoch: 144, batch: 500 // loss: 0.040\n", "epoch: 144, batch: 600 // loss: 0.040\n", "epoch: 144, batch: 700 // loss: 0.044\n", "epoch: 144, batch: 800 // loss: 0.042\n", "epoch: 144, batch: 900 // loss: 0.049\n", "epoch: 144, batch: 1000 // loss: 0.046\n", "epoch: 144, batch: 1100 // loss: 0.042\n", "epoch: 144, batch: 1200 // loss: 0.044\n", "epoch: 144, batch: 1300 // loss: 0.046\n", "epoch: 144, batch: 1400 // loss: 0.043\n", "epoch: 144, batch: 1500 // loss: 0.048\n", "epoch: 144, batch: 1600 // loss: 0.052\n", "epoch: 144, batch: 1700 // loss: 0.045\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 144, batch: 1800 // loss: 0.053\n", "epoch: 144, batch: 1900 // loss: 0.045\n", "epoch: 144, batch: 2000 // loss: 0.047\n", "epoch: 144, batch: 2100 // loss: 0.046\n", "epoch: 144, batch: 2200 // loss: 0.050\n", "epoch: 144, batch: 2300 // loss: 0.049\n", "epoch: 144, batch: 2400 // loss: 0.042\n", "epoch: 144, batch: 2500 // loss: 0.042\n", "epoch: 144, batch: 2600 // loss: 0.045\n", "epoch: 144, batch: 2700 // loss: 0.042\n", "epoch: 144, batch: 2800 // loss: 0.046\n", "epoch: 144, batch: 2900 // loss: 0.042\n", "epoch: 144, batch: 3000 // loss: 0.045\n", "epoch: 144, batch: 3100 // loss: 0.043\n", "epoch: 144, batch: 3200 // loss: 0.039\n", "epoch: 144, batch: 3300 // loss: 0.038\n", "epoch: 144, batch: 3400 // loss: 0.044\n", "epoch: 144, batch: 3500 // loss: 0.035\n", "epoch: 144, batch: 3600 // loss: 0.043\n", "epoch: 144, batch: 3700 // loss: 0.043\n", "\n", "epoch: 145, batch: 0 // loss: 0.053\n", "epoch: 145, batch: 100 // loss: 0.046\n", "epoch: 145, batch: 200 // loss: 0.043\n", "epoch: 145, batch: 300 // loss: 0.049\n", "epoch: 145, batch: 400 // loss: 0.046\n", "epoch: 145, batch: 500 // loss: 0.040\n", "epoch: 145, batch: 600 // loss: 0.040\n", "epoch: 145, batch: 700 // loss: 0.044\n", "epoch: 145, batch: 800 // loss: 0.042\n", "epoch: 145, batch: 900 // loss: 0.049\n", "epoch: 145, batch: 1000 // loss: 0.046\n", "epoch: 145, batch: 1100 // loss: 0.042\n", "epoch: 145, batch: 1200 // loss: 0.044\n", "epoch: 145, batch: 1300 // loss: 0.046\n", "epoch: 145, batch: 1400 // loss: 0.043\n", "epoch: 145, batch: 1500 // loss: 0.048\n", "epoch: 145, batch: 1600 // loss: 0.052\n", "epoch: 145, batch: 1700 // loss: 0.045\n", "epoch: 145, batch: 1800 // loss: 0.053\n", "epoch: 145, batch: 1900 // loss: 0.045\n", "epoch: 145, batch: 2000 // loss: 0.047\n", "epoch: 145, batch: 2100 // loss: 0.046\n", "epoch: 145, batch: 2200 // loss: 0.050\n", "epoch: 145, batch: 2300 // loss: 0.049\n", "epoch: 145, batch: 2400 // loss: 0.042\n", "epoch: 145, batch: 2500 // loss: 0.042\n", "epoch: 145, batch: 2600 // loss: 0.045\n", "epoch: 145, batch: 2700 // loss: 0.042\n", "epoch: 145, batch: 2800 // loss: 0.046\n", "epoch: 145, batch: 2900 // loss: 0.042\n", "epoch: 145, batch: 3000 // loss: 0.045\n", "epoch: 145, batch: 3100 // loss: 0.043\n", "epoch: 145, batch: 3200 // loss: 0.039\n", "epoch: 145, batch: 3300 // loss: 0.038\n", "epoch: 145, batch: 3400 // loss: 0.044\n", "epoch: 145, batch: 3500 // loss: 0.035\n", "epoch: 145, batch: 3600 // loss: 0.043\n", "epoch: 145, batch: 3700 // loss: 0.043\n", "\n", "epoch: 146, batch: 0 // loss: 0.053\n", "epoch: 146, batch: 100 // loss: 0.046\n", "epoch: 146, batch: 200 // loss: 0.043\n", "epoch: 146, batch: 300 // loss: 0.049\n", "epoch: 146, batch: 400 // loss: 0.046\n", "epoch: 146, batch: 500 // loss: 0.040\n", "epoch: 146, batch: 600 // loss: 0.040\n", "epoch: 146, batch: 700 // loss: 0.044\n", "epoch: 146, batch: 800 // loss: 0.042\n", "epoch: 146, batch: 900 // loss: 0.049\n", "epoch: 146, batch: 1000 // loss: 0.046\n", "epoch: 146, batch: 1100 // loss: 0.042\n", "epoch: 146, batch: 1200 // loss: 0.044\n", "epoch: 146, batch: 1300 // loss: 0.046\n", "epoch: 146, batch: 1400 // loss: 0.043\n", "epoch: 146, batch: 1500 // loss: 0.048\n", "epoch: 146, batch: 1600 // loss: 0.052\n", "epoch: 146, batch: 1700 // loss: 0.045\n", "epoch: 146, batch: 1800 // loss: 0.053\n", "epoch: 146, batch: 1900 // loss: 0.045\n", "epoch: 146, batch: 2000 // loss: 0.047\n", "epoch: 146, batch: 2100 // loss: 0.046\n", "epoch: 146, batch: 2200 // loss: 0.050\n", "epoch: 146, batch: 2300 // loss: 0.049\n", "epoch: 146, batch: 2400 // loss: 0.042\n", "epoch: 146, batch: 2500 // loss: 0.042\n", "epoch: 146, batch: 2600 // loss: 0.045\n", "epoch: 146, batch: 2700 // loss: 0.042\n", "epoch: 146, batch: 2800 // loss: 0.046\n", "epoch: 146, batch: 2900 // loss: 0.042\n", "epoch: 146, batch: 3000 // loss: 0.045\n", "epoch: 146, batch: 3100 // loss: 0.043\n", "epoch: 146, batch: 3200 // loss: 0.039\n", "epoch: 146, batch: 3300 // loss: 0.038\n", "epoch: 146, batch: 3400 // loss: 0.044\n", "epoch: 146, batch: 3500 // loss: 0.035\n", "epoch: 146, batch: 3600 // loss: 0.043\n", "epoch: 146, batch: 3700 // loss: 0.043\n", "\n", "epoch: 147, batch: 0 // loss: 0.053\n", "epoch: 147, batch: 100 // loss: 0.046\n", "epoch: 147, batch: 200 // loss: 0.043\n", "epoch: 147, batch: 300 // loss: 0.049\n", "epoch: 147, batch: 400 // loss: 0.046\n", "epoch: 147, batch: 500 // loss: 0.040\n", "epoch: 147, batch: 600 // loss: 0.040\n", "epoch: 147, batch: 700 // loss: 0.044\n", "epoch: 147, batch: 800 // loss: 0.042\n", "epoch: 147, batch: 900 // loss: 0.049\n", "epoch: 147, batch: 1000 // loss: 0.046\n", "epoch: 147, batch: 1100 // loss: 0.042\n", "epoch: 147, batch: 1200 // loss: 0.044\n", "epoch: 147, batch: 1300 // loss: 0.046\n", "epoch: 147, batch: 1400 // loss: 0.043\n", "epoch: 147, batch: 1500 // loss: 0.048\n", "epoch: 147, batch: 1600 // loss: 0.052\n", "epoch: 147, batch: 1700 // loss: 0.045\n", "epoch: 147, batch: 1800 // loss: 0.053\n", "epoch: 147, batch: 1900 // loss: 0.045\n", "epoch: 147, batch: 2000 // loss: 0.047\n", "epoch: 147, batch: 2100 // loss: 0.046\n", "epoch: 147, batch: 2200 // loss: 0.050\n", "epoch: 147, batch: 2300 // loss: 0.049\n", "epoch: 147, batch: 2400 // loss: 0.042\n", "epoch: 147, batch: 2500 // loss: 0.042\n", "epoch: 147, batch: 2600 // loss: 0.045\n", "epoch: 147, batch: 2700 // loss: 0.042\n", "epoch: 147, batch: 2800 // loss: 0.046\n", "epoch: 147, batch: 2900 // loss: 0.042\n", "epoch: 147, batch: 3000 // loss: 0.045\n", "epoch: 147, batch: 3100 // loss: 0.043\n", "epoch: 147, batch: 3200 // loss: 0.039\n", "epoch: 147, batch: 3300 // loss: 0.038\n", "epoch: 147, batch: 3400 // loss: 0.044\n", "epoch: 147, batch: 3500 // loss: 0.035\n", "epoch: 147, batch: 3600 // loss: 0.043\n", "epoch: 147, batch: 3700 // loss: 0.043\n", "\n", "epoch: 148, batch: 0 // loss: 0.053\n", "epoch: 148, batch: 100 // loss: 0.046\n", "epoch: 148, batch: 200 // loss: 0.043\n", "epoch: 148, batch: 300 // loss: 0.049\n", "epoch: 148, batch: 400 // loss: 0.046\n", "epoch: 148, batch: 500 // loss: 0.040\n", "epoch: 148, batch: 600 // loss: 0.040\n", "epoch: 148, batch: 700 // loss: 0.044\n", "epoch: 148, batch: 800 // loss: 0.042\n", "epoch: 148, batch: 900 // loss: 0.049\n", "epoch: 148, batch: 1000 // loss: 0.046\n", "epoch: 148, batch: 1100 // loss: 0.042\n", "epoch: 148, batch: 1200 // loss: 0.044\n", "epoch: 148, batch: 1300 // loss: 0.046\n", "epoch: 148, batch: 1400 // loss: 0.043\n", "epoch: 148, batch: 1500 // loss: 0.048\n", "epoch: 148, batch: 1600 // loss: 0.052\n", "epoch: 148, batch: 1700 // loss: 0.045\n", "epoch: 148, batch: 1800 // loss: 0.053\n", "epoch: 148, batch: 1900 // loss: 0.045\n", "epoch: 148, batch: 2000 // loss: 0.047\n", "epoch: 148, batch: 2100 // loss: 0.046\n", "epoch: 148, batch: 2200 // loss: 0.050\n", "epoch: 148, batch: 2300 // loss: 0.049\n", "epoch: 148, batch: 2400 // loss: 0.042\n", "epoch: 148, batch: 2500 // loss: 0.042\n", "epoch: 148, batch: 2600 // loss: 0.045\n", "epoch: 148, batch: 2700 // loss: 0.042\n", "epoch: 148, batch: 2800 // loss: 0.046\n", "epoch: 148, batch: 2900 // loss: 0.042\n", "epoch: 148, batch: 3000 // loss: 0.045\n", "epoch: 148, batch: 3100 // loss: 0.043\n", "epoch: 148, batch: 3200 // loss: 0.039\n", "epoch: 148, batch: 3300 // loss: 0.038\n", "epoch: 148, batch: 3400 // loss: 0.044\n", "epoch: 148, batch: 3500 // loss: 0.035\n", "epoch: 148, batch: 3600 // loss: 0.043\n", "epoch: 148, batch: 3700 // loss: 0.043\n", "\n", "epoch: 149, batch: 0 // loss: 0.053\n", "epoch: 149, batch: 100 // loss: 0.046\n", "epoch: 149, batch: 200 // loss: 0.043\n", "epoch: 149, batch: 300 // loss: 0.049\n", "epoch: 149, batch: 400 // loss: 0.046\n", "epoch: 149, batch: 500 // loss: 0.040\n", "epoch: 149, batch: 600 // loss: 0.040\n", "epoch: 149, batch: 700 // loss: 0.044\n", "epoch: 149, batch: 800 // loss: 0.042\n", "epoch: 149, batch: 900 // loss: 0.049\n", "epoch: 149, batch: 1000 // loss: 0.046\n", "epoch: 149, batch: 1100 // loss: 0.042\n", "epoch: 149, batch: 1200 // loss: 0.044\n", "epoch: 149, batch: 1300 // loss: 0.046\n", "epoch: 149, batch: 1400 // loss: 0.043\n", "epoch: 149, batch: 1500 // loss: 0.048\n", "epoch: 149, batch: 1600 // loss: 0.052\n", "epoch: 149, batch: 1700 // loss: 0.045\n", "epoch: 149, batch: 1800 // loss: 0.053\n", "epoch: 149, batch: 1900 // loss: 0.045\n", "epoch: 149, batch: 2000 // loss: 0.047\n", "epoch: 149, batch: 2100 // loss: 0.046\n", "epoch: 149, batch: 2200 // loss: 0.050\n", "epoch: 149, batch: 2300 // loss: 0.049\n", "epoch: 149, batch: 2400 // loss: 0.042\n", "epoch: 149, batch: 2500 // loss: 0.042\n", "epoch: 149, batch: 2600 // loss: 0.045\n", "epoch: 149, batch: 2700 // loss: 0.042\n", "epoch: 149, batch: 2800 // loss: 0.046\n", "epoch: 149, batch: 2900 // loss: 0.042\n", "epoch: 149, batch: 3000 // loss: 0.045\n", "epoch: 149, batch: 3100 // loss: 0.043\n", "epoch: 149, batch: 3200 // loss: 0.039\n", "epoch: 149, batch: 3300 // loss: 0.038\n", "epoch: 149, batch: 3400 // loss: 0.044\n", "epoch: 149, batch: 3500 // loss: 0.035\n", "epoch: 149, batch: 3600 // loss: 0.043\n", "epoch: 149, batch: 3700 // loss: 0.043\n", "\n", "epoch: 150, batch: 0 // loss: 0.053\n", "epoch: 150, batch: 100 // loss: 0.046\n", "epoch: 150, batch: 200 // loss: 0.043\n", "epoch: 150, batch: 300 // loss: 0.049\n", "epoch: 150, batch: 400 // loss: 0.046\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 150, batch: 500 // loss: 0.040\n", "epoch: 150, batch: 600 // loss: 0.040\n", "epoch: 150, batch: 700 // loss: 0.044\n", "epoch: 150, batch: 800 // loss: 0.042\n", "epoch: 150, batch: 900 // loss: 0.049\n", "epoch: 150, batch: 1000 // loss: 0.046\n", "epoch: 150, batch: 1100 // loss: 0.042\n", "epoch: 150, batch: 1200 // loss: 0.044\n", "epoch: 150, batch: 1300 // loss: 0.046\n", "epoch: 150, batch: 1400 // loss: 0.043\n", "epoch: 150, batch: 1500 // loss: 0.048\n", "epoch: 150, batch: 1600 // loss: 0.052\n", "epoch: 150, batch: 1700 // loss: 0.045\n", "epoch: 150, batch: 1800 // loss: 0.053\n", "epoch: 150, batch: 1900 // loss: 0.045\n", "epoch: 150, batch: 2000 // loss: 0.047\n", "epoch: 150, batch: 2100 // loss: 0.046\n", "epoch: 150, batch: 2200 // loss: 0.050\n", "epoch: 150, batch: 2300 // loss: 0.049\n", "epoch: 150, batch: 2400 // loss: 0.042\n", "epoch: 150, batch: 2500 // loss: 0.042\n", "epoch: 150, batch: 2600 // loss: 0.045\n", "epoch: 150, batch: 2700 // loss: 0.042\n", "epoch: 150, batch: 2800 // loss: 0.046\n", "epoch: 150, batch: 2900 // loss: 0.042\n", "epoch: 150, batch: 3000 // loss: 0.045\n", "epoch: 150, batch: 3100 // loss: 0.043\n", "epoch: 150, batch: 3200 // loss: 0.039\n", "epoch: 150, batch: 3300 // loss: 0.038\n", "epoch: 150, batch: 3400 // loss: 0.044\n", "epoch: 150, batch: 3500 // loss: 0.035\n", "epoch: 150, batch: 3600 // loss: 0.043\n", "epoch: 150, batch: 3700 // loss: 0.043\n", "\n", "epoch: 151, batch: 0 // loss: 0.053\n", "epoch: 151, batch: 100 // loss: 0.046\n", "epoch: 151, batch: 200 // loss: 0.043\n", "epoch: 151, batch: 300 // loss: 0.049\n", "epoch: 151, batch: 400 // loss: 0.046\n", "epoch: 151, batch: 500 // loss: 0.040\n", "epoch: 151, batch: 600 // loss: 0.040\n", "epoch: 151, batch: 700 // loss: 0.044\n", "epoch: 151, batch: 800 // loss: 0.042\n", "epoch: 151, batch: 900 // loss: 0.049\n", "epoch: 151, batch: 1000 // loss: 0.046\n", "epoch: 151, batch: 1100 // loss: 0.042\n", "epoch: 151, batch: 1200 // loss: 0.044\n", "epoch: 151, batch: 1300 // loss: 0.046\n", "epoch: 151, batch: 1400 // loss: 0.043\n", "epoch: 151, batch: 1500 // loss: 0.048\n", "epoch: 151, batch: 1600 // loss: 0.052\n", "epoch: 151, batch: 1700 // loss: 0.045\n", "epoch: 151, batch: 1800 // loss: 0.053\n", "epoch: 151, batch: 1900 // loss: 0.045\n", "epoch: 151, batch: 2000 // loss: 0.047\n", "epoch: 151, batch: 2100 // loss: 0.046\n", "epoch: 151, batch: 2200 // loss: 0.050\n", "epoch: 151, batch: 2300 // loss: 0.049\n", "epoch: 151, batch: 2400 // loss: 0.042\n", "epoch: 151, batch: 2500 // loss: 0.042\n", "epoch: 151, batch: 2600 // loss: 0.045\n", "epoch: 151, batch: 2700 // loss: 0.042\n", "epoch: 151, batch: 2800 // loss: 0.046\n", "epoch: 151, batch: 2900 // loss: 0.042\n", "epoch: 151, batch: 3000 // loss: 0.045\n", "epoch: 151, batch: 3100 // loss: 0.043\n", "epoch: 151, batch: 3200 // loss: 0.039\n", "epoch: 151, batch: 3300 // loss: 0.038\n", "epoch: 151, batch: 3400 // loss: 0.044\n", "epoch: 151, batch: 3500 // loss: 0.035\n", "epoch: 151, batch: 3600 // loss: 0.043\n", "epoch: 151, batch: 3700 // loss: 0.043\n", "\n", "epoch: 152, batch: 0 // loss: 0.053\n", "epoch: 152, batch: 100 // loss: 0.046\n", "epoch: 152, batch: 200 // loss: 0.043\n", "epoch: 152, batch: 300 // loss: 0.049\n", "epoch: 152, batch: 400 // loss: 0.046\n", "epoch: 152, batch: 500 // loss: 0.040\n", "epoch: 152, batch: 600 // loss: 0.040\n", "epoch: 152, batch: 700 // loss: 0.044\n", "epoch: 152, batch: 800 // loss: 0.042\n", "epoch: 152, batch: 900 // loss: 0.049\n", "epoch: 152, batch: 1000 // loss: 0.046\n", "epoch: 152, batch: 1100 // loss: 0.042\n", "epoch: 152, batch: 1200 // loss: 0.044\n", "epoch: 152, batch: 1300 // loss: 0.046\n", "epoch: 152, batch: 1400 // loss: 0.043\n", "epoch: 152, batch: 1500 // loss: 0.048\n", "epoch: 152, batch: 1600 // loss: 0.052\n", "epoch: 152, batch: 1700 // loss: 0.045\n", "epoch: 152, batch: 1800 // loss: 0.053\n", "epoch: 152, batch: 1900 // loss: 0.045\n", "epoch: 152, batch: 2000 // loss: 0.047\n", "epoch: 152, batch: 2100 // loss: 0.046\n", "epoch: 152, batch: 2200 // loss: 0.050\n", "epoch: 152, batch: 2300 // loss: 0.049\n", "epoch: 152, batch: 2400 // loss: 0.042\n", "epoch: 152, batch: 2500 // loss: 0.042\n", "epoch: 152, batch: 2600 // loss: 0.045\n", "epoch: 152, batch: 2700 // loss: 0.042\n", "epoch: 152, batch: 2800 // loss: 0.046\n", "epoch: 152, batch: 2900 // loss: 0.042\n", "epoch: 152, batch: 3000 // loss: 0.045\n", "epoch: 152, batch: 3100 // loss: 0.043\n", "epoch: 152, batch: 3200 // loss: 0.039\n", "epoch: 152, batch: 3300 // loss: 0.038\n", "epoch: 152, batch: 3400 // loss: 0.044\n", "epoch: 152, batch: 3500 // loss: 0.035\n", "epoch: 152, batch: 3600 // loss: 0.043\n", "epoch: 152, batch: 3700 // loss: 0.043\n", "\n", "epoch: 153, batch: 0 // loss: 0.053\n", "epoch: 153, batch: 100 // loss: 0.046\n", "epoch: 153, batch: 200 // loss: 0.043\n", "epoch: 153, batch: 300 // loss: 0.049\n", "epoch: 153, batch: 400 // loss: 0.046\n", "epoch: 153, batch: 500 // loss: 0.040\n", "epoch: 153, batch: 600 // loss: 0.040\n", "epoch: 153, batch: 700 // loss: 0.044\n", "epoch: 153, batch: 800 // loss: 0.042\n", "epoch: 153, batch: 900 // loss: 0.049\n", "epoch: 153, batch: 1000 // loss: 0.046\n", "epoch: 153, batch: 1100 // loss: 0.042\n", "epoch: 153, batch: 1200 // loss: 0.044\n", "epoch: 153, batch: 1300 // loss: 0.046\n", "epoch: 153, batch: 1400 // loss: 0.043\n", "epoch: 153, batch: 1500 // loss: 0.048\n", "epoch: 153, batch: 1600 // loss: 0.052\n", "epoch: 153, batch: 1700 // loss: 0.045\n", "epoch: 153, batch: 1800 // loss: 0.053\n", "epoch: 153, batch: 1900 // loss: 0.045\n", "epoch: 153, batch: 2000 // loss: 0.047\n", "epoch: 153, batch: 2100 // loss: 0.046\n", "epoch: 153, batch: 2200 // loss: 0.050\n", "epoch: 153, batch: 2300 // loss: 0.049\n", "epoch: 153, batch: 2400 // loss: 0.042\n", "epoch: 153, batch: 2500 // loss: 0.042\n", "epoch: 153, batch: 2600 // loss: 0.045\n", "epoch: 153, batch: 2700 // loss: 0.042\n", "epoch: 153, batch: 2800 // loss: 0.046\n", "epoch: 153, batch: 2900 // loss: 0.042\n", "epoch: 153, batch: 3000 // loss: 0.045\n", "epoch: 153, batch: 3100 // loss: 0.043\n", "epoch: 153, batch: 3200 // loss: 0.039\n", "epoch: 153, batch: 3300 // loss: 0.038\n", "epoch: 153, batch: 3400 // loss: 0.044\n", "epoch: 153, batch: 3500 // loss: 0.035\n", "epoch: 153, batch: 3600 // loss: 0.043\n", "epoch: 153, batch: 3700 // loss: 0.043\n", "\n", "epoch: 154, batch: 0 // loss: 0.053\n", "epoch: 154, batch: 100 // loss: 0.046\n", "epoch: 154, batch: 200 // loss: 0.043\n", "epoch: 154, batch: 300 // loss: 0.049\n", "epoch: 154, batch: 400 // loss: 0.046\n", "epoch: 154, batch: 500 // loss: 0.040\n", "epoch: 154, batch: 600 // loss: 0.040\n", "epoch: 154, batch: 700 // loss: 0.044\n", "epoch: 154, batch: 800 // loss: 0.042\n", "epoch: 154, batch: 900 // loss: 0.049\n", "epoch: 154, batch: 1000 // loss: 0.046\n", "epoch: 154, batch: 1100 // loss: 0.042\n", "epoch: 154, batch: 1200 // loss: 0.044\n", "epoch: 154, batch: 1300 // loss: 0.046\n", "epoch: 154, batch: 1400 // loss: 0.043\n", "epoch: 154, batch: 1500 // loss: 0.048\n", "epoch: 154, batch: 1600 // loss: 0.052\n", "epoch: 154, batch: 1700 // loss: 0.045\n", "epoch: 154, batch: 1800 // loss: 0.053\n", "epoch: 154, batch: 1900 // loss: 0.045\n", "epoch: 154, batch: 2000 // loss: 0.047\n", "epoch: 154, batch: 2100 // loss: 0.046\n", "epoch: 154, batch: 2200 // loss: 0.050\n", "epoch: 154, batch: 2300 // loss: 0.049\n", "epoch: 154, batch: 2400 // loss: 0.042\n", "epoch: 154, batch: 2500 // loss: 0.042\n", "epoch: 154, batch: 2600 // loss: 0.045\n", "epoch: 154, batch: 2700 // loss: 0.042\n", "epoch: 154, batch: 2800 // loss: 0.046\n", "epoch: 154, batch: 2900 // loss: 0.042\n", "epoch: 154, batch: 3000 // loss: 0.045\n", "epoch: 154, batch: 3100 // loss: 0.043\n", "epoch: 154, batch: 3200 // loss: 0.039\n", "epoch: 154, batch: 3300 // loss: 0.038\n", "epoch: 154, batch: 3400 // loss: 0.044\n", "epoch: 154, batch: 3500 // loss: 0.035\n", "epoch: 154, batch: 3600 // loss: 0.043\n", "epoch: 154, batch: 3700 // loss: 0.043\n", "\n", "epoch: 155, batch: 0 // loss: 0.053\n", "epoch: 155, batch: 100 // loss: 0.046\n", "epoch: 155, batch: 200 // loss: 0.043\n", "epoch: 155, batch: 300 // loss: 0.049\n", "epoch: 155, batch: 400 // loss: 0.046\n", "epoch: 155, batch: 500 // loss: 0.040\n", "epoch: 155, batch: 600 // loss: 0.040\n", "epoch: 155, batch: 700 // loss: 0.044\n", "epoch: 155, batch: 800 // loss: 0.042\n", "epoch: 155, batch: 900 // loss: 0.049\n", "epoch: 155, batch: 1000 // loss: 0.046\n", "epoch: 155, batch: 1100 // loss: 0.042\n", "epoch: 155, batch: 1200 // loss: 0.044\n", "epoch: 155, batch: 1300 // loss: 0.046\n", "epoch: 155, batch: 1400 // loss: 0.043\n", "epoch: 155, batch: 1500 // loss: 0.048\n", "epoch: 155, batch: 1600 // loss: 0.052\n", "epoch: 155, batch: 1700 // loss: 0.045\n", "epoch: 155, batch: 1800 // loss: 0.053\n", "epoch: 155, batch: 1900 // loss: 0.045\n", "epoch: 155, batch: 2000 // loss: 0.047\n", "epoch: 155, batch: 2100 // loss: 0.046\n", "epoch: 155, batch: 2200 // loss: 0.050\n", "epoch: 155, batch: 2300 // loss: 0.049\n", "epoch: 155, batch: 2400 // loss: 0.042\n", "epoch: 155, batch: 2500 // loss: 0.042\n", "epoch: 155, batch: 2600 // loss: 0.045\n", "epoch: 155, batch: 2700 // loss: 0.042\n", "epoch: 155, batch: 2800 // loss: 0.046\n", "epoch: 155, batch: 2900 // loss: 0.042\n", "epoch: 155, batch: 3000 // loss: 0.045\n", "epoch: 155, batch: 3100 // loss: 0.043\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 155, batch: 3200 // loss: 0.039\n", "epoch: 155, batch: 3300 // loss: 0.038\n", "epoch: 155, batch: 3400 // loss: 0.044\n", "epoch: 155, batch: 3500 // loss: 0.035\n", "epoch: 155, batch: 3600 // loss: 0.043\n", "epoch: 155, batch: 3700 // loss: 0.043\n", "\n", "epoch: 156, batch: 0 // loss: 0.053\n", "epoch: 156, batch: 100 // loss: 0.046\n", "epoch: 156, batch: 200 // loss: 0.043\n", "epoch: 156, batch: 300 // loss: 0.049\n", "epoch: 156, batch: 400 // loss: 0.046\n", "epoch: 156, batch: 500 // loss: 0.040\n", "epoch: 156, batch: 600 // loss: 0.040\n", "epoch: 156, batch: 700 // loss: 0.044\n", "epoch: 156, batch: 800 // loss: 0.042\n", "epoch: 156, batch: 900 // loss: 0.049\n", "epoch: 156, batch: 1000 // loss: 0.046\n", "epoch: 156, batch: 1100 // loss: 0.042\n", "epoch: 156, batch: 1200 // loss: 0.044\n", "epoch: 156, batch: 1300 // loss: 0.046\n", "epoch: 156, batch: 1400 // loss: 0.043\n", "epoch: 156, batch: 1500 // loss: 0.048\n", "epoch: 156, batch: 1600 // loss: 0.052\n", "epoch: 156, batch: 1700 // loss: 0.045\n", "epoch: 156, batch: 1800 // loss: 0.053\n", "epoch: 156, batch: 1900 // loss: 0.045\n", "epoch: 156, batch: 2000 // loss: 0.047\n", "epoch: 156, batch: 2100 // loss: 0.046\n", "epoch: 156, batch: 2200 // loss: 0.050\n", "epoch: 156, batch: 2300 // loss: 0.049\n", "epoch: 156, batch: 2400 // loss: 0.042\n", "epoch: 156, batch: 2500 // loss: 0.042\n", "epoch: 156, batch: 2600 // loss: 0.045\n", "epoch: 156, batch: 2700 // loss: 0.042\n", "epoch: 156, batch: 2800 // loss: 0.046\n", "epoch: 156, batch: 2900 // loss: 0.042\n", "epoch: 156, batch: 3000 // loss: 0.045\n", "epoch: 156, batch: 3100 // loss: 0.043\n", "epoch: 156, batch: 3200 // loss: 0.039\n", "epoch: 156, batch: 3300 // loss: 0.038\n", "epoch: 156, batch: 3400 // loss: 0.044\n", "epoch: 156, batch: 3500 // loss: 0.035\n", "epoch: 156, batch: 3600 // loss: 0.043\n", "epoch: 156, batch: 3700 // loss: 0.043\n", "\n", "epoch: 157, batch: 0 // loss: 0.053\n", "epoch: 157, batch: 100 // loss: 0.046\n", "epoch: 157, batch: 200 // loss: 0.043\n", "epoch: 157, batch: 300 // loss: 0.049\n", "epoch: 157, batch: 400 // loss: 0.046\n", "epoch: 157, batch: 500 // loss: 0.040\n", "epoch: 157, batch: 600 // loss: 0.040\n", "epoch: 157, batch: 700 // loss: 0.044\n", "epoch: 157, batch: 800 // loss: 0.042\n", "epoch: 157, batch: 900 // loss: 0.049\n", "epoch: 157, batch: 1000 // loss: 0.046\n", "epoch: 157, batch: 1100 // loss: 0.042\n", "epoch: 157, batch: 1200 // loss: 0.044\n", "epoch: 157, batch: 1300 // loss: 0.046\n", "epoch: 157, batch: 1400 // loss: 0.043\n", "epoch: 157, batch: 1500 // loss: 0.048\n", "epoch: 157, batch: 1600 // loss: 0.052\n", "epoch: 157, batch: 1700 // loss: 0.045\n", "epoch: 157, batch: 1800 // loss: 0.053\n", "epoch: 157, batch: 1900 // loss: 0.045\n", "epoch: 157, batch: 2000 // loss: 0.047\n", "epoch: 157, batch: 2100 // loss: 0.046\n", "epoch: 157, batch: 2200 // loss: 0.050\n", "epoch: 157, batch: 2300 // loss: 0.049\n", "epoch: 157, batch: 2400 // loss: 0.042\n", "epoch: 157, batch: 2500 // loss: 0.042\n", "epoch: 157, batch: 2600 // loss: 0.045\n", "epoch: 157, batch: 2700 // loss: 0.042\n", "epoch: 157, batch: 2800 // loss: 0.046\n", "epoch: 157, batch: 2900 // loss: 0.042\n", "epoch: 157, batch: 3000 // loss: 0.045\n", "epoch: 157, batch: 3100 // loss: 0.043\n", "epoch: 157, batch: 3200 // loss: 0.039\n", "epoch: 157, batch: 3300 // loss: 0.038\n", "epoch: 157, batch: 3400 // loss: 0.044\n", "epoch: 157, batch: 3500 // loss: 0.035\n", "epoch: 157, batch: 3600 // loss: 0.043\n", "epoch: 157, batch: 3700 // loss: 0.043\n", "\n", "epoch: 158, batch: 0 // loss: 0.053\n", "epoch: 158, batch: 100 // loss: 0.046\n", "epoch: 158, batch: 200 // loss: 0.043\n", "epoch: 158, batch: 300 // loss: 0.049\n", "epoch: 158, batch: 400 // loss: 0.046\n", "epoch: 158, batch: 500 // loss: 0.040\n", "epoch: 158, batch: 600 // loss: 0.040\n", "epoch: 158, batch: 700 // loss: 0.044\n", "epoch: 158, batch: 800 // loss: 0.042\n", "epoch: 158, batch: 900 // loss: 0.049\n", "epoch: 158, batch: 1000 // loss: 0.046\n", "epoch: 158, batch: 1100 // loss: 0.042\n", "epoch: 158, batch: 1200 // loss: 0.044\n", "epoch: 158, batch: 1300 // loss: 0.046\n", "epoch: 158, batch: 1400 // loss: 0.043\n", "epoch: 158, batch: 1500 // loss: 0.048\n", "epoch: 158, batch: 1600 // loss: 0.052\n", "epoch: 158, batch: 1700 // loss: 0.045\n", "epoch: 158, batch: 1800 // loss: 0.053\n", "epoch: 158, batch: 1900 // loss: 0.045\n", "epoch: 158, batch: 2000 // loss: 0.047\n", "epoch: 158, batch: 2100 // loss: 0.046\n", "epoch: 158, batch: 2200 // loss: 0.050\n", "epoch: 158, batch: 2300 // loss: 0.049\n", "epoch: 158, batch: 2400 // loss: 0.042\n", "epoch: 158, batch: 2500 // loss: 0.042\n", "epoch: 158, batch: 2600 // loss: 0.045\n", "epoch: 158, batch: 2700 // loss: 0.042\n", "epoch: 158, batch: 2800 // loss: 0.046\n", "epoch: 158, batch: 2900 // loss: 0.042\n", "epoch: 158, batch: 3000 // loss: 0.045\n", "epoch: 158, batch: 3100 // loss: 0.043\n", "epoch: 158, batch: 3200 // loss: 0.039\n", "epoch: 158, batch: 3300 // loss: 0.038\n", "epoch: 158, batch: 3400 // loss: 0.044\n", "epoch: 158, batch: 3500 // loss: 0.035\n", "epoch: 158, batch: 3600 // loss: 0.043\n", "epoch: 158, batch: 3700 // loss: 0.043\n", "\n", "epoch: 159, batch: 0 // loss: 0.053\n", "epoch: 159, batch: 100 // loss: 0.046\n", "epoch: 159, batch: 200 // loss: 0.043\n", "epoch: 159, batch: 300 // loss: 0.049\n", "epoch: 159, batch: 400 // loss: 0.046\n", "epoch: 159, batch: 500 // loss: 0.040\n", "epoch: 159, batch: 600 // loss: 0.040\n", "epoch: 159, batch: 700 // loss: 0.044\n", "epoch: 159, batch: 800 // loss: 0.042\n", "epoch: 159, batch: 900 // loss: 0.049\n", "epoch: 159, batch: 1000 // loss: 0.046\n", "epoch: 159, batch: 1100 // loss: 0.042\n", "epoch: 159, batch: 1200 // loss: 0.044\n", "epoch: 159, batch: 1300 // loss: 0.046\n", "epoch: 159, batch: 1400 // loss: 0.043\n", "epoch: 159, batch: 1500 // loss: 0.048\n", "epoch: 159, batch: 1600 // loss: 0.052\n", "epoch: 159, batch: 1700 // loss: 0.045\n", "epoch: 159, batch: 1800 // loss: 0.053\n", "epoch: 159, batch: 1900 // loss: 0.045\n", "epoch: 159, batch: 2000 // loss: 0.047\n", "epoch: 159, batch: 2100 // loss: 0.046\n", "epoch: 159, batch: 2200 // loss: 0.050\n", "epoch: 159, batch: 2300 // loss: 0.049\n", "epoch: 159, batch: 2400 // loss: 0.042\n", "epoch: 159, batch: 2500 // loss: 0.042\n", "epoch: 159, batch: 2600 // loss: 0.045\n", "epoch: 159, batch: 2700 // loss: 0.042\n", "epoch: 159, batch: 2800 // loss: 0.046\n", "epoch: 159, batch: 2900 // loss: 0.042\n", "epoch: 159, batch: 3000 // loss: 0.045\n", "epoch: 159, batch: 3100 // loss: 0.043\n", "epoch: 159, batch: 3200 // loss: 0.039\n", "epoch: 159, batch: 3300 // loss: 0.038\n", "epoch: 159, batch: 3400 // loss: 0.044\n", "epoch: 159, batch: 3500 // loss: 0.035\n", "epoch: 159, batch: 3600 // loss: 0.043\n", "epoch: 159, batch: 3700 // loss: 0.043\n", "\n", "epoch: 160, batch: 0 // loss: 0.053\n", "epoch: 160, batch: 100 // loss: 0.046\n", "epoch: 160, batch: 200 // loss: 0.043\n", "epoch: 160, batch: 300 // loss: 0.049\n", "epoch: 160, batch: 400 // loss: 0.046\n", "epoch: 160, batch: 500 // loss: 0.040\n", "epoch: 160, batch: 600 // loss: 0.040\n", "epoch: 160, batch: 700 // loss: 0.044\n", "epoch: 160, batch: 800 // loss: 0.042\n", "epoch: 160, batch: 900 // loss: 0.049\n", "epoch: 160, batch: 1000 // loss: 0.046\n", "epoch: 160, batch: 1100 // loss: 0.042\n", "epoch: 160, batch: 1200 // loss: 0.044\n", "epoch: 160, batch: 1300 // loss: 0.046\n", "epoch: 160, batch: 1400 // loss: 0.043\n", "epoch: 160, batch: 1500 // loss: 0.048\n", "epoch: 160, batch: 1600 // loss: 0.052\n", "epoch: 160, batch: 1700 // loss: 0.045\n", "epoch: 160, batch: 1800 // loss: 0.053\n", "epoch: 160, batch: 1900 // loss: 0.045\n", "epoch: 160, batch: 2000 // loss: 0.047\n", "epoch: 160, batch: 2100 // loss: 0.046\n", "epoch: 160, batch: 2200 // loss: 0.050\n", "epoch: 160, batch: 2300 // loss: 0.049\n", "epoch: 160, batch: 2400 // loss: 0.042\n", "epoch: 160, batch: 2500 // loss: 0.042\n", "epoch: 160, batch: 2600 // loss: 0.045\n", "epoch: 160, batch: 2700 // loss: 0.042\n", "epoch: 160, batch: 2800 // loss: 0.046\n", "epoch: 160, batch: 2900 // loss: 0.042\n", "epoch: 160, batch: 3000 // loss: 0.045\n", "epoch: 160, batch: 3100 // loss: 0.043\n", "epoch: 160, batch: 3200 // loss: 0.039\n", "epoch: 160, batch: 3300 // loss: 0.038\n", "epoch: 160, batch: 3400 // loss: 0.044\n", "epoch: 160, batch: 3500 // loss: 0.035\n", "epoch: 160, batch: 3600 // loss: 0.043\n", "epoch: 160, batch: 3700 // loss: 0.043\n", "\n", "epoch: 161, batch: 0 // loss: 0.053\n", "epoch: 161, batch: 100 // loss: 0.046\n", "epoch: 161, batch: 200 // loss: 0.043\n", "epoch: 161, batch: 300 // loss: 0.049\n", "epoch: 161, batch: 400 // loss: 0.046\n", "epoch: 161, batch: 500 // loss: 0.040\n", "epoch: 161, batch: 600 // loss: 0.040\n", "epoch: 161, batch: 700 // loss: 0.044\n", "epoch: 161, batch: 800 // loss: 0.042\n", "epoch: 161, batch: 900 // loss: 0.049\n", "epoch: 161, batch: 1000 // loss: 0.046\n", "epoch: 161, batch: 1100 // loss: 0.042\n", "epoch: 161, batch: 1200 // loss: 0.044\n", "epoch: 161, batch: 1300 // loss: 0.046\n", "epoch: 161, batch: 1400 // loss: 0.043\n", "epoch: 161, batch: 1500 // loss: 0.048\n", "epoch: 161, batch: 1600 // loss: 0.052\n", "epoch: 161, batch: 1700 // loss: 0.045\n", "epoch: 161, batch: 1800 // loss: 0.053\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 161, batch: 1900 // loss: 0.045\n", "epoch: 161, batch: 2000 // loss: 0.047\n", "epoch: 161, batch: 2100 // loss: 0.046\n", "epoch: 161, batch: 2200 // loss: 0.050\n", "epoch: 161, batch: 2300 // loss: 0.049\n", "epoch: 161, batch: 2400 // loss: 0.042\n", "epoch: 161, batch: 2500 // loss: 0.042\n", "epoch: 161, batch: 2600 // loss: 0.045\n", "epoch: 161, batch: 2700 // loss: 0.042\n", "epoch: 161, batch: 2800 // loss: 0.046\n", "epoch: 161, batch: 2900 // loss: 0.042\n", "epoch: 161, batch: 3000 // loss: 0.045\n", "epoch: 161, batch: 3100 // loss: 0.043\n", "epoch: 161, batch: 3200 // loss: 0.039\n", "epoch: 161, batch: 3300 // loss: 0.038\n", "epoch: 161, batch: 3400 // loss: 0.044\n", "epoch: 161, batch: 3500 // loss: 0.035\n", "epoch: 161, batch: 3600 // loss: 0.043\n", "epoch: 161, batch: 3700 // loss: 0.043\n", "\n", "epoch: 162, batch: 0 // loss: 0.053\n", "epoch: 162, batch: 100 // loss: 0.046\n", "epoch: 162, batch: 200 // loss: 0.043\n", "epoch: 162, batch: 300 // loss: 0.049\n", "epoch: 162, batch: 400 // loss: 0.046\n", "epoch: 162, batch: 500 // loss: 0.040\n", "epoch: 162, batch: 600 // loss: 0.040\n", "epoch: 162, batch: 700 // loss: 0.044\n", "epoch: 162, batch: 800 // loss: 0.042\n", "epoch: 162, batch: 900 // loss: 0.049\n", "epoch: 162, batch: 1000 // loss: 0.046\n", "epoch: 162, batch: 1100 // loss: 0.042\n", "epoch: 162, batch: 1200 // loss: 0.044\n", "epoch: 162, batch: 1300 // loss: 0.046\n", "epoch: 162, batch: 1400 // loss: 0.043\n", "epoch: 162, batch: 1500 // loss: 0.048\n", "epoch: 162, batch: 1600 // loss: 0.052\n", "epoch: 162, batch: 1700 // loss: 0.045\n", "epoch: 162, batch: 1800 // loss: 0.053\n", "epoch: 162, batch: 1900 // loss: 0.045\n", "epoch: 162, batch: 2000 // loss: 0.047\n", "epoch: 162, batch: 2100 // loss: 0.046\n", "epoch: 162, batch: 2200 // loss: 0.050\n", "epoch: 162, batch: 2300 // loss: 0.049\n", "epoch: 162, batch: 2400 // loss: 0.042\n", "epoch: 162, batch: 2500 // loss: 0.042\n", "epoch: 162, batch: 2600 // loss: 0.045\n", "epoch: 162, batch: 2700 // loss: 0.042\n", "epoch: 162, batch: 2800 // loss: 0.046\n", "epoch: 162, batch: 2900 // loss: 0.042\n", "epoch: 162, batch: 3000 // loss: 0.045\n", "epoch: 162, batch: 3100 // loss: 0.043\n", "epoch: 162, batch: 3200 // loss: 0.039\n", "epoch: 162, batch: 3300 // loss: 0.038\n", "epoch: 162, batch: 3400 // loss: 0.044\n", "epoch: 162, batch: 3500 // loss: 0.035\n", "epoch: 162, batch: 3600 // loss: 0.043\n", "epoch: 162, batch: 3700 // loss: 0.043\n", "\n", "epoch: 163, batch: 0 // loss: 0.053\n", "epoch: 163, batch: 100 // loss: 0.046\n", "epoch: 163, batch: 200 // loss: 0.043\n", "epoch: 163, batch: 300 // loss: 0.049\n", "epoch: 163, batch: 400 // loss: 0.046\n", "epoch: 163, batch: 500 // loss: 0.040\n", "epoch: 163, batch: 600 // loss: 0.040\n", "epoch: 163, batch: 700 // loss: 0.044\n", "epoch: 163, batch: 800 // loss: 0.042\n", "epoch: 163, batch: 900 // loss: 0.049\n", "epoch: 163, batch: 1000 // loss: 0.046\n", "epoch: 163, batch: 1100 // loss: 0.042\n", "epoch: 163, batch: 1200 // loss: 0.044\n", "epoch: 163, batch: 1300 // loss: 0.046\n", "epoch: 163, batch: 1400 // loss: 0.043\n", "epoch: 163, batch: 1500 // loss: 0.048\n", "epoch: 163, batch: 1600 // loss: 0.052\n", "epoch: 163, batch: 1700 // loss: 0.045\n", "epoch: 163, batch: 1800 // loss: 0.053\n", "epoch: 163, batch: 1900 // loss: 0.045\n", "epoch: 163, batch: 2000 // loss: 0.047\n", "epoch: 163, batch: 2100 // loss: 0.046\n", "epoch: 163, batch: 2200 // loss: 0.050\n", "epoch: 163, batch: 2300 // loss: 0.049\n", "epoch: 163, batch: 2400 // loss: 0.042\n", "epoch: 163, batch: 2500 // loss: 0.042\n", "epoch: 163, batch: 2600 // loss: 0.045\n", "epoch: 163, batch: 2700 // loss: 0.042\n", "epoch: 163, batch: 2800 // loss: 0.046\n", "epoch: 163, batch: 2900 // loss: 0.042\n", "epoch: 163, batch: 3000 // loss: 0.045\n", "epoch: 163, batch: 3100 // loss: 0.043\n", "epoch: 163, batch: 3200 // loss: 0.039\n", "epoch: 163, batch: 3300 // loss: 0.038\n", "epoch: 163, batch: 3400 // loss: 0.044\n", "epoch: 163, batch: 3500 // loss: 0.035\n", "epoch: 163, batch: 3600 // loss: 0.043\n", "epoch: 163, batch: 3700 // loss: 0.043\n", "\n", "epoch: 164, batch: 0 // loss: 0.053\n", "epoch: 164, batch: 100 // loss: 0.046\n", "epoch: 164, batch: 200 // loss: 0.043\n", "epoch: 164, batch: 300 // loss: 0.049\n", "epoch: 164, batch: 400 // loss: 0.046\n", "epoch: 164, batch: 500 // loss: 0.040\n", "epoch: 164, batch: 600 // loss: 0.040\n", "epoch: 164, batch: 700 // loss: 0.044\n", "epoch: 164, batch: 800 // loss: 0.042\n", "epoch: 164, batch: 900 // loss: 0.049\n", "epoch: 164, batch: 1000 // loss: 0.046\n", "epoch: 164, batch: 1100 // loss: 0.042\n", "epoch: 164, batch: 1200 // loss: 0.044\n", "epoch: 164, batch: 1300 // loss: 0.046\n", "epoch: 164, batch: 1400 // loss: 0.043\n", "epoch: 164, batch: 1500 // loss: 0.048\n", "epoch: 164, batch: 1600 // loss: 0.052\n", "epoch: 164, batch: 1700 // loss: 0.045\n", "epoch: 164, batch: 1800 // loss: 0.053\n", "epoch: 164, batch: 1900 // loss: 0.045\n", "epoch: 164, batch: 2000 // loss: 0.047\n", "epoch: 164, batch: 2100 // loss: 0.046\n", "epoch: 164, batch: 2200 // loss: 0.050\n", "epoch: 164, batch: 2300 // loss: 0.049\n", "epoch: 164, batch: 2400 // loss: 0.042\n", "epoch: 164, batch: 2500 // loss: 0.042\n", "epoch: 164, batch: 2600 // loss: 0.045\n", "epoch: 164, batch: 2700 // loss: 0.042\n", "epoch: 164, batch: 2800 // loss: 0.046\n", "epoch: 164, batch: 2900 // loss: 0.042\n", "epoch: 164, batch: 3000 // loss: 0.045\n", "epoch: 164, batch: 3100 // loss: 0.043\n", "epoch: 164, batch: 3200 // loss: 0.039\n", "epoch: 164, batch: 3300 // loss: 0.038\n", "epoch: 164, batch: 3400 // loss: 0.044\n", "epoch: 164, batch: 3500 // loss: 0.035\n", "epoch: 164, batch: 3600 // loss: 0.043\n", "epoch: 164, batch: 3700 // loss: 0.043\n", "\n", "epoch: 165, batch: 0 // loss: 0.053\n", "epoch: 165, batch: 100 // loss: 0.046\n", "epoch: 165, batch: 200 // loss: 0.043\n", "epoch: 165, batch: 300 // loss: 0.049\n", "epoch: 165, batch: 400 // loss: 0.046\n", "epoch: 165, batch: 500 // loss: 0.040\n", "epoch: 165, batch: 600 // loss: 0.040\n", "epoch: 165, batch: 700 // loss: 0.044\n", "epoch: 165, batch: 800 // loss: 0.042\n", "epoch: 165, batch: 900 // loss: 0.049\n", "epoch: 165, batch: 1000 // loss: 0.046\n", "epoch: 165, batch: 1100 // loss: 0.042\n", "epoch: 165, batch: 1200 // loss: 0.044\n", "epoch: 165, batch: 1300 // loss: 0.046\n", "epoch: 165, batch: 1400 // loss: 0.043\n", "epoch: 165, batch: 1500 // loss: 0.048\n", "epoch: 165, batch: 1600 // loss: 0.052\n", "epoch: 165, batch: 1700 // loss: 0.045\n", "epoch: 165, batch: 1800 // loss: 0.053\n", "epoch: 165, batch: 1900 // loss: 0.045\n", "epoch: 165, batch: 2000 // loss: 0.047\n", "epoch: 165, batch: 2100 // loss: 0.046\n", "epoch: 165, batch: 2200 // loss: 0.050\n", "epoch: 165, batch: 2300 // loss: 0.049\n", "epoch: 165, batch: 2400 // loss: 0.042\n", "epoch: 165, batch: 2500 // loss: 0.042\n", "epoch: 165, batch: 2600 // loss: 0.045\n", "epoch: 165, batch: 2700 // loss: 0.042\n", "epoch: 165, batch: 2800 // loss: 0.046\n", "epoch: 165, batch: 2900 // loss: 0.042\n", "epoch: 165, batch: 3000 // loss: 0.045\n", "epoch: 165, batch: 3100 // loss: 0.043\n", "epoch: 165, batch: 3200 // loss: 0.039\n", "epoch: 165, batch: 3300 // loss: 0.038\n", "epoch: 165, batch: 3400 // loss: 0.044\n", "epoch: 165, batch: 3500 // loss: 0.035\n", "epoch: 165, batch: 3600 // loss: 0.043\n", "epoch: 165, batch: 3700 // loss: 0.043\n", "\n", "epoch: 166, batch: 0 // loss: 0.053\n", "epoch: 166, batch: 100 // loss: 0.046\n", "epoch: 166, batch: 200 // loss: 0.043\n", "epoch: 166, batch: 300 // loss: 0.049\n", "epoch: 166, batch: 400 // loss: 0.046\n", "epoch: 166, batch: 500 // loss: 0.040\n", "epoch: 166, batch: 600 // loss: 0.040\n", "epoch: 166, batch: 700 // loss: 0.044\n", "epoch: 166, batch: 800 // loss: 0.042\n", "epoch: 166, batch: 900 // loss: 0.049\n", "epoch: 166, batch: 1000 // loss: 0.046\n", "epoch: 166, batch: 1100 // loss: 0.042\n", "epoch: 166, batch: 1200 // loss: 0.044\n", "epoch: 166, batch: 1300 // loss: 0.046\n", "epoch: 166, batch: 1400 // loss: 0.043\n", "epoch: 166, batch: 1500 // loss: 0.048\n", "epoch: 166, batch: 1600 // loss: 0.052\n", "epoch: 166, batch: 1700 // loss: 0.045\n", "epoch: 166, batch: 1800 // loss: 0.053\n", "epoch: 166, batch: 1900 // loss: 0.045\n", "epoch: 166, batch: 2000 // loss: 0.047\n", "epoch: 166, batch: 2100 // loss: 0.046\n", "epoch: 166, batch: 2200 // loss: 0.050\n", "epoch: 166, batch: 2300 // loss: 0.049\n", "epoch: 166, batch: 2400 // loss: 0.042\n", "epoch: 166, batch: 2500 // loss: 0.042\n", "epoch: 166, batch: 2600 // loss: 0.045\n", "epoch: 166, batch: 2700 // loss: 0.042\n", "epoch: 166, batch: 2800 // loss: 0.046\n", "epoch: 166, batch: 2900 // loss: 0.042\n", "epoch: 166, batch: 3000 // loss: 0.045\n", "epoch: 166, batch: 3100 // loss: 0.043\n", "epoch: 166, batch: 3200 // loss: 0.039\n", "epoch: 166, batch: 3300 // loss: 0.038\n", "epoch: 166, batch: 3400 // loss: 0.044\n", "epoch: 166, batch: 3500 // loss: 0.035\n", "epoch: 166, batch: 3600 // loss: 0.043\n", "epoch: 166, batch: 3700 // loss: 0.043\n", "\n", "epoch: 167, batch: 0 // loss: 0.053\n", "epoch: 167, batch: 100 // loss: 0.046\n", "epoch: 167, batch: 200 // loss: 0.043\n", "epoch: 167, batch: 300 // loss: 0.049\n", "epoch: 167, batch: 400 // loss: 0.046\n", "epoch: 167, batch: 500 // loss: 0.040\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 167, batch: 600 // loss: 0.040\n", "epoch: 167, batch: 700 // loss: 0.044\n", "epoch: 167, batch: 800 // loss: 0.042\n", "epoch: 167, batch: 900 // loss: 0.049\n", "epoch: 167, batch: 1000 // loss: 0.046\n", "epoch: 167, batch: 1100 // loss: 0.042\n", "epoch: 167, batch: 1200 // loss: 0.044\n", "epoch: 167, batch: 1300 // loss: 0.046\n", "epoch: 167, batch: 1400 // loss: 0.043\n", "epoch: 167, batch: 1500 // loss: 0.048\n", "epoch: 167, batch: 1600 // loss: 0.052\n", "epoch: 167, batch: 1700 // loss: 0.045\n", "epoch: 167, batch: 1800 // loss: 0.053\n", "epoch: 167, batch: 1900 // loss: 0.045\n", "epoch: 167, batch: 2000 // loss: 0.047\n", "epoch: 167, batch: 2100 // loss: 0.046\n", "epoch: 167, batch: 2200 // loss: 0.050\n", "epoch: 167, batch: 2300 // loss: 0.049\n", "epoch: 167, batch: 2400 // loss: 0.042\n", "epoch: 167, batch: 2500 // loss: 0.042\n", "epoch: 167, batch: 2600 // loss: 0.045\n", "epoch: 167, batch: 2700 // loss: 0.042\n", "epoch: 167, batch: 2800 // loss: 0.046\n", "epoch: 167, batch: 2900 // loss: 0.042\n", "epoch: 167, batch: 3000 // loss: 0.045\n", "epoch: 167, batch: 3100 // loss: 0.043\n", "epoch: 167, batch: 3200 // loss: 0.039\n", "epoch: 167, batch: 3300 // loss: 0.038\n", "epoch: 167, batch: 3400 // loss: 0.044\n", "epoch: 167, batch: 3500 // loss: 0.035\n", "epoch: 167, batch: 3600 // loss: 0.043\n", "epoch: 167, batch: 3700 // loss: 0.043\n", "\n", "epoch: 168, batch: 0 // loss: 0.053\n", "epoch: 168, batch: 100 // loss: 0.046\n", "epoch: 168, batch: 200 // loss: 0.043\n", "epoch: 168, batch: 300 // loss: 0.049\n", "epoch: 168, batch: 400 // loss: 0.046\n", "epoch: 168, batch: 500 // loss: 0.040\n", "epoch: 168, batch: 600 // loss: 0.040\n", "epoch: 168, batch: 700 // loss: 0.044\n", "epoch: 168, batch: 800 // loss: 0.042\n", "epoch: 168, batch: 900 // loss: 0.049\n", "epoch: 168, batch: 1000 // loss: 0.046\n", "epoch: 168, batch: 1100 // loss: 0.042\n", "epoch: 168, batch: 1200 // loss: 0.044\n", "epoch: 168, batch: 1300 // loss: 0.046\n", "epoch: 168, batch: 1400 // loss: 0.043\n", "epoch: 168, batch: 1500 // loss: 0.048\n", "epoch: 168, batch: 1600 // loss: 0.052\n", "epoch: 168, batch: 1700 // loss: 0.045\n", "epoch: 168, batch: 1800 // loss: 0.053\n", "epoch: 168, batch: 1900 // loss: 0.045\n", "epoch: 168, batch: 2000 // loss: 0.047\n", "epoch: 168, batch: 2100 // loss: 0.046\n", "epoch: 168, batch: 2200 // loss: 0.050\n", "epoch: 168, batch: 2300 // loss: 0.049\n", "epoch: 168, batch: 2400 // loss: 0.042\n", "epoch: 168, batch: 2500 // loss: 0.042\n", "epoch: 168, batch: 2600 // loss: 0.045\n", "epoch: 168, batch: 2700 // loss: 0.042\n", "epoch: 168, batch: 2800 // loss: 0.046\n", "epoch: 168, batch: 2900 // loss: 0.042\n", "epoch: 168, batch: 3000 // loss: 0.045\n", "epoch: 168, batch: 3100 // loss: 0.043\n", "epoch: 168, batch: 3200 // loss: 0.039\n", "epoch: 168, batch: 3300 // loss: 0.038\n", "epoch: 168, batch: 3400 // loss: 0.044\n", "epoch: 168, batch: 3500 // loss: 0.035\n", "epoch: 168, batch: 3600 // loss: 0.043\n", "epoch: 168, batch: 3700 // loss: 0.043\n", "\n", "epoch: 169, batch: 0 // loss: 0.053\n", "epoch: 169, batch: 100 // loss: 0.046\n", "epoch: 169, batch: 200 // loss: 0.043\n", "epoch: 169, batch: 300 // loss: 0.049\n", "epoch: 169, batch: 400 // loss: 0.046\n", "epoch: 169, batch: 500 // loss: 0.040\n", "epoch: 169, batch: 600 // loss: 0.040\n", "epoch: 169, batch: 700 // loss: 0.044\n", "epoch: 169, batch: 800 // loss: 0.042\n", "epoch: 169, batch: 900 // loss: 0.049\n", "epoch: 169, batch: 1000 // loss: 0.046\n", "epoch: 169, batch: 1100 // loss: 0.042\n", "epoch: 169, batch: 1200 // loss: 0.044\n", "epoch: 169, batch: 1300 // loss: 0.046\n", "epoch: 169, batch: 1400 // loss: 0.043\n", "epoch: 169, batch: 1500 // loss: 0.048\n", "epoch: 169, batch: 1600 // loss: 0.052\n", "epoch: 169, batch: 1700 // loss: 0.045\n", "epoch: 169, batch: 1800 // loss: 0.053\n", "epoch: 169, batch: 1900 // loss: 0.045\n", "epoch: 169, batch: 2000 // loss: 0.047\n", "epoch: 169, batch: 2100 // loss: 0.046\n", "epoch: 169, batch: 2200 // loss: 0.050\n", "epoch: 169, batch: 2300 // loss: 0.049\n", "epoch: 169, batch: 2400 // loss: 0.042\n", "epoch: 169, batch: 2500 // loss: 0.042\n", "epoch: 169, batch: 2600 // loss: 0.045\n", "epoch: 169, batch: 2700 // loss: 0.042\n", "epoch: 169, batch: 2800 // loss: 0.046\n", "epoch: 169, batch: 2900 // loss: 0.042\n", "epoch: 169, batch: 3000 // loss: 0.045\n", "epoch: 169, batch: 3100 // loss: 0.043\n", "epoch: 169, batch: 3200 // loss: 0.039\n", "epoch: 169, batch: 3300 // loss: 0.038\n", "epoch: 169, batch: 3400 // loss: 0.044\n", "epoch: 169, batch: 3500 // loss: 0.035\n", "epoch: 169, batch: 3600 // loss: 0.043\n", "epoch: 169, batch: 3700 // loss: 0.043\n", "\n", "epoch: 170, batch: 0 // loss: 0.053\n", "epoch: 170, batch: 100 // loss: 0.046\n", "epoch: 170, batch: 200 // loss: 0.043\n", "epoch: 170, batch: 300 // loss: 0.049\n", "epoch: 170, batch: 400 // loss: 0.046\n", "epoch: 170, batch: 500 // loss: 0.040\n", "epoch: 170, batch: 600 // loss: 0.040\n", "epoch: 170, batch: 700 // loss: 0.044\n", "epoch: 170, batch: 800 // loss: 0.042\n", "epoch: 170, batch: 900 // loss: 0.049\n", "epoch: 170, batch: 1000 // loss: 0.046\n", "epoch: 170, batch: 1100 // loss: 0.042\n", "epoch: 170, batch: 1200 // loss: 0.044\n", "epoch: 170, batch: 1300 // loss: 0.046\n", "epoch: 170, batch: 1400 // loss: 0.043\n", "epoch: 170, batch: 1500 // loss: 0.048\n", "epoch: 170, batch: 1600 // loss: 0.052\n", "epoch: 170, batch: 1700 // loss: 0.045\n", "epoch: 170, batch: 1800 // loss: 0.053\n", "epoch: 170, batch: 1900 // loss: 0.045\n", "epoch: 170, batch: 2000 // loss: 0.047\n", "epoch: 170, batch: 2100 // loss: 0.046\n", "epoch: 170, batch: 2200 // loss: 0.050\n", "epoch: 170, batch: 2300 // loss: 0.049\n", "epoch: 170, batch: 2400 // loss: 0.042\n", "epoch: 170, batch: 2500 // loss: 0.042\n", "epoch: 170, batch: 2600 // loss: 0.045\n", "epoch: 170, batch: 2700 // loss: 0.042\n", "epoch: 170, batch: 2800 // loss: 0.046\n", "epoch: 170, batch: 2900 // loss: 0.042\n", "epoch: 170, batch: 3000 // loss: 0.045\n", "epoch: 170, batch: 3100 // loss: 0.043\n", "epoch: 170, batch: 3200 // loss: 0.039\n", "epoch: 170, batch: 3300 // loss: 0.038\n", "epoch: 170, batch: 3400 // loss: 0.044\n", "epoch: 170, batch: 3500 // loss: 0.035\n", "epoch: 170, batch: 3600 // loss: 0.043\n", "epoch: 170, batch: 3700 // loss: 0.043\n", "\n", "epoch: 171, batch: 0 // loss: 0.053\n", "epoch: 171, batch: 100 // loss: 0.046\n", "epoch: 171, batch: 200 // loss: 0.043\n", "epoch: 171, batch: 300 // loss: 0.049\n", "epoch: 171, batch: 400 // loss: 0.046\n", "epoch: 171, batch: 500 // loss: 0.040\n", "epoch: 171, batch: 600 // loss: 0.040\n", "epoch: 171, batch: 700 // loss: 0.044\n", "epoch: 171, batch: 800 // loss: 0.042\n", "epoch: 171, batch: 900 // loss: 0.049\n", "epoch: 171, batch: 1000 // loss: 0.046\n", "epoch: 171, batch: 1100 // loss: 0.042\n", "epoch: 171, batch: 1200 // loss: 0.044\n", "epoch: 171, batch: 1300 // loss: 0.046\n", "epoch: 171, batch: 1400 // loss: 0.043\n", "epoch: 171, batch: 1500 // loss: 0.048\n", "epoch: 171, batch: 1600 // loss: 0.052\n", "epoch: 171, batch: 1700 // loss: 0.045\n", "epoch: 171, batch: 1800 // loss: 0.053\n", "epoch: 171, batch: 1900 // loss: 0.045\n", "epoch: 171, batch: 2000 // loss: 0.047\n", "epoch: 171, batch: 2100 // loss: 0.046\n", "epoch: 171, batch: 2200 // loss: 0.050\n", "epoch: 171, batch: 2300 // loss: 0.049\n", "epoch: 171, batch: 2400 // loss: 0.042\n", "epoch: 171, batch: 2500 // loss: 0.042\n", "epoch: 171, batch: 2600 // loss: 0.045\n", "epoch: 171, batch: 2700 // loss: 0.042\n", "epoch: 171, batch: 2800 // loss: 0.046\n", "epoch: 171, batch: 2900 // loss: 0.042\n", "epoch: 171, batch: 3000 // loss: 0.045\n", "epoch: 171, batch: 3100 // loss: 0.043\n", "epoch: 171, batch: 3200 // loss: 0.039\n", "epoch: 171, batch: 3300 // loss: 0.038\n", "epoch: 171, batch: 3400 // loss: 0.044\n", "epoch: 171, batch: 3500 // loss: 0.035\n", "epoch: 171, batch: 3600 // loss: 0.043\n", "epoch: 171, batch: 3700 // loss: 0.043\n", "\n", "epoch: 172, batch: 0 // loss: 0.053\n", "epoch: 172, batch: 100 // loss: 0.046\n", "epoch: 172, batch: 200 // loss: 0.043\n", "epoch: 172, batch: 300 // loss: 0.049\n", "epoch: 172, batch: 400 // loss: 0.046\n", "epoch: 172, batch: 500 // loss: 0.040\n", "epoch: 172, batch: 600 // loss: 0.040\n", "epoch: 172, batch: 700 // loss: 0.044\n", "epoch: 172, batch: 800 // loss: 0.042\n", "epoch: 172, batch: 900 // loss: 0.049\n", "epoch: 172, batch: 1000 // loss: 0.046\n", "epoch: 172, batch: 1100 // loss: 0.042\n", "epoch: 172, batch: 1200 // loss: 0.044\n", "epoch: 172, batch: 1300 // loss: 0.046\n", "epoch: 172, batch: 1400 // loss: 0.043\n", "epoch: 172, batch: 1500 // loss: 0.048\n", "epoch: 172, batch: 1600 // loss: 0.052\n", "epoch: 172, batch: 1700 // loss: 0.045\n", "epoch: 172, batch: 1800 // loss: 0.053\n", "epoch: 172, batch: 1900 // loss: 0.045\n", "epoch: 172, batch: 2000 // loss: 0.047\n", "epoch: 172, batch: 2100 // loss: 0.046\n", "epoch: 172, batch: 2200 // loss: 0.050\n", "epoch: 172, batch: 2300 // loss: 0.049\n", "epoch: 172, batch: 2400 // loss: 0.042\n", "epoch: 172, batch: 2500 // loss: 0.042\n", "epoch: 172, batch: 2600 // loss: 0.045\n", "epoch: 172, batch: 2700 // loss: 0.042\n", "epoch: 172, batch: 2800 // loss: 0.046\n", "epoch: 172, batch: 2900 // loss: 0.042\n", "epoch: 172, batch: 3000 // loss: 0.045\n", "epoch: 172, batch: 3100 // loss: 0.043\n", "epoch: 172, batch: 3200 // loss: 0.039\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 172, batch: 3300 // loss: 0.038\n", "epoch: 172, batch: 3400 // loss: 0.044\n", "epoch: 172, batch: 3500 // loss: 0.035\n", "epoch: 172, batch: 3600 // loss: 0.043\n", "epoch: 172, batch: 3700 // loss: 0.043\n", "\n", "epoch: 173, batch: 0 // loss: 0.053\n", "epoch: 173, batch: 100 // loss: 0.046\n", "epoch: 173, batch: 200 // loss: 0.043\n", "epoch: 173, batch: 300 // loss: 0.049\n", "epoch: 173, batch: 400 // loss: 0.046\n", "epoch: 173, batch: 500 // loss: 0.040\n", "epoch: 173, batch: 600 // loss: 0.040\n", "epoch: 173, batch: 700 // loss: 0.044\n", "epoch: 173, batch: 800 // loss: 0.042\n", "epoch: 173, batch: 900 // loss: 0.049\n", "epoch: 173, batch: 1000 // loss: 0.046\n", "epoch: 173, batch: 1100 // loss: 0.042\n", "epoch: 173, batch: 1200 // loss: 0.044\n", "epoch: 173, batch: 1300 // loss: 0.046\n", "epoch: 173, batch: 1400 // loss: 0.043\n", "epoch: 173, batch: 1500 // loss: 0.048\n", "epoch: 173, batch: 1600 // loss: 0.052\n", "epoch: 173, batch: 1700 // loss: 0.045\n", "epoch: 173, batch: 1800 // loss: 0.053\n", "epoch: 173, batch: 1900 // loss: 0.045\n", "epoch: 173, batch: 2000 // loss: 0.047\n", "epoch: 173, batch: 2100 // loss: 0.046\n", "epoch: 173, batch: 2200 // loss: 0.050\n", "epoch: 173, batch: 2300 // loss: 0.049\n", "epoch: 173, batch: 2400 // loss: 0.042\n", "epoch: 173, batch: 2500 // loss: 0.042\n", "epoch: 173, batch: 2600 // loss: 0.045\n", "epoch: 173, batch: 2700 // loss: 0.042\n", "epoch: 173, batch: 2800 // loss: 0.046\n", "epoch: 173, batch: 2900 // loss: 0.042\n", "epoch: 173, batch: 3000 // loss: 0.045\n", "epoch: 173, batch: 3100 // loss: 0.043\n", "epoch: 173, batch: 3200 // loss: 0.039\n", "epoch: 173, batch: 3300 // loss: 0.038\n", "epoch: 173, batch: 3400 // loss: 0.044\n", "epoch: 173, batch: 3500 // loss: 0.035\n", "epoch: 173, batch: 3600 // loss: 0.043\n", "epoch: 173, batch: 3700 // loss: 0.043\n", "\n", "epoch: 174, batch: 0 // loss: 0.053\n", "epoch: 174, batch: 100 // loss: 0.046\n", "epoch: 174, batch: 200 // loss: 0.043\n", "epoch: 174, batch: 300 // loss: 0.049\n", "epoch: 174, batch: 400 // loss: 0.046\n", "epoch: 174, batch: 500 // loss: 0.040\n", "epoch: 174, batch: 600 // loss: 0.040\n", "epoch: 174, batch: 700 // loss: 0.044\n", "epoch: 174, batch: 800 // loss: 0.042\n", "epoch: 174, batch: 900 // loss: 0.049\n", "epoch: 174, batch: 1000 // loss: 0.046\n", "epoch: 174, batch: 1100 // loss: 0.042\n", "epoch: 174, batch: 1200 // loss: 0.044\n", "epoch: 174, batch: 1300 // loss: 0.046\n", "epoch: 174, batch: 1400 // loss: 0.043\n", "epoch: 174, batch: 1500 // loss: 0.048\n", "epoch: 174, batch: 1600 // loss: 0.052\n", "epoch: 174, batch: 1700 // loss: 0.045\n", "epoch: 174, batch: 1800 // loss: 0.053\n", "epoch: 174, batch: 1900 // loss: 0.045\n", "epoch: 174, batch: 2000 // loss: 0.047\n", "epoch: 174, batch: 2100 // loss: 0.046\n", "epoch: 174, batch: 2200 // loss: 0.050\n", "epoch: 174, batch: 2300 // loss: 0.049\n", "epoch: 174, batch: 2400 // loss: 0.042\n", "epoch: 174, batch: 2500 // loss: 0.042\n", "epoch: 174, batch: 2600 // loss: 0.045\n", "epoch: 174, batch: 2700 // loss: 0.042\n", "epoch: 174, batch: 2800 // loss: 0.046\n", "epoch: 174, batch: 2900 // loss: 0.042\n", "epoch: 174, batch: 3000 // loss: 0.045\n", "epoch: 174, batch: 3100 // loss: 0.043\n", "epoch: 174, batch: 3200 // loss: 0.039\n", "epoch: 174, batch: 3300 // loss: 0.038\n", "epoch: 174, batch: 3400 // loss: 0.044\n", "epoch: 174, batch: 3500 // loss: 0.035\n", "epoch: 174, batch: 3600 // loss: 0.043\n", "epoch: 174, batch: 3700 // loss: 0.043\n", "\n", "epoch: 175, batch: 0 // loss: 0.053\n", "epoch: 175, batch: 100 // loss: 0.046\n", "epoch: 175, batch: 200 // loss: 0.043\n", "epoch: 175, batch: 300 // loss: 0.049\n", "epoch: 175, batch: 400 // loss: 0.046\n", "epoch: 175, batch: 500 // loss: 0.040\n", "epoch: 175, batch: 600 // loss: 0.040\n", "epoch: 175, batch: 700 // loss: 0.044\n", "epoch: 175, batch: 800 // loss: 0.042\n", "epoch: 175, batch: 900 // loss: 0.049\n", "epoch: 175, batch: 1000 // loss: 0.046\n", "epoch: 175, batch: 1100 // loss: 0.042\n", "epoch: 175, batch: 1200 // loss: 0.044\n", "epoch: 175, batch: 1300 // loss: 0.046\n", "epoch: 175, batch: 1400 // loss: 0.043\n", "epoch: 175, batch: 1500 // loss: 0.048\n", "epoch: 175, batch: 1600 // loss: 0.052\n", "epoch: 175, batch: 1700 // loss: 0.045\n", "epoch: 175, batch: 1800 // loss: 0.053\n", "epoch: 175, batch: 1900 // loss: 0.045\n", "epoch: 175, batch: 2000 // loss: 0.047\n", "epoch: 175, batch: 2100 // loss: 0.046\n", "epoch: 175, batch: 2200 // loss: 0.050\n", "epoch: 175, batch: 2300 // loss: 0.049\n", "epoch: 175, batch: 2400 // loss: 0.042\n", "epoch: 175, batch: 2500 // loss: 0.042\n", "epoch: 175, batch: 2600 // loss: 0.045\n", "epoch: 175, batch: 2700 // loss: 0.042\n", "epoch: 175, batch: 2800 // loss: 0.046\n", "epoch: 175, batch: 2900 // loss: 0.042\n", "epoch: 175, batch: 3000 // loss: 0.045\n", "epoch: 175, batch: 3100 // loss: 0.043\n", "epoch: 175, batch: 3200 // loss: 0.039\n", "epoch: 175, batch: 3300 // loss: 0.038\n", "epoch: 175, batch: 3400 // loss: 0.044\n", "epoch: 175, batch: 3500 // loss: 0.035\n", "epoch: 175, batch: 3600 // loss: 0.043\n", "epoch: 175, batch: 3700 // loss: 0.043\n", "\n", "epoch: 176, batch: 0 // loss: 0.053\n", "epoch: 176, batch: 100 // loss: 0.046\n", "epoch: 176, batch: 200 // loss: 0.043\n", "epoch: 176, batch: 300 // loss: 0.049\n", "epoch: 176, batch: 400 // loss: 0.046\n", "epoch: 176, batch: 500 // loss: 0.040\n", "epoch: 176, batch: 600 // loss: 0.040\n", "epoch: 176, batch: 700 // loss: 0.044\n", "epoch: 176, batch: 800 // loss: 0.042\n", "epoch: 176, batch: 900 // loss: 0.049\n", "epoch: 176, batch: 1000 // loss: 0.046\n", "epoch: 176, batch: 1100 // loss: 0.042\n", "epoch: 176, batch: 1200 // loss: 0.044\n", "epoch: 176, batch: 1300 // loss: 0.046\n", "epoch: 176, batch: 1400 // loss: 0.043\n", "epoch: 176, batch: 1500 // loss: 0.048\n", "epoch: 176, batch: 1600 // loss: 0.052\n", "epoch: 176, batch: 1700 // loss: 0.045\n", "epoch: 176, batch: 1800 // loss: 0.053\n", "epoch: 176, batch: 1900 // loss: 0.045\n", "epoch: 176, batch: 2000 // loss: 0.047\n", "epoch: 176, batch: 2100 // loss: 0.046\n", "epoch: 176, batch: 2200 // loss: 0.050\n", "epoch: 176, batch: 2300 // loss: 0.049\n", "epoch: 176, batch: 2400 // loss: 0.042\n", "epoch: 176, batch: 2500 // loss: 0.042\n", "epoch: 176, batch: 2600 // loss: 0.045\n", "epoch: 176, batch: 2700 // loss: 0.042\n", "epoch: 176, batch: 2800 // loss: 0.046\n", "epoch: 176, batch: 2900 // loss: 0.042\n", "epoch: 176, batch: 3000 // loss: 0.045\n", "epoch: 176, batch: 3100 // loss: 0.043\n", "epoch: 176, batch: 3200 // loss: 0.039\n", "epoch: 176, batch: 3300 // loss: 0.038\n", "epoch: 176, batch: 3400 // loss: 0.044\n", "epoch: 176, batch: 3500 // loss: 0.035\n", "epoch: 176, batch: 3600 // loss: 0.043\n", "epoch: 176, batch: 3700 // loss: 0.043\n", "\n", "epoch: 177, batch: 0 // loss: 0.053\n", "epoch: 177, batch: 100 // loss: 0.046\n", "epoch: 177, batch: 200 // loss: 0.043\n", "epoch: 177, batch: 300 // loss: 0.049\n", "epoch: 177, batch: 400 // loss: 0.046\n", "epoch: 177, batch: 500 // loss: 0.040\n", "epoch: 177, batch: 600 // loss: 0.040\n", "epoch: 177, batch: 700 // loss: 0.044\n", "epoch: 177, batch: 800 // loss: 0.042\n", "epoch: 177, batch: 900 // loss: 0.049\n", "epoch: 177, batch: 1000 // loss: 0.046\n", "epoch: 177, batch: 1100 // loss: 0.042\n", "epoch: 177, batch: 1200 // loss: 0.044\n", "epoch: 177, batch: 1300 // loss: 0.046\n", "epoch: 177, batch: 1400 // loss: 0.043\n", "epoch: 177, batch: 1500 // loss: 0.048\n", "epoch: 177, batch: 1600 // loss: 0.052\n", "epoch: 177, batch: 1700 // loss: 0.045\n", "epoch: 177, batch: 1800 // loss: 0.053\n", "epoch: 177, batch: 1900 // loss: 0.045\n", "epoch: 177, batch: 2000 // loss: 0.047\n", "epoch: 177, batch: 2100 // loss: 0.046\n", "epoch: 177, batch: 2200 // loss: 0.050\n", "epoch: 177, batch: 2300 // loss: 0.049\n", "epoch: 177, batch: 2400 // loss: 0.042\n", "epoch: 177, batch: 2500 // loss: 0.042\n", "epoch: 177, batch: 2600 // loss: 0.045\n", "epoch: 177, batch: 2700 // loss: 0.042\n", "epoch: 177, batch: 2800 // loss: 0.046\n", "epoch: 177, batch: 2900 // loss: 0.042\n", "epoch: 177, batch: 3000 // loss: 0.045\n", "epoch: 177, batch: 3100 // loss: 0.043\n", "epoch: 177, batch: 3200 // loss: 0.039\n", "epoch: 177, batch: 3300 // loss: 0.038\n", "epoch: 177, batch: 3400 // loss: 0.044\n", "epoch: 177, batch: 3500 // loss: 0.035\n", "epoch: 177, batch: 3600 // loss: 0.043\n", "epoch: 177, batch: 3700 // loss: 0.043\n", "\n", "epoch: 178, batch: 0 // loss: 0.053\n", "epoch: 178, batch: 100 // loss: 0.046\n", "epoch: 178, batch: 200 // loss: 0.043\n", "epoch: 178, batch: 300 // loss: 0.049\n", "epoch: 178, batch: 400 // loss: 0.046\n", "epoch: 178, batch: 500 // loss: 0.040\n", "epoch: 178, batch: 600 // loss: 0.040\n", "epoch: 178, batch: 700 // loss: 0.044\n", "epoch: 178, batch: 800 // loss: 0.042\n", "epoch: 178, batch: 900 // loss: 0.049\n", "epoch: 178, batch: 1000 // loss: 0.046\n", "epoch: 178, batch: 1100 // loss: 0.042\n", "epoch: 178, batch: 1200 // loss: 0.044\n", "epoch: 178, batch: 1300 // loss: 0.046\n", "epoch: 178, batch: 1400 // loss: 0.043\n", "epoch: 178, batch: 1500 // loss: 0.048\n", "epoch: 178, batch: 1600 // loss: 0.052\n", "epoch: 178, batch: 1700 // loss: 0.045\n", "epoch: 178, batch: 1800 // loss: 0.053\n", "epoch: 178, batch: 1900 // loss: 0.045\n", "epoch: 178, batch: 2000 // loss: 0.047\n", "epoch: 178, batch: 2100 // loss: 0.046\n", "epoch: 178, batch: 2200 // loss: 0.050\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 178, batch: 2300 // loss: 0.049\n", "epoch: 178, batch: 2400 // loss: 0.042\n", "epoch: 178, batch: 2500 // loss: 0.042\n", "epoch: 178, batch: 2600 // loss: 0.045\n", "epoch: 178, batch: 2700 // loss: 0.042\n", "epoch: 178, batch: 2800 // loss: 0.046\n", "epoch: 178, batch: 2900 // loss: 0.042\n", "epoch: 178, batch: 3000 // loss: 0.045\n", "epoch: 178, batch: 3100 // loss: 0.043\n", "epoch: 178, batch: 3200 // loss: 0.039\n", "epoch: 178, batch: 3300 // loss: 0.038\n", "epoch: 178, batch: 3400 // loss: 0.044\n", "epoch: 178, batch: 3500 // loss: 0.035\n", "epoch: 178, batch: 3600 // loss: 0.043\n", "epoch: 178, batch: 3700 // loss: 0.043\n", "\n", "epoch: 179, batch: 0 // loss: 0.053\n", "epoch: 179, batch: 100 // loss: 0.046\n", "epoch: 179, batch: 200 // loss: 0.043\n", "epoch: 179, batch: 300 // loss: 0.049\n", "epoch: 179, batch: 400 // loss: 0.046\n", "epoch: 179, batch: 500 // loss: 0.040\n", "epoch: 179, batch: 600 // loss: 0.040\n", "epoch: 179, batch: 700 // loss: 0.044\n", "epoch: 179, batch: 800 // loss: 0.042\n", "epoch: 179, batch: 900 // loss: 0.049\n", "epoch: 179, batch: 1000 // loss: 0.046\n", "epoch: 179, batch: 1100 // loss: 0.042\n", "epoch: 179, batch: 1200 // loss: 0.044\n", "epoch: 179, batch: 1300 // loss: 0.046\n", "epoch: 179, batch: 1400 // loss: 0.043\n", "epoch: 179, batch: 1500 // loss: 0.048\n", "epoch: 179, batch: 1600 // loss: 0.052\n", "epoch: 179, batch: 1700 // loss: 0.045\n", "epoch: 179, batch: 1800 // loss: 0.053\n", "epoch: 179, batch: 1900 // loss: 0.045\n", "epoch: 179, batch: 2000 // loss: 0.047\n", "epoch: 179, batch: 2100 // loss: 0.046\n", "epoch: 179, batch: 2200 // loss: 0.050\n", "epoch: 179, batch: 2300 // loss: 0.049\n", "epoch: 179, batch: 2400 // loss: 0.042\n", "epoch: 179, batch: 2500 // loss: 0.042\n", "epoch: 179, batch: 2600 // loss: 0.045\n", "epoch: 179, batch: 2700 // loss: 0.042\n", "epoch: 179, batch: 2800 // loss: 0.046\n", "epoch: 179, batch: 2900 // loss: 0.042\n", "epoch: 179, batch: 3000 // loss: 0.045\n", "epoch: 179, batch: 3100 // loss: 0.043\n", "epoch: 179, batch: 3200 // loss: 0.039\n", "epoch: 179, batch: 3300 // loss: 0.038\n", "epoch: 179, batch: 3400 // loss: 0.044\n", "epoch: 179, batch: 3500 // loss: 0.035\n", "epoch: 179, batch: 3600 // loss: 0.043\n", "epoch: 179, batch: 3700 // loss: 0.043\n", "\n", "epoch: 180, batch: 0 // loss: 0.053\n", "epoch: 180, batch: 100 // loss: 0.046\n", "epoch: 180, batch: 200 // loss: 0.043\n", "epoch: 180, batch: 300 // loss: 0.049\n", "epoch: 180, batch: 400 // loss: 0.046\n", "epoch: 180, batch: 500 // loss: 0.040\n", "epoch: 180, batch: 600 // loss: 0.040\n", "epoch: 180, batch: 700 // loss: 0.044\n", "epoch: 180, batch: 800 // loss: 0.042\n", "epoch: 180, batch: 900 // loss: 0.049\n", "epoch: 180, batch: 1000 // loss: 0.046\n", "epoch: 180, batch: 1100 // loss: 0.042\n", "epoch: 180, batch: 1200 // loss: 0.044\n", "epoch: 180, batch: 1300 // loss: 0.046\n", "epoch: 180, batch: 1400 // loss: 0.043\n", "epoch: 180, batch: 1500 // loss: 0.048\n", "epoch: 180, batch: 1600 // loss: 0.052\n", "epoch: 180, batch: 1700 // loss: 0.045\n", "epoch: 180, batch: 1800 // loss: 0.053\n", "epoch: 180, batch: 1900 // loss: 0.045\n", "epoch: 180, batch: 2000 // loss: 0.047\n", "epoch: 180, batch: 2100 // loss: 0.046\n", "epoch: 180, batch: 2200 // loss: 0.050\n", "epoch: 180, batch: 2300 // loss: 0.049\n", "epoch: 180, batch: 2400 // loss: 0.042\n", "epoch: 180, batch: 2500 // loss: 0.042\n", "epoch: 180, batch: 2600 // loss: 0.045\n", "epoch: 180, batch: 2700 // loss: 0.042\n", "epoch: 180, batch: 2800 // loss: 0.046\n", "epoch: 180, batch: 2900 // loss: 0.042\n", "epoch: 180, batch: 3000 // loss: 0.045\n", "epoch: 180, batch: 3100 // loss: 0.043\n", "epoch: 180, batch: 3200 // loss: 0.039\n", "epoch: 180, batch: 3300 // loss: 0.038\n", "epoch: 180, batch: 3400 // loss: 0.044\n", "epoch: 180, batch: 3500 // loss: 0.035\n", "epoch: 180, batch: 3600 // loss: 0.043\n", "epoch: 180, batch: 3700 // loss: 0.043\n", "\n", "epoch: 181, batch: 0 // loss: 0.053\n", "epoch: 181, batch: 100 // loss: 0.046\n", "epoch: 181, batch: 200 // loss: 0.043\n", "epoch: 181, batch: 300 // loss: 0.049\n", "epoch: 181, batch: 400 // loss: 0.046\n", "epoch: 181, batch: 500 // loss: 0.040\n", "epoch: 181, batch: 600 // loss: 0.040\n", "epoch: 181, batch: 700 // loss: 0.044\n", "epoch: 181, batch: 800 // loss: 0.042\n", "epoch: 181, batch: 900 // loss: 0.049\n", "epoch: 181, batch: 1000 // loss: 0.046\n", "epoch: 181, batch: 1100 // loss: 0.042\n", "epoch: 181, batch: 1200 // loss: 0.044\n", "epoch: 181, batch: 1300 // loss: 0.046\n", "epoch: 181, batch: 1400 // loss: 0.043\n", "epoch: 181, batch: 1500 // loss: 0.048\n", "epoch: 181, batch: 1600 // loss: 0.052\n", "epoch: 181, batch: 1700 // loss: 0.045\n", "epoch: 181, batch: 1800 // loss: 0.053\n", "epoch: 181, batch: 1900 // loss: 0.045\n", "epoch: 181, batch: 2000 // loss: 0.047\n", "epoch: 181, batch: 2100 // loss: 0.046\n", "epoch: 181, batch: 2200 // loss: 0.050\n", "epoch: 181, batch: 2300 // loss: 0.049\n", "epoch: 181, batch: 2400 // loss: 0.042\n", "epoch: 181, batch: 2500 // loss: 0.042\n", "epoch: 181, batch: 2600 // loss: 0.045\n", "epoch: 181, batch: 2700 // loss: 0.042\n", "epoch: 181, batch: 2800 // loss: 0.046\n", "epoch: 181, batch: 2900 // loss: 0.042\n", "epoch: 181, batch: 3000 // loss: 0.045\n", "epoch: 181, batch: 3100 // loss: 0.043\n", "epoch: 181, batch: 3200 // loss: 0.039\n", "epoch: 181, batch: 3300 // loss: 0.038\n", "epoch: 181, batch: 3400 // loss: 0.044\n", "epoch: 181, batch: 3500 // loss: 0.035\n", "epoch: 181, batch: 3600 // loss: 0.043\n", "epoch: 181, batch: 3700 // loss: 0.043\n", "\n", "epoch: 182, batch: 0 // loss: 0.053\n", "epoch: 182, batch: 100 // loss: 0.046\n", "epoch: 182, batch: 200 // loss: 0.043\n", "epoch: 182, batch: 300 // loss: 0.049\n", "epoch: 182, batch: 400 // loss: 0.046\n", "epoch: 182, batch: 500 // loss: 0.040\n", "epoch: 182, batch: 600 // loss: 0.040\n", "epoch: 182, batch: 700 // loss: 0.044\n", "epoch: 182, batch: 800 // loss: 0.042\n", "epoch: 182, batch: 900 // loss: 0.049\n", "epoch: 182, batch: 1000 // loss: 0.046\n", "epoch: 182, batch: 1100 // loss: 0.042\n", "epoch: 182, batch: 1200 // loss: 0.044\n", "epoch: 182, batch: 1300 // loss: 0.046\n", "epoch: 182, batch: 1400 // loss: 0.043\n", "epoch: 182, batch: 1500 // loss: 0.048\n", "epoch: 182, batch: 1600 // loss: 0.052\n", "epoch: 182, batch: 1700 // loss: 0.045\n", "epoch: 182, batch: 1800 // loss: 0.053\n", "epoch: 182, batch: 1900 // loss: 0.045\n", "epoch: 182, batch: 2000 // loss: 0.047\n", "epoch: 182, batch: 2100 // loss: 0.046\n", "epoch: 182, batch: 2200 // loss: 0.050\n", "epoch: 182, batch: 2300 // loss: 0.049\n", "epoch: 182, batch: 2400 // loss: 0.042\n", "epoch: 182, batch: 2500 // loss: 0.042\n", "epoch: 182, batch: 2600 // loss: 0.045\n", "epoch: 182, batch: 2700 // loss: 0.042\n", "epoch: 182, batch: 2800 // loss: 0.046\n", "epoch: 182, batch: 2900 // loss: 0.042\n", "epoch: 182, batch: 3000 // loss: 0.045\n", "epoch: 182, batch: 3100 // loss: 0.043\n", "epoch: 182, batch: 3200 // loss: 0.039\n", "epoch: 182, batch: 3300 // loss: 0.038\n", "epoch: 182, batch: 3400 // loss: 0.044\n", "epoch: 182, batch: 3500 // loss: 0.035\n", "epoch: 182, batch: 3600 // loss: 0.043\n", "epoch: 182, batch: 3700 // loss: 0.043\n", "\n", "epoch: 183, batch: 0 // loss: 0.053\n", "epoch: 183, batch: 100 // loss: 0.046\n", "epoch: 183, batch: 200 // loss: 0.043\n", "epoch: 183, batch: 300 // loss: 0.049\n", "epoch: 183, batch: 400 // loss: 0.046\n", "epoch: 183, batch: 500 // loss: 0.040\n", "epoch: 183, batch: 600 // loss: 0.040\n", "epoch: 183, batch: 700 // loss: 0.044\n", "epoch: 183, batch: 800 // loss: 0.042\n", "epoch: 183, batch: 900 // loss: 0.049\n", "epoch: 183, batch: 1000 // loss: 0.046\n", "epoch: 183, batch: 1100 // loss: 0.042\n", "epoch: 183, batch: 1200 // loss: 0.044\n", "epoch: 183, batch: 1300 // loss: 0.046\n", "epoch: 183, batch: 1400 // loss: 0.043\n", "epoch: 183, batch: 1500 // loss: 0.048\n", "epoch: 183, batch: 1600 // loss: 0.052\n", "epoch: 183, batch: 1700 // loss: 0.045\n", "epoch: 183, batch: 1800 // loss: 0.053\n", "epoch: 183, batch: 1900 // loss: 0.045\n", "epoch: 183, batch: 2000 // loss: 0.047\n", "epoch: 183, batch: 2100 // loss: 0.046\n", "epoch: 183, batch: 2200 // loss: 0.050\n", "epoch: 183, batch: 2300 // loss: 0.049\n", "epoch: 183, batch: 2400 // loss: 0.042\n", "epoch: 183, batch: 2500 // loss: 0.042\n", "epoch: 183, batch: 2600 // loss: 0.045\n", "epoch: 183, batch: 2700 // loss: 0.042\n", "epoch: 183, batch: 2800 // loss: 0.046\n", "epoch: 183, batch: 2900 // loss: 0.042\n", "epoch: 183, batch: 3000 // loss: 0.045\n", "epoch: 183, batch: 3100 // loss: 0.043\n", "epoch: 183, batch: 3200 // loss: 0.039\n", "epoch: 183, batch: 3300 // loss: 0.038\n", "epoch: 183, batch: 3400 // loss: 0.044\n", "epoch: 183, batch: 3500 // loss: 0.035\n", "epoch: 183, batch: 3600 // loss: 0.043\n", "epoch: 183, batch: 3700 // loss: 0.043\n", "\n", "epoch: 184, batch: 0 // loss: 0.053\n", "epoch: 184, batch: 100 // loss: 0.046\n", "epoch: 184, batch: 200 // loss: 0.043\n", "epoch: 184, batch: 300 // loss: 0.049\n", "epoch: 184, batch: 400 // loss: 0.046\n", "epoch: 184, batch: 500 // loss: 0.040\n", "epoch: 184, batch: 600 // loss: 0.040\n", "epoch: 184, batch: 700 // loss: 0.044\n", "epoch: 184, batch: 800 // loss: 0.042\n", "epoch: 184, batch: 900 // loss: 0.049\n", "epoch: 184, batch: 1000 // loss: 0.046\n", "epoch: 184, batch: 1100 // loss: 0.042\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 184, batch: 1200 // loss: 0.044\n", "epoch: 184, batch: 1300 // loss: 0.046\n", "epoch: 184, batch: 1400 // loss: 0.043\n", "epoch: 184, batch: 1500 // loss: 0.048\n", "epoch: 184, batch: 1600 // loss: 0.052\n", "epoch: 184, batch: 1700 // loss: 0.045\n", "epoch: 184, batch: 1800 // loss: 0.053\n", "epoch: 184, batch: 1900 // loss: 0.045\n", "epoch: 184, batch: 2000 // loss: 0.047\n", "epoch: 184, batch: 2100 // loss: 0.046\n", "epoch: 184, batch: 2200 // loss: 0.050\n", "epoch: 184, batch: 2300 // loss: 0.049\n", "epoch: 184, batch: 2400 // loss: 0.042\n", "epoch: 184, batch: 2500 // loss: 0.042\n", "epoch: 184, batch: 2600 // loss: 0.045\n", "epoch: 184, batch: 2700 // loss: 0.042\n", "epoch: 184, batch: 2800 // loss: 0.046\n", "epoch: 184, batch: 2900 // loss: 0.042\n", "epoch: 184, batch: 3000 // loss: 0.045\n", "epoch: 184, batch: 3100 // loss: 0.043\n", "epoch: 184, batch: 3200 // loss: 0.039\n", "epoch: 184, batch: 3300 // loss: 0.038\n", "epoch: 184, batch: 3400 // loss: 0.044\n", "epoch: 184, batch: 3500 // loss: 0.035\n", "epoch: 184, batch: 3600 // loss: 0.043\n", "epoch: 184, batch: 3700 // loss: 0.043\n", "\n", "epoch: 185, batch: 0 // loss: 0.053\n", "epoch: 185, batch: 100 // loss: 0.046\n", "epoch: 185, batch: 200 // loss: 0.043\n", "epoch: 185, batch: 300 // loss: 0.049\n", "epoch: 185, batch: 400 // loss: 0.046\n", "epoch: 185, batch: 500 // loss: 0.040\n", "epoch: 185, batch: 600 // loss: 0.040\n", "epoch: 185, batch: 700 // loss: 0.044\n", "epoch: 185, batch: 800 // loss: 0.042\n", "epoch: 185, batch: 900 // loss: 0.049\n", "epoch: 185, batch: 1000 // loss: 0.046\n", "epoch: 185, batch: 1100 // loss: 0.042\n", "epoch: 185, batch: 1200 // loss: 0.044\n", "epoch: 185, batch: 1300 // loss: 0.046\n", "epoch: 185, batch: 1400 // loss: 0.043\n", "epoch: 185, batch: 1500 // loss: 0.048\n", "epoch: 185, batch: 1600 // loss: 0.052\n", "epoch: 185, batch: 1700 // loss: 0.045\n", "epoch: 185, batch: 1800 // loss: 0.053\n", "epoch: 185, batch: 1900 // loss: 0.045\n", "epoch: 185, batch: 2000 // loss: 0.047\n", "epoch: 185, batch: 2100 // loss: 0.046\n", "epoch: 185, batch: 2200 // loss: 0.050\n", "epoch: 185, batch: 2300 // loss: 0.049\n", "epoch: 185, batch: 2400 // loss: 0.042\n", "epoch: 185, batch: 2500 // loss: 0.042\n", "epoch: 185, batch: 2600 // loss: 0.045\n", "epoch: 185, batch: 2700 // loss: 0.042\n", "epoch: 185, batch: 2800 // loss: 0.046\n", "epoch: 185, batch: 2900 // loss: 0.042\n", "epoch: 185, batch: 3000 // loss: 0.045\n", "epoch: 185, batch: 3100 // loss: 0.043\n", "epoch: 185, batch: 3200 // loss: 0.039\n", "epoch: 185, batch: 3300 // loss: 0.038\n", "epoch: 185, batch: 3400 // loss: 0.044\n", "epoch: 185, batch: 3500 // loss: 0.035\n", "epoch: 185, batch: 3600 // loss: 0.043\n", "epoch: 185, batch: 3700 // loss: 0.043\n", "\n", "epoch: 186, batch: 0 // loss: 0.053\n", "epoch: 186, batch: 100 // loss: 0.046\n", "epoch: 186, batch: 200 // loss: 0.043\n", "epoch: 186, batch: 300 // loss: 0.049\n", "epoch: 186, batch: 400 // loss: 0.046\n", "epoch: 186, batch: 500 // loss: 0.040\n", "epoch: 186, batch: 600 // loss: 0.040\n", "epoch: 186, batch: 700 // loss: 0.044\n", "epoch: 186, batch: 800 // loss: 0.042\n", "epoch: 186, batch: 900 // loss: 0.049\n", "epoch: 186, batch: 1000 // loss: 0.046\n", "epoch: 186, batch: 1100 // loss: 0.042\n", "epoch: 186, batch: 1200 // loss: 0.044\n", "epoch: 186, batch: 1300 // loss: 0.046\n", "epoch: 186, batch: 1400 // loss: 0.043\n", "epoch: 186, batch: 1500 // loss: 0.048\n", "epoch: 186, batch: 1600 // loss: 0.052\n", "epoch: 186, batch: 1700 // loss: 0.045\n", "epoch: 186, batch: 1800 // loss: 0.053\n", "epoch: 186, batch: 1900 // loss: 0.045\n", "epoch: 186, batch: 2000 // loss: 0.047\n", "epoch: 186, batch: 2100 // loss: 0.046\n", "epoch: 186, batch: 2200 // loss: 0.050\n", "epoch: 186, batch: 2300 // loss: 0.049\n", "epoch: 186, batch: 2400 // loss: 0.042\n", "epoch: 186, batch: 2500 // loss: 0.042\n", "epoch: 186, batch: 2600 // loss: 0.045\n", "epoch: 186, batch: 2700 // loss: 0.042\n", "epoch: 186, batch: 2800 // loss: 0.046\n", "epoch: 186, batch: 2900 // loss: 0.042\n", "epoch: 186, batch: 3000 // loss: 0.045\n", "epoch: 186, batch: 3100 // loss: 0.043\n", "epoch: 186, batch: 3200 // loss: 0.039\n", "epoch: 186, batch: 3300 // loss: 0.038\n", "epoch: 186, batch: 3400 // loss: 0.044\n", "epoch: 186, batch: 3500 // loss: 0.035\n", "epoch: 186, batch: 3600 // loss: 0.043\n", "epoch: 186, batch: 3700 // loss: 0.043\n", "\n", "epoch: 187, batch: 0 // loss: 0.053\n", "epoch: 187, batch: 100 // loss: 0.046\n", "epoch: 187, batch: 200 // loss: 0.043\n", "epoch: 187, batch: 300 // loss: 0.049\n", "epoch: 187, batch: 400 // loss: 0.046\n", "epoch: 187, batch: 500 // loss: 0.040\n", "epoch: 187, batch: 600 // loss: 0.040\n", "epoch: 187, batch: 700 // loss: 0.044\n", "epoch: 187, batch: 800 // loss: 0.042\n", "epoch: 187, batch: 900 // loss: 0.049\n", "epoch: 187, batch: 1000 // loss: 0.046\n", "epoch: 187, batch: 1100 // loss: 0.042\n", "epoch: 187, batch: 1200 // loss: 0.044\n", "epoch: 187, batch: 1300 // loss: 0.046\n", "epoch: 187, batch: 1400 // loss: 0.043\n", "epoch: 187, batch: 1500 // loss: 0.048\n", "epoch: 187, batch: 1600 // loss: 0.052\n", "epoch: 187, batch: 1700 // loss: 0.045\n", "epoch: 187, batch: 1800 // loss: 0.053\n", "epoch: 187, batch: 1900 // loss: 0.045\n", "epoch: 187, batch: 2000 // loss: 0.047\n", "epoch: 187, batch: 2100 // loss: 0.046\n", "epoch: 187, batch: 2200 // loss: 0.050\n", "epoch: 187, batch: 2300 // loss: 0.049\n", "epoch: 187, batch: 2400 // loss: 0.042\n", "epoch: 187, batch: 2500 // loss: 0.042\n", "epoch: 187, batch: 2600 // loss: 0.045\n", "epoch: 187, batch: 2700 // loss: 0.042\n", "epoch: 187, batch: 2800 // loss: 0.046\n", "epoch: 187, batch: 2900 // loss: 0.042\n", "epoch: 187, batch: 3000 // loss: 0.045\n", "epoch: 187, batch: 3100 // loss: 0.043\n", "epoch: 187, batch: 3200 // loss: 0.039\n", "epoch: 187, batch: 3300 // loss: 0.038\n", "epoch: 187, batch: 3400 // loss: 0.044\n", "epoch: 187, batch: 3500 // loss: 0.035\n", "epoch: 187, batch: 3600 // loss: 0.043\n", "epoch: 187, batch: 3700 // loss: 0.043\n", "\n", "epoch: 188, batch: 0 // loss: 0.053\n", "epoch: 188, batch: 100 // loss: 0.046\n", "epoch: 188, batch: 200 // loss: 0.043\n", "epoch: 188, batch: 300 // loss: 0.049\n", "epoch: 188, batch: 400 // loss: 0.046\n", "epoch: 188, batch: 500 // loss: 0.040\n", "epoch: 188, batch: 600 // loss: 0.040\n", "epoch: 188, batch: 700 // loss: 0.044\n", "epoch: 188, batch: 800 // loss: 0.042\n", "epoch: 188, batch: 900 // loss: 0.049\n", "epoch: 188, batch: 1000 // loss: 0.046\n", "epoch: 188, batch: 1100 // loss: 0.042\n", "epoch: 188, batch: 1200 // loss: 0.044\n", "epoch: 188, batch: 1300 // loss: 0.046\n", "epoch: 188, batch: 1400 // loss: 0.043\n", "epoch: 188, batch: 1500 // loss: 0.048\n", "epoch: 188, batch: 1600 // loss: 0.052\n", "epoch: 188, batch: 1700 // loss: 0.045\n", "epoch: 188, batch: 1800 // loss: 0.053\n", "epoch: 188, batch: 1900 // loss: 0.045\n", "epoch: 188, batch: 2000 // loss: 0.047\n", "epoch: 188, batch: 2100 // loss: 0.046\n", "epoch: 188, batch: 2200 // loss: 0.050\n", "epoch: 188, batch: 2300 // loss: 0.049\n", "epoch: 188, batch: 2400 // loss: 0.042\n", "epoch: 188, batch: 2500 // loss: 0.042\n", "epoch: 188, batch: 2600 // loss: 0.045\n", "epoch: 188, batch: 2700 // loss: 0.042\n", "epoch: 188, batch: 2800 // loss: 0.046\n", "epoch: 188, batch: 2900 // loss: 0.042\n", "epoch: 188, batch: 3000 // loss: 0.045\n", "epoch: 188, batch: 3100 // loss: 0.043\n", "epoch: 188, batch: 3200 // loss: 0.039\n", "epoch: 188, batch: 3300 // loss: 0.038\n", "epoch: 188, batch: 3400 // loss: 0.044\n", "epoch: 188, batch: 3500 // loss: 0.035\n", "epoch: 188, batch: 3600 // loss: 0.043\n", "epoch: 188, batch: 3700 // loss: 0.043\n", "\n", "epoch: 189, batch: 0 // loss: 0.053\n", "epoch: 189, batch: 100 // loss: 0.046\n", "epoch: 189, batch: 200 // loss: 0.043\n", "epoch: 189, batch: 300 // loss: 0.049\n", "epoch: 189, batch: 400 // loss: 0.046\n", "epoch: 189, batch: 500 // loss: 0.040\n", "epoch: 189, batch: 600 // loss: 0.040\n", "epoch: 189, batch: 700 // loss: 0.044\n", "epoch: 189, batch: 800 // loss: 0.042\n", "epoch: 189, batch: 900 // loss: 0.049\n", "epoch: 189, batch: 1000 // loss: 0.046\n", "epoch: 189, batch: 1100 // loss: 0.042\n", "epoch: 189, batch: 1200 // loss: 0.044\n", "epoch: 189, batch: 1300 // loss: 0.046\n", "epoch: 189, batch: 1400 // loss: 0.043\n", "epoch: 189, batch: 1500 // loss: 0.048\n", "epoch: 189, batch: 1600 // loss: 0.052\n", "epoch: 189, batch: 1700 // loss: 0.045\n", "epoch: 189, batch: 1800 // loss: 0.053\n", "epoch: 189, batch: 1900 // loss: 0.045\n", "epoch: 189, batch: 2000 // loss: 0.047\n", "epoch: 189, batch: 2100 // loss: 0.046\n", "epoch: 189, batch: 2200 // loss: 0.050\n", "epoch: 189, batch: 2300 // loss: 0.049\n", "epoch: 189, batch: 2400 // loss: 0.042\n", "epoch: 189, batch: 2500 // loss: 0.042\n", "epoch: 189, batch: 2600 // loss: 0.045\n", "epoch: 189, batch: 2700 // loss: 0.042\n", "epoch: 189, batch: 2800 // loss: 0.046\n", "epoch: 189, batch: 2900 // loss: 0.042\n", "epoch: 189, batch: 3000 // loss: 0.045\n", "epoch: 189, batch: 3100 // loss: 0.043\n", "epoch: 189, batch: 3200 // loss: 0.039\n", "epoch: 189, batch: 3300 // loss: 0.038\n", "epoch: 189, batch: 3400 // loss: 0.044\n", "epoch: 189, batch: 3500 // loss: 0.035\n", "epoch: 189, batch: 3600 // loss: 0.043\n", "epoch: 189, batch: 3700 // loss: 0.043\n", "\n", "epoch: 190, batch: 0 // loss: 0.053\n", "epoch: 190, batch: 100 // loss: 0.046\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 190, batch: 200 // loss: 0.043\n", "epoch: 190, batch: 300 // loss: 0.049\n", "epoch: 190, batch: 400 // loss: 0.046\n", "epoch: 190, batch: 500 // loss: 0.040\n", "epoch: 190, batch: 600 // loss: 0.040\n", "epoch: 190, batch: 700 // loss: 0.044\n", "epoch: 190, batch: 800 // loss: 0.042\n", "epoch: 190, batch: 900 // loss: 0.049\n", "epoch: 190, batch: 1000 // loss: 0.046\n", "epoch: 190, batch: 1100 // loss: 0.042\n", "epoch: 190, batch: 1200 // loss: 0.044\n", "epoch: 190, batch: 1300 // loss: 0.046\n", "epoch: 190, batch: 1400 // loss: 0.043\n", "epoch: 190, batch: 1500 // loss: 0.048\n", "epoch: 190, batch: 1600 // loss: 0.052\n", "epoch: 190, batch: 1700 // loss: 0.045\n", "epoch: 190, batch: 1800 // loss: 0.053\n", "epoch: 190, batch: 1900 // loss: 0.045\n", "epoch: 190, batch: 2000 // loss: 0.047\n", "epoch: 190, batch: 2100 // loss: 0.046\n", "epoch: 190, batch: 2200 // loss: 0.050\n", "epoch: 190, batch: 2300 // loss: 0.049\n", "epoch: 190, batch: 2400 // loss: 0.042\n", "epoch: 190, batch: 2500 // loss: 0.042\n", "epoch: 190, batch: 2600 // loss: 0.045\n", "epoch: 190, batch: 2700 // loss: 0.042\n", "epoch: 190, batch: 2800 // loss: 0.046\n", "epoch: 190, batch: 2900 // loss: 0.042\n", "epoch: 190, batch: 3000 // loss: 0.045\n", "epoch: 190, batch: 3100 // loss: 0.043\n", "epoch: 190, batch: 3200 // loss: 0.039\n", "epoch: 190, batch: 3300 // loss: 0.038\n", "epoch: 190, batch: 3400 // loss: 0.044\n", "epoch: 190, batch: 3500 // loss: 0.035\n", "epoch: 190, batch: 3600 // loss: 0.043\n", "epoch: 190, batch: 3700 // loss: 0.043\n", "\n", "epoch: 191, batch: 0 // loss: 0.053\n", "epoch: 191, batch: 100 // loss: 0.046\n", "epoch: 191, batch: 200 // loss: 0.043\n", "epoch: 191, batch: 300 // loss: 0.049\n", "epoch: 191, batch: 400 // loss: 0.046\n", "epoch: 191, batch: 500 // loss: 0.040\n", "epoch: 191, batch: 600 // loss: 0.040\n", "epoch: 191, batch: 700 // loss: 0.044\n", "epoch: 191, batch: 800 // loss: 0.042\n", "epoch: 191, batch: 900 // loss: 0.049\n", "epoch: 191, batch: 1000 // loss: 0.046\n", "epoch: 191, batch: 1100 // loss: 0.042\n", "epoch: 191, batch: 1200 // loss: 0.044\n", "epoch: 191, batch: 1300 // loss: 0.046\n", "epoch: 191, batch: 1400 // loss: 0.043\n", "epoch: 191, batch: 1500 // loss: 0.048\n", "epoch: 191, batch: 1600 // loss: 0.052\n", "epoch: 191, batch: 1700 // loss: 0.045\n", "epoch: 191, batch: 1800 // loss: 0.053\n", "epoch: 191, batch: 1900 // loss: 0.045\n", "epoch: 191, batch: 2000 // loss: 0.047\n", "epoch: 191, batch: 2100 // loss: 0.046\n", "epoch: 191, batch: 2200 // loss: 0.050\n", "epoch: 191, batch: 2300 // loss: 0.049\n", "epoch: 191, batch: 2400 // loss: 0.042\n", "epoch: 191, batch: 2500 // loss: 0.042\n", "epoch: 191, batch: 2600 // loss: 0.045\n", "epoch: 191, batch: 2700 // loss: 0.042\n", "epoch: 191, batch: 2800 // loss: 0.046\n", "epoch: 191, batch: 2900 // loss: 0.042\n", "epoch: 191, batch: 3000 // loss: 0.045\n", "epoch: 191, batch: 3100 // loss: 0.043\n", "epoch: 191, batch: 3200 // loss: 0.039\n", "epoch: 191, batch: 3300 // loss: 0.038\n", "epoch: 191, batch: 3400 // loss: 0.044\n", "epoch: 191, batch: 3500 // loss: 0.035\n", "epoch: 191, batch: 3600 // loss: 0.043\n", "epoch: 191, batch: 3700 // loss: 0.043\n", "\n", "epoch: 192, batch: 0 // loss: 0.053\n", "epoch: 192, batch: 100 // loss: 0.046\n", "epoch: 192, batch: 200 // loss: 0.043\n", "epoch: 192, batch: 300 // loss: 0.049\n", "epoch: 192, batch: 400 // loss: 0.046\n", "epoch: 192, batch: 500 // loss: 0.040\n", "epoch: 192, batch: 600 // loss: 0.040\n", "epoch: 192, batch: 700 // loss: 0.044\n", "epoch: 192, batch: 800 // loss: 0.042\n", "epoch: 192, batch: 900 // loss: 0.049\n", "epoch: 192, batch: 1000 // loss: 0.046\n", "epoch: 192, batch: 1100 // loss: 0.042\n", "epoch: 192, batch: 1200 // loss: 0.044\n", "epoch: 192, batch: 1300 // loss: 0.046\n", "epoch: 192, batch: 1400 // loss: 0.043\n", "epoch: 192, batch: 1500 // loss: 0.048\n", "epoch: 192, batch: 1600 // loss: 0.052\n", "epoch: 192, batch: 1700 // loss: 0.045\n", "epoch: 192, batch: 1800 // loss: 0.053\n", "epoch: 192, batch: 1900 // loss: 0.045\n", "epoch: 192, batch: 2000 // loss: 0.047\n", "epoch: 192, batch: 2100 // loss: 0.046\n", "epoch: 192, batch: 2200 // loss: 0.050\n", "epoch: 192, batch: 2300 // loss: 0.049\n", "epoch: 192, batch: 2400 // loss: 0.042\n", "epoch: 192, batch: 2500 // loss: 0.042\n", "epoch: 192, batch: 2600 // loss: 0.045\n", "epoch: 192, batch: 2700 // loss: 0.042\n", "epoch: 192, batch: 2800 // loss: 0.046\n", "epoch: 192, batch: 2900 // loss: 0.042\n", "epoch: 192, batch: 3000 // loss: 0.045\n", "epoch: 192, batch: 3100 // loss: 0.043\n", "epoch: 192, batch: 3200 // loss: 0.039\n", "epoch: 192, batch: 3300 // loss: 0.038\n", "epoch: 192, batch: 3400 // loss: 0.044\n", "epoch: 192, batch: 3500 // loss: 0.035\n", "epoch: 192, batch: 3600 // loss: 0.043\n", "epoch: 192, batch: 3700 // loss: 0.043\n", "\n", "epoch: 193, batch: 0 // loss: 0.053\n", "epoch: 193, batch: 100 // loss: 0.046\n", "epoch: 193, batch: 200 // loss: 0.043\n", "epoch: 193, batch: 300 // loss: 0.049\n", "epoch: 193, batch: 400 // loss: 0.046\n", "epoch: 193, batch: 500 // loss: 0.040\n", "epoch: 193, batch: 600 // loss: 0.040\n", "epoch: 193, batch: 700 // loss: 0.044\n", "epoch: 193, batch: 800 // loss: 0.042\n", "epoch: 193, batch: 900 // loss: 0.049\n", "epoch: 193, batch: 1000 // loss: 0.046\n", "epoch: 193, batch: 1100 // loss: 0.042\n", "epoch: 193, batch: 1200 // loss: 0.044\n", "epoch: 193, batch: 1300 // loss: 0.046\n", "epoch: 193, batch: 1400 // loss: 0.043\n", "epoch: 193, batch: 1500 // loss: 0.048\n", "epoch: 193, batch: 1600 // loss: 0.052\n", "epoch: 193, batch: 1700 // loss: 0.045\n", "epoch: 193, batch: 1800 // loss: 0.053\n", "epoch: 193, batch: 1900 // loss: 0.045\n", "epoch: 193, batch: 2000 // loss: 0.047\n", "epoch: 193, batch: 2100 // loss: 0.046\n", "epoch: 193, batch: 2200 // loss: 0.050\n", "epoch: 193, batch: 2300 // loss: 0.049\n", "epoch: 193, batch: 2400 // loss: 0.042\n", "epoch: 193, batch: 2500 // loss: 0.042\n", "epoch: 193, batch: 2600 // loss: 0.045\n", "epoch: 193, batch: 2700 // loss: 0.042\n", "epoch: 193, batch: 2800 // loss: 0.046\n", "epoch: 193, batch: 2900 // loss: 0.042\n", "epoch: 193, batch: 3000 // loss: 0.045\n", "epoch: 193, batch: 3100 // loss: 0.043\n", "epoch: 193, batch: 3200 // loss: 0.039\n", "epoch: 193, batch: 3300 // loss: 0.038\n", "epoch: 193, batch: 3400 // loss: 0.044\n", "epoch: 193, batch: 3500 // loss: 0.035\n", "epoch: 193, batch: 3600 // loss: 0.043\n", "epoch: 193, batch: 3700 // loss: 0.043\n", "\n", "epoch: 194, batch: 0 // loss: 0.053\n", "epoch: 194, batch: 100 // loss: 0.046\n", "epoch: 194, batch: 200 // loss: 0.043\n", "epoch: 194, batch: 300 // loss: 0.049\n", "epoch: 194, batch: 400 // loss: 0.046\n", "epoch: 194, batch: 500 // loss: 0.040\n", "epoch: 194, batch: 600 // loss: 0.040\n", "epoch: 194, batch: 700 // loss: 0.044\n", "epoch: 194, batch: 800 // loss: 0.042\n", "epoch: 194, batch: 900 // loss: 0.049\n", "epoch: 194, batch: 1000 // loss: 0.046\n", "epoch: 194, batch: 1100 // loss: 0.042\n", "epoch: 194, batch: 1200 // loss: 0.044\n", "epoch: 194, batch: 1300 // loss: 0.046\n", "epoch: 194, batch: 1400 // loss: 0.043\n", "epoch: 194, batch: 1500 // loss: 0.048\n", "epoch: 194, batch: 1600 // loss: 0.052\n", "epoch: 194, batch: 1700 // loss: 0.045\n", "epoch: 194, batch: 1800 // loss: 0.053\n", "epoch: 194, batch: 1900 // loss: 0.045\n", "epoch: 194, batch: 2000 // loss: 0.047\n", "epoch: 194, batch: 2100 // loss: 0.046\n", "epoch: 194, batch: 2200 // loss: 0.050\n", "epoch: 194, batch: 2300 // loss: 0.049\n", "epoch: 194, batch: 2400 // loss: 0.042\n", "epoch: 194, batch: 2500 // loss: 0.042\n", "epoch: 194, batch: 2600 // loss: 0.045\n", "epoch: 194, batch: 2700 // loss: 0.042\n", "epoch: 194, batch: 2800 // loss: 0.046\n", "epoch: 194, batch: 2900 // loss: 0.042\n", "epoch: 194, batch: 3000 // loss: 0.045\n", "epoch: 194, batch: 3100 // loss: 0.043\n", "epoch: 194, batch: 3200 // loss: 0.039\n", "epoch: 194, batch: 3300 // loss: 0.038\n", "epoch: 194, batch: 3400 // loss: 0.044\n", "epoch: 194, batch: 3500 // loss: 0.035\n", "epoch: 194, batch: 3600 // loss: 0.043\n", "epoch: 194, batch: 3700 // loss: 0.043\n", "\n", "epoch: 195, batch: 0 // loss: 0.053\n", "epoch: 195, batch: 100 // loss: 0.046\n", "epoch: 195, batch: 200 // loss: 0.043\n", "epoch: 195, batch: 300 // loss: 0.049\n", "epoch: 195, batch: 400 // loss: 0.046\n", "epoch: 195, batch: 500 // loss: 0.040\n", "epoch: 195, batch: 600 // loss: 0.040\n", "epoch: 195, batch: 700 // loss: 0.044\n", "epoch: 195, batch: 800 // loss: 0.042\n", "epoch: 195, batch: 900 // loss: 0.049\n", "epoch: 195, batch: 1000 // loss: 0.046\n", "epoch: 195, batch: 1100 // loss: 0.042\n", "epoch: 195, batch: 1200 // loss: 0.044\n", "epoch: 195, batch: 1300 // loss: 0.046\n", "epoch: 195, batch: 1400 // loss: 0.043\n", "epoch: 195, batch: 1500 // loss: 0.048\n", "epoch: 195, batch: 1600 // loss: 0.052\n", "epoch: 195, batch: 1700 // loss: 0.045\n", "epoch: 195, batch: 1800 // loss: 0.053\n", "epoch: 195, batch: 1900 // loss: 0.045\n", "epoch: 195, batch: 2000 // loss: 0.047\n", "epoch: 195, batch: 2100 // loss: 0.046\n", "epoch: 195, batch: 2200 // loss: 0.050\n", "epoch: 195, batch: 2300 // loss: 0.049\n", "epoch: 195, batch: 2400 // loss: 0.042\n", "epoch: 195, batch: 2500 // loss: 0.042\n", "epoch: 195, batch: 2600 // loss: 0.045\n", "epoch: 195, batch: 2700 // loss: 0.042\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 195, batch: 2800 // loss: 0.046\n", "epoch: 195, batch: 2900 // loss: 0.042\n", "epoch: 195, batch: 3000 // loss: 0.045\n", "epoch: 195, batch: 3100 // loss: 0.043\n", "epoch: 195, batch: 3200 // loss: 0.039\n", "epoch: 195, batch: 3300 // loss: 0.038\n", "epoch: 195, batch: 3400 // loss: 0.044\n", "epoch: 195, batch: 3500 // loss: 0.035\n", "epoch: 195, batch: 3600 // loss: 0.043\n", "epoch: 195, batch: 3700 // loss: 0.043\n", "\n", "epoch: 196, batch: 0 // loss: 0.053\n", "epoch: 196, batch: 100 // loss: 0.046\n", "epoch: 196, batch: 200 // loss: 0.043\n", "epoch: 196, batch: 300 // loss: 0.049\n", "epoch: 196, batch: 400 // loss: 0.046\n", "epoch: 196, batch: 500 // loss: 0.040\n", "epoch: 196, batch: 600 // loss: 0.040\n", "epoch: 196, batch: 700 // loss: 0.044\n", "epoch: 196, batch: 800 // loss: 0.042\n", "epoch: 196, batch: 900 // loss: 0.049\n", "epoch: 196, batch: 1000 // loss: 0.046\n", "epoch: 196, batch: 1100 // loss: 0.042\n", "epoch: 196, batch: 1200 // loss: 0.044\n", "epoch: 196, batch: 1300 // loss: 0.046\n", "epoch: 196, batch: 1400 // loss: 0.043\n", "epoch: 196, batch: 1500 // loss: 0.048\n", "epoch: 196, batch: 1600 // loss: 0.052\n", "epoch: 196, batch: 1700 // loss: 0.045\n", "epoch: 196, batch: 1800 // loss: 0.053\n", "epoch: 196, batch: 1900 // loss: 0.045\n", "epoch: 196, batch: 2000 // loss: 0.047\n", "epoch: 196, batch: 2100 // loss: 0.046\n", "epoch: 196, batch: 2200 // loss: 0.050\n", "epoch: 196, batch: 2300 // loss: 0.049\n", "epoch: 196, batch: 2400 // loss: 0.042\n", "epoch: 196, batch: 2500 // loss: 0.042\n", "epoch: 196, batch: 2600 // loss: 0.045\n", "epoch: 196, batch: 2700 // loss: 0.042\n", "epoch: 196, batch: 2800 // loss: 0.046\n", "epoch: 196, batch: 2900 // loss: 0.042\n", "epoch: 196, batch: 3000 // loss: 0.045\n", "epoch: 196, batch: 3100 // loss: 0.043\n", "epoch: 196, batch: 3200 // loss: 0.039\n", "epoch: 196, batch: 3300 // loss: 0.038\n", "epoch: 196, batch: 3400 // loss: 0.044\n", "epoch: 196, batch: 3500 // loss: 0.035\n", "epoch: 196, batch: 3600 // loss: 0.043\n", "epoch: 196, batch: 3700 // loss: 0.043\n", "\n", "epoch: 197, batch: 0 // loss: 0.053\n", "epoch: 197, batch: 100 // loss: 0.046\n", "epoch: 197, batch: 200 // loss: 0.043\n", "epoch: 197, batch: 300 // loss: 0.049\n", "epoch: 197, batch: 400 // loss: 0.046\n", "epoch: 197, batch: 500 // loss: 0.040\n", "epoch: 197, batch: 600 // loss: 0.040\n", "epoch: 197, batch: 700 // loss: 0.044\n", "epoch: 197, batch: 800 // loss: 0.042\n", "epoch: 197, batch: 900 // loss: 0.049\n", "epoch: 197, batch: 1000 // loss: 0.046\n", "epoch: 197, batch: 1100 // loss: 0.042\n", "epoch: 197, batch: 1200 // loss: 0.044\n", "epoch: 197, batch: 1300 // loss: 0.046\n", "epoch: 197, batch: 1400 // loss: 0.043\n", "epoch: 197, batch: 1500 // loss: 0.048\n", "epoch: 197, batch: 1600 // loss: 0.052\n", "epoch: 197, batch: 1700 // loss: 0.045\n", "epoch: 197, batch: 1800 // loss: 0.053\n", "epoch: 197, batch: 1900 // loss: 0.045\n", "epoch: 197, batch: 2000 // loss: 0.047\n", "epoch: 197, batch: 2100 // loss: 0.046\n", "epoch: 197, batch: 2200 // loss: 0.050\n", "epoch: 197, batch: 2300 // loss: 0.049\n", "epoch: 197, batch: 2400 // loss: 0.042\n", "epoch: 197, batch: 2500 // loss: 0.042\n", "epoch: 197, batch: 2600 // loss: 0.045\n", "epoch: 197, batch: 2700 // loss: 0.042\n", "epoch: 197, batch: 2800 // loss: 0.046\n", "epoch: 197, batch: 2900 // loss: 0.042\n", "epoch: 197, batch: 3000 // loss: 0.045\n", "epoch: 197, batch: 3100 // loss: 0.043\n", "epoch: 197, batch: 3200 // loss: 0.039\n", "epoch: 197, batch: 3300 // loss: 0.038\n", "epoch: 197, batch: 3400 // loss: 0.044\n", "epoch: 197, batch: 3500 // loss: 0.035\n", "epoch: 197, batch: 3600 // loss: 0.043\n", "epoch: 197, batch: 3700 // loss: 0.043\n", "\n", "epoch: 198, batch: 0 // loss: 0.053\n", "epoch: 198, batch: 100 // loss: 0.046\n", "epoch: 198, batch: 200 // loss: 0.043\n", "epoch: 198, batch: 300 // loss: 0.049\n", "epoch: 198, batch: 400 // loss: 0.046\n", "epoch: 198, batch: 500 // loss: 0.040\n", "epoch: 198, batch: 600 // loss: 0.040\n", "epoch: 198, batch: 700 // loss: 0.044\n", "epoch: 198, batch: 800 // loss: 0.042\n", "epoch: 198, batch: 900 // loss: 0.049\n", "epoch: 198, batch: 1000 // loss: 0.046\n", "epoch: 198, batch: 1100 // loss: 0.042\n", "epoch: 198, batch: 1200 // loss: 0.044\n", "epoch: 198, batch: 1300 // loss: 0.046\n", "epoch: 198, batch: 1400 // loss: 0.043\n", "epoch: 198, batch: 1500 // loss: 0.048\n", "epoch: 198, batch: 1600 // loss: 0.052\n", "epoch: 198, batch: 1700 // loss: 0.045\n", "epoch: 198, batch: 1800 // loss: 0.053\n", "epoch: 198, batch: 1900 // loss: 0.045\n", "epoch: 198, batch: 2000 // loss: 0.047\n", "epoch: 198, batch: 2100 // loss: 0.046\n", "epoch: 198, batch: 2200 // loss: 0.050\n", "epoch: 198, batch: 2300 // loss: 0.049\n", "epoch: 198, batch: 2400 // loss: 0.042\n", "epoch: 198, batch: 2500 // loss: 0.042\n", "epoch: 198, batch: 2600 // loss: 0.045\n", "epoch: 198, batch: 2700 // loss: 0.042\n", "epoch: 198, batch: 2800 // loss: 0.046\n", "epoch: 198, batch: 2900 // loss: 0.042\n", "epoch: 198, batch: 3000 // loss: 0.045\n", "epoch: 198, batch: 3100 // loss: 0.043\n", "epoch: 198, batch: 3200 // loss: 0.039\n", "epoch: 198, batch: 3300 // loss: 0.038\n", "epoch: 198, batch: 3400 // loss: 0.044\n", "epoch: 198, batch: 3500 // loss: 0.035\n", "epoch: 198, batch: 3600 // loss: 0.043\n", "epoch: 198, batch: 3700 // loss: 0.043\n", "\n", "epoch: 199, batch: 0 // loss: 0.053\n", "epoch: 199, batch: 100 // loss: 0.046\n", "epoch: 199, batch: 200 // loss: 0.043\n", "epoch: 199, batch: 300 // loss: 0.049\n", "epoch: 199, batch: 400 // loss: 0.046\n", "epoch: 199, batch: 500 // loss: 0.040\n", "epoch: 199, batch: 600 // loss: 0.040\n", "epoch: 199, batch: 700 // loss: 0.044\n", "epoch: 199, batch: 800 // loss: 0.042\n", "epoch: 199, batch: 900 // loss: 0.049\n", "epoch: 199, batch: 1000 // loss: 0.046\n", "epoch: 199, batch: 1100 // loss: 0.042\n", "epoch: 199, batch: 1200 // loss: 0.044\n", "epoch: 199, batch: 1300 // loss: 0.046\n", "epoch: 199, batch: 1400 // loss: 0.043\n", "epoch: 199, batch: 1500 // loss: 0.048\n", "epoch: 199, batch: 1600 // loss: 0.052\n", "epoch: 199, batch: 1700 // loss: 0.045\n", "epoch: 199, batch: 1800 // loss: 0.053\n", "epoch: 199, batch: 1900 // loss: 0.045\n", "epoch: 199, batch: 2000 // loss: 0.047\n", "epoch: 199, batch: 2100 // loss: 0.046\n", "epoch: 199, batch: 2200 // loss: 0.050\n", "epoch: 199, batch: 2300 // loss: 0.049\n", "epoch: 199, batch: 2400 // loss: 0.042\n", "epoch: 199, batch: 2500 // loss: 0.042\n", "epoch: 199, batch: 2600 // loss: 0.045\n", "epoch: 199, batch: 2700 // loss: 0.042\n", "epoch: 199, batch: 2800 // loss: 0.046\n", "epoch: 199, batch: 2900 // loss: 0.042\n", "epoch: 199, batch: 3000 // loss: 0.045\n", "epoch: 199, batch: 3100 // loss: 0.043\n", "epoch: 199, batch: 3200 // loss: 0.039\n", "epoch: 199, batch: 3300 // loss: 0.038\n", "epoch: 199, batch: 3400 // loss: 0.044\n", "epoch: 199, batch: 3500 // loss: 0.035\n", "epoch: 199, batch: 3600 // loss: 0.043\n", "epoch: 199, batch: 3700 // loss: 0.043\n" ] } ], "source": [ "loss_function = nn.MSELoss()\n", "auto = AE()\n", "optimizer = optim.SGD(auto.parameters(), lr=0.01, momentum=0.9)\n", "\n", "train_AE(X, X, auto, optimizer, loss_function, EPOCHS=50)" ] }, { "cell_type": "code", "execution_count": 196, "metadata": {}, "outputs": [], "source": [ "X_tilde = auto(X[:5000].float()).detach().numpy()" ] }, { "cell_type": "code", "execution_count": 197, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 197, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow(np.asarray(X[3]).reshape(28,28), cmap='gray')" ] }, { "cell_type": "code", "execution_count": 198, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 198, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow(np.asarray(X_tilde[2]).reshape(28,28), cmap='gray')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Pull out the hidden representations (for first 5k points) and plot them." ] }, { "cell_type": "code", "execution_count": 199, "metadata": {}, "outputs": [], "source": [ "Zs = auto(X[:5000].float(), return_z=True).detach().numpy()" ] }, { "cell_type": "code", "execution_count": 200, "metadata": {}, "outputs": [], "source": [ "colors = ['r', 'g', 'b', 'c', 'm', 'y', 'k', 'w', 'orange', 'purple']\n", "c = [colors[y_i] for y_i in y[:5000]]" ] }, { "cell_type": "code", "execution_count": 201, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 201, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD4CAYAAADhNOGaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOydd3xUVdqAn3OnZSaNEgi9KC10QpWqoqIgKqgIYsdFRF0V9RPdFVlXURRFXQXXggURC0gzLgpSBekdpPcOKaRMv/d8f5xJMpOZQFRQkfvwu7/ktnPPDTPnPeetQkqJiYmJicmFi/ZHd8DExMTE5I/FFAQmJiYmFzimIDAxMTG5wDEFgYmJickFjikITExMTC5wrH90B34NKSkpsk6dOn90N0xMTEzOK1avXn1SSlmp5PHzUhDUqVOHVatW/dHdMDExMTmvEELsi3XcVA2ZmJiYXOCYgsDExMTkAscUBCYmJiYXOKYgMDExMbnAMQWBiYmJyQWOKQhMTExMLnDOS/dRExMAXYdNm8Bmg7Q0EOLXtePZ6+HQm4fI35hPUrskqj9YHUdVx9ntrInJnxhTEJicl8yfD/37g9sNhgFVq8L06dC06S9rJ3dVLusvW4/hM5AByanFpzg87jDpy9NxNXCdm86bmPzJMFVDJucdhw9D795w/Djk5ythsGsXXHYZ+Hy/rK3t921Hz9eRAVWXQ/okwVNBdg7beQ56bmLy58QUBCbnHR9/DMFg9HGfDzIyyt6O4TfIX5cffUJCzvycX9/BMLKyspg9ezarV6/mbBaBOnLkCC+//DLDhg0jIyMDwzDOWtsmFx6masjkvOPQodgz/2AQjh4tezvCIhA2gfRFD9CWeMtv6KFi1KhR/Pvf/8bhcKDrOjVq1OC7776jVq1av6nduXPncv3116PrOj6fj/fee4/WrVvz/fffY7fbf3O/TS48zBWByXlH9+6QkBD7XNeuZW9HWASpt6Ui4iKtzJpTo9r91X5DD2H27NmMGjUKr9fLqVOnyM/PZ8eOHVx77bW/qd1gMEj//v1xu934QtIwPz+flStX8sEHH/ymtk0uXExBYHLe0bs3NGkCTmfxsfh46NPnlxuL679Rn3Kdy6E5NSzJFrQ4jYq9KlL7n7XLdL/3oBfPXk+U2ufNN9+koKAg4piu6+zatYuff/75l3Wy6H4YPXotOTn+qHNut5uJEyf+qnZNTEzVkMl5h9UKCxbAuHEwaRI4HDB4MNxxR9nb8Pl86LqOK95FizktcG9z497hJr5JPM66zjPe797uZnO/zXi2eUCAvbqdxpMbk9QmCYCTJ0+W+twvvviCESNGoGlln4dJqQTdnDk2dD22rcFms5W5PROTcM7KikAIMUEIcVwIsamU80II8aYQYqcQYoMQIj3s3J1CiB2h7c6z0R+Tvz5xcTBsGKxeDUuXwl13QVnG1czMTPr27UtiYiLJycm0a9eOjRs34mroIuXalDIJAcNnsLbLWgo2FGB4DQyPgXenl/WXryeQGQCgb9++xMXFRd2r6zqvvPIKd/wSqQXMm6c2r7cFUD7qfHx8PIMHD/5FbZqYFHK2VEMfAVef5vw1QP3QNhgYDyCEqAA8C7QH2gHPCiGiP+UmJr8VKZFH5nLZJU345puZBAIBgsEgK1eupEuXLhw/frzMTZ2cdRLDY0CJibkMSo5NOgbA0KFDqVGjRkzjrdvtZtq0aaxfv77Mz5w9G5SmSQAzgHJAIhCHzeakT58+DBgwoMztmZiEc1YEgZRyEZB1mkuuBz6RimVAOSFEVaAHMEdKmSWlzAbmcHqBYmISG+8JyNkEQU/0uaAH5nTix3evY8+BYwQCesRpn8/HhAkTyvwo/z43RkG0nt7wGHj3ewFISkpi7dq1dOzYMWYbuq6zcOHCMj1vyZIlLF78AJo2FPgRaAUcBt7Fbn+FZ59dxsSJE3+RqsnEJJzf65NTHTgQtn8wdKy041EIIQYLIVYJIVadOHHinHXU5DwjWACLb4LpNeH7jvB1Zfh5bOQ1W16G7LXsOuyJmsUDeL1etmzZUuZHJi4YjzCiBYFukTjSk4v2ExIS6NmzZ0wVkd1uJyUl5YzPevzxx+nRowcrVozHMN5BzZ0epQ+ZfEUtMvzNuOIrPzmLzk7cg8mFye8lCGJlgZGnOR59UMp3pZRtpJRtKlWKKrlpcp6zZcsWxowZw7hx4zh27FjZb1w2CA5lgOGDYB4E82HDP+HAtOJr9nwEupcWtcGI8elyuVy0b9++bM87dYqkOW+SzEY0vEWHBT4s+lH6vV6RcAei2267LeZMXdM0brjhhtM+atOmTYwbN46CggISZAK9uZZbuYHHsTOYnaTgx4rEsz6fDddsIHdFbtnewcSkBL+X19BBoGbYfg3U2vYgcGmJ4wt+pz6Z/El44oknePvtt9F1HYvFwuOPP86nn35K3759T3+jPwcOTldCIBzdDVtegpp9QgfUyNyqDlxSH5ZsB6+y6WK1WklOTi678fboUYTNSjPfPzhEH47QCwMLqcxB8hMbtwxg8uRtrF37PidPnqRXr15MmzaNW2+9Fb/fj5SS5ORkZsyYgcsVncvo2DHYsAFq1YKMjAwCgQAtaMEoRiEQ2LGjoUXNoAy3wZ4Re2gxu0XZ3sPEJAxxtsLehRB1gG+klFGe3EKIXsCDQE+UYfhNKWW7kLF4NVDoRbQGaC2lPJ29gTZt2kizeP1fgx9//JEePXrgdrsjjrtcLo4cOUJSUlLpN+fvhozmoBdEn3PVgBtCWsf1/4Str4LuxeuHf02DCQvAF9S4ts8Ann/+eT7//HPef/99gsEgAwYM4OmnnyYxMTG6Xa8XKlVSSY7C0NGYwo3cbrsRuBsplTE6Pj6eVq1a8d1337Fp0yasVistW7aMWiVICY88Au++q9xh/X6oWvUQRw62ZbJ/PMkkcybs1ex0PBTbJmFiAiCEWC2lbFPy+NlyH50M/AQ0FEIcFEIMEkIMEUIMCV3yLbAb2Am8BwwFCA34/wZWhrbnziQETP5afPrpp3g80QZei8XC7Nmzi/alITn+1XE2XLuBjb03cmLqCWRcTbDESqmgQeVLi3ebPAVJjcGaQJwdXhwYz7EPypNzaAMTJ05k8ODBPPfcc+zatYt9+/YxduxYOnbsSCAQiG46Lg5GjCBgL57NGwjcuHiW4QQC9xIIeAiGkiEVFBSwZs0aXn11MlK2o0mT9JiqovffV5vXC6dOgceTzf79S6jkvwcfOruJ5xinT43tSjOzpZr8Os6KakhKeVq/NamWHQ+Ucm4CUHaXDZPzF2mA4QdLsfH0dMnSClerUkq23LqFzG8yMQrU9dnzs6nUtxJpz46FVUOVOghAWMCaAM1GFjdkjYceK+DIbMhcCfG1oNbNYEtk+bJlLF26NEIY+Xw+9u7dy/Tp07n55pujO/bEEwTKV2fnkFFU1o+wjA48xYvstJxEGJKSi2y3283IkZ8xZswgAN57D27qYxDMCWKrYENYBGPHqiyqig+BoQSDNvbTm1sYhp0EwEI98vkXmymPn/BsSJpTo87IOkX7+/crNVPjxirq+kzouo4QwvQ8ukAx/9dNzj26H1Y8AF844QsXzGwAR+cBcOutt8bUlQeDQXr06AFA7rLcCCEAYBQYnJh6grycvtBtJqR2h4R6UPdOuGYtJF4c2aBmgeq9oPlIuPgesCm1z4oVK4pm7+Hk5+ezdOlSALZtg6lTle6+ENe9t2L9eRM3dsvkeksGW23N6dTJjpQx1FSAYSSSmwu5uZLvB+5lUbklLKn+E/OTl7DzlYPkFDn9bEfNmbxAXeBdoAJ+7PixsJUk+tOBidQiHwsS8FV20mRqE8p1LkdODlxxBTRsqH5Wrgxjx8bsEgA7d+6ke/fuOBwOnE4nt956K1lZ5qL8QsNMMWFy7pl3JZxYVLyfvwMW9IQey+nWrRt33nknH330ET6fD6vViqZpfPDBB5QrVw6A7LnZKoCrBIbfIGtOFonDu0OV7r+qa7Vq1cJutxclcCvE6XRSs2ZdrrsOlixy88AVb9Gg7SS2/OCkbo8hONPuoH59jVmzVCbUcuVg+XJBly4iRrrpeFQcJQxgPzcG90PQQAAiEGTn/+3mimTBRKoBE4FCldRDUEIdZITMxB9zER9zERqSuHzBghSoiCrWs3ixsjF4Q05NzzwD9etDyXx3OTk5dOjQgaysLKSU6LrO1KlT2bRpE+vXr0f82pJvJucdpiAwObdkb4wUAoUYPtjwLKLbdN5++20GDRrEN998Q3x8PP369aNmzWInM2s5K5pDixIGml3DVv70+XW2bFFRuQkJcOONULFi5PmePXuSkJBAQUFBhJrKZrNx4MBtzPshwKKnO9Oo2lZcDqU+8q/YyMllGVwz/CPWZboQGqS3Fjz8sBOXyxWWbM5CLerSj2eoQyo/s4OrOYqTyPeIw+DqUweYSHUgDygMeKtN7K9o8QBtIPB4DMaNk4waZWHBAiUEwikogFdeiRYEn3zyCR5PZMI8v9/Pnj17WLRoEd26dTvdn9bkL4SpGjI5t+wu3fxjnFxR9Ht6ejojRozgscceixACAJX7V44dcSKg0s2xY0qkhEcfhTZt4Kmn1O+1asG330ZeZ7FYmDlzJunp6TgcDuLi4khLS2P+/Pl88kkFBjT7grQq24qEAIDd7iZeZOC27SVoCAJBwYoVkgcfbIXDURwk1ox2vMP79KAWTcjjeg4TT2RUcyEVKRy9bwAKVWWzgdiqpsh31fj++3WcPAmllSM48HOAYF6kCmzjxo1R3lqg7Dbbtm0743NN/jqYgsDk3GKJncRNSli7tTr//CdRxtWS2CvZaTqtKZZkC5YktVnLWWk2sxm2CrFXBPPnK6Osx6NmyG632vr1KzbKjhs3jkqVKtG5c2e2bdvGQw89xPbt29myZQvp6elccuooI5p8idMZY7CUgo4Nl4a9j8Dng7vvnk18fDxOp5NhDMaJLJrT22LHSgKwr2jw7wb0RqmT3gdOQFjgWux4y3yOH38Hu30PsbQ5FgxaZh9nRaMV+I4Uq8DS09OJj2FJFkLQ9Jfm8zY5rzEFgcm5pWYfELE1kM9OGcHYsfDWW2dupsJVFeh0vBNNpzel6YymdDzekfKXl56fcOLEwiRtkVgsMHeuclt94oknyM7OxufzkZeXx7hx4/jkk08A8B3386C+ne1ZtfD7o6fZQcPC0ZwqEccKCgSG0Yi9e/cy/NHh1CK6EpkAZInBPIDkv1wUdsVnwJcogdARWAVF6iQZ2gr3g4APm+0Y27dvYuxYULZ39QwrBgkEuTW4D/9xP7uf3F303Ntuu42EhAQslmL/I4fDQdOmTbnkkkui/3gmf1lMQWBybqnYFurchtTUYColBHWNr5bfTMa63rjd8PLLZWtKs2s4L3GyRl/DooXfETixFvzZMa+NVdO4EF2Hf/3rX1FqEbfbzYsvvkKrVgbPpO5iKOkMWfQ4fiNy1WEYAo/fxewNkfkRHSLAW2/B/bfM4KUXXyJAjDgEIJdctrGNPPLYzGaWsxyHA1w2A5BoSFTAfQWgGdCC4q+qhhIWAmVLsALl8XgmM39+O+65B2Z8pdNeZFGXfPpwkA9YRRwGa4LlWDWt+J0TExNZtWoVN9xwA06nk6SkJAYNGsS0aXOZPl0wfXpsYWry1+OsRRb/npiRxecZUhLY9z+mjJmIITU+WXwH32+8ikLFv9MZ7kNfOt9++61Ktaz7wPBh0eDrYTYu7XkHtBsPWvGAPXs23HRT9EDmcqm6xqmprpiBbGChJ1uphIXJ1MKPhcsaz+OzB28l3l6ARTMInqxAt7HjWHfkCkCpvqzoVHdmkumx4Kc6fnw8xmN04yq+ogEZVMWHRjtOkMjzzFSZ2HHhYiQjaWNvz8Yn27L+ZwtxUqddj228/PpLbNkyEOhFWeZscXEqfqBiksGshFnMCc4hiyyyGMJ8OmFDoiNonG4hIwM07Tjvvfcemzdvpn379tx1111MmHCI4cM3YLXWQ9NaI6Vg8mRVFc7k/Ke0yGKklOfd1rp1a2ly/lGvnpRqTRC5dep05nsPHz4sXS5XoV6kaEtwILM/iJM/jGkpU1NTZdWqVeWTTz4p8/ML5N13S+lySSmElA6HlE6nlF98odpr27ZtVFuATKKSzGCBrE1+RB+F0GXTmhtkk9SfZRo3SIiX8JKEwxKyZHm+kbMSZsnOvCddqH7ascv67JB2gsXtEJRwREKS1NBkKqlyLnNlBovkl/wo/8Nq+Yhlm6xpc8uW1kz5NBvly6yTvTkY0U6sLSlJyilTpFy4cKF0WpzSjl1CL0mJd7FapWzePF8mJSXJuLg4CUin0ylttkQJcaHNIaGVhGzpckl5/Pi5/WyY/D4Aq2SMMdV0HzX53fjPf6BvX2XABRBCrQZee+3M937++ecxo5Al8PUyL7dcso4Tx1V20TfeeIOFCxeyZMlShgwRZGRAYiLccgsUOiS9/PLL9LrqKtxhaSScwItUxoWBrYSLp5Qamw40w46OZDPKm+cokAz4yeYyHsovoCUZRff4acAOqkJYDLDEAiSicQ8N+Y4RjMCCBSsGT9GCg8Tj1zWu0w9xH7txYKABTTnF9RzmAdLxRcQUq1ZbkUNjXz5JGx30H98fj1642hmGMjwXEwzCxo0WpCwP7AMIrY40iHjvtajVyBKmTIH77y/lP8fkvMcUBCa/G1dfrcotPvccbN0K6ekwYgQ0b67O798PH3+sUiP06AE9eyrjLkBWVlZU0BeAPwjZBWC3gtMOBT5VX2Dt2rVMnvwZAwcOpF07dW0wqNr/6CM4cfASHgncwgImsQVJXeA54Gp2sYk1XEc1xlEPb9igKzCI4yC57ACuRKXJclHo7rkfBzb6Mh6NNaxhAn7yiJVCI54ODOMFrgfAg8ZMqrGLREDgIsj9ISFQiBODanjowVFmhpXsiCPI66yjJh5sPgPbK5KxnrE8wANkkgnErnkgpR+oQBV81KMeRzjCLnbFuHIpXu8Wli7dQtWqVq666qqYkeAm5zemjcDkT0FGhnLtDAaVu2dCArRuDd9/r3zjFy9ezDXXXBMWrKVw2eGnf0F8HNR7NLJNq9XKoEGDGD9+PCC49lpYuLDYbuAinxuYwSRuK7pHAoe5jq08yijSWEIKIuSlEySHJHqTx1oCzCRWMT0HOhNYSSXyWIeTJ2mFpKSLpk4nsniYHeRi4ytq8B1VKLSZtCKLtmSxkoqUw08fDtEMVWtgNeV4nJZFLT3ADnpzGEeYJ1KQIKtZzXCGA88DjwEli+Oc4v94lcvpRIAAFizsYQ9P8iT55Je41kp8vAtNkxiGwdSpU4vSf5SG4Tc4OeMk+RvycTV0UenGSlicJVcyJr83pdkITEFg8ofj96ucOKdORR53ueCNN+Dee5Ut6+abb2b2/76lwK3UHvEOuKUD/OdOuPF1mL0huu34+HgmTJhApUr96N07hvGYAhbThXTWAspn5wA3sRulB9mDi3XEsZUFPEA9PORxD/fgLioZWbK9IGNYTxp56BjcS3P2UyGk4AGlejFQ6qLYKRzs6AjAhwWBxI7Bfezieg6zgIr8m9pAPvAO02lPcpSgUcKgJz0JkIhS8aSgVi46LpeFayrM4N6DDuLCBESAAMtYxghGxOxX0Tu6XBw6dKgoBUhJ/Cf8rOmwhsDxAHq+jiXBgiXRQvqydOJqRVdrM/n9OKdpqE3+hEgJRuwo1j8Fviw4OAuOL2blCiNmUJnbncv48as5duwYQgi+/PJLJnz4Eb2u6sr1nasx6bEqjP/HlfR5KzGmEACVBnr8+PHMmxfbFTKIlflcVnzA4SA79Vq0eA0tQaNh9SB9rsliGA1JwkUqqbzN21RmFZGBXgoJXBSKBrag8T6bSCcLREBtlTeCLZa3UliaB7QiO4BUtc/4LxeTjY3pHAD6AA2B0WgxVU9gwUJ1qqNKibdArQyWYLfP5Icf4FFSIoQAgA0bHehAHL2AOjHbBRVwNm3atIhjUkqOfHyE5Y2W81P1n/Du8aLnq8+fnq/jP+5n231mtPKfFVMQ/NUIumHF/fBlPHxuh+86QPa6P7pXkfz8GkyrDktvgwW9aHuoNvUrh9cMlsAzQCobNlxO7dq16devHz6fj379+vHNdwuZvvgQ179wBPuV3/P6p8tp1KhRqY/bu3cvFSsq98qS2PDjJJM8wCcsBF/4N82P3Eb6snTSl6bTfE5z5P8kjrDkb3Wow7ukkQLYilJGSBzoDGVXhG7fAvxbbKT8kIYwvDw0nwSytNVAofNS9DkLktepy0ZGAW7AA/hZwpKoALXClm7hltBeDvAi0BmLZSDx8RuRntI0AXbsfARsAaYB0cF03mCQvLy8iGP7X9zPjqE78GzzIAMyOgBah+w52Uj9/NNAXAiYguB8wtDh1M/gPlz6NYv7wu6PQPcABmQuhzldoeBA2Z4hJWwfD9NqKkHyv3Q4tuAsdD7E8R9hwzNgeCGYC8E8bPohZjzcAyEKB9AJwGuAl2AwF5/Px6xZs3jwwQdjNpmWlsaGDRtISEiIef7gwYNcccUJYqXaL0Ayh695AGhgtzFw+XKEECQ0TSChWQLru6+P2WYyQd5nJbeyn4bk0omTjGYDvTgSda1A0n13a3AUwKG2ECzN2FoYKBaNG40feQMlBHZTmJhuNrNjCgINQWOupqRtwOPx0LVrN/ZUSoqZ9egIceSSAjix2a4FyytR1+hSktK5c/G+R2ffqH0Y7tJrSwBmNtM/MaYgOF84OAOmVYHv2sHMi2FOF/AcjbwmdxscX6QG2XAMH2x/8/TtGzrs+wIyGsPqh8BzEIwAZK9VKaNP/HR23mPH+JCQKkYgqeTM4vJ6P+IiiOBl1IBXjNfrZdKkSXi90eoYUNlCu3ePnYrabrezYsUsZs6EChWUIVoID3CMOG5gGfFMQmO/z8usWbM4dOgQAL5DPgJHAohSBuckgtQnj9dYx/NsRgKBGNfapEby9ivUTpX1EDPi+HSDpI4a/F9GuXMWl9Dcw56YEcwGkkOsplgQaKiUFaPJybmdB7ZOIBPwhoYAPwIPGq9QvLIKBKzAvcVLKSHU7zfdxI9hQte7x4vQzjDIW6FCzwoIiykM/oyY7qPnA9kbYMmtxVW4AE4ug/lXqyIshTOt3O0qurbEQIvhh+zYM1tArQIW3aCKxRgxQnx1D2wYAd3n/PZ38WUSK3GaJgWjXcv4hoq8xLEY2ndFXl4ecbF0PED9+vURIroegKZpWCwWundXUcUrV8J9dz/Eddur0Y3h6OgECPAf/sNKx0p2795N1dSqbL17aymKGpUvaC3leYHGTGYZK0nmQ+rwGuuj3s+HxuoD10LQBq3fgwUjY+eOi4kOHAZ6hO1PAjYBD5JLAYtZTGc6R+j8/fiYxIdADoJ4NBajUw8lRArIQ6c/j3Izw2mFh324mE51jlIiSaDhhJH/gnk/gNUKPXqgNW8eEclgr2ZX6qBSsCRasFW00eCdBmV9aZPfGXNFcD6w7U01qw9HBiFvJ+SEDfDJjdWgXxLNARWio8qLOPYDHF8QWwgUcmrjL+pyqdS6ESzRqhFhDeDe3oRunCCdJjFn4SkpKaSkxPaLB1XtzOmMznaq6zq9QzkSbDbo2BGe9F9KVzphx44TJ0kk8RiP0aKgBRdVvIhdbxxmxA8puKOCt0L9RfAZtfBg5QXS+IKa/Ewy86mEJ+xr5UFjLeVYH6wI2XXB5oa6P1B2SaChPH4+A64ABgFpwN9Rxmqdl3mZOczBhw8/fk5wgud5ns1sBkDyd3QaUrySiAeSkPyDL1nOUzTnHepFCwEkIi0X2rdTubyfeAKaNyfO7+e2FStURR7AVs5G5QGV0ZyRw4lwCKreV5VGHzei3fZ2OKqevubyOcMwIDdX/TSJydkqXn+1EGKbEGKnEGJ4jPNjhRDrQtt2IURO2Dk97NzMs9GfvxwFe0HG0Ohq1kh7QeLFUKVHidTPQtUIbhBbvw7AoW8hWNJ3vASJZ2k2V/d2SE4LEwYCLC5y8v6BFGqgGsxgnDjRQh9PIQQul4tx48adVs/cqlUrhgwZEnW8WbNmJCUlkbMoh/XXrGdZvWXU2F8jwgAMEEccI4Mj2dlqJ6v+7yA/G4lMpXrUkF2Y+/NYaAa+koqsR7lSvkwjXqIRy6nAKsrxGg14hsYqGfX7CyHjbZrluSIMyuqvIMM8gAqNxvuAPSj1TntUfYLqwP8Ij1YOEOA1XqM3vbmZm+lHP5awJKz12ymucRBOKjYWARK7XcVr2ELpmqwYONEZYtuBwwtOTxCHz0ecz8ewzz+n/X33QbduRVVwGrzTgCp3V0Fzagi7wF7NTtqkNBq+05BKfSqh2f6gOec770BqKqSkqKpEr7565rznFyC/WTUkhLAAb6NCLQ8CK4UQM6WURW4gUspHw65/iEgHbI+UsiUmpVP1Kji5NFrlo/ugQuvIY52/UGqcne9CsAAS60HjJ8FZtfT27eVBs8deTYAatJs/99veoaitOLhyCeydBAe+BkdFqD+UChXb0SD5GPtG7ePiYxfzZbMv+TLlS1ZtW0X9+vV56qmnaN++/RmbX7hwIZqmRaSj2LRpE5/d+xl1vqpzZoMmAumXpOJlDBu4g3b05QDxyKI1SuHPFuRwhDh0NIJFcyrBIiqziMrRjfsqwobb2QSk4sGLFTcWJILquDmAE4EfyT7gRmAXSiDUAqYCTVACIECsFUUg9C+a0tyIBe3x83d+4m1rQ8YsrMhnn8GPn7updSSTmzhElfVeevbP5UDXD/HZLVz700/UO3y48A8LX3wBt9+OZtdo8HYD6r1WDz1fx1rB+vsYh/fuVRkGhYBAQK1SuneHli1VGPljjxVnNMzJUaHsVis8/HBxG8eOqZ+pqee+v39SfnNAmRDiEmCklLJHaP8pACnli6VcvxR4Vko5J7SfL6WM7e5RCudFQJmUcGIxHJ0L9opQuz84f+UHzZ8D3zYD7/HiwdoSD/WHQPqY6OsD+TD/KsjZoPohNIivDVcsVANvSfL3KiNxSUEDEF8X2rwJ1a+NPvcn49ChQ9SrV6/IoGzRoHNDiLcLHtjxOS53jMH5NHjQGEc9bmMfqUSntziEg/9Sj9vZS1W87PBOykAAACAASURBVMPFe1zEekqrk1DS4iBpQB5dOUEG1RjCLi7hJBBgCUt4kzfJJjt0TwXgCGADTgI1iRXHEJtHUekwwgPPDAQ/8xYLaUxjpEPj6yvSmbomgfLCT9+Tu7ncfxQBpLCYRryElRiqwxtugBIxBYBKKLVjB1StCpViV5H7zYwcCaNHq894YfoRq1Utbfr1gwULlKAoSUoKnDgBP/8MAwaofCcAjRvDZ5/BaVyRz3fOZUBZdSDcN/Fg6FisTtQG6gLzwg7HCSFWCSGWCSFuKO0hQojBoetWnThx4ix0+xxi6LCoj/K22fQ8rB8OMy+CI7/S2GovB1evhQZ/h4R6UKEttH8PWkW79gGw/mnIWqNWBLpbqX1yt6v4glgk1IFLJoI1HmxJYE0CW3novgCu331eCAGAjE/cdPReRgc60L6ulcNvw8xhMPlBuOqtO6jc6ftf1J4Tgyq4YwoBgKr4eJqfqU8BCeg0IY+XWEc6x0tpseQMWbCdJD6hDq+xjo6cxIYK7OpEJ97iLSxYUALEDxTW2UwB3iCWj78dB4I0Ir/aSxB4UYnyvKi6yFkMYBqNaawu8RlckrERx5F8thy2M8Zfn4+pDUAwRuQyAJqmBtWSjBmjBv/OnVWWv5tuKlue8RBSl3h2ewhkx1jd6DpMmQKXXw7PPw9eb7EQAJWjxO2Gr76CgwdjPyAzU4Wxd+4MGzao+30+WLcOunT5RX39q3A2vIZKi4yJRX9gipQRCu9aUsrDQoiLgHlCiI1SyqjsV1LKd4F3Qa0Ifmunzyn7v1ArAT0UyqqHZm4/9oMbj0fkzS8zcSmQ/orazsSeiTGMywE4OF0JKS2GAbTWjVCtp3I/tdihUudf188/gLw8+PbWvdT55jDDeAgwSDoexJn5fyTW3Y76OPpoOOg18vc0xH24dpnadWNhK8lkcjyspnAxElV4Ppw4BEPYz2AqAhtQ1oSWUIrRGaATJ0kiGPFltGGjHOXoSEcWsxjwATuLnuxgEDpdsfEIAeahhTIiWWiOn01EZhHdhGQOcDOwG41s+mHnbxTHAgiUYBvHGh6hZZGA8qNxC1Y8fIiTA9ThA8rxc6gbEmrXDq06Q8PAlCnw7LORg2lGBtx+O/Tvr3x3u3ePKq6cnw8zZsDeubnUnL6TOv58pC6p2LMijT5qhDXJqoy9vXvDokVnrphTUKCelR/D9lWzplrF+P2R9gIplWCZOlX19wLibKwIDqLWqYXUQPm7xaI/MDn8gJTycOjnbmABsRK4nG/s/rhYCIQjdTh5lvzxT4cRuzKW0hWfRkdudUK1HpB62XkjBN58E7qn5JD0zX7sSOJxEk88ekEyG0aPxtCLP+LCEiSly3fMJpXHaM5wmvEjKTFnLT4ER4nDg0Z2jGrDBqV7/tciH6XX74qqNFYdWFzqO9TEQ1wMPb4DR1i5SxvQKfSbwQD2MRTBoKH/Y8T9J2lZeQ1xHMHj3AndPMq56GbUtxE3MAIljOpj0I65RKs/BGoVdH8oC6lEMIUa3ENbtlObaXQlg/acIkndICW89BI880xxIy+9FD2j9nrh669h0CAlDFJT4f33lQQHli+HGjVgyN8kz30Uz+CcFrzkro/hk2R+m8nmW5T3ExkZsHjxGYVAPvAKMNpmI2Ar8Tl2uZQ6af/+2O3k58O2Cy8VxtkQBCuB+kKIukIIO2qwj/L+EUI0BMoDP4UdKy+EcIR+T0F90reUvPe8Q5wuy+Lv4D1RvVeMPgio1OUPGeB1XWfMmDHUrVuXypUrc9dddxUFbf0W5s9XXo1X+I9EeeEAGAEbp7a2KD6gGdzz42O8TgPWUIHlVOQF0nid+pH9BdZQjqVUYBSbuJiCqEFfg1JdSzM5ipoL5Ye2Y8A1KN1+NPtw4YnRlhcv+9iH8vi5FOU5JAkCn2vVeYd6vPtfyYjxSaw43pg8lw7369AZNTVLA+5ApRpif4m2S/+MNqI4fUQAC9nYuIe2vEpT7ucNqnGYGYRKlhUUoI95GZmVpfaPHo3RYoi8POXGmZMDgwdD5coYo1/h+uuVpibfI/BjwYeF+VRmEZWQPsmpBafwHvCqWXysGX4YBtAceBYYnp1NHyFYZ7FgOJ3QrBl8/rkSRu3axc45AmppcoHxm0clKWUQeBD4DvgZ+FJKuVkI8ZwQ4rqwSwcAn8tI63QasEoIsR6YD7wU7m103nLx3UrfXhKLHVI6nPvnp78GjsrKoAzK68deHtq9e+6fHYO77rqLZ599lr1793LixAkmTfqUQTc0I2/HdGXH+JW88YaafMaH+eyEo/viWD96ND89PJnD86/h21W9WXGkWURhFy8WZlOF/WHulRagJTncygHsYd5C4Ugk80iJiBkAlfVzEp9GXW8jSDveJpbWdAkp5GKL8PcJYpCDm6XkkcRIajIpdEYgseA1HPix4NeLvZW45FVw+dTiAdS3246SQZZ6RW1rSDqQGdGH/exnPOMZzWjmsAQoLvqsHFs1CnCSRxJu4hnA52RSAYB8Akz4JOQY2LVrcRGJ0xFSw8iR/6Jr7jdRp71YyKCKejOHwH/YD+XKnbHt11BOt4VuDxl+P62lpGfXrsoeUFhz86qrShcEO3eq7QLirExPpZTfSikbSCkvllK+EDo2Qko5M+yakVLK4SXuWyqlbCalbBH6+cHZ6M8fTs0boUYfNQALmxqQrQnQZbry/T/XuKpD9x+g4cNQ925oMQqu2wlJp4kF8Oeo9A/r/gGHvjlrmUv37NnDlClTigrFN6oGO8bofHV/Nrbl/WFqZdj18a9q+3jIJruAylEDMqCSu+k2fCersPOTv/Pl1GF4jGgDK6gVQDjOUgRAIQLB29RlErUowFLk+b+WtXzH7KjrA/hoyG6qE+2ZFUTjAdJZTCX8CPwIFpLKB3RhFm8ynbYklxrjHEaDDLDGNmxTeRCg6iUkEWAwe4pOzWUugxnMVKYym9m8wfOo4LXSVIygYfA1fQGw6TBm/+dke7LhuecwXMkc1y5lL3fg5fQeQxZvAX/3x/B8gyLxLv0SV2MX3HNPKZ3RoLzy1BqMKjAULi4Mw+CHH36Ivqdu3djtORxwuDTt9l8TM8XEuUBo0HEiZD0Kx+aBvYISDvbkc/9s70mVeC5rJQg7IKHSJWpFUBqZq2FuFxWXgKFiCpKbwaUZ4DkMrprKWP0rWLt2LXa7Ha/Xiybgh6ehSjKhBHA+pYdZdT9UaAHlf1k4yXXXwdq1MM9biWs4QiNycWHEHDINfxzWgzWJld3TgiQpbAZcVgJYmEQdcrAxlJ24kMQTjw0begmdfxxxtKQFVo4xiVr4S6hmsrHzb5oU7VfHzUesCEUZlJbtqATu2IOu1WKls7sOHo7Rknx6cYTE0Pt6LB5e1V/FF+YZpeMGVqGime8k1t8siAUPTrwWWF4dtlW0se7oOjoldWJN8nQCHi+6YcGj1aCBfA2LLN3VtbI8VvR7MjnczQQuYTlJVMHhvJyqT7fAmmhVtgaLRXkOhWMYkJ0NQBLwCFARCPeRs9tjTAB69IDNmyO9jkDtF5bNu0AwU0ycSyqkQ9rjcPE9v48QAFjcR+Uh0ouze7L6ETi2MPb1UsK8y4uzlUIoN9FqmF4DfrgUpteEJQNDguKXUadOHfTQF7dbGiTEEZ0F1PDDjv/+4raHDoVq1cDh1HiC5owmjXmWVGQpn+qrOBZzQNUEdCxFf386arAV0KlPAa6QyieNNNrQJiLvTxxxNKUprWhFPw5QlwKcoYHYWorxvgOZRUIAoCdHYxqUI/hpGPhdsBX4EBXmOQcu3nMxI06VYxSb6c+BIiEAsFnfjMUaS91SgMXyGUlMp2QCQFBi4Qotg7kXQZ/+II0ghr0iOx7agfeojh60ARrHjMs5JZugW6JTfwBgs2G77hpcLqhv38d2GvA8z9CPL+nMTBoYr1Ctq6rOxldfIYNnFtjxwF2oatIADoeD2267LfrCRx6BpCQVe1B0czw8+aRSQxUipYpIrlJFhV63bq2M1n8hTEHwVyJ/N2StVq6i4ehuWDIA9n4W7VF0fBEEcmO3J4PqnOGFg9NgzaOxrzsNrVq1Ii0tDZvNRvn4UqL7pQ7eYzFOnJ7ERMmaVZJnn4UOHTVS+lbiinlplGuXFPP6anEB7rpDhjwdJUJIkpPhq2dPEV6GN4hgLpXZRsJpMwIN5zCQw16sRaopgWAkI3mYh2lGM5rQhKEM5UVe5CRxTKI25fFTn1xScRMsZa7fhqyI/Ss5SjrZxBFEQ2IPEwrpZPEma5iyvQL1Pm2qgpD3ASeAn+Dk5JMUUBBzXREXF4cMxn7Lxk4/XtEfmIgyehuoJVwBFS96jy6P76b3QDjltFK5oB4pL9o5Oe0kkYsrCxsYzVbjCWTtOmCxFP1Ng1YHweQK1H3nSbZvh1n1h5EiMnEgWMtrrGE8W3zDWXbpMbY/sp2M2bPRy5gvyIFytn3HauW6xo159cUY8a2VK6vYgb/9TamJ2raFCROU+2s4Tz+tIpKPHVNxCmvWqALcf/ag1l+AWaryr8SJn2DB1aUP7BaXyhl08SCVcqJ6L9j+Nqx9vGztW+Lg5txf7HmUlZXF3XffzeolC9gxJh+nvcSX2RoPbd6Gi+4sU3u6R2fXY7s4+tFRDJ9BYttEGoxvQELLRF5/ReelETo5PguNyGMIO7CyDmmXdB3WlUbDsvAtfZilKxOw2yG+hoVhH3tocjKd6zOvJ3jSwcOWdA4H7EyRP8X0RlJRCRoODJawi9Gc4FPakQhF+ZFKsp0EHqElQQSB03jsFD7hKTbSiQPEhwVzSWATSaynHAEEn1CXrhznKbYSh0EuudzMzfhLxDzYsXMndzKAAUhkcR810IVOT30AfkoGabq42dqHmcEpIbVRN+AWlOZ+Mp1S7Sx+YDmartN8bzOemTqCCvmlr3oFAbo6b0A34Cd/axJEAXPEVfzHOow77o/nhaaTYcgQCAbZyHNk0R4ZFjAXtAX5xniBUfqCqKxJEuWloqOScGglzqnno3xUX35ZRROXld27VcRxSfWRENCrF8yaVfa2/gSUFlls2gjORwr2w/6vVNBY9d5Qrpk6Xq7ZaWIIUCuDnHWwZpga1DU7NBuJ+uqUYaZl6MrLxx67Vm1pVKhQgfvum0G/HySvzn6OR3u8gtNWoFREFhckNVIpOMrIpr6bOLXgFIm11lPr+k9xph4ib0JTnvNN5K0PKuANGYQ3UI5hpDOGAkYGbyb73WwWlLfSuYaPy0IBtW4/DGkOT7x1kB+cP+Bs/m/2bIonQZaSdwnIw0ofOmKnABfLyGcWD+DiGVrTIGZFAhhDQzxn/LpJ2nGCvizhR7ZTDkFb2hbN5AXQjFwakMen1AYkD7KzKKhtBzuwYYsSBH78LGc5AxiAhqBoeDTgOPEYZABXU5zDKIiFv+OxWcNWCwtDG4BGnBhIxbR7eGtwAlWyK5zhvQJUZCnC48YK1GEPteR+QFBJP859b6QRdGRiDQYJ4ioSAgKdasygGjPQAj6q0SqihpsE1gF9UYsfgbIRfAV0DD054v/i4EFVADsuTm3HjqlI4osvjvFfIWHYMHjrLbUKiHV+Qyn1Uc9DTEHwZ8AIKE+dYwvAVUNlCrWWolPd9bEyrkpdbZueh/oPQKuXwZYAzZ9XSediBbQVIgMQDAmMLS8pzyZZBv2/sxrYfrmtIzMTbr4Z3G7BM188y4JNnRh65TgqJmbTrNctVGhzF1jKlqLYvd3NqYWnqNB0AWlDR6HZfAgNAol5vPVAIl4jcrbtR/AVDelh9GBS1iSuel5n/8NNyF51KZrVT2KdHdT8fDD/pRzSA/et7UAAyMGGG0vUisAAtpDEtRzmbvaRSAfyaYWHHMrjUVlGiRyAfGjsoizptAR7SCKdBPZjZxJeljGOodyHFvrnRuMYcUyhBk50CNUnE8DFXEwlKlFAQYlWBZWpjECwmtVMYQpZZNGRjlTlb9hpQ5DDwPdANnAZOjXx1N4KW1+O6qUVK9bjJ6nx2Hi+zq/FjfQllRJ5tDTAkAiC2MimPm8UnSpHNk3YzGYa8DzDqSKPYPWqz6OOCxF6pzSepyI/YQkZshsxN6KGmxu4HFWIs5B8VOWGvSiDcRRut8pD5HQqI7Ouw513wvjxxdHRAK+8ovyTT6cxady49HPnGaYg+KMoDMv3HofZbcB9kKKZ2rrh0PETqDMw8h7vSVg1pDhlBSgj79YxqmbBRXdA+liV5nn9P1V1sTPlvfccIupjIGzK80kGQ+mvhUpt3fbtyC9LGfn668jbfth8BT9svgK7LcBzeQt5slmmcnktA54dHoQd6t/1JhZHsfDal1Ubq4g2phpo7CSZy0JBY3qBjY9G96dNsCMgUZZlQRw6DXmFFFI5QHkkgreoxxNsK5px66hBfSsJDGE3ztDxZBwkhQbaQsJVEhYkGhIj5lohSPjfPwsb13FTUTq5Dfj5iR30ogNVqMRKejKfdAJYAclALiGJAA+zgy7AO7zDMzzDSlYWtWnFwY3cyFd8xQQm4A21vpe9uPgWN2uBalAYJAbYLJKWvRrRsf6TjJ41Gh0dicSCBYlkrjGXwP4Am1nFN8zidV6nAWHuyVK9vUQjQCL51MfBCgDW4SOH64B9PIzBOuBVwAnYOYmVXKy4I4QAgFbCs2saxPT10lHpC0pNvB4MFkU1A/DJJ5CYqJLNdeoEDRuqaOnTCQGXK9qWcB5jGot/bw5Mh5n1YLKmfOh/uALcB4gcsA1Yeqcy/oZzOANEKbJb+lWOoYW9odo10GPFL5i9l/g6WeKgx2oliBIbKfVT93nKpvArKCiIvboOBDXy962AbxqW7tVUAleaC6s9G1t8pB2kZsUDBGT030YgqUke21BpAyyGlQMBG7NlNebJKniwIoEq/I/KLOA+3sGFil6dRyr/oCnrSOYYDhZTkQdozbUcLRICxc+JHOTVXB0ysXOEOLpwAluU+s2NKj/ZBlCR1gab8JILRZuXo2znA27iDW5lIW1CQkA9NYBGJg5eII1NJOHAwdM8jQUnqhBNMoMYTi1q8QEfFAkBUCqjHI6jMpNGrghtNskDD8BzM59jxsAZ3M7tDGQgDWhAkGBRuusgQTx4GMvYyFcr+jhbkDjZypNIBDuAHgQ5xB7AwItycLql6I2gIWNIZgPyDMPT0aheKzyUnuMmJh4PvPYa/P3vKn11ampRnYWY1Kunoo87/A7Bob8TpiD4PTn8HSwdCPmhnHq+E6ep/KXDrgkljp1hNm74IHMF5GxSieXa/XKXTEBlK53bOVQ7YBF0mwEpZ64FEEH+XlhwLUy2c7XREi1G0jan3cO1LWcou8PSgWUqGOK8yElS1xpR4V7l43O4vcvHxIlIG4kdgxvZRgYZAPh4kPE8zpvUYwwNuZFLWE4FbBzDgo97+YBr+QYnbpwUsAMrj9KC223p/Ita7MUVMwFdSXKxcy+tGUAHBtOGNZQnFQ8CHTXAu4E5wEiUpvtqLPiw8lSM1gLAAvJpRGmfAR8ak0J5ieIpTyrrEcznInbRjN7M5AiWUhQAaSxkBkt4hHXU4gh/YxWTE+aTe/96suZk0ahhI+7U7uQe7mE720OKm0i2sS0qdiIcHSduqvMSRIXUeUN/ib2h/YrWNdRquglhLX14kkAXioOow0lAmbbLFOFciGEotZHPp1JUn46ZM9Xs5t13VSrrvwCmIPg9Wf33yLrDZ8JzJHK/ei+lrjkdmlUVsQdAlr6COC0SAjmw60P4ri0EY9QpOB2BXPiuPRz5H8gAjaqsZ+gVbxHv8CCEARjEO/K5pcMXtLtYqQvw54T1+/SkfdoUKeKj5Mb4ex7iwbu2EWcx0JBUp4Db+JqxDCCXXCx0RPBvAljwYC3a/kVjCkKDmAWDLxjActozlmF8yF1U0xbw0kt27PZkQHAkFCOwk3jepy7vU5ddJbx7HqM5e0gggIYXC6ewcxgXkhHAvUA6cANqkNeBPXTnWTTmx3jjIJBNbQrQS/3KCg6FSk0qg2oNqtKIXOJ5nOZ8QlvcJQZwGzZqUYua1CQJjes5xidsZABZJJ20kP1dNptu2EQwJ1hUhtIe8uSpRCVu5Eb605+a1MSGrVSPKdUnjSDukDiOxo7GEu1K9trvJb9aF5zff4SlZmVkVNBJ4dtCW+ByISK8iFxAayG4UtMis6KeTVq2VNlJH31UxRTcfvt5XwbTtBH8Xhz6BvK2l/16YYFqV0cec1SEdu/DinvBCMYWCkYAkkMRqr4s5Rmk//KoWUAZlX2ZsO9zlT+prOz5VM3yZfGXY8ytj9G7zfd8suQegj43Azt+xpXN5oR9Tw21AjkDPp+PyW8P45svT/FYT2h/cXGAmtVi8MprghFjBXUrBDhswAccBeoATUnkDXJjzCEF8CGdeJUv0UICoRmbaMYmdiA4KWczdlQKfn8G0Iz/UpeaeJhCTQKhwW8KNUjjFEdx4sVCLlZKzt7VX2MpKsluyT7o1COPBTG9txJI5BreZi0fUIdp1IhqW8OgCbmhygUaI9nMP2lKJo7Q6qk5UB9V9F7nOq5jMIMRiLDgNwcyLIgNwHAbHP7vYfY23suMlTNw46YHPXiUR0PP1biLu1jDmtPEPwdJ5GesZNERpdsviQcLDgaxN1iZ/ScsJPwnn7e++oqpR46Qfd11aKWsFrVnnqHd4sUcXLECl9vNPRLul7LU688Kfn+k6mjaNLjiCmV0BqUH/fZbFfZet66qx+Aq6fT658IUBL8Xqx8+8zVFCCjXHGrEqNNTd6BKE737Q9j0Ahhhs3VLHFS+VM2sF1yjah3/VoL5kLmsWBAYumrXlgRxpeSRyV4b02upW9piul2ZooLTIlZGmiqpmVDntF3x+Xx06dKFLRvXUuA1mLYSqpWDMQPhpvawdJfG3n0T2LnkMf5jOcA7Rl1+YigaQ7mM4+iaxhwjeobpQ2My/XiRf4Z8hZQDph8YhMQvPRzMPEBlbmIoUxhFY35EizD++rCwjvIUD9CxBiIB9ASWU1JBohEklzhSSeUAJyiuPhYPXEpfGmHjEA+xi2zsLKRykXpMIHFgMJB9gCQBnTwM8rFGqNDaMZFMbqQaVbif+yOinyP7WOLvE/Dx6rpX2cAGylGOR3k0qt5zB0rqyyWgY8FPJebRkNcA5dp5CGWWLnS+tGGjNa2paFQGBEGvwU0NDrE/F/SE/2fvvMOjKNc2/puZrWmkkEBCCL333m2AICAoTURFQFHEhgUURT3YEAELdpQi4hEEQVApgoJUpffeEiCBNEKSzbYp3x/vJtnNbgDP8ZzPc13cXLl0Z3bqzjzP+z7lviM4UrUqDdPSKIs8YOzy5XR/+x22Dp9CS8c6QELGfS3MTH8dHA6hjXz//YJGtVMnSE0VTKkRETBuHGzZErpM9W+C647gvwFdhcLT5a+P6wAxzSB9lQjt1BkDdR8pv3ErLAkavwgpg3z0Eb+Kqp5aD0DlbrBxwJ8LQV0Jih0i64n/P7cc/hglnIOhQcKN0OmfgfKX3gLQPOVoIEtQcySgC5EcJDHzMUVAlyWlXzMMyFgtZhaSJATvK3dn/vz5HDp0CIdLzHB0A85dgvs/gce+BLfXg9P7CYb2GS/yIpPoEHD0bXos6+V4vGWcgY6EQQQ7mEsSyylkJb9xgfcx8FdImsIEzBSgIZXDaCSV8//+eBj4BCE7KYy9GTtDGcw99GQo3ZjNORazFLgMjASGU5tDWHzO5WUOs5pcviGFS1gIRyWFQyzgTZrRhCpUYQ0GGk3wf8VH46QGM3HhKscJhIbu0ckkExmZjnS8Yi6gGFEcJIllhHOaCE6W3A0FwZC9EaHSUIgogN3DHoYwhDd4g0utanMhATTfRo+OHcuPEyZg83hQDEHD7fLdneSsLGaN/50W6b+hXEPuplzI8r8X3jl6VBj/d94REp3FM4bCQpF7GD78b01Lcb2z+L8Bw4DFsSLuHgqyRRjbXntE2ea/g587Q/bmECuuNFL1QbELI+7/opsrQN+Torz1544lDkb1KqSfSsEcX53K7ZshnV0snIMnR5SfltfHYImFxi9BpW5ipmFPhMQegaysfzwEqf8spag2hUP1+7jtlTOsWhXM7BkKVqzMZS6VfVTGAKpZ490m7Vi9OxzN7zZY0PmQ3dTxVQutZjVnOcse9nAQIYpSi1p8wAfYsTOQDuQgEzpVeTU4EOPio8BKJGIZSy/6Ipo952BlHqMRwvUmhMl7kkcZyQAygtyLC4nRnCWVRQgpy+Iw4DBEPU7p8/QjGwm/ihEvGxryyl6OVDjCnEtzqEMdnDgZzWjCyvT3Fm8nWSXi+0XScHknQRJXDnTgIcJYjJnLXC5ZHkkkdw9cwuxRJlQ/nrhmJ07wwvz5NNq7l915eawFZsoy39x0J7etSyfB+DcFnyTpmooVQpLeXcs6s1k01ERG/uvn+BfgP6lZfB1XgyQJ8jmlnDih7gHHaTEKLgtnBmwcBAtssMAuyN9cVyBIKzhezorinsxQsECzycLgV+4mZiKSGaJbQONX4OQXsOuZEnH7Q380YOro8fxz6l3MfbY9M3oZZB13gytDXMuVmtk8ubD3RchcB7UfFAlwfyeQuxPOfB2oU6A64PQ8YsJAusbkn4rOSko1or14yVazOJ3XjvebHKcL2TQjjwc4zfdsLnECAF3pyghGMJWpvMZryMjEEFMyEn7J5xz+PDREtdBY4GtgHQpr6YqoyFpCEvMYh9BmciDGvG6szEBiEWAEZBBcGOxhG6mMJtAJ3Ad8TNnX+0wQOUMwJCRUWcVhdeA2uVlfKYOnIhqzlx0s42t+ZSDeEFrJEhKYIX5APPXnNYfWra+YqNUx8zQj+ZZv+ZRPSRZSamhoFJ49hLlMWmtv7drcNX48zdq1YwUWZgAmw6DGGTcm408WM4TCNTgBzWaDN98sP95fnhMoxn8icf0X4Xpo6L+FRhNALYJDbxOyDUZzQd4+0QPgv2x1O+EMihPDaYsgQvLz/QAAIABJREFUdwf0PhRaezi6CVz8JXj5lVD/UWj4nHhQb1klDK/jnOAt2v+KzwEIR5KdXpGln/ZH9ZSOhj1ZZr58cxhPf/AusnIN02utCPb/AwpThQOs3BVqDBOd0emrQrOc6h4e6ZfCslX2Em2DKx4CL9vQ6YUFM5fZwGrmGHO4Je0WGujnePUKleYm32thx04rWtGd7uxkZ0k4pRn53MN2vqYFYmxrUAmFtuTgwcQm4nBgwoyBFTeFKAijfAEYSrGBhw8xeBEZg1zMfIQN2EnZ58ONi7V8zQYWMYwHaERz3Mj8xELm8hnFugFd6EI/+mGjE7+Sy4/YAuiuvyaJ1zl6xdGf0+xkzk1z2Fd9H7koZH21CVxRgIwbGZ2hjOE0szmFhISCCZNNIWFoArUm18KS4HMSixaJmHg5v5WETCGtsGChAYl8ziT6MRoVleidpzCpTVG8oPkeM0VViXM6Obp+PZG+OcunhsFrp1ZyEY3aSLyLwb/W6RIa/sE/D5DmdhNx771UTkkRoZ6y/EPlQZahQweRL/ib4roj+G9BkqH5GxBRM3QZqWIX6/xxdgl4LgVWBxle4RjSV0Dy7QSh2evwy9ZrzxFIJkgZHDhaMYXDnmdFOKhMZdLOX1uiqWVNiYzXbeHUwRrUbnqSa4InF46+D6iQsQoOT4OeO8AciYaCUiaEoekaXdo2ZNKkSbz00ktYLBYMw8Bms5GTk4+ul30pIzjCEIbQBqgEXKIb3XhIfajcMseyYREQzmAQg+hAB19XrTAOD+JB4S2+IpuhNOA+6mFgRkdmLPAJNenNBd4jlsMkIJK+FYFVwGDgJ2AFZiawhViOchSdDcjIIeuGCinkVm7lWZ7ERDU0pmMwj2In8CiP0pve2LEDLmpxijs4z2fUYhcxODGxlQqMJZuHqEFNHFjRkSk1djo6HpOHFS1X4LA7YMMEUK34y7x4MZFDTc6SR20chDUNp9GChoQ3CFTkc8fEsDEmhpuKioKMjIaNTG7CSzRNGUc0ezCQOIPCMDSaxLTEW0Gi4T4XR+or6LLErTt28Om77xLtM75vyTKv6TpFvufkOAaDgGXADYoiAndXG6GXA8G2JLo9onyffwEesVh4+MsvmTBoUAgu9XJgtQrRnLlz/6Vz+W/huiP4TyD/qOD7yd4CYSnQ6EWo0kusq3437HtBUDsXl1dKiqjCqdIvcD+XD4nEbFmoBaIKyZYQ3OgVURvafAIHXi1tXLsSJJPIUeTuhlOzwXMZkvuKkXmI8tTCyxEYeuhGHWdBGKrHxK51Ldm/tTFmq5fBTy7EFlZeEs+3f61IUF0cnMwF4z5yPh9DwcE2mCMvU7XPQuLb/obbY6DnnOLZZ99nxIgRbNq0iejoaDp37kyPHk/wyy9fQgnHTjiiW/cHYBSCvOAS93O/z1BeGTpwhCg8yDQkn1q+fy5klpJEXQqpEu7F4hlBE6/OMM5gKXEu4jd9jJPsIIZC4qGEZ6g4QbsE6Auk4MLNVBbhZjaQh4w3yBGYMdOZzlShiu8I54BpFIf6KlGJ27k9oJLHhkEyLiYiGp6mUY9f0NhPTx73nU8cbmawi0TcgIHb7Obx4Y8LJwCQ0QrU4DCIgkEa4VQ3O6n5Ro0gJwAwceJEfsvKYh2BRsZJJU7zIJncQmtGEUZqScluIl6Wo7A3y0Q/JZoHZz/GLXs2gSQFlINqwFu6HqSS4ARGVajAyL59WXBzV7Y/Mppwd2CewqCUTLu4wNc/e1ZMZucBvkcU3RYCs4BUt5uVK1ciyzJdGjSgw4EDSFfqQAaoWxe2bStfFvNvguvJ4r8a+UdhVRsRJy829EoYtHoPao8SnwtPw+8jIWuT+FzpZmg3C8KrBu7r9NewfXRoZ1C8326/QVxr0cS15R7IWCNi/AbCkOvlJ+xKEF5LGGLDKxK+Sli5M4pdG5qwck4fVE9g+aBiVhkz5UOWfDSQzLMJeD0iRFCv9WEGPb4IxXT1kJFHbc6GMW8jOUDxJWIli5PKPRcw8cI8ereNZvgHl4K2czoNqlf/mMzMV4EchCRJcTy+uNNYoSfdeY7ngrY3MEoUus5SkedpghOlxCg8xxFu9AnXFCKjmCUyh9Xl4fmVGOU+zp2cD5pjOFCYTl3W+5V5+h+xlGPI7TtHBbibWDbhwIEXLzo6VqxEEcUMZvA1X/Mj/vq+JkClG3fzPKN8ZxwaLmQeII50PxW019lPa3Kx+uWOdtbYydv93iYvPA/v5vGw8UUMLdCIWdF4j92Yqth4IK0Rkhx83JiYGPLy8rgN+ByIQQTH1kkdsJpfo4LnGM14GhOBz6eOiXPcyWnTGFBVotlFfaZg9dNnyEEwI4U0weHh8OOPRDqKWDf2KVqdKO3dcSAMvb9rKwJWAom+9dOA00AnZEbQBxt3IqHj4Cf6sAzVakLTNKwmEzdbLCzNz7/yaPqee2B+sIb1/xeu01D/t7D3JV+i08/waUWwezzUHC6MdEQN6LZOdOxKUvmNVCkDYM9zvv2FcNhakUi83rIaNt0FF9cJmomSMEnxeEds6yy0YbF50DQFk0nFMEAxGeA4GbzfMiNcAI8Ke9VDpHraU5nKKL6QgcniodXNOzh3oioXz1YKyB8c3dGARe8PYuATizGZrzxVP/tDLySXXLJfAMNj58zyoayRv6NtvdCjr4sXU3E6XwAKfNdaajRMmFBQcOPmZ37lPu4nya+SCMCBg6d5GrsSzWltEwVlkqGvU4+D7KInFahJBQwvjJ9VATdgLodKTkjMGyGcgFhbWnFkQVTUrwX6kMt6HuBeUkkjh2xa05qe9MSFi7WsLdnDzdzMCEYQTwIFhJWMqsuDCZUe5DPH99mKxl4qUJ2iAB3lVqdbseC9BWRHZuPxVGC0puDwuw4zGvXJpyaFuM7v4vIDs4iuEg733itI23wozuOsQuJOWtKFmmTgINpI4S6Pho0LhKpVkVEJ47xvMmriEi3ZzQe04z6kEpI/MbcK+TQki6Szx6RQJSeQKsIe4ohhwG2IOq5HKO3uOAV8y1o+YxDJJONmFK/ThgnuCaiAqqqsc7mYi+gTDwmbTcjo/Q/gL3EEkiT1BN5HDGu+MAzjrTLrhwNTKWbWgg8Nw/jCt+5+YKJv+euGYfxrSuZ/F2RvJiS3v+4VMXdTuKjCyTsAsW3EaD5roxiFpwwKZOHM3OAzyleYteXugqJ0QWEdFCc3QLaBbCYzLYLouCwUk14yOvd6TBgeA5MllBEJvAZVg+wCGP+tRh5zeCxyEDXCKhIe6SCh6kXSjqew45c2PonCQJw6WJMDW5rQ/MY9oISDrTIUnfExm/qghJF3tDOKFhx28uKlrlKDm26uHfIWTJ06Facz8D7ZsdOPftSmNhISWWSxjLV8xGXe8HMELty8w4ccJ426te7DSDdBmQmYiolF3MUiDOqwj2m4aU0u60lgPQl052IQCZ0CbONqPP0GYjbQEOEY+gIuZjObvgzkXl4jklzW8gPzmV9CGHc3dzOSkSVJbRva1ThmkYFITgDtEIlfhaUks5wq/IODtPdznhIS8QWiWXAGu5hAUy5iQ8agBxcYwwmaMpmKbECZ6waTAu+8gzH9HQrb34PngodenXqxYt0KpjCFBjTAgqUkB2MgUUB9pBBFExpW8mjmt8SElwrk0oo4tmMATkXhScNgetnwkNUKDzyA1e2mx7ZtVL5UOns0KL9E0gI8S2CLn4aOy/dbvMzLWLHRkmak0oCvOMx4xAziC67gCN56Czp2LG/t3wr/tiOQJElBqKN2B84B2yVJWm4YxqEyX11oGMZjZbaNBV5BBHQNYKdv2+D5//8KwpKF4HtZGBq4smBdC2GwNZeoADJURGOVGfZOgPZzhEiL4yxsuPPqSV97ZXBd8DVwhQgDhddAb/MFYUt7YLEGvnhmi4rqDTS8ZelZij+bFEiIgnG94fudKm88vwCrScwoNFVG9ZqYPekBMs+W4aVH5MnDYgyREK//FNR+GH7tVnqfDC9UuwtbvaoUHMgO8ns2u4cpj52hTfgZWBgu2FBbvSt6EICtW7eilqE3HcYw4okvMZaVqcxwBvExdThEJDVwcAEbs2jEZmZit0fSoUMMixeHuskS+OLvqbRiJhmM4QSdyeYDajObOIaTgx0dDdCQ+Yha5AfMLMprQLP6/hoC7wKDMIBleFlBG17iQz7nc1Sf0UwkkUtcYh7z6EWvkj6JqxUmevGytYwus+ojdp5MfZawFSWEO6mOk05ks4SqKL7ZTxI7iGcDSnFYR1Vxq1Hse9SC074LySzzpPNJbpJvoonepCQ575+Id5FIFjcSz8aS/egoqESQQa+AczBQcJGEhpjrtdE0soDJvr8LgJyUhHnUKGjWjL5btjD/9deD7nR5WE8oVWaRPN/L3oDzcNOQ0RzGDbzIFYZoTzwBT/4ZNoH/X/wVM4K2wAnDME4BSJK0AOiHKIa+GnoAawzDyPVtuwYhlfTNX3Be/z9o9KLQB/Y34IpdVObsGgve0uaZ0mSsIWikNWDrCEjsKSgkjGuoeqh2j1D4CklGZ4LErmRn1yY2LHSuQFECj1G21DmgmEiBZ/tA7xYQZit9BRSTjix76Hn/ar6eOgLNHbhPr8vCyYwB1HhhDOYoXxdyn8MimV50DuLaQkQNqj6bT86KXPSi0tG1ioe2rz5NZLIHVF8wIG0hpK8U+whLokGDBuzduxfd1xmaTDKxxJY4gWLImGiJwbO2JjhdgeEfWYaujYpY8JWNK7XXeFBYQyJHqEA6dlQkFpPCD9TmLs4hI/MLlTjrF4kurgMKHUQqhhUxI7Ag2ILG8wgnqEZMANtnLrmsYhUmTHzLt7zKq7Sl7RX2K3IguXG57HDcBK7ga/Mic4rwgF4KfxSL6nhR+IlE3mcTMi7yqcdJHqaQuuiYMAwTFAlqCYCmNEVC4nwS7GoJEYXQYSvYfBPXIzxHAfWpwlIUnGTTiVTuRwsS8dGJ4AQKogwgGSHJbKGUblq7cIG0mTOJnTaNaMcV+lgC7otwAGtLzjgYsX6zOhkvVnIIB54A3gKGh9rIbIZQGsl/Y/wVDWVVgLN+n8/5lpXFAEmS9kmStFiSpOKs6LVuiyRJD0mStEOSpB1ZV6OJ/W9D12DfJFgUCxvuAEuMCIGYwkVopuogaDUDcv64+r4MTVTsONNDhHpC4OBrcP4naPoqyGUrYlR0Rwbn/zhN+qnQwi952X9OdlICGobYlSRD9UbpDPp2EIo1cJYREV1ApOcXcub2gYNTBBmeJEF8J6h2l8iZAFHtoqg3ux6mOBNyhIxklagxPJXIqjlIZekq1HxY0QTcuYwfPx6bX1VGDDEhz92MQkWysZr1AIZiqxXqV1VJeWUHt+vnsV0l3u5FJpVwnJh8+sORuJGYRyxzSeQsdorHiiZ0IlF5jBNY0QhDpfxxpMgdSFh5hXzuJJ0UqvIYjzGCEVixliS1VVTcuHmDN65K+SBbZfqe6YsRH7rxSkNCQQ9JL60BqX5OTUfiEwaQT1328B6XaYFGOAaBZabF1/PJaBg5Gz56FKY+CwMXw6EGxesVztOfbXzFVhZznKfwEBtwfyTcRHCSKF8TXxhQPNafhOjIkACTrlMzI+OKTsC/pdIA9iNkLh8FBkEQ6YYNG0MZWnLlMl7iEF37FuBmQoSF7HYhavM3J5kri7/CEYQa5pR9on4AqhuG0RThgIvzANeyrVhoGDMNw2htGEbr+PhyyM7+v7BrLBx+G7yXAMNXgaNDx6+h/wXo+KVwCtI18KMXV+5U7l5+J7I/tCLYNgrqPg7VhwaJeWinl+PZ/DSblnfE4zKj+QhcdB08bhOXMgON5r9TRCaZo6jXt16AI6iUksGjUz+kfY9NVK74O8aBSUKIxpEach+V7qpExwsdab2zNR3OdqDW885gJ1AM72U4+h7NmjVj2bJl1KpVC5PJRK4lF3MIniYPZtKohstrpU0b4QAiImDECJjs3YHh1BnDSV7mEO3IJAIXoR5HUfNT9tWxIMarjRBmZR5mTtGP88xhO3eSzhK2MIHDNCOvnG6B/Ygxam2m0JWjCDqCfvRjM5tLnIA/VFROEpjsL9tDbrgNDrQ+wA0t9oMcrGntQeEHazCjKQjTPoftpJSU5krM5A5O8QB6iA5jf2xvA8v7gscKbhs4w8ERARPeBK3k9hXnSQR0dApxgAUUCqnCUpoxLuDMiuueioA/UzvoNpuZOGIE97z4IrmRkcwEEhSFOESCsxdiXhYmy4QhMYI76UoHZFyEkUZznkTxnauEKC8tecokCapXhxkzYOLEoGP/3fFXOIJzCB6pYiRTRiDIMIwcwygRxf0caHWt2/7t4bkskr9lY/m6C07NBYtPJUxWILk/13TL4ztDcj+IqndNp2AYOvs+nse+r7azcm4Pfl10M7kXxJTWbPHS8oY/uPWe1Xz7/mAOb2tIdnocR3bUZ/vPbanRqJQMr5hzS7/CAFOSQnfKez0mPFVH485348kvNdxZ5xP44YvbUb2+clDNKWYEu8YF7qAoHfa/BltHIKd9RVgtGUu8hctGJfTy+JcMTdB7A926deP48eNkZ2dzquAU9XvXR7aUbqch4cbKHprjcklcuCCEqdLTCzh9sifKSfH7SUAHcniLQ7zLbuxofkbbwIqGKaQRB/Hbnga+Q2EMU/iJ0Zwkxmc8wtDoTA4vcoSogJmBC9G+9DgQjcECijAxiSi8eJGQgtg+S24b8AYt2OJT6NXQUPEGmXTnUSeTfq5PYvI2Qjm3+t78cuubolD5hx+tRj7h5NOYwMqy4HvyUy8dV4i2DdVssL+JgYybJjzHjfSgFQ8RxnEkJEzI4BEaBlncglomVORP5t4lxDmXB02WmdezJ4tuuIEbZsxguixTtVUrGj31FK/ffz833nEHPZ56iuURERykI3czhHBO0oqHacMIwillQDVLkqA7sdlg8mR+X7uWO5o1o/mHHzL2qadIT//fMmN/hSPYDtSRJKmGJEkWYAiw3P8LkiQl+n3sCxTL+qwGbpUkKUaSpBjgVt+y/x0UpYlEbxAMURnkj7afQkSdK+/PXAHCUwT/zq1bIKohV0sFqi6VFc+f5sdZfdi+ph2bf+jEJ88/wv7NjQEwmTUqJuVyz/ivqRCXT+a5BJJrpdPp9u1IptJmINVj5ptpQziyowH5lyLQtSvPEIrXGQbIioYjy8W++fsCvqNrCkd2NGD+lHv9l4pu4mJkbYYf68LBN+D0XNjxKJ5ljeh6Q2sqN7+P1AuukOehazJ5eSm4C8QYQ5IkKlSogMViYfDiwVQe1IV8IinCxn6aMJOHcPsCAOfOQX4+PPTQQ6z/bT3OIN0sqI2bz9hJVzJJpoh25DKdvXQkJ8SIXkVMdg1s2OhEa5rTOGQSLgIvt3CB4tJemTREy9KDQBrQGNiEl24lYZ++9A3BGCoBVUijNa/SkJUkkGnJ5J6R99D7+d68cPcLpFX0o292GSyraKF99/PIpgxgAkIg53asxoUQZyogA0m4SPAldavhwPCFi2LZRgcGUZ83kXFRHG2XcaFagmcfAJKhE2f5kQ70J47tSBhEcpwcDjGTmUzjHVaxChcm3MRynCfQgYvR0eSYzbyGCBH9hJiH+T8aGkLtrHi+6TGZuBwWRoHdztCJEzmXkIDXYiEtIYENLVrw4t69TN++nQlLlzL855+Z/+mntMmvTBoT0YiigEYc4QVyaYUXP8I4wxB/qkrW7Nl0vf12li9fzt69e/n4449p0qQJaSGos/+u+LeTxYZhqJIkPYYw4Aow2zCMg5IkvQrsMAxjOfCEJEl9EW9LLr4ci2EYuZIkvQYlStuvFieO/2cQXk2Ec4IgCWppf1iioc8hWBwtuoNDQXOB66KoBlJswhlsGixKSSWphPitGAYyO9Y0x11kpthh6JoJXYMfvuhLvVZHkSQds1VDkqBq3dKUjKMoge8/7sGpfdWQZZ1G7Q7SvtfvrJjdh0tZMUTFXmbQE9+SWONCyFlA8TJJAkUxiC54n1Or6gZ9T1NNZJ5LION0Iok1hOqaplvZ9OpvWCLNtEu5G7kMyZzuPEX3KvCrG9q+DEemQmxE6TF3rWvBmm96oBlh6PpUGt/VmD6f9sFkE4+0YlGYffImfuemkLdZkE06WLp0KW6PmyUsYRCDgoxtVZy8wBG/+23Ql6McpD8OFFyYsKGi4KYRc7HQmW50o7WPTdSftkIHsrHyFdX4kUSKR9I6NcAn9CLM2gagH5coKHEEXenKbnazlrXIyL4KlnAEqYKEG4XPqE3iPYPIShE5tN/r/M7eanuZ9cksKl8W1UXOw06WnjLTqFEz8vIuoeseYDfrDQ9teY4wv7GhEwUnMjF4feWXYkb0mC8UZSeVRryMgpvK/EI4ZzjHANxUIpZtPPJLPntbPI7DXmZaoHjov+8jzH6hrtVAfz5BRUNFZTObWchCPuIjcuiIBIS7XFRctIieU6ZwcOtWqpf5Tc8iJCpzgH8iQg2f9enDDx07srFpU1zW0lmVV1E4XK0a3Xfu5M5NmwKGWocYGBD2KqAe+5kGuGjDwwEzA1SVyOPHiaa08sjr9ZKfn8+kSZOYNWsW/wv4S/oIDMNYgaA/9F/2st//T4CQYqwYhjEbKCvO+78DcxTUHg0nZgZXCjV+Kfj7kgTdN8HP7YOMuu8LkPqNKLMEEVq6ZbUoJ3WmC7Ww45+AbAUMDHMs6xbfTNlZQ3zyRTr23ozqNWG1O4PKQj0uCzOfv4f8nChAQtdg76bm5GbF8Nj0D1E9CpIMiuna+Vok2YRWGDqRL0k6uRdjSayRgddt4vfVjVm/aD1xSfm0fvWCuBw/2MwwqC1MWCD6Fxo9ByvGSzSpZuLMgYasmtcLr8dMcUji4LcH8XrB0f0O0tIE39mVms9vvBE8nlLnM5e5VKACPeiBjIwJUxDvUDEO8DMfEMZu6nGCCGrgoCuZ2BlNLm4ucgobtoDtRfGowdssYSe9EWPZaMR4W6Y0Vt4boWImWHTmM59hDMOOnXGMYzCDWcISNnAeN5OA0vChAxNH5u2AyPMQdwyj7k+4mnzNgk4LGLtiLACWJAvTpk2lsFA4AQWFTnQihUqc5zTVqYUbhanUZ6sv3BSLh5GcIhEnL3CYJuQDUIWlAb0AkZykAW+XfB6yXmZe95tZ07wt2AwkDcyqwawpUwj3I2zTEHypLj/H4MJFOul8x3cMYwgGMFXTcN99N8sMg1WSxCjD4F1KjdhQxHxqMqJFrysQ7naztVGjACcAgoeo0ZkzQb+tKsusbl+HIyky1VKh3R9QzKMooeIhLtARIEa3ZcmlVVVl7dq1/K/gemfxX4GW0wXvz5F3BElcTHNo9X7wjCB1kUgsuzIRhlsmKLaqu4Twu+eSCDmZffHR8Krir2I7aDAOsreKY8Z2QNMmI14nYXhqNzvOoCe/RTGpKErpxNkoziKarOzZ2IKCS5H4O5C6LY4x4PFF6DrlNJn59oMJDDXELEEmpbnG6c3egO5iAF1XiEnIxes2cepATdYv7gw6uAsln45xMEwKrHsRKlWAFXuh5xSDp8bcTaVfW+D1XA74rupU2ffPA3y8rCeXimxYreXrjEgSfPstREfHk5CQwNmzZ9HReZd3mclMXuAFOpQRtSmGEycHOUgeeTzEQ/TycRetpBIzqUUBJqawD4VA7QkJUJF4mi48wG24WA+0K/ONDyl2AsVYwAIKKeRe7kVC4lmeJZdcdHREFLY6QuYlGhUJNDvk1YK82pB6I/qmCWzr8Dpp2Kke5qb6K9VZ+dZKPB4PMcTwER8RRRR27DhxUYDE29RnF3ElMpwXsfEu9fiEnVT3OzcL50J2NBuACytZegLuF1rRu3U+5vaRRBXArT9L9E/fEdBVcYhgQXsADx7W8StPU4WZssxbui4SOwhijtmI9PxbQDYirJAATKpdG+fgwfyWl8dn8+cTMXIkTqsVzVcqpng81MjIIH63hy+5l/uYjwRkVahAxw8/JCMmAZfVwOKWiMuFDx+DCvmgYebbW1OYcv+zpFesSKMzZ5j66ac03L07IG9RjISEhBBL/5647gj+CkiyoJlu5Jv0ONIE3YPTF+Lx5AqaiN9HXhsr6LEZ4g8ZEm6ADl+KvEExwpIE/QQgq0V0GW1m40dedF0BSef2UcuxWEPHZ6nYASnxFv54zuwvKYxiUrlzzJKgpjPfWp9amgFVByJF1IRDU0TvQwAMWvVzsvULD5pXwTCEITGZvVRveIrMswksm9mfzLOlVV+FeZFcSKtMUo10ZD+n5fGCejGFivlR1K51lMe6e7mnk8QfsV04OT8/5KVpyOAowsB2JU0UBgwQhJAgMXPmTPr3H4LLNQDDGEwRDk6jleMGBOKJJ5dcUjlPCnX5gzjepy5uX/lkBULfezcKH9GersoAftKah/jGbEK1Nv3o+xeMQkTqdDwwk1LT6vuvGg4FYWSsmcFDKDSNcbO0g4X4CuL+P8ETVKQiZl/tSzhhWNHozgX+ILAyz43EVOoynmNUowgXLo6RTAQ7g1QO3Fi5lZ/ZTCeijAL2bW9BxvZXcVIVCQ0TzoC5Vhjl1/HbUagsfcQbuh5EKVEEzEDmDXTcvqt2tG+P45VXwGxmtaJQq08fGh4/juPECQpatgRdR163jkUffU17Yz/t+J3+fE8khTz++OOkVqqE1yzuh9MEGRaY8Ti8+IaTl+/cz65RD+P0hbp21a1Lnzff5K4vv8SydCluv1lOeHg448ePL+eq/n647gj+auydCIenC+eguRCi7OFXp4oICV3kBtZ0gr6ngqUrM9bAxgHc2Bk8pzuyfXVrKlTMwx4Wul5ckgBvDhyeTpj1PnJJothoJNc5G3IbABQrNH0NkvrA/pdFqawk+eIdFnGtugdsidi1nYx6bRtrvrmFE3vriKqlm3fSsfcmNnx/E5Xqesgsc6iln9zJqNc+x+pjKTV0idP7a/HdhwORJPhR7s2wCV8Rl5LZt+jLAAAgAElEQVRB/ZOr2XO+ccjTNJC5TIUr3tHiMu9idOvWkwYNzrF3rwlNs2EA89FwksqDyolSQnzAQCKMMMYxDhcSK0nkUeoQh7vECQD8QSwpFJVISxZDxmAv0XTUHqGUOs0f/4pUogdYgHAEoSBR3fDyPPuoed7B4ToG45XxqKh0olOJEyiGCZkuBKfpDGQOEcUoWtJZOcGD1Xez92RDGrAVhUtYfc6vCDvfMIQdtKEnq3mHp6lCBlQ7yOnzKWBIoEsBr0ItoDZwsMwdsGKmqnSGuwyNc+VevUEm4STh4FFJYvozzwQwfWp2O/sbNoQ1a6BHD0AE5b5kOEWynZ/1HvxBOzqwlaVdupQ4gZLtzbDxBp1lk6eyecRT4gHyg9Nm4/DTT3Njbi4bNmzAbLfjrl2bwffdR78BA8o5678frjuCvxIXfoEj7wVTPVxJseuq0EWJ6vkfoGp/sSgtDX5bAcpYxFgNbr17NW26/kHqkRSUcsjdDEBypILuptuQ1cx9bUTpUTSFch2V5rue/S/B+eWBjW6GSkmIq/A4FKURHe9m0BOBXA2GAd3vXkN+US0Ob7wL1VOcjDPo++ByFJOK5Du+pknEJlxCU02+84Jvpt/N0x+8QyRbwAh2BAawlpvRyjQ1yZJOWLiEjAdN1fh01DiaFrmg6DUMeyLzJuRzeE8Emh+1tguFRVTjDjmVeMmLoSvYax7h0okmmH2mSgYScSFhcLmMMV1EVXpwkSi8Jc7AA3xODQZxnt5IPMExfqKQedSkmLFf4T7gVTSuMJ0JifLDeBF4mcFuwv06HxQtjNd47U8eA0Rvrcw6LRnPyeXcyL005wme4S36sYwCotjAUKw05QBPkMQP2LmIERZByptNSerbCUmRkIb0hhUrwI8WZInZzM2ymTzdAK8LFQMJndXldNc3QKg/J2Kwq6oDmwkeLopneijxF5MJ2rQp+agCa6r1w5MqHMZtrGQEs9HL6fPRJY1PIneBJXTfxFG3m0urV/PxoUM8k5mJLEksliS+27yZhQ0b0jMuLuR2fydcl6r8K3Hi83/T6JcDzSWoqw0Dxo2DevXgq7HgCmwwiknIo/kN+5AkI2S5pQQlRrxa/TS6DVkDklDYOnc8WYzWQkKH3ePg7NJSp+C/zp/eQi+epJc5tgSSLBEVeY7YyjkUO52qddOoXCMDs19OwmTWiYrLp36r0modj8vCuRNJXM6OCtq3isKP9GYngey6JrzcIG9m1esv8cMzt5P1SRz3tvsYTs+DVS048+JhFr7nwhlCX0HBYJe3MoZqAV3BeaIBFnQURGmcBYNm5HEn54krE7S4jIUHac1ykijAQToFTKQhN5HNEM5SEQ8RwB2c5wN2EYYXMxotGU4ij2HzzRTKS1aXRUNuwRJK9Q7oSYZPLqcUkt++Q3UTnyb8Kt3VEWyjCQtI4RyVeYr3aMYxDvAZtehAHeycZTDbmcMlmiOZZOjVC5NehGKT4bPPoGpVod9rNmPYI0jUkvmnaQGT5Nd5wjyBJfVe8jE3BWMQopFsDELi58ZzEOOE/gMLkcsTjCkQVXo24A5JYv8dNcEm7pmKmc95GPX3SsHigapKxJYtTCwsJLwcoZt4j4fhv//Oo5mZuACXYVCg6+RrGgMOHuTCtSqZ+XDS6eSugweJ37yZen/8wefp6fyn5QKuO4JrhSsLLqyFy0fK/861qoL9WchmKDgBS0bA9x/5RMHd5bYXlNf0VRadbt/CHQ8vwRbmQjbJ/Din9xX6BvRyymRDobydGOheD8267CUiWryYSTXTUULIW1rtHqrULg0ISJKBx21l60+B0XsD+JhH2EVLDL/ZgIRGXY5wa9SPtI97mxvqrsFu8TkxQ8WbY3D2nQtUUN0oIUIyEhAZYBWkoJfFjk4fDhHNJKxljJYLhcukMokV3E9PPFioTQFWv2NZkUjERXty0JDZSwI5TEblDO2YSSc6lXMfAzGBETQi3zejMpAwsKBiRaMledjKCTlJvn9iKFD6m9WhkIc5STJFVMBD6N/TSp7fTGgoaVTE7cfCakbHzhHpRYxbukJiIsTFQc2asGcPHDsG8+ejv/oGB+V/sF3/As0RSUt3S7p7uxN+tCNNaRbiqILxM4zSrt4IA+plw80niog/+0ewWIzTiWXhQqwISonxycmYu5yHKLW0JAjg45qQbyqV1ywqgpwcnDNmMEzTeO6bbwhzBoZd7S4XeXPn8mVB6HJwTddZkJkZcl0onHe7ab1zJ4uzssj2ejnmdDL2xAnGnzp1zfv4V3DdEVwNhiFGw9+nwMaBsKol/NxJdMeWRbUhgkqiDDRNDiHveK2QRZnpqTngnAcvOMUwaB9Xp5y8Ck7ur8lPs/viKrKjeeHg1iZczilbCCeQcaYyi2cM5JPnR/PD57eTezE0n8+VYCDYStt2386YKR8THZ/L5exoNDV4RO5xmYPoL/ZubMrZY9UClqWTSAERQdQaBhIyBmq+hfTTweRIBadSkEweenMBUwhDZ8KgdYhYeVmYyeEwU4hiFEmkY0WlJmnMZCgz6M7DfEoCaTQhD3NILh+ZDSSgI+FBwYkJFTM7eIATLEKWfkWYr9BIIIEkYrmJLDqQzRI28z57eJbjfMpOOpB7TRTVqp+zkIE7SOcrtrGYLUGOxE4hLTlIKy6VhPM6kxWUEwHwyNFsPFlIeni4CAWdOcOF/v15fuRIaj75JDe8soyzzoaUNUU6FsaU1GSVog2h3VK4CoMOQc65Kdx48ABWl4uwwkKsbjdPLVvG7tXr+J3OjADOZ2fjsRvw6U649QJEeiHGDbdkwYnd8M478NVXMH063HcfltxcNgET58/n5XnziCkoQNZ1ql68yKzJk3n01CkRfgoBN5Crhp6thcK0tDQcmhZwx4t0nQ/PnyfXe60DsT+P6zmCq+HMfDj2sYj7F8f+c3fAlqFQbSgc+1AoiKUMhLpPQsWOqOc2YjK50FQZXZNZ8eVt5GXFMuyFL69ppF4Kxdd8qouQi4wYEvVEzI1XIXqxLVyjS5dE/4GhgqHy25IbS5TEitcvnnEXw1+ajWLSS8711IGaLJg+BNVrwjBkss7Hc+D3xjzwj1kkVL320U7xpZvMGrKs0/WuX1j6yZ24nVbMFm9J1ZBhgFoYRc1EL7GdMtm3vTZVO22jbsujREQXsmtdK9xFwkQ4CUMOaRpkHESgayYWThvE0x9NQ5ZLv2eJvoyhmahGEc9ylOnUQ/KNi21oTGV/SMPtDzdu1rAGGE4WK4E5bAWaQYkBux+d/nRiGd+FpHleR3zIo2hIXKAyGJWRpHYYRiw2ZuMKmFFYGc1oDARfaRVcRKDRhMs0obS8tlia6EqPnkeSMftOxIGDVFKJJx4vZjw4sWDCg4VwHDRkC+Oox4ySO2/wCK14kuN0I/B5cMsKo8Y9ycVKZvpt2kThnNdZdc6J/tVXACSSVA5pnkxLrAwGFiJG/0W+v/Ie9XwrGLqDVeOf5VxCImfj42ly+jRx+fksB+7F1zjmdMKAAVhefx3PeC+MF8WfJqcTY+JctF27AvYrAcmKwq/NmtHozBlODxmC3ePB4jPw25OS+Ec5L7ZVkrg15toHTRsvX8YbYlpulSQOOhx0if5zJJHXiuuO4Go4/E4IHiGPqNi5uBF037pDb0PqQjKTV7L+xZep1fgQzkI7e35rQU5GPBabm5yMWCom/ZnGaT00x4MFESidAuwFbgKjA2xb2waLzUvjjgcwW0KMQhQ73Lwa1t8GaiF5WcEP1fmTySz+YCCDnlyMougYBvw0u3eAwzB0BY9L4ud/dufe574GID83EpfDTsUqmdek6y0rBjUbn0LXTMyeNJL+Y5aQVDMdMJAMBWuEgwY916A6N9F8UBTHZj1FzYZrqFY/lXY9tjFz4kMUFURQLyEPI8ccFNs14aEeRwHwei2kHatJeNJJTl6EWpWgYrV0rFXMFJ5S6WZkYmAwg7q4kXFgZj5VGcdRwksMb+CL7sHDWc6ygAUIPavL3MBSGkHAKNYCWHCQwV6SqYMJpYSfXweKUNDKZfnx3W8jDJkZTGUl72LiHBkkksiDPEhnOmNgEI2HXXIskiKDN9CwFlngpBpBI73Qlx8Qx1bMEo5qDhY7F6OGqww5NoRv+IZv+RYzZjx4CCeccMJ4nmFkU5HurCWW25nAAH4nruQ8CzEzjXpUxENzXw+FKhscrSeRVlXMkr+LiUJJD6wM2sOeILpwAI0iYvmVuQiVhnSKeaBEz0A4gQ6h0AyftIY2aWbMqpea6enU8vH9nAPupkxhrsuF6YUXsCxciMlmw+bx8NxHH/GPXbuCehqk+vUZOHkyHrMZyTDwmkx8/N57DF+9Gh04Z/WIMFIIxtFbY2LoVOHKlWz+qGO3s7uwMCiY5zYMUv6DusfXHcHV4CnPcOulTgDEiN15njPLlnN8TwMO/y44hWRFJbn2WVSviV3rWnDrPb/8iYOXMyKVEDomSQgb1B28ukxedgxmi5cF79zFwMe/wx6uiqYztQDi2kDzKUIRzdfRXKVWOkd2RoIRaLmP7qzP0R31qN3sBCBxKYTDAJmzR1Nw5Iex6P3BnD9ZBVnRadp5Lz2HrQoZ9y8Lp8MGGFzOjmHOqw9gC3Nyz/j5JNVKR/axZJrsTmSzh4SOv5Kx/jaqdF9OuFxI59s3se/gcFqbWpOedZo51MCFDEiY8RCHgxFVd9Oi3zKOu5L54rPhVMmMxyHn8SxLqRit84RHI598UklkOvVw+70OG4nFXbEJk3P3iHLHMsgyZfGIOhoVC4KHciXNAGvx8NsHHdhKIeuYw1QqMYEutKAFXiRmU4ll1OBaYnwmVCK5mW0c4wAzMSilFJGQuEm+yO3DrSi77TgOOTDcvpMwS+R5rTxttMSORi/SaUw+F2zh9J97gcEPDMbr9eI57+EQP3I7l3kLnR/x8CuQRx6R5PE8U/ESySVac550dhCBp0yFlhuFr6UUmht5FNkgp6LEqy+Xrjcv+xG3HvhMF1HEdKbzDM+goGBGQcLFbnZzgk0MQ8wGkhFJ+mOIYtmhgNXXlG0GPmsFW6vCptkqbrMZk6pi9g2iviZ0XZXN42Ha4MH0jI0lKSsLs65TExjpu7NqnTrow4ZR0KEDhhJ4rWPGjqXN0aNUP3+Gd4fcKAgQVdUXIhK0InfExdEqMpJvMzPpHx+P+RpGSONTUliek0ORXzekVZK4qUIFql13BP+PSOwJJz/nmnoAVAdhHEA21wIX1G1xlDsfWSIEyGQtyOD+W5CAYUAcnMiuxca3biD3QizWMCcVk3LY/Vtr2vc5iOy+AEqEuI5YH+lrhSaQt4ebBqzj5P5aeN2lRkVAZtEHg6jf6iiNO+1DloyQL5I9wsk304aScSZRlHl6Yc+G5txwxwYioguvEgaTOLKzPiazWsJMqnpNJNXMCAjhAMgmjYqttrB/2ptU6b4ck1mnXusjnPk6igIKGEwBtSlkqVSFbEPiRnLpp6Rhv9CK0x92xIOJzmjYMECHRjRlQe4iZjGH+7mPf1CEOyhGbWb35UhyzDpx7uAcRpKaxEhGMpPPgacBF23ag3kPFFd/ehBRvG2Agx2Ajef5CTthePkBlfoEc/iHhtliJsqTTRzbsJKJi+SA9SZdxv3NOTqc78SZV85w8euLGJpBep1YHttVDdWQKUBmIdVYCESaDRY/+T4OH3//XcBsLqEgDOuDCPK2gYBTVsjSKxNHLpVYSwW2cJzP6cBWTlMz4DzSDTEfmvg67G5JyWMl6VBzvzNYrap6ddYObM6GKqdpttvNjO/PUy3/N35mB+MweBYY67vDUUAEUKz75ZJgazKsrgXJBXDyA4h2GeglPdECuRCCwFsQeri8XpIvXsJti8Cjuxjo8dAH+KR5c16YPBm3xYIRwoB7TSY+7d0Tp8XMxm63i4IOTQNNxX55G9WTu/F9Tg5Lc3IAsB09yh8tWtA0MnQOrhgtIiNZ1KgRDx87RpYv6X1nxYp8Xu/amIj/VUj/6bKk/wRat25t7LgSkcxfibTFsGnQtX1XMuNNeZJ3esdgs1xkzJSPMft16pbl+/krsGdjU1bM7uMXuhHRYJPFQ+WUi9w/ca5PNF6CBuOhxVuiSW3dbaA5uXCmEmsXdiX9VDLmcAuOHANNLTs+MHwlqaUvhNniod1tW9G8JpJqnSfzbAJnDtbg7PFqRMRc5t7x80momhV0veJxk5EkHa9HwTAktq1uxy/fdkVRdCbMerNEU9kfmtvCsdljafCI4LLJPJuAdqo5MQ334r5UkbTlQ8nZ3TGA5K307IPH3G7c3MNI5rGAMTQjleCy1CjbZd7yHqZBUMls8X4NHmEMRzlCmBUyP4TwFxC9YrrQbx1PqF5hMyLAEXzM0GesY7VI5IZXwnIpi638hBbUzwuSpNEp70ZMUeL3MwyDxMSvuHhxWNB3LRYdXX8OVZ1GBELusWyZQyFirLFKUTiiSaT4xd9UZDbRhZtZX7JMlgy6c5HnjSM8NR32NKckfjN4AdSYtZb31ekl2su0bQuTJolRtMmEye0m1uFg90MPcSwnh5uBZ4BXIcTVXhn+d3AdcDtQtrDbDmwknlhu48GXB3DDme8Yt2ABdo+HJrNnc7BGjSseQy7KRLdXFA2V/vA6wBxcNBKpKOR3uTbibMMwyPR6iVAUwpVrGyxcCyRJ2mkYRuuyy69XDV0NmRvLWVEcbfWDbMZcpRX3PTeL9j1/R7qKDOS/C01X+PmrnkEJXwDVY+FiWiV2r2/hW26IjmBNFbQV3X6DpF5Ubmjl3vcv8dT+HlgtuSEreEAiIqYAk9mL1e5CMXtpectO2vfYQl52NMs+vZNtq9uTkZpEhYqXKLxUgR++6IvXbaIwL4yf5tzG1Eee4e2HxzHzpYdIPVIDwwCzRcNiVWl76zY69dmMppo4fbA6eogKK9nspf5D0wBwuiGuUh6VO6/FFn+RCnUP0vCx10jqvuQq0fZSeNGpwyL6SR1JI4JQMz6314o9cSUZUhrukvoY//1KxPmkDGvEgyYhFLgbA4pQXwpVUGxGpj+/UodQJYdGiP+60Y0MTr63kq1AREhmGzAbl1AiS3+/zZs3UzH3EJYgcgaQPS5Q1wOCsTNUXUsEIrYereskl/mGCZ1ObMbuu0JZNrCbDe4zBAH0Yx+B3QWKr9Bl4Hf/x957x0lRZu3f3wqdJjKZCcwwQ05DziAIiAQxoCIouArGRd1VTLuuqKhrAOOKWVAQE4IiQVDJQcKA5DwDMwOTc+hU1VXvH9XTMz3dY3hWn9/7fHav/eBCdYW7q6rPue9zrnMduEy9lK50xRKXApMnw8MPG1XAXsaNarFQER7OE3/6E7migAT8g9/uBJpjJF4BuibbQoGxjKKWL8jlVh5YEMGRsFtp/eUKakJCOJ6WFvRcJkVh6333MezAQTRzrFHLU12Nn6aJHHzEtR4PP1b7a2SdsduZcOgQtq1bid6+ncdycnBrGoIgkGA2/65O4Ofw39DQL0EOAUEmoCewHALmOHAVGzMCKdTQBPrpIZLSckhMzfndDX8jJIjsglvsxaAJu7mYncSZgx3QmxVGKW4zR3b1oP9lxupJ02BB7FMoTitpl6Zhss7g3KZzmGwmWqUcpLywFcHMpsniZtyM9aR2zKe6PJLo1uXYQp1sXXkJZw52QFVMvvBOXVUYstlF+55nkWSdxfNmUlEcTcOcw1EXwpJnbyK9ew43PvgpkuzBbFUYMnEXWT/0pzg/gYyueWiKgCB7GqWuRYMjr+mw9uAE6hyx3DjsU8zetJpkdZJxw/sUbZmIpvgrTQZbEYiEUkNXVF1qslfjnibcDPbsYdmFYexgGG6sROPiLrIZTaPC6nCG8yO7uVihcaqgBw9/+ho7Tw8l3FqLzdQbqgKlOyQExlHB7fzEclJY5Auv6CDofiHE7tRwJ6dpr9RS9ieRHdJT3O55h1pe8Uoli97v4yQ99FPynutPzBUxhGWGUfR6ES8oI3kYB9lITWQwdNyYicdBGbSgjGTkN1RB4hWzDdEVvJ8x6GCqp0/vH1kT9zUR675C1UNIyLmO92eN5fOpAie7Qqs6kJCYZ3mRaW+quKJMIDY+FZOi0Pf0aWzVoWjlI9l4VSIZY9pg+8t0vwrkFkYQ8HyFZn9fCSwHlmKsx25BIpbZPvcWaofbPgBRD+Pqp58m1OmkLkjyN7qmhkuOHGHD3x9l3LPPsr1vX0N2omlk5Wd++OcdDgZ7k8dFLhd99u+nzluo5vR4eC4vj6zaWjb0DKyh+CPxX0fwS0ifAadeM2bSTaHrMPGQoRKq1kN4J6PgqsaIgv5xTgAIbQs1Z7HqJxh+lQe300RVaRSL5s3E7fBPKDUVn7PXhOCokgCV7G8b2xu6ql3UFenQTCrBgE7bLufo3O8koqgT1qrRIGT90L+JVIQBj2pCEDT6jd7HiX1dqKsKx3/hKaDrArkn0tj97SCGTjJ6wNrCHDzy3vO++9ZSGM2lWHlg2VtU1EXz3pbb2fKPSzHJjc/G2voCxfmd2E8UJjT6U+mThfCNEZ0qTBz30yUy+vaGoBJJDQPZSgWRbGUEilebvgwr8+mMDY3BlGNHYhiX8q75VepdSVzy9A6cShggUlEfg0n6G5J4P55mvacjiKA96QhoXM8FNpHAeUIRTRqarIPDuF9dqWY+h7w8fmPbMM9wTlBFd/5CIbdSR3usFJDKp5Q5h1M09xy5z+TSelZrYr+JBeAVDvEgPThKK3QEoAKNtyimFWas7BFcaEFCxHYkFguvcI3nNE7ew9ok0q4isY3hOAQzEf2fYNWxF0g4KPuECDvyKuFFZ0h59z5SH06l+pJqKr6rZPtICTVE8kuNXLljBx89/zzFrmspUm9ER8Bl6sNNawUKGEu6v8J9UPwSPVbC0Gqd6v13PSnsa9KYHsDqghkfw1Vf90HQVESPB63JjDzE4WDOF18Yf3e5mL16teEI4Ff94AVghJdKWqko3HP6tM8JNP0e31VWcqK+ni6hgeGlPwr/dQS/hMiu0PslOPCA0TWsgXw3bIXRi8DUJM6rYfD0g/YZaBm/LXcgQ71hxAXvfyw2hZjEMkZM3sL3y8b59jRZ3PQdnUVFcRRlhTEc2taTln8uwbcLgs5193yJIAQpFnK10LPWO6YLZ1Jwu4K3WPSoJg5s6eNzBJom+jGNWrofgqBT7wql3hXGobyeLN9zPTcO/RQA0exiW1oNj+UP9isSu5UcJlBsUCbRKEbnb/QK+M4SOrdyngSW40LlBR72OYEGuJB4g/a8QXtKsCAJHqYPeomcUp2tJ6w0dXqK5w5gA2ZhPZruwYQJEZGnedqXx5DRGEYJdWIISWNyOLylURPnNs4FFHMZx03CzkW68SRiiITHrpPLDIo844176dAoeKsAwWJURpjQOEOE1wlcxOhKVoOOE5e38eb1l13GV9u3owsCkqojKvAm9/C9di+7tWp0POxhAK2oYgpfkM55ZrIYJIU7tEVE2XVQGkNQEk6SpNW0WvkcYZe3pf5YPTsHZpGTruMIwVie5uXRHvj0mWfQXEkUMw3d25KzYf6SI91Pa37ERmXwFwJQCKeedCI5gYaMhAvQgr7ROkax2sng7VGw2cHi1HGGyMYYdZ0Iux23LHPnmjXMWb4cgFqbjT8/8ECLYwqGYRERJFksPJ+by1O5ubha0kkHlhQX81xGRouf/974ryP4Neh4t1EwVrjBUOJMHN/YJ6ApRAnS/2T0Km4uPPcz+CV2jS9eLEiBISovZJNG5tDDbP1yJB5NRFNlbCF2Ni0fRVVJFJom+gTcWkZgkjIpowCzTTEkq5uNM6VDHjlH2gd8EJdYgsmiEJVQgWRS8CjBVhpgrzUYJroOZTX9SYgK3k+3AW5VZufpIVTUGSJe9a5wVu6b7HMEp4o68uSe2zBY6I0G/B0xnX0p1cTZTRSrKdTGRVGX76C5tpuETnvqqMWQUlZb+HkUYvV9Z48u8umPtxJiqUcPaOYuEcqXzNI/R2EnUUQxjGHYmlQaCKjcNfafvHfj+wAsbz+eu979ArsrjAyCh2M0BLZxP6HcSb1NxaxaSXA3Myoe0O0N5V40YUU9jsGjaXiPVIbq8NSWLbisVsoiI1nnvoKFJQ+SQzsAaolkNgvBK0ixkHvQBReaJMLIuVx+vhSbEvjcxFArYe6TQAfqO5h488swHJtrMRdW4F74Mhw/zu19+iCrKhcYiRbkfrtNEh8NmMPtux9H1PUA4+7BwkWuIZXPvZJ4ivceyRgdIPyhI7GP9wNYVw2oDddx2rxHiSJoGt8+/DDdcnOJrG9MN386ejSOFkTogkECFnfuzIaKCp7OzcX5M04A/m3RgN+M/zqCXwtrHKRP/+X9+rwMziIoWGcUnv0PYawSRIjug153jsKcOH7aPoihl62kVWxwPf7QCDvp3XM4e6gjui5SU9kKKn9p0eyPBsMtm93Isocr71gFGGmQ5isXlyPYbF8nsZ1RyJM5/CSblo/B00IQ2uWwUFYQS2hkHXFRB2jJCageCadi5XxpW25a+IlvuyioxIQb9Dy308wnr0/jfuU1BHQqiGY1k8gjFZvZwf1XvsTUwZ+jRg3BXnyGjHuPUUdok3ujk4CD7lRzjta4uYAZN45f8RNxKCG4VDOyqKBq/k5PQWAIGSQQKHMBRty8z4TVWL2HXdfnW6Lumcykl5ZTiJnIIGlcAWiDExCJKDfjQCAPK6lez2Yjl9Z8j45AHsNYwVEsPIyTCIyS9MZzjseInYcqCigKsbW1pPIR67nG5wgar2rIUXsQkfBgvWEgzvRD5JwT0UQRsblx83ioTEjg+oMH2VFdDTZwjXbDP1+HncZKMHHjRm/fYYmg76kusG7QUGY/tZ7Zn37GgsVL/QT2ihhDIuu9q4BGiKjeBjmGkVMAExLFjCGEfEQcOElDo/Eddlo03p8l+oZhcsOoTSK17gGE2P21fk6kpuL4Dbx+HXBoGq9duJUIDDAAACAASURBVOBXIxAMInDl/7Ji6X8dwe8N2QaXfAWHHoNjL/BzEsEtQddB8wiIJhmh4gC6rhMXV0OYNZ766rCgjkDXoaq0FdmHOzSjf/46JyCKHmKTyug/dg8F2cnEJpfR65KDhIQbYS5VERGlRtmJkguxXDzbJsj5Bd8qwdb9OmZuu4UlE77GXtrIn5HNClHxFVx5+yoKshOxhLnIOZJB/qlUYpNLGTJxF63TihvPaApnymtf8+3+4TQNvVhNLu4YZejwf/7KFKQCHcF7v+MoYzof8Q7hVDszKCsyevaK5T9yrrAHdldTJ2CMu0Sw4hY8ZJhiqXJXMEbfxHrGNgsPBXesIWY7Hl3268xmwsNAKkgIymJvuPGqX9jNZobR3b8nNfoG9lc8RQaCn4ZP86vLgBk3Jewjhxq604V4EnCQRFsWcD3LOIqE02c8/cf+MoG00RAcvMQcMjnS4rBtuou/f96ZJ0IP8Vq1xk3NzyPL0L49l4siB6urUaqq4MIFQ3zu0Udh61YAvgWuBuLZykWu9eq7NkLSdHYNMVYi7295ii6YuYP3EL2hn2p6ksDmFkYpGLUjGL9CHQ+t2UCC+D0uk4kKoTfZ6p9x6wmURJaw+FaRTVcYyq9htfDW3RBTDhbnDPJED2n6lwioeLBSVWH9TTFdDRh3+DCJluChUt/3BUa0asXAiJaoxX8MfhdHIAjCOOA1jO/xvq7rzzf7/AGMGhUVKAVm6rrBMxMEwQO+Ny5P1/Urf48x/T9HRBfDKagtsS0a6g+DCJGpEjo6kjfxJgogWhSGTNjFjm+GEp9SElCf4FFFdq0dHDSW3xyCJDD9u+l8d/93lB4vBQGSe4Uz+abXCWtVR7/RB/zeccUto2sCsqlxJrPijetaPL/HI4FggvJ9xFV2plPmNfy0sQfxbQpI7ZRPetdcOvU9iSRrJLYt4qu3ruHEvi5oHpmi3Nac3NeFG+7/nHaZRi5E96hM6qBx4GwZdpcFQdBRVDMLbppD3/QDVBRFk3c6jeYdLyUUBrGZtczlwS9j6e4ey8gbvmPxtltwqUGW9brAsX5tmdrrPvp1+olrKqx8uPlmFh+fSak9jlClhHLOYJAR/Q2AqplY+9AEHv3sBbJy+iFLCr082fyN4oB9/Z6FqCOa/R2FS4UMbuVj+pFDGXeTTSsUb6BD9xk3gDzymMMc7F4ap4LCFKZwBzexnVWc5HQTJwDNV10dWxhXF060OGYwmuykqw6urTYqfaeJIsssFsJF0WD5DBzIycWLOZqbi/Lyy/Ddd2AygdttNIxu3RqKivgSo1isC2dI5ksuch0aJgQ0BDTMUZsYdDGR7v8o5V/nhjGKzXgQfO7CxkWq6U40+wJ+S05iOcNf6ch8rE1bh2oaksuFO/QIG/s9x3t9K3CZXFRl9APPAyDZmLEU4kvArBjfNl+byQVupirsPEuGreG8eSfU9oKwJCMk3BxBnESVqtI1JASzIOBulpwXgAyrldsTE7m/TRuEP5RtEoh/2xEIgiBh1M5chiHrsU8QhG90XW9aRPgT0E/XdbsgCHcDL2IUMwI4dF0P1rfv/zbaTIb99wVsVlwmdq0dwuEdmSS1K2DSbav82kO6XSZO7utE10EBNZgIkobHI5F9pB0Z3XOQZA+6LuBRJXZ8M5Q2HfI5vOOXbqVOhwkdaTuyLXcdugt3nRtRFtE8Gtv+HoW15H1apxWiuk1ExlZjsbk5uK0nccmldBt4HFHSqSiO8lJCg72sGl36HwfdjVp2jJVvTubE3m4A3PjgZ0Q2W81IssaIyVs5truHMTpdRHGbWbPoCu575TUEATxOhZjstznwyHbO2ttT6wxnWKcdRIYY56osiUKSddRmkTgJiTiigVpcOLj3mxT6X/gMNcSFpge++mKYhKlPDBc2zKBjYi7VNjOjR22hT/tPePIzkVPkYcztPsF43cMAAats5+5RbzEsfQ8/Pj6cnC1jmP2RTg5nEXgdQwW/EaGpZ4npvRtNkbCXJGKO8OeW19jT2VVxHW4kNpHAJuKx4UFA5yFOMpJy75M0/hdHHCeaGO4VrKAb3dhNSNAsg+Q1oxbBTJnuIFhn3ZKgW/1xFd/hwHAEqzWNP40dy8r5840+A61bk19RgfbPfxrdwdxu4w/A9u3QvTsUFaEAw4Hbgel8QHs24WYYAirxbMVSUoy+pCelMa1YHzKKdvZs5Car7CTWcpinieQoIi5EPGiI6AhYKaWT/CQmj8qxNqlMfO45yqKiGL9nDy+/+SaRpZGM3fUow380VoslEcWsHb+NVTcOZsSWMMxKc0VbGauzDdu67qQsogyOHIMOcyBuRODKoOm/dQ+UbKK+eCMbZSta6wkQ1R8EI/VvE0X+1aEDMxMTf/Ge/1H4PVYEA4Czuq7nAAiC8BlwFTRWk+u63nTtthv4FcH2/+OQQ2D0Ftg+GewXQHOhaQKLn76F0gvxqIqJiuIYqkojGTVlEwltiqkojmbLipHEJZfSZWDgjEzXBDyKic9fmUZSxkVSO+VSVx3GyazOTHvwE1I7XODbjyYGGUxDQEFHEEVGPz8aUTSMvynU5Jt9dPvTON7tm+d33Lg/rePQ9l6ERdbTqe9pzJKCy2EJkIFogChpjLp+k3ELTBrX3PU1jrpQck+kERETPLcRnRCo51RbaYjY2cIcCIKGNdTBoa2ZXHbj98jNKo/jUkpQlcAiNBWVC74mhyrH2EX7nz7gWLxOqKWWepd/ub+qCky8yczuDzO4dt5eyjCjsxkXV+HfXv1ajBBVW0J5kUvVMK7Y2YZDZxbgKk5BrY/gAZysYAVzmcsDIY8T7QpDji2m/eWfkzzyWwRZQddERElF0/AJ9dW74M0fpjZTKhV8uYpUHL6nKSCQRhov8RIzmUkRRQA4cfI1X9OdcEwE1gmIiGR2yOTQ2YPMYir5PEQV0VzOBuYyj0iqeJa/GzUNJg1B1UETCaXeN+v+hiux4mQacAXwvSShDhgAHTrgcXio31tD5ygZ14oV0Lwxi8sFhw41Pj/BxgXdhRmNJM4B5xqfiSBx06OPUm+zocgy/3r9dWZ9+63vcwtldORfHOFZ4tlIhJc5FMEpBMCiGt++XUEBjy1bxh0PPcSXI0awMXMAy2bo2Ow2NIvIW3fD+nEpKKYUOp9UuJBcTU67KCQP9DrYsDIAQRdwS16HptbB6RchvBM2IQqn2YzevBmIrsGRR6H6KGhe7djyPZB0FdGd7mFcdDT3paT8r4eCmuP3cATJQNOqmQvAwJ/ZfxZGaLABVkEQGjJYz+u6/nWwgwRBuAO4AyA1NTXYLv8rKD5STP7OfMJah9FhQgcclQ5+XPAjZzecJTwpnCEPDiFjjJf2FZUJk85A7RmoOMCZJV9QXhjnK74CuHAmlSXP3uJ3jdKLcYyasinI1QWO7+0KQEFOMgU5yTQYeVHQkc0q0x9dyicLbkR1y8ZsWpUQJRW300poZC0hSUnUFdSx8qaVFB8qxhRiot/d/Rj97GhEU6AxNZlUug8+wq41w1n70SQmzFhLRHQ1ohiY8BIlD8Mm7fDlFQBMFpUx077j/cfvpL4mlLDIwA5uNRXBfwQm769PEHXOHUunujyC0gvxyGaFzKGH6TrgBIKgExFdS/fBRzi2u5uvrkFDQ0FhD3uanFFH0z1crExhQLu9ZOX0p84VjiBo2Gwi8+ZB26EhDJd6UYjJS7fMwSgXXgX82ORcGpCDm2n04zH0umHU1zXOoq1YuY7r+IIvmOaZwthFt/NUwtskl6lIDeE7L11W06CyDkprYcFaWLLzFBoKzX+e6dTSplnjdzBm+NdwDW/xlm+bnVruxMNn+DsCYzqgcCT3CKo+lzU8gLGygUXcygquZRrLeJPZGO/WXARtG0c4QxaXEUY941hPiNcxWr1/png8SK+8QoHtSrLnVoIIuqIjugKVNAFfkZgMfKC76EcmrThE89DV+cRECuPifP++9777GHDyJD3ONTqLSI7Ti/txEYuEGxOBE461gwfzl3vv9YVsaiJs3PoBvHuHwLOPGXIYbotxZ090NfPgyyZsDh1BE0CAeXOh50EPp5JPUxPqPb9ggthL6FZQz0tvvcTqoUNZOWyY33ip2ONzAj5oTij4ioqkq3h1wADifgP76I/C7+EIWqLrBu4oCNOBfhhV7Q1I1XW9QBCEDGCTIAhHdF3Pbn6sruvv4u3Q3a9fv/+5QJJSa9BANQUSLwdL9M/vblfYtWAXBz86iL3EjupSEWURURaRLTK6ruOudeNxeyg5UkLe9jzGzB/DgD8PoORoCRse2ED+rnxsUTaiO16F23k+yFX8U4CqkMSGZVdy+U3foHuVLwVRZ+2iidRURDY7zsDB7b1IyigguV0Bcxa+RP7pNqiKTGxSKR5VIjKmBs0jMf+uh/j0yk9RHcYPUalX2LdwHzV5NUS2jSQytoq45BIqimKoLG3Fqf2dOHvYUFI9vDWTE3u6E5tYiOgr4jLGbjK7CY+uYfDEpsbSQFxSGQBbVoxg3IwNXu0jAx6PyNavLvHbXzYpdBt4DNms4naa2L+5L1WlxnMymd2Mu3kDkbHVKC6ZqtJWRMVXcen0TZys6UT90TBkTaE6rJhlNcup9ck4CKTQBo1cIIkbBn/C1f2+YeHmhxh0aTJt2kBxkc5jMwupcMfRSFS8FeNnMhsjCHK731hVVDawgRF+r7QBBYUMMjjoOshNwhukOPSguUVRgBArWJ1wthhc7tUY4hT+bVlScQTtvWDGTDqNujgWLEykDV34jk+AWzCSpRoQD3yGwCh3CG4e8ruGiplyYnijQdZNd4L7RTRUDgI383Hg4L2QAbVGoe6hD/F4rvBt70InjnGsxeMk4K9o/Mg5NMwIqN7wjoDLbObOB/7qt7/bZOL9CRN4beFCv+0CYKYMkcDcmyqK3P7gg34sH48sUBEN78+CQz3B3TyHKwhGvYMXjz0D/5qt8fTkF/BRulOnQ9oMbKdOMfjECS7fv5+RBw9yw9y5jYVo5T+2QCUXoeoAr14YyLPN6gUqFYWs2lriTCZ6hoX9r+QLfg9HcAFo0+TfKRjy4X4QBGEM8BgwQtd131pR1/UC7//nCIKwBegNBDiC3wUX18GOKY0iUboC/d6Edrf6dsn+Ppt9C/fhqHTQ9dquHF56mJKjJajOxji+phhzHHdtID1UsStsfGQjbUe25YMhH/j2UeoVai5WIYo6WjMpCNGiEZEcgynERFhSGIV7C9n/QyYn92bQsbehK3Pqp47Ya4LULngN1uEdmXQdcJy0LucxWxSS0gvQdYHPX7mBVvGVxLSuwKOKRERXU17kPwNRHSonvz7J+FvWMXv+PjyKhCR7yD2Vyoo3JvvVHyhOkUK/jl8CqR1z6TboKL1GHMRsDeSKNsz492/sj2xSGXvj9wiiYRRFQcNqcyObFExWF+17ZNOxzyk69z1FaVlHfljan9NZ7QFI63KOa+9d4cupWGwK8W1KqbZH0vcfWRRVJWJXQxEFFYvTxe2X1/L6hk+AECwIXMUkQjjEeXccJXGvMWJ8KOseOMeu929jYPR28opTeX7PIzjVS5uMvuFehWHUpS6DJkJrOjp55KGh+foMNEBGpgzDCbZO0MFuhPdoFlYTBLDIkBoLqx+Enn9TyC4eDezAjA0ZHQ2B0RQH1Sp14ea4N0cgIyOSyGu8RR3LeJ55lKCyH0OzpwcG9/4mxvIuLpo7G9+ERHCCvpQGqmk2hoJncMIw5HAbF93XBnyWQcbPOgIXcB5YSrVX8TQMFYn2cRbWjrqUBW+9hVlV+WT0aF697jrsNhsVEREGNdRsRjWZCG/g9wsCF/RJ6Mgk8w2id+wn0tJQgnQQU8ywexBIv6KBmGLWufOxj9AveEONohVSp4EgcLB9e1RvbO/abdtoW1hITnKy8WBNERjurhl7UBBBDuPzkhI/R/Bcbi7zcnMxCwIeXaet1cr6zExS/kAJavh9HME+oIMgCOkYZYtTMeTCfRAEoTfwDjBO1/WSJtujALuu6y5BEGKBoRiJ5N8f7kpDRbR5k5ms2RA/HMLbs3XeVna+uBOl3jBmF/dcxKN4CL62bRmCKLD5H5tx1zVzFLoYWMovaMiCikU9SeXZaEqPNhrp+powftra5+eu1HhqTeLTBTfStmsOHXufpqYiksM7emKvDUUQNARR+9mCMgEX0bGFmMyqr6lNWuc8xkzbxJr3f57IVV0WRecuxcjeRjZNJzBul4ktK0b6rrJn/RCyfuiHLdyBozaEyNhqRk3ZxCWTt2Ayu5BNjbPm2NjzqKbpSBYBj8vDiMlb/BLrYFzrtfV/oaAyGadiGDVNl3G4ZT7c+iY3tDtDbXY8mfTAihUdB1dLG5Be+xa5OoWEvvcybaAdk+ShQ8JphnTZxehnf2BPtn9vZAMhGH1Ct/i2iIhkkEHzJvBu3Jwmm4tCJb16mqitCWF/dRxjxAJCLf7vYNN7ZpJg9mXwwMeHgGeZxF0MoIpMqoP2HvZgFL+tIhq4ApVxqNwChBKJiM1LyBzU5BgJJw+RxRLMzWvq8OkdWTaB8y++rR9isHuCOYILTOYik9EINFabW6R2NsIOLMaYJaqogAal1byzYgW9vSGkf3z8Mddu386oBQu4ZscOHBYLgxYu5L6VK7ltnSFBUaX3Ioe7kbGTwA/I1CPiIbK+HrUF8bbIao3ymF/W3tRE731pQERnI6ogmlBlmRl//ztfPPUUsqoiNP2Ntx4PF74ErTmNXIDoQdg9Cl+fXE14ZDvKpVie9RabNTyXk3Y7mVlZtLfZGBYZyQMpKX+IU/i31Ud1XVeBe4ANwAngC13XjwmCME8QhAYLMh9jSrVcEISDgiB8493eBcgSBOEQhlrs883YRr8f8r8maBRLU+H8J9SX1LPjuR0+JwDgcf12JwDgcXsoPVYaNEAmm92ER1UjmxVkk0J8Sgm9RuynvDAGt/PnY4UR0ZVcOuUHps75hOFXbyEkwp8TkjnsENfdu4J+Y/YzasomRl63CVFS0XURzWPIY1hDnAwc9yNX37WCYVdtxRxixHp1jYC2kyazSo9Bh2mp0Msaaufae5Zz7yuvEZ58AXtBGqVZg3E7rKiKRH1NCOuXXs6x3d39749qpq4yEo9qoqIollVvX43ikjGZ/UMnAm6mP7WZYX8fhmSRiE0sDzqOr7Ou9jmBptARuCS5LwPoj9VrpARA9rhRnSqR0gJslnpMXpVYUYRQi52ZIz8I+p0FNGTR37lbsHAHdyAh4RIUnDhx4+YgB/k04k2WLwrn2WfNhIU7CU07z7kLnfG4zWiKjMdlweM2c/Kdh7EXGassswztExrO/iEHCQ3qBBq6m+0klrsZQCULgBUYaTSD0f8jg7G3oN3ZnhwGsifQFZg1ePYojPwXNPmuORiS1LVANf7z23ymoQWsLIzVUl0L1dHNcch73nqc1GOnHrhdVcn1fm5zu+mQn899K1dy6YEDzPjb3zjXOolQhzH+cmAF16Nixk00+3mfIsbhJIHI0lZE1NQFdvtTHaTt34uk/cpIs2gBizf+r9bR1J6sGzyY6598EgSB84mJjZ7dlgydHjFWEFIoSCFgioTM+YiiRFHRTibn64w5nssNx45R36zYzANUqir7amtZePEiPbKyyHb8NgmbX4PfpY5A1/V14K8Mpev63CZ/H9PCcbswVqt/PDx2glp1XQW1nrwdeYhmMUB24LdCNIkkD0zGZDNRfjrQcKluM5pVYeKtq8nodp7w6BrefvRuvwRyMCRmXGDm3MVIXkXOjO7ZDB6/m/fn3kZFcQztemQzceZaP5G5nsMPIYo6az4w/HF0Qjmz5r1vSElLOroOl163mXWLJ1J4PpHQiEDR5FM/dW5hRDpX37WS9j3OIcmGWQhtcw5LbDGLH/gbFardqDzWRYz73nKcU3GbiYgObjCE0s0Me2gte17ZQ3FeAmGRdQHy71FhwXVoVE3GorkRJAHd01BYJFJHGCHYSetyHjlIJ7UpA5dz16J30XX/MdvMLv582ccs3wPltdA3PpoZ+S+SQgrlQjnT9RlEE0UdDmroxlNziolMLkc2GTbowD4RzzNPYI+tJKbXbjTFTOneEbhrItFVE13veZZ6F2z2TYWKyOZxFvII95CLCpi8a483ac83JDe7ryJNf9KbuZQs+jKQvb7kbtNs1FdMZjpL2cgY3CYRPQS4/zQMrjDi39u2Gf19vQZ0JfC9LDMjI4Nn5z4Fb23HsTsPxRO8FaMRtzfhblHf1IAZI3jSPELjwSDqNqgChTud3Ll6DQPefpuzKSmYd2bx0pYLPInhROYR4wvPuYjjNA8CUBcCcfmllITkgjXBoHMKJijfwcaruwTXWgz2bdpcD21ugLxPIG8JuMtAbKwjmLtkCSZVxdN89RF/KcQMhqrDhkxMVC9kXUN1VUCrXiD9uhm+W9dRVZW/5+Twebduv+qYX4v/nMripPFw4MHA7VIIpFyFrcb2q5qQNUdin0TKThlxYMWuIMoiITEhdJ/WnbPrzwY5QqC+Joxv3r2KCbeso8+o/T5DiqDRPjOblA551FVGcPTHbihuE4IAk+/+yucEwNDyl2QP425ezyfzp3PJ5K1+TgDAbFHp2OcU4ocqmkdm4sw12EIdjdLOXqbb+FvWsWvNEB+NsTgvnh/XDaa8MIbaqnBaMuJZ3w+kU5/G7yiIOoKskH7JNgrXNDbgsIY6UVzmIA1vDCSkBaSU/CBbZKZ/N50fbssjtfN7ft9TVUTuHfsae7MHUO9qzKFIokqn1qfo3vsyIpNlTq06xQ5nbzYzysczr1geycLb7w1I4EaG1DBr+Pt8tG2WQeOUVRB0Hr3yeR6/Jov53sCnS6ln0ex2qA43q7RVaGgU0B5YiSTpDBmSiCwb9Pk5c6DuTDxvuk3YC9KwF/jr3Ved7Ilbhap6+GBL00/eZg0rMfEAd9MPASMcdRc59KSap+lK4/MpwXiJG3I4AuPYwF94ncd4m1AKkZvQYKOoYi2TKA5LY9at97P29DH45waYJ0HsVPjzF0QefBXrkSNER0cz6ZJJ9D3Sl/g98RycDkjXI5oFoy1mkDmWi3yEFpyABW+CGZiAP42wAQr4Sc3pQGJFJcdvnsUDQ0fyzs6t7G9MN7Kb3aSRhqVZAMusaPx50+ckvvc1N97SHmdoa1AqIPPFlo2w7v1CDbMOQTB6fgOkToWqA3D2dej+LOgiksdD/5MnEYHU4mLyWrf2P59khej+UJkFBavRao9D7KUQ83MEy0BowKbKlgX4/qf4z3EEYRnQ9RE4MR88TkAzlmqpUyB2MKnDdCyRFiOu31RavMlsMhhssTauevQqvpr+FehG4vXEyhOc+OoESf2TKNgX3MjpusS6jyZwcFsvRFnFbHNy00PLSEgtxmx1o7hNjJn2PdmH04lNqiAmsTyw25cmcfawoQfTKrYq4BqaBl+8eoORGxA02nY9H5y1IuokZRTgdljIO53Kl69fj6pK3v4GRnF+MCmJ/LOB+jmyxe0XYjJZXFx24/cc292NvJNtUVXZd38j2kTgrnP7chItQjSR3D8ZS9shfPy8nbE3fU9CajH11aH8tLUXV0xay5wJC3hhzaNYZBceTaRNTD4LojdiOTGGnveH8tnnsJExfnIR286OQPGYMMv+xkoQ4NnL53HFtk7sIoHEq5Zw9fBPaBuX67efSzXzbqto0pzfsoZP8BAOrAHC0TQPTz65nHHjPuT8+VWcPg0md21AQtl3zfBy3t0ET38FNc1W/hE4uZNemJqkim1oDKKMgZSwhxAME3ENMAZ41refGzNfM40ryCSND0lhBVIz4xznLOL08n9B0UV8S+KSV+ClrVz+1go+/741mltjT7s9uApdjXEhD2iOpr+NBrlsDRE3q/lXi+IaGoahtwJrCR6BDcFwEr57hBGeE3U3L+74jhVAYZPPV7CC8YwnkkjM3ufswkFH97uMXWuw0g+9VkmP12bhDk8zQj3NoesGy8fjgFPzoes8sOdA/XkISYXwzsZx6XcY6gGCBIKAJooosoykKLzz8suMf+GFwCIzzQ1n/wWOfEMgI2UqAcvbX4FWpl+1hPlN+M9xBACZT0LSODi31HgoaVMhYRQIAqIkcPMPN7Ns/DLspXYEUUDzaES0iaD8ZPDYNED5mXK+ve9bPO5mySAdin4qosPEDpxZeybosbomcTE7BRAYPHEHrdsW+pKhDbPezv1PsW7xBIN2afa/xjfvXcnxPV0BnarSSMKjagPevevvW87Ch2fjdliCMlbAeF/DWtXzxkOzURWTt+OZzpBJ20nrlMunC24KOv6mNNAGuJ0mCrIbHIROcsZFel9ykD6jT3G65D52rWyHbJWY9O6VhMSEIEgCeVuy0UsXB8hj6DqUFcQS46pHtISSt/MijvK2fPBEI4Vz+NVbESWdp657invGLmRfTn/iI0rolXyEE0vuoCi/lHVT1rGV2wMkpSvqY9Ba6CPtqmpFGCrjKaJz7H7iowMbzIiCxsmSdhzyTERnNSI3+xKmui6xc+fV7N8/GlHsgNtdjJt6trOd4Qz3m7U6cPB43jJ2fBR0KPSlL83bbwKEoDOK79nDRuBLjOaSzXviCuQTQ1dmIRGNiMd44HpDqMxMtprO2aJ8/OOiTtAPs+WJ43Bna8pWlaFWqz8rnSWgYqGcEHJpyxI+5gQSBqWwGv/ZfYMrashCyBirhAbHEYLIWESGe8XjAHa2gXf6Qagbbj4If7oIzwPEAZFQU1jDbfW3cR3XMZCBVFOBxHJGCwd8k4+OhSVMPOlk1ZAYtGCzIk2BwrWQ8y4gwf7bwFWCjzIamg6Z8yG8q2HEvefQRZGll13G9B9+YNy+fbz6xhvMuftuNFEEXUNHg5w3wWG8R6GWSOqrD0FIG6PfcROYBIGB4eHku1wUuFx+bjtEFHkgJbhy6r+D/yxHABA7yPgT7KNOsdyXfR+FBwpx1bhIGZjC5ic2syd7aivrYAAAIABJREFUj48y2hwmm4na/GAtB0FTNc5uCBYeagrjReo1/FAAIwbAo8rkn0nl8M5Megw9jMnrDOqrQzm2uxseVWbMtO/wBGvvKII1xEmvS35i74bBnNjXhW6DjgVOVDTIO5lKfXVjYVfbrufo1Ps0bTrm0yqukqrSKJquCkRJoeeww/7n8Qi4XWYObW+QuRCwhWsQ0ZE1n83i8CqFiNQ67tx/O6aQRkPYdnQGwrHH0I8+YxwlgOKWOL6nK+uWTKDT3o+58qObCU8w4Sj3ny431FkAxEWUMaHXt3hUia/fuprje2MQhB/xeHRqAwwkFFYlcSS/O/3S9/sznZwmDmWlY0FDQiL365uJ7b8DzA5EybAodc4Qnlz5BE4lFOgGbPcrAosNL+WNW2Zzdb9VdH/YzVlv+mUBC5CQGMpQL0MGFrOYHewIGF8DzJgwBQlkG/ISpRicHrzXDuxsZcbNXjKZwLcgSXgGj0LYsRUPVgqYyAtI6JwMcmUnpSX72LcvhpdffJ7s2myGMpQruTKoYxJQGNSEMPgI8DQGS0QCNiXA9PFQWQHsBJrMr1QM3vlADCdxExr9W0XwcEY7plZX8nS/HDZnQJ0FRA2W9oT7doKps4iSJIOqga5Ss7eGRd8tYgmLiAaOAVKzuc+nTz/N6Pnz2ZmZGUQ0ToeLXxnUchRwXMBvvVJ3FrIXQseHAo796z33kFFYyODjx/nThg1cv3kzC66+lNf7u/FU7gTF6wpFC0+PnMfcXa9QFz/G61CM1Z5VgMfbtuXvaWnUqSpTjh9nc1UVFkHApevcmZTEXUlJQZ7Vv4f/PEcQBPZyO/sW7iNnYw5RbaMYdP8g0i81CnQG/WUQB949gEsJXOSaQk30vaMv3835rsVz6+qvSzzo6Oz4Zii71w/CabeR0u4Cl89YT2xiGYrLzPql44hOqCCpXQGaR6T0YgyipBEaUc2AsXspyY9HcZkCePxmq0J6t3PomkhqZyO00ZSuqOvgdpjZsXqY33EXs5P5+IUZxCWXMOUvX/DxCzfhdhpsIJNFISaxghGTtzaOX4ezh9uzdtEVuJp0SVNjx5Mb8TSHv/kExa4wYPYAJJP/ayfKJurj7mXpY6WMun4jJoubL16dirPeBggcWVHI+Y3/YNaTi6ipimDV25MoLzTYGwe29Gbg5bsJa9WY6N74+ShOHuiMpnlncUAihZxvUnTVgLsXvcW+pwfg8Qioiowo6Jza34kDW/oQx1k60gFHcTL7H3+L9Cnv06rTEUSbnWU7b+KltQ95z9JgEIwVhyh42PnEUNrGnccsK9xyCTz7NTgUcOFiHvOIIIIYornARZRfSKa2lGwVEPD4TdElDAKfP3QEIqgBSYIxY7h46buc23MO3dtDIJq1GIGY5mQBG7J8gREjBuN2ufHg4TCH6UY32tHOzxno6EhCNYpuweSd17drdrbRpfDNRhh+C4bvXAxeVQwAXMh8ImgIusY/Zs5k6g034PF4eFPQcXnK0Y88BK5iNBHsZnhhhBEqQnc3djzrLyDX2hhzLoIPioqIBRyywfx0eZWuZQQSq6poZTJR1bQNpr0atn4KeQWQjpcr22wCqHug+AfDETSD3WZjzEsv0eX8eTpeuMDxtm05k5IC2W8aXQxFKwgSITH9uX/QvdzQ7Vqe2fs+X9tbURfSgbYhkTye3p7r440K9TBZZl1mJrlOJ7lOJ11DQoj9g6qQBT1Ii7r/v6Nfv356VlbW73KuuqI63u71Nq5qF6pTRRAFZKvMtZ9eS6crOwFQcqyENXesIX+XsawTZAFRFul6bVeuWXINSy9byrlN537uMj8LyeQmc+hhju7K9GtEb7K4mPKXz1n24gwajE18m2JiEssozounoiiOHkMOM3HmGnKOpJPR4xwWmz+90aOKXMxJonVqsZ+T0AGPFsLJve3Y9PmlVJZEExZVjb02BE1tnH1Kskqnvie55q6vOZHVmarSViSkFtGhZ7a3j7ABl8PM/Lse9ksIyzaZKz+4krzteWS9nQU63LT+Jtpf3j7gHlRnX+CNru+huluImQoaHXud4aq7vuKDJ26jsiQaXTP2lU0Ks556j9ikcgTghTsfQWnWPe0iiXzILSjINLCmbRY378y8jWmDl2Kvs7HlizHknUr1ORmAkZecI6I0E3dFPJGdDpN2zcfY4gupdYQRf3dJUNpqv4y9vDvrDnq3NfR0HG4Y/U84nAd2l2FyTRgVCR/jb35NJhOKojCpD/z5Moi0wQ/retJ/7/M+CmwDVFS+5Vte5mWwieDsBfo2/AWhNZIoJMfaFXNMOMLu3eR9qnHusUZHYMfOZKbh8pNmEIAYLBY3Lpe/ZEMHOrCQhQGrFEXSiJAO0k18DLPbjUkL7BJWb4I+d8LpWAxJoSbhsFTgPAIfjb2MWY88YoRVfF/DA/ZzsL9JZXdLrTZC2xPS7XXmLlnCI599Ro0Zrr8erB4RKbwrm696nnYJCSzu1InJx45x1umAnd/DM/PxNX7SMBTTGpjPydcaTCpTBLhKwRIfZDXxM1DtoFSDq5InIku5Z+BsYkNif/3xvxMEQdiv63q/5tv/7TqC/+vY9sw2HBUOX+WwrukodoXVt69G8xizgfhu8czcOZN7z97L4AcHM2D2AG7fczuTP56MIApM+WoKIXHB+dq/Bp36nOLwzp5+TgBAVWQ2LLucpm97SX4CJ/Z2w2m30fOSA7icJqrLIlj55rVUlbUKCBF5PBKt04oCVgoCICcNpTb9HaorYxFEjbrKCD8nAEZo6mRWZwRRp8eQo/S65CBpXc77FVCpikjxhQR6DD2MbDYckWyVSb80nW5TuiFKoq9M/vzm8yj2wBluRFo01qif4ZzrImcOdWDz8kupLm3lcwLG9U189NxdaIINBB3FFRhGSaaQW1lMe84SRh3tQ89yTd8veHndRZ77Bl7d6GDFPigsbEKFFKDTuPX0/sccBr48g853zscWb6QnNV2ke5ujQYd6OC+ToU/uYtKCVTjdFmxm2DEXvrofHulm418Y4lwLgesxJp4RCMiyGbPZzPNT4ZPZMC4TBneA++84jC2yxogzN4GKyiqMxkGtPSbe0JN5im+5k1OkW2owyTrhOHmVRWQ5H+a+8u+5d7+HHeNFPE1etRBCeJNXaUUHEpHoCViJYPCguzDrgXzqM5xhH/sCtps8IlX05o5753kTu4FQREhp8CveULcFwznGAhfR+es99/g7ATAomrYUg5f/S1BrsdtsPPWnP1EZYqM0FC6Gw+rOIl9NfYnq0FBO2u30/fhjXM88Q/en5sG8+eBUjSSFCyM+tUqAKiBlCqTPAnMrI4xjTfhtTgCMNrfHn4ZDs3lq25PEzY+j/7v9cTeXzP1/hP94R3Bm7Zmg8X93vZuqcwYTR9d11t+/nre6v0XWW1n8tOgnloxeQvFho3mKNcLKnII5jHlhDHHd45Asv9QS0h8WmwtZDszC6ZoUVFZCklUm/3kFV92+mtTOeRzf2w1dF1j6z5vJPZWKqkgoLtlwEG9MBr2Fl7bqKJXZZYii5jWswffTPBIfPz+d6opw1i6eyOJ5t3PuRBcc9VYjL+AwozjM9BhymL++8TbDH2jP1FVTmbZ6GqIkkjkjE9lqrBT2v7MfZ7XTP7muKQjnlpH54ArciAFVug0Q0Dm2uzseT5CWhg4JXTMxd8U8SokLcjR0xs4LYXvZcMM1jB28nq+zruFgbiZzv0zkiRUZLKlfyyY2UUklDlwoHVIQ6oIn5qySm/La4F2k3KoVhxLCD0cv42+fPwcY+ZpBnSwkRd7GFGyEYcRlPwSOY2Mocxg58kYSW3kY1gke+gSmvQHL94DVrNP94TnIVjtOnNRRhx07r/AK2V41lkq3TismcQmxXEch76g/8Tf1OJ+SRRzDURjKFc4Sel1XxJ/zT3LnuwV0iZhKV/EprJYS2pljWBdSQg4etgKlVDN49zM43MENVZuINkG3KyaB+1d+gtRCFy6LBw57C+asThgCPIRRsLYFQwupRSOrewymXwOC7SZIEGPkAE2qyqm0trSuNzOj7Br0xCtAN1SI6r/5BuX++8lft46jVfkEVjEAmg7HzMZKQApc+f1q6DrC0blQ568onFWYxdiPx/7Pz/s74j8+R2CLtlF1Pgj1UtWwRBoJzdOrT3PgvQN+ekPuWhdLx3/AnPy/IYhGqGjow0MZ+vBQzqw7w2dXfYam/rqy5PrqMFQl8FEIgoYo+TsIk8XFLY8vJindCK4Onfgj21cNQ9dF6mvCWPrPW7CF1WO2KlSXRSCKeovNanRnET+9t8evq1ZwCOSdSuXtR+/GWW+sfD7+5w3c/NiHVBRFsX7peCRJQ9cFLDYX01/7gfixjUyj5AHJDHloCDtf2InqVFk0dBFDHxlKz5t7YrKZQJChZAs904u4js+5keHEE+9HtfSg0bnPafLPBDdAxpJe4dqBXzJr4wdMqF+PjEoUEYQSigsXaaQR4bQg7ZrKosJpONUQ4BngOQxDUMtuZrGbSuB50vM0rl5dSWy7Y0jWxpmxpkrU5rXjXOnPNxd3Kjbe/H4W04Y8QO8MqBRcPHzkDV6gH59SzmByyacNTzKPrYQzLmIp0TaVy54Dl2LYoTUH4J2NsP6RC3S6YwE3vC5QSSUnOYmrCTlTQMTjZSLJAB6dEZQiAoLsJv36Rei9V/PFGgfyVJm8sCiu7tedHZs2EyMfpig1mZgT1T41UYB5wClgPf5koVCLhbiRcQjrBXS3/7tlcan0zjkcdIapA28MgLJQCHHDE7vg4SD73bdiBc/MmIHefFWADvU5QY5ouAlmkMMg7WYAam0Whs6owGzXcQ68EkKSDYaOwwFvvNEojx1WGZy/6gHCh4HcvIdb82F5k26a6qOT+kFzQeXeoIduy91GnbuOMHMwHbH/PfzHrwgG3T8IU6i/IRRNImmXpBEaZ7wAWe9k+UlPGBBwVtax5rF5LJu4jPnx83kx5kXW3LmG5AHJTF09NaisczCcPdyBdplnkc3+15BkD3VV/i9IRvdzRCf4F5R06nMasUmFrKMulOqyVhhzaJ09GwbidgYx9pqOqvy61YumST4nACBKbixWJxuWjkd1m3E5rLidFmorw1l6X6wvrNaAkU+O5O6jdzPmxTEM/MtAMsZkoDpU8nflU1tYB0OWEtt3KTUc4yM+opxyXLjw4MGFixqqmThzDa1Tiwio/BM0UjvmYTHX0T3lKAsfnM1SbiWTgfSgB+1oRze6EU44umrGUZxMbxp6IIRimL4wIBFDpuFdwIr9/2PvvKOrqra2/1t7n54OSQgJvQSQHpp0QREQ7IiFogKWV7Fde++9NyzYu4iogCAoHaX3HkJPJSE9p+7y/bFOysk5QbwX7/uN8fowMoCcXdZeZ+0115rzmc/0KhTt6Muh2dei++xo7ih0n53KI+3Z+spTEZVA68Ovuxj2FFz4EfTLAm8zkzw2M4IA0VTSi70I+nMtK5k0aRKbDmp4/NIIAFT6YG0WzF4H/pLGdKRjjRGoO9/EEUdzQo1k9cedb3kcW6+f6feUh89+NzlRHsCfe5x1v6/mOkxU3U3y3p1hSkFRSOZPUrB3YoM9dVvHjvSZ3ieMCOGzesmL/QxhRl4AuS3w5BBwBODaLXBXuFAtAHd//TVJpaVYA0EZcsOQk23mq7U+/BCoENcdWk6EPh+BrRFWv5+k4iIMfwHexK7gbFJD03Tt2MHbuk4F0gvUPb6BBC0r0LNVw1x/05SJZ5X7oWIvZH8H3gKZg1DzuQmGr8FdrolJkbso8vX/i/g/vyPoOqErBdsKWPfmOiwOC0bAILlrMpd+VaukGEllFOR0tOeLIskwC2LLx1s4+NtBJi+bTJPuTcjbmBfx3LowdJWj+1rQPP0IxzJboAWsRMdVBIvDh07gJ/ITQiZ9kBpBfc5Zx7pFZwY1haohMA2VJbPOBkUwcMzqUC0fBdLa5gRrD9d/soZ8oAbpPfexf1t7Ni3pjabVNyQCv9dC5uJ1dBxdK9xm6AaHlx3mj5f+oDK3kkV3LAJk1rDm07A6rXS4uAMxzigqPFXMYAbtaU8SSZzgBFUJmTxpuji8p2V420xB//P+AMBm0ejRahtXOvKI99ojqnUKUyFab+j5aqfDAhzk48C2cDx5y8YS3TILf3k83qImiICNgRSyiqST9hWsxu2HhauQhHo/GOgoFHEfLzAEKcF9qEVPPNke7IarpuxkNap8MHs9NMs9n4tJ5WjKb9w5JYshHUE3YM46BfendyHc4e2wN8onb9VI3tzUkRLzCzRqx7Lp8/M18LTXS4IQEZUWUoH3hGD34MHMGTmSWFWle3wjdk/YAwZ47dLzqDmPc6b/Fuzu8qAUdGivBICPo1xkRF/N5y99SPPShn3jfpuNm3/4AV0INnTuTJPiYoZv2sS0CwwCZgRPpxBcvM/J0jEXowcUAoaPodu38+Hzz3HxJbCxdZ+Q5LGFH3xAH02rUUeaWmByRwboW6hNcLACnQT0OonrRgiZd7DnKZkf0Lg/uFqC3gTsTWRxKqGAGkN1ol19WBQLqTGnnw76V/F/3hAIIRjx4ggG3DOA/K35xKbFknRGqI/ZkeAg0uRoeK14C0P56UbAoOp4FR8N+IiqguoiLHXPrV4ZhF7LW+Xi0M5aNk1laeRiLUU5Tcg71JS0tjkhCV1DL13J9t+7heQC1NzHFCz/7izadc0kpWWosNyYa3/mkyevRQuoGLoFVQ0m8JgiTC67GplbOgCCgpzkYPZxKEwB2Znf1hiCirwKPh70MSWHSsIW89XutoA7wM4vdzLYNpQl9oX4fCaZwT8OO9w5CfZvbY+imuhhi0KTI3takZ4hE/c0zcJgf0VEIwAgFI2mbXdAViqRMqbr4jE68zpbsHqjCWR2wWLzEZe+kxybwYQt0aynMb6QO2nI18qLTJcK0jkDwF6k5jKSRnosWM/Jg4e+t2WwfMbyBloMqzPhROUXXOkaw9xnjyIsMu5gUeHSfgblzV9j5wOf17RfQ8PEguZzUbylH5XNZjEgxs/Gg1BZJ/5rAzaqKucpCgRCd6R+YAXw2/33M3fQIKqccupco5v0v9nPvU8qTPwcihvB/AdeJn5jEdYGYgMK8EyZm+KM87n+vpY89/77dDt4MKIJjfF4eGbiRBTT5Iunn+aS1aupssKSRo357IwIJ5gaB1jH8YsvZl/z5vw0YAAfjRlDt48+pn3WJiBfum1UGxn79pFx7FiIRN7lu+Ch6VDeEdiKnK+7W2DIGLmTOBmEFRoPBGcKJJ8r65RDKEe7dCMNLRb6pfVDFX8tpvh34P+8IahGVFIUbUfUMp89xR52zdqFu8gdlImI9EWamHr4ttFf6cfv8ddxrNY9t5bb/u/iyxev4vxpC+jUexdCMSnMTmL+h+fXMQIRjJausGlpb8ZcG6INSJMW+Ux94n0+ffJa3JUudF3QsdceDu1uh99HhIm+9nnLfXasdn8YVVPTLFiafAabrRAo46c7W1B6WI/42MnNCzjr0mWktsmhtDCB1j8MIcE2nh/3/UDA78dmh5smx/HggEr2LjWJqAoqCMmYtgl/UOwuUhqsibWJhf0iIcJn4ThCFOPpz9lqDk+MfIl2vZcR3WY32YtH89OWCdzJJl6jJ34EGioyhakIqc7+JjWlOQSyeGuwSXbstKIVXrzkkMOO4h302t8LSwOvZEEZFLCU7oNWEEDDUWfY2axgT87B3flnzF3DEAhOcILP+JzH7VPIeHQ6A5Kzqfbk3Ps1vBlMffGhskhcR5NxHejx/b3YgsFhP1Jp9EiHDvw0aBBuZ+3U6VYFa/p6mX9JOR5XE1RTY8SmTQ0aAXkf+AOwT5jAiqQkLhWCXUSWta6y2xm5YQNzBw1i0gMPMOrii4ny+Ri96wSfVhsCWyNoMVkGhrUKcvfNxqotYsaFF/LZuefWtHdj9yFgeqhejZ9x5IgsJxmECVx8BfisQJvgD4A1HtqG52REhKslJJ8VqltUd+ud9zMNpWRvzN3ITT/fxHvnv3dq9/qb8I8hiICjq4/y5egvJZXUG2hw3hYKYQqVNThJKv7JlDj/HCZ2h5c5b12Col6AajHCJuJI1zdNhQM72uD3WWvkKwxDUi9/nzdQJoGZgsvv+JY2XQ7i89j5Y/5A9m9rh6rqHM9OCbumt8KFvVUhxuEkdJ+UpVAcAZpfuQrhM2HvS/i9Vg6tvS/izkFRdKY+9gEWWwBFgbjGFVzxr29J/OFyPllXRUlJCQkJCVj0clgynPTeR/FULaNd1wO4K1ysWTAguDsBh8sjRSU1cCxrQrtrkyj4PF8miNbpO0sjC5tvGMi2pyMn5litMGUKzJlVyajOPxDvKuaPzAH07LaI3pe/CUDAZ6FieU/sGLxMT5pyjBzSkK9TGtCf0BrHyDFUUf3tCKJIIo6BfMjbzGMet1XchkVYeJ7nuYd70NHx46/JPq6+SJcWGo4ITbcrFg5nvM4vB3dx2JPDDnYw1D6EHo/chjPxuKyREjz25Ymw/Rj8kQmdmxukD7EyrGIc/R83uHfWF6RlZ7MkPZ3nWrUi1zRlp9T/7m02NnZPpNozKBrIR6pekjiBVgAlJVxWUsIYFL5CSlvXHRmvXHYZD02dilXTwDTxWAUzRp7JXXNXkFDdpZZY6DVT/q1YgCaUdr2NG+84g09HjcJXJ+nKUFXQbShFayCxL3vTkkLaurIlbGsSNATViGoLXZ8LfY3qF9qoC8PLSd9pa8OLDp/u45Ntn/DU8KdIiorMdvtv4B9DUA+GbjDr0lnhRWXCYKJGedHKG8ofOJmfPdKxnPLxZ45aT2lhPBuX9A2vd9EAFFWnpKAR3791KUMvXkFc4zJyDqax/Puh5B9pimmotOhwhLZds7DadWyOACMnLWLkpEUEfAqLvxrF9tXd8Xtr13CBkhja3fYzgdIoiladgSXaS+qFG4jtlI05vzN634oQvn99WB0BLPYASp3HttkDnHXBXCyqQlJ17VdLIxi+BNe8DvQ7dz1qsHh9aptcVv44hN/nDWblD2dRtjuesfwGz7xFmzPbULq0lEBRAL1SR3EpKA6Fnr/35NarbLjDFbcB0HWoOLSG3Bmj0AIGCgFUEcA0wOu2oagmy+dfSXJRP24ji+Ec5w66c/mAb7hj9KskRBUzf8tZPPPTMo6Xm9gQ6ARQUAngB1RMLqKI97gFsDEbQwjOGXsOsTvi6LiyI9/r37OZzbzGq7SkgIHIBNwfgM2HocoLUfUiu4ppYd/uZtx6a3f++PEQrZ09mHzlIJyJK8PmL4sCz10OT/0In95oUumYxV1pF7DEksGSM+sUQvJ64YcfpMuoXoUvW8CkxVHB5gzwWyws69GDYVu2YKlnEATSSfYykiFkRU78UQgGMowqllG9j/0tI4OHr70Wj92Oxy7HmalYuHvaBD5qtoLmal/ocJbU/lGjgkZAQrM5+Xj0aJw+X4ghAEC14XCdQa9f72ZVUyfbUyxkZCs4NIPNTSGELyGs0P1lWTOgLkxdGoO6ukCmKZPEKvZAk3NloLhgscwibtQX4nvK41pPgbyfaAh+3U+P93qwdupamsc1wIr7m/F/PrO4PnI25PDZ2Z9FDhAHvTqqQ8XUdGxODW/F6bClJj3P2sTWFRkRdhjhWihCMRg7dS4Hj6Wy65dTkbE1ado6l+PZyej16h4IRVYVw1Q4d8JCzhy9Llzl1AQtIMBUmTvzAnau6VZ7vs1Pp/t+JHHwXgQmBFSKv+1L9sJeVJVFM2DsH+zbnE7eoabUdSsJVaf7kK1cOG1ehNaqiH7vsXZnIa+++w3HCgOM7JPE9F5raewKlfoI+C28fNNd+DwOLGjc9FIrEu6cCoDu1SmcVUjFxgqcHZykTEzBEmehd2/YtClyT6mKRt6MpiTFhDI5DOzkeSbgb3kHLYZ0Yk3iMrQKC1uJgyu/YNo57xHtkDEhX8DKicpGdLn3akqqmtKEseg0owgHnShjLHm0ZTtn8Tjt2I0uBAXDJzFu+yvcWZhJFBoO/Fi5lAzKsCJdKxowxgk/vgxJ0aJG90j3W6k82pYZTw3gfscsQMjJ+9FemM1/j7iQNfQaGX0+c57LTXG3UaXUW9QYBixYgDj7bExnKI/e6Q3w9RXw7L1WtvaAJmX57J08GUcgEDZiK4C7kAahrq5eJS0oRyE1GDgZ+8wz/Nw/QmU43QObbgCtAs6cFcwnCJePVjUNBWRZSq0SClfIyoRxXSCmCxCA7XcTXbiLV3+BCTtVFrTTmXSJgscadGs1Hggd7w+njBoBcGeDMzXoCjDkxL/jHmkM2v8L9r8cNBialJNI6AWdH5fnrxkvpa8bgIJCn7Q+rJ22tsFjTgcayiz+Z0fwFyCEQFjA8Ado32M/vc7ezLevjscIY87AX9sRQOaWdG5/4xUO726FuyKKqLgKfnzn0ggBW8kEmjfzIi568DOytqTjKziZv9sktU0O1z7yKV+9eAWHdrWhbpyi78g/OH6sGYd3tyIprbCB5warzaQoN57Mrekhz2b6rbQvsJB+TEFxadg0DTHiD4zha8k/ksKcGZfQIWMvJQWN0DQVzW9DcfhwxboZPn5J5Puh8/lL07jxIynPYAJbtsP738LWZyCpTjxcD8jM6SN7W6FEuzjWpA/VvaE6VFImp5AyOdStNXUq7NlDxF1Bv3brsFvCdaUUfKS1LYCzpOZA9GNdmH1fEcLi4V/DPqwxAgB2a4B4Vxk3nrOPZ396nIIgE+lyjnINh4khj35cW1MbQDVNkpZ8y/Mc4WwW0Y98poovudL01NQXsyO93J97YNzDLZgzqTmNuq/H1C0U/D6CfV9PYVDgGwjUyc6etxFujtjFNUZA9ne9xaAJ3bbDwFUC36E2LF72OhWP3YypSMJswGKh/5YjRFe24amH4ftL4NeRjVDMBnK8kMZgDvA8kILUP/KSRi7nEWd9lKiAwfH4+MiNNXW5QvefgOJ1kDhAVYtRAAAgAElEQVQo8nEWC02sVvKOb0Xfda88z/CDYoPYztLd0+EeKsuv5rqLbVx3TQa0mQ47bgN/sXxwSzXDp36HWaFiN+x9EmK7yHb46hAv9j1HCCvI8ELJJihaJY2LGZ5NXxcGBlvzt5Jbkfu/wiL6xxDUQ9OMplhd1og7AtMwg/UqFDI3p7N/a2tcMVVUlUUq3lI92f65MRCKQVV5FK/ffjttuhzC5vCxf2t7GqWcoKwonoDfGvE6Kz46j2aXruPAjFEnvf55U3+h2LiAo1ntqR2s8nrrFg4kNimANcqGifWkmfOLvzwXv8dWry2C1XMH02PIdhkXCX6kWgxSWuUx4e4v+fDxqdz62gy2bR/PweImqM0Xcla3ncREyuYE/BpM/xTcdb4CbwCKKuDF+fBCnYrYikWnsiyq5pGiU/48Mee6aQbzv85ixfpUfAE7Nosfv25F021Y1UDDcZ/jK2Dfmzz7/U088WQKqqUJIuDnzdsOs/De0fRvX7uac9m9jOi8iO/XTcIwn+bxC5/kkm4LMSpd+BfGsnSFjyeRGbUZwL34eIfVmMSwBoM3TSsuQsegAjRFcNeJf7HrtVCVUYGPPsH6wLkx8MRQWNDeR6MjcEcCTI4JFRqs+z2P8a5Fj1NpreXyYtm7tHt9CKXrB2H4bWhmOpdxO1sueYf0fie48c470RSFpf3TifsfnRvfMxk/O8DN3/2OigoRBPJsyCoNDuAA0hAY2NgWN4nrX2nFkN238NL7HzJq3Tp2tGmD114vhCxUydU3TWkMGoBumlSWlGDb9SgevdYwY3ihfCfkzYOmY6HdvyB1DDWDtcdbssiMVg7lu0KtZDU0t5z8qw7JnzBECJQbXshfDLZEuZv5E6iKijvQgM/yb8Y/hqAeFFVh/PfjZbBYNwl4GgoWCyyOKDpefiaZP2dSmVdJeB7NXwgKmyqGDlnb2tf8qig3iV5nb2DTkj4R719WGI9/UbjscP3jDh4+D/cfeRgBjfDVjqC80IbFaXDcPZJW/qwaqev6OLKnZYTzoTi/MWsW9qPLmbuJSagd8KpqEhVXRWLTIhzJqZz54jO4MqdSXLwVdznolUSkeO7JqZHLD4Ffg5+31hoCXVMozE6WInEC7LF2Wg1rFXLO/v37WbRoEdHR0Vx00UXEx8ej7nyAh0asZUhaXyq90bRrcoBR3Rdw1dvfsHpfA6tNAK2SZV98z2PPTcOvSWVUsINmZ8yLP5M/I6WmyI2mw8FCL77AbLY9N58oewCLqkPCCeZ1gimrwR3s5jxknVcFHTPIMlAbYBuYuPgaJ1fjx0CgYGJDIZ4deEmh3FVAtxvslDo1dFXnmB9uPg47fPBiImjBPBNV0ahO3LV7dK5euZanO7yMuSOd3esHYvocCMCKghULGdpNvNNxMWVRUcS53dz844+0z8lh3nVd8FT14oVP56I2UOd1BXJHYAdaY8OPiyym8/y9JseaW/ikzUV8Pvp8Uk6cwGe11BSFxzRkVm7WDPm3Ypcr+4YgBFVanpzQ6796hg/yF0LTCyB1bKgldDSRlcYwIFAOhSshcWCtrIRpQNUBKPq94Xs3CEPmGZwCEhwJtE2or9n638FpMQRCiFHA68j3+gPTNJ+r97kd+AzohVQhv9w0zcPBz+4HpiLXk7eaprnodLTpP0GLgS244+gd7PpuF7tn7+bQkkMRq5Q1H9Cc3I15JLRrhGlCZW6oaNrA+wZydOVR8rfm1witqXYV3Vf9kpsoqkHHPrvZu+EMWUksBIJtqxqe6A1doepA0z95GpOqY0fwVjlPGrjVPBob57WgW0cXilKJagl/XrvLh98XTvgzTcGaBWeSndmcboO206FXZsjnTdN9iAt2g1CIixtMaekScqM8NKsixJ2g6QqKMGgUDYEGguBJwbQNwxDkHW7K86/0Y454lwKzkCZ6E1wzXdxwww0IIbjnnnt4803J9FFVlenTpzPz3bk8ctc08sseRBEGfs3Gnee9xOTBRTxzxaMMfGw1V739FbNuHY9VDWBVAzVzxq87zuGCl3/Cr4X7p3VDZemu4YzqHhy+pmBJtkmzJGh+ixfDhAsy4OUJcMc3tUZAfkPyp+464lOgPaE6ogDFOPiWf1GYrnO3eiuOfWdjGIIKMthOZz7r+w4V9l/Q60iTVJnwdongrtLOVPptpLXfjYkAA3L9Sbx85AYGpRWToHvYv24oRoTvWEfDdA6hy+HDLL/jDiyahsvvp8KxhML4eDyN/MQXh8+/lUhxvb7AAyQjaM8+RoN9D8t7DyEQZCTpqkpOUH4ZXyV4j0r/fvZ3cjWvOGQANjpcubYuAlYrSoNaRcFers/brzlelS6ohN6w52loOkaWso1OB0++NE5CDdY/PxUoULyByPoVobCpNj67+LMaccb/Nv5jQyCEUJHf9QggG9gghJhrmubuOodNBUpM02wnhLgC6Sq8XAhxBnAFUp08FfhNCJFumuYpcmH+PnhKPHiKPSS0TuCo9Sha/SwmAUdWHamZ1BWrEpIi4GzkZOgjQ1FUhS0fb2HHlzuwOCx0v7o7R1YcYfPMzYDBjc++xY4/ukfYTUho/uqXsr6byQTzTxJRFANXy0ISpyzHWN+G3es7EYjwklej7FgV7z90PcMuW0LPIVvDMuv7jVzLijln1VNJNRk2bin9x6xB11SEMNF1gRoMZKoWjeFXroZvHOBqTlrn+8hWYwkYATYnabQrg3gfeDUbby+8lU2HevHtrVfSuzWsOxBqENqmCD6+QQAGimJS6czhA/ccvME+z83P5c4776SkpIT+/fszY8YMvN7QVeq1U5IJaK0wzNqh/9ovd9CnzUZGZKzFaoUFW8fQ4a59fHLDZM7uLN0tRwpbcNGrP+ANRGaJGYagwh2N32sl4LMy/5PRrNq7mOPuCvzBofPdeli5F4rKI14iBO8AlwA9hSDaNKnCiY7KeFXnhrOqePa8RHbcNxzDsNXs0QycrG99GL813D1j95ns+G4nI44h9a/LwVgHjV1lXHlzFP1bL0Oc0BBqAIQZtgs2AYfh5dNnnyW2TnAlxuvFVlSEoQpmKjDBkEqiCtII/AF0Bb4EHBxH5TiNWU9AFwhzcsRnT/SYvPzobUy9EDR7FES1g6bnB905DcCdLXX/SzYHCwTVg2KXLJ4/Kw0plOCEr8hgsy1Rxg9SRkDSICjbAYc+hspIhXzq49S0xgAu6nARw1sPP+XjTzdOx46gL5BlmuZBACHEN0gl77qG4ELgseC/ZwNvCWn6LgS+MU3TBxwSQmQFr9eACsl/B1s+3sKCmxdg6EbNTkCxKLUicgKEIuqs7AlTME3rl4bu07HGW+l9Q29631AbqHc1dgUNgcr7D08Hw8A0VU5OI622MiaOKC8+t6NhXzYmwqIT3+Uol0+fTWLAh95jL3va5pCd1QzNH4lDL+MflaUxzJt5EbvXdmH8Hd+iqjqqRTKL+o9ZQ3FBY7at7g6Y6AEL6Rn7OHP0Wqw2rab2cHVekaZZUK0mFjNY5rHqIOqm2+nb82mWHtpOqWc+B3zR/PjjTXz//R0YhorLVsWWwz34/vatjH0JdmWD1QLxLtj2vIOoOoHclklwx2h4dm7tU7jdbh588FnS02+nqsoB1PEVk44v0Ib6w77KF82bi2/hUEk3vF4QGBRXNGLSjC/55d6RdG+5g49WTEHTrciNqw71yl56fU72ftqJ/NlN0fwW7H1+ptRXawRAuovK3MG56E/mCB8w0gLv9xX4d09jc2k3vuZKPI8s57dml1P+Rz8Q4RdJLU5lV/NdGEroZ34FmpUhM8W+kF2gaBBDFQMeeRiGpMGVkDJkEfkrzsPwhy4yXCg43Z+Rnp1Nfdg1DcMJt2hywr8ZKeNfDmwEHoQQHSMbAawaTFq8mA/HjoXiYhm5T03FYhhc8PvvXLbbRACTxwWg6WhIu+AknXUCDs2UK/nodjKBK1AM1WIXil0mfeV8B6kXgOvPSj2q0PEB6RJSZH6M/LUTEvqAJw+yTsUQnDrObfu/q0J6OgxBGlC3oGs2suJcxGNM09SEEGVA4+Dv19Y79xQEx08/9vywh+WPLqfsSBm+Cl/YikixK0QnR1OZW4k9zo6vNELFMpcVW4wNb6kXzwkPuqZjGiaiDlHe0A0q82tdSJpfrbOyP/m2UI32MODcdayZJ9VGG0LSiC20mbKcgUo5UZp8HVRhMvHeL9i5tgsrfxgSUtgl0r0P7GjH23dNp/vgrbTqfIg2nQ8jhMn50+YxbNwyln43jK0re9Bv5LqwWgfS96xgiWoUyqwAhO4msOIRvl2UzcfffxTWdkPYmFN4GRP6F7P0NY1jx2wU2AZzZucYHEc+qLUygNMGD10Eb/0KFXXyt0xTZ9++CcD9SCfLzUgCaDICS0RPdnZxGg9+dZ88HwVPwIWnzMHI5xeT81Yax4qb4dfswFXANciksRgkqdPPCBZhVFjwCgc3PT+D91Z5Irq3Kn2Q0RL25kKEsgwhsFlh5GTBUUcLZr47ndYBSOlZglbmRLEGV+71MG7tOJZ3Xo7PVjs+bRr0yIdOdRmxdTe4bg8sOwZDwdU6k2YXfs6xHycjhIEwTcyAoDOPkvv7BmjIvWgD3HAcOJfaGgMZ1FfLqsXDM2fy8aJFGPv2yeppDgexN93E0x9+iFODcbvhJo+PyuzZkHZJwx2lu6HDfVLewfBDi6tg1+NQsgGaXYoS3w/D2VTWH858Cbq/glzNNfC+qfaTJI/5oGh5w235N+Cyuri2x7Wn9Zp/FadDfTSy9sKpHXMq58oLCHG9EGKjEGJjYWFkmuO/iy0fb+GHiT9wfMdxfOXhRgBA9+u0H90eW6wNf4UfoYY3XaiCS7++lAs/uoCc9Tm8lPwSz0Q/w8LbFqL55JuneTXWv7UexaJImeu/kMbhsAbo2m9Xg7LSNcc1KadR43JceugXrFoMug3azvSX3mL01QuIbVTGyRpQXhzHqp8G0zL9SMjvo+Mr6X/eGlTVwOGKHCDEEi19vBHgdFXQ5MTb2G3hK1pF9WCJ30S+OMrmqFzMVocZGjMbR/5c+ZLXg1+HzmFLBwG0ROazTgLkBH8tvVAiDDm7CBBtr8QTqO/7V3D7XHyzZghtk3/Dad0M/AiMRhqEj4E3sSoDsIiZpHGMq5K/xDnbTUfTJExFGYiyQ7+2cIFRvUpuWAL8miGQGCPo1QvWrIGNG2Fix3SsaoDGGb8HZTRC0bqgNQ/NeYBGFY1w+hXsGpx9COZ/3eBtADCsFu5ZJBj6GxSv/opB2ijO1C+kh34rAxjHCTbwx35YZxjhI0aA0g1uSoOZQByE0F4jveQasMDtRuzcKXMevF4oLcXzzDOUlMhxYwho5EHmBDQE05TVwqo1fhSbzDE442FJBY3PwGjcC9WWJOmkZdtgy60yCaxaHbQudG8DCqdIvaLM16B0a8PtOUUIBIpQaOxszKbrNqFEGiz/RZyOu2dDiP5tM2oEVsKPEUJYkGOl+BTPBcA0zfdN0+xtmmbvmozT0wDTMPntnt8iVs0KgQB7jJ0bt9xIs/7NIs6fgaoAhXsKmTPxh+DFZRB2w9sbmDNhDr4KHwtuXkD+tnxGvjoSW/Sp1R9V7PJrSmlWSHRCBc6YkwerqvanYNEiex8EcrHT55yNTLz3C2yOk2RQC4M2ffYhIgSOk9KKGHj+avZu7kDAF2FjKYCoFpEvK+DmC99CxVfv9wY2m4f+/ecDcvFZ5IBS1QOeiMMCuwXyQspJuIBbqXVGRAG3Y1VhFGdxJ5nY0VGCvWNHJ9n0kxabH3TPhaLKZzLlvTiem/s9nsBCJB/CQBIipwD/ImBsw22uZzKfkXogD/cSePxr8EboWrcPPl0KPv1anBwGHqG+m6n6uZo3BlQLNB8HgNfrxdiQzZM/x7LkYBWdpj+OYvOiOtwodjcB4eM9ZtBMP8actz9h1owHOfqKjQVfBifUICKZ/ip/FSeiTBZ/Cb3zZMF3mx7AZRzAgpsnkAlhEZdgJrACXimAQUTipYUjYLXylqKEcaMCwFvVfWWF7FgB8b0i3bUWaqS4lwGxHWoqmgk9AK2ulUHnil2wZTps+R9JCQ2USzeQaUDZ9oYNQeV+OP6fc1kaOxsz/6r5/D7ldwrvLqRjUsf/+Jr/KU6Ha2gD0F4I0RrIQQZ/r6p3zFzgaqTvfxyw1DRNUwgxF/hKCPEKMljcHohcweFvgrfUK3cBfwKrw0rXCV1JaJPAlFVTWPn0SpY9tCzkGNMwWTh9YXigTTfZM2cPmfMzEYrgpl03kZieiKfEw+pnV6N5agdeSCwiCMMn/19eEoNqMbj05jl8+vTkIMso/DWryEql3LSgNDSgEYCCM6aKQIgvuDZGIawaqj3AqCt+DZGAqIuzLl3B8WOJ+H1WFNWQsQRAKDZofwvEdcJYex2KWTsLVXPYmyXnsuDuUUz8ZDklpQJd10hOzuLJJy/CZqudQQ0hjUGC7ggmCNV+V1pA4eD+RMqLAkAJEA/cCTxQ72njuPf8GBIWq1zS8leG9XqRT3aP4cixjvQsEZyrHyc3Yz4Ld48moIW+EoZpw6+vxK8HkAVsws2rTYV+xglsQfrP/cA2widcRSRgmINw8wA/0BfIBD4CIlgM3Urbn99gT1kirXq1IK/oAAP79KGqtBSvafKWDTqmrWXO0+Mgsz/frbHw9M51lCsldOgMVz/6AaahoM81MOdaQdMRpoFmFwQMK846lcc0RXDcZTLqoKwVUBfVkasdwScfSwMOTAOUk7xGJlDudCKEwKpp3DFyJLuXLIF6FdA0ZCnjghgHF9x2DkZ6G0g+u+ELNwgBzubgkutMzWqTQnXdXoKjX0tF0Ip9sPMBSMiADveDvbFkJkWC7pH00xCcQrAnAk54ThBvj+fMZmf+5XP/LvzHhiDo858OLEKOm49M09wlhHgC2Gia5lzgQ+DzYDC4GGksCB43CxlY1oCb/9uMIXusHdWmhpZOrIYA1aYiFMGAuweQ2rs24684s4F08YY8LSboPp2kzklEJ8ukp0H3DeLo6qMc/PVgbTzKpjZY2awwuwlFOYmktc1m/G3fMev1y+rVH5AInIhl1wsXkTr9B9r6dQRQYpeTarwPrCZoNOLbV88PisFVe+mCr7gwiO9xiB7/mkuCWRHxmarPSG4uHc/VIVQFMA0NsV/SNv2NpyGyvsAWV0KgPJ7DP07EmZxL89FzGNxxNYezqljw7B4yv1yK7s1DX5yGdsVhLNG1s4oqrQt0uofAtpcwAn5UVefQrlbMf3sct+HEg8JL3IseYXUNFp6fV8S8xgf57KpHOKvVVoaN/hTdZ8NXksgXD3/Oq4tvIy7egsdjUlUlmUlSOO4hpJEBmRt7M3Kqqh0vVuCGOoyxL4BIc6JhViJZ1FHB6w8DCiIcCXeb9xJf1pHjC+HEqk3clTqdwpKSmmlH88PmQzDo2SqE4zfSz4COMbBzO4zrK42tUA24EGbFuui65Sqytxxk5pgRlPbV+eSFF4irqkI1DLY3jeayi4r59YvIeR0VTidd4+PZlZd3ShNGfZ+vx2rlo1GjWNy3Lw6/n9969aLY74dffgk71wHEtUqm+TvvE7C5wrV96vruTyYEh4BW18idpCVK0kC9+dDkbOj6FOx+Gk6shG4vQ1Qb6U6KdD3TlEagYg/kL4hwGzuYf76QrI/X173OgBYD/vJ5fxdOSx6BaZoLkDkxdX/3SJ1/e5F1uiOd+zTw9Olox78DxaLQ77Z+rH11bYh7yOK00G1iNxI7JZI+Np3G7UPr03rLGvCN/wmKDxaj2BRM02Ttq2s59NuhkIk2vnU8xfuLIxsmTL58YSLjbvmONl2yaN9jPwd3to2gPgpFK7rwzepOTHj9TXI71fpOTAFty0ySSsrJP5JCxPWdqRAoc2EmV2DmR34OQdC9KuBQDOQ7oV9hdfwymJgDWPNmsvbBzwmUJdQExRWbh+gWh4jJqOKnKYvY99O+YN8ncGzWAApXnkHvD95FsWkoJqS4AasLcuaiOqM5vCuO5d8NJvegZH+odpWm6U1JKbaRk+NHehebUO0eMlEI6Da2H09n6LNLOfBqWxpFl6Da/dgSTnB8+Br2/fwgS5bAnDmCGTNMDCMXGRSulsHoh6ywuwK54V2DgoKdJKa6GpFYsa2mbxrah8nJ34k0Hb8AbsKtrIrARg961JxSUlnClr27wtaeJjBsLFx1lRTLM02wKtC8DLSArFVQ7nFy37y55BcPQMGPb54FfZuP5h+eSbvyI1Q5HORqu2DH4+xIhnYnwo2BVdc5fMst2B94gN+J7P6pCwFoioLbbkc1DNZ36sTdN92Ex1EvBjNmjDQGQYqvqih4Gzfmmzc/BEeEDHEh5EN6vZKRUFwMKSnhxgGgMgt2PyYncVOH+B4Q3UFSQe1J0p3U7AqIbh/qWqprDAw/FG+CnNlQujnCkxoyC/nfWLoeKDnw10/6G/FPZjEw7IlhIGDda+vQAzr2GDtnP3s2GdMyGjznjMvOIGthVgMTdsPQPTpfnf8xcR3K2PmRG9MInYhTe6WS1ieNXd/tQvNomEbdiULgrojis2euJjX9KCMnL6BL/51sWZ7BieOpJPXuStaCrNqjVYOcjqVhRI8DcRBVqeGM9lBRHG5EGjctYvQVC1ErYX0T0BSIDkC7MogL1G6HA34LhQka2VHQxNPAZsg0SO63nJxF42p+ZfjtHPvlMlLP68HeHzejeTSi4yuIiqukKDcRX2EsRUs6kzJqG+0rbbjUKAhUgHczCtCm23GiMg6ydk873AWNibVcwblPTsD77vM8/vjT+P06un42QnyDadby/k0U/JqNz1dN4rbRbwBgsfsYnTGfp359EEM3OLp+CTcM38+OYy1ZvW91nQfphZwiUxnJ10xhAx78JJKEtUKjkBdoiRT5Px/4jvoGQSCnUCuK0Dk/4x0Wby/HExaa0oEmNeUoe9AD1VBlAlg9dO8OV14B9RUZVvrg8kkwogskxTzN0aK+wbwJi/RCHVYx3+jA/oeDpsUcDNtjeGpgBaOzIKpOm3yqyoJ+/VjTty+fIMPuC5BBYCeRGR9VdjuvX3IJu1q3Zlfr1mxr10AS2K23QocO8P33UFWFPnCgtGrRJ5EJEQLy8uCxx2DGjAg7AhMqD0oxuDpuREq3QNlOWc6yMgtKtkDP18LjC0IEYwU74PBHMmZwMpxyclmdWyAY3HLwXz7v78Q/hgCZEzD8yeEMfWQovnIfzgRnCOUzEjqP78ym9zZx7Pdj9SbrP8eRFcdQVoMRoWj8ti+2cc2yaxj73lgOLD7A7Ctmh9VLttr9XHP/55K337qALv13Yca0p6L3A7ya+mrNcd0mLYmsPAkcjzHwVDrDPmvaKpdrHvmIw0kaOa5atmCFDbY2EjTaM4nWtl+Iii5m89IMzMnrMBSwmCG1YWqgWAJYo+rrrCgElMFkZ0XjiPJxwfSvaHXGEXRNQSjw29fnUHbgcvq3ewirLRmWj66pA2sAWxMNqiwGjYbuoRFWYBPPv1bEc88twuutvldaRJkKtz+KzPz0mv+bBqSV2bhf2Uq37CuZMbkMf8BG4+gT7MlN5OxnSqjyuYEjQIBkBHewHzt1iwCp7OdfxLEZhSIeQ+4bjmNHw4cMYDsQ4g1M08fj46bx/tK5EYwAgBOFPJ7hGUxMdHQmMYl0W0v2+A+EGNsLxoYbAZDlA87oAr9sB924BupXI9ZUWJkE+h5QweX1c4X7CrYWzGTU5fD2IugajAoL4NwNG1hz8830RuVKdAqQzrHM4JMNVxSigrRet81GTmIiT02ahMcZPr5qO16uvMWIEZijTq6VFfFctztMGls2WIHsb6VMRcg5mvyyD38C+T9LJlJDysumBnuePKmu0X+CaFs0d/W/62+59r+L//PF6+tCtaq4Grv+1AhUH3v10qu5+POLSeqS9JdkhdAtGFrkrne63My9agbZ67JpP6Y9ncd3xuKsHvAmFpufcbfMrkneqoaoPEx0cjTOxk6sLitdzimj7/3nR2ZUCCguiSW5WT7DLvuNwReuICFZxjxGTV6AcGjkR4VTxnVg34nNvHbrzXzw9D389u05+IJDqMRGeC1ZZOGb4p11VW9NDJuPykY6tigbF077ltadD2O1aThcfuwOPyOu+pXkVrMotvnAFgui9oXPc0GVpW7bAoCH3r1fRtfnA8uR01N1zcFQRNsr6Nu2Dh/BL4hdlMkV3pk88cRLtLn9EJ3u3kvGg1uo8HTk2SvOQha1l66coRwn0t5HB25hKP8DPEEL3BxFYwZwI/A8bZv8wg2XXUdCfBqPzP6KYxHmGIuiAAF0fLhx48GDHz/f8AX3XnQ+8UJBqcOGcjhjIibKmiY4HLKecSRGkhWDFpqbjlmldM/K4q033uCDN2ayaR70jL2JrPYDCCiSaGvTdWK8XnpmZVFJK0rpRxpwAzLQdwFwZWIiO1u0wGuxYAsEaHb8OH327QtvWLBxdo8Hl9dLj8zMk/j4AfdRyJ4dTBALGnifD1atgvKTpGdXHSJiEFcokPtDUADOlD5/vZ5/3zTAfexvMQICwYBmA9h641bSYv9X0qUaxD87gv8AikWh61VdST8/nefinvvzE2ogGkjMMUhuns+lN39P9rER+CtTGPHCCHI35nB8x3FAMPWxD8LqDmNPQuv+FoHKKm7cO46CjT5Us5xl964j5XpdJkfWRUBh48xR+IvjiWtcRuf+uxh80SoWfj6SZu1zqLIEff313lFFNXG2ykX3GeTulruZku0tie95iEob5KsqSVVKTQU0n9fKge1tWJ9poaOiwzUfY14yB+H04s5PYMPH5zJh/MGQ2ssgi9P0zNjBrn3XEddtFY46+QMFzoZymgQdOuxm586+wAvIWsGbkInqcmVqtZokxpZxSY+5mG4Bqon42sS1N592fMj/HNrLW0gZgwPH23HRqz+y8uFByGCxDqzCQl/UCIZAwYKGlW9kK5HSW+hM6UcAACAASURBVC9hUcfxzc3X8Novx3h31g7CKpfVQdMEwbETDqQ4g8Qo4HN8RM16jddYwTb2IlnXfVi2s4CeZ96KUw29psUC27aBAwc+fsHkIqo9/xeQw/UcRMXEeWMUKgKDW9jAFbTiU56fOROrrmOpV3bSqutYOEBlcFBUh47OAN4vLua7MWOYct99WAyD6+bP5+5vv2Vjhw4hJS4xDJJLSpj0668cSE1l3sCBmJH486Yp5SLy5gZ3DipkvQntHwa9FcyeDcOG1eYB1DUmulf+RIKphVJDj30jWUJRbWT2se4J7gZOTSTur+DN0W9yQ68bsKoN5438b+KfwjSnAZnzM/nusu9qCrGfOkJnW2HRUUwDoRq4oj2UF8dTK0kmX5geQzcz+uqFNZMtig3jvD0cLvyUnNxXME0dgYUE63S+H2Cj+VWraTlxJYpdQygmusdK6ZbW7HzoCjAVrDY/F980h0599krmj5AtWpMiWUb1m2sCZdtakvny+XiyE+k7YTHOa9eAYnLkq4E4d6bQfeAOhDDYtqoHu9efAaZCt2s2Ez9+EcJZuwJzVir0KlawWML7za3ChhQbrVo9Qcsj6yB3IRhetjWCknDNN9zuaO64YzmZmb2QWpexSJfIQ8AULKqLKVPj+NeQE1gffZgW1g+xHPKH0Hv8OOjLGrYFA7VW1cf1w9/n7V//hfT4f0krLuQdNuGot+L0EeA6ptYUpJcr8UzATmqCl9yS0cjq9Q2jZWIUR4pUpDgDtEbSNqOAnXSmH+twV8vQNfGifLiGF1130lHsxYUHzVTQDIXFL7VjwC9PEk88OSjcSn/8WOlGGY+zK6zt1VDw0Ja3SePniJ/XFUC5DSkwtlYI7nr5ZTZ07Fgz6Ud5PIxet44BO3fy0LRpuO11MnVPxvSp/qxkM+x8MFgCsg50C7wbA117wt13y21P3XMNL+x/Ewrq0zyR7B70CDkCApLOgvS7Iet1qS9Ufd+GUl7/DZiP/v8xz/5TmOZvRNXxqlNyJ9WHUA2ELYDhtWNPLkUoJt68BNAF5TVB3NDrbl2RASYMu2wZMQkV6C2u43jZctyeXahqLH6/TLwqDrxO17svZceLgynd0oqU87agOvwUrujMid871GSlBvw2ln43nE599mIKKLUrJHqhidugwAl+twOtyo49qRyhyJBlXLcj9Hz7QzZPuZGOrXJIKDbZmghlW1tzeGM79qztWu9JTQIt94cYAYAk3UBVwyclA0l3NU0Nw3DDgM9h7VTI/pE0r0mZ3R9ipAwDyssbkZlZHdyvdod5gYdQeZTrJ97A2++9je6Op+CaPCxaOHffQHAma2sMQUC383tme2rDvl9xmPOZTRrjyMFaHTRHYRbf1zEC8rcwH6t6iKLyR4AsTgaHFTz+iUh6qcRUal/QHNKw1hVTG3cMw6Zwt3iRAfzBQFZTIWJZaJzLU+ubkxh0IbUEvmADv9KU3hQ3aATk8zs5xPWk8vOfqF3Bq0i3UF7v3myqt/KvcjpZ0K8f9339NTmXXMKo559nXdfgmIhkCLQqKf2QNg6i20Le/HAjAGC1wbThcObkUCMA8pqKA+K7gVYGtiQw/VL90xoLaZfKXUWYITAlk+jEH1BQL1nsNBkBl6Whcrb//+AfQ3Aa0GJQiwa5/yeD4vAz4McXCZS62HD1dHR33YT8uqOw+hWUv9u6MoPkC++j5wWdsdhVmqiQ3PQShLCTn/8R+/dPxzDcJJ+/mHY7XyZrIVTsabgWallhbWWoAiHw5zamRVUZv390Edmb2iMUAzXKR/od80kctE8KNNoC9Lv1J1x2N3F+aFkJWc1OULKlNdSX0xZgbxwaMFYMaOmOQNsO/n00BhTFQePGYyUPfNA34C+jsa+Y1Pw3yMl9F6/XgqYJ/H4n99//c7B/dGopnxKqKrjlvkny3y6VuAld0T9dgFovkcuHhVxqc0UcVjdZBUuD/7Mg+TLz+ZDzWUUiw8gHTJbyFvt5r16vmsB0MB/Hb8Qik+YPR+x/h1UB0jhe/gKCDIS4FcMM0AyjxqRlsBkfdeI9nSrAamKgsprBrEayUJx+k4IWgtQ6aS4xGFwiqos8nHx207ETIApbiFhfdf/IJ2iCTN0bpKo83KMHla7wiU5XVVZ260bnzExav/8+64Jy4E6/H0MIfHWj3HuehpKNULhcisMF6pMLghBARg+IjW3gcwEpo+RP3nw4OFMaFK1CxhuajYfsWaFGRrFD8ytlYZq/AVbFysRuE/+Wa59O/BMsPg1onN6YFoMjyyk0DJOUMZtRLAYFi3sEy12e7CWtTnKSyDuwHI9/M4rFiqpGYbHEo6pOUlKuJiVFClhpehGXfXcZ3a/pHnapbhO7cc3Ka5i6ZiqD7+4CihVhQpFV5YsnrmbWq1eQu7E9ZsCC4bMRKI5hz1OXUrFPTpSqQ6Nx16NYrBpCQOsK6NNrJ0KJZBBNotuHJiQ49ch0UwH4FAioFpokXUFsbJ2iPLY4RExr2rV/lb5995CcPINXXvmGq646xOHDXZBKo6XALTWnWNVEMvrcyqZNtWyqqOduQnGF+mp1FKqIZiGjg+0I4A2UU+n9GliGTINRkDkEo8nkXd7jM95jDPt5O8KTBO9v2YR0VT1OrQJPNRTgDLyBN/AG9tC//U4K3nmQFQ+rXD9coaINBIJDIokibuENoqrjB4eiIiYsaFZBagQ1DsWukDg+KXLGWEiL9IiyfK8BSUBvJD12CzJuMHXhQnpGCAxbNY3k0lKpPrFvH9TRB5vw229Eud04TROhe2WN4EHzoctzkvPfUG1fU4f4hindNShaBVlvyQI1hl/SSHN/lIHhVlPBmgAIcKRCQj9ZZtIbWcLkP0G0LZquyV158dwXT/u1Tzf+iRGcJlQVVfFK6ithctQNQ66yTc2CUHV0dwTHdwhMGcENunSiU63cduhuLLbw4FNl5TY2buxBVFRXunadx6H9L7B/9XyEpw373u7OuU9MoePFHbC55KrM8LsRpZvZuWYsvz10CeU7W0qJ4/qiZsIg6azdnPHIbBQDWhSpuP9oT4eMzBqp6hf/5y48FaE8cHtSJX3fnYmSUFZj6ywGDMgPX4mYQJUqtWjiG41AnBXZX12NoiJ4+20fL774G17v7+j6e0AxQjgQYiKG8T6KomO1+nnrrWKmTQtKEK9ZQ/nYK1GLC8khjRe5i2+4kkpiUJQqDONrpA7Qs8DlyPBoBjKQG0A+iANZNWAWkUo0AiS4oMR9BMk8+pjaTOUYBF0x+QVBgCiHQc5bLYh11lkNa8HDj9X2zVdiIk9HPcme9rHw/A6ZJl4HXbfDG7eFt8Nns3CLtRevVG3CJbTIVF88qPGrKI5qTEx+OlbdTwq/sJlPuAYNN1JZdA4y/B4UecZttzPk9dfZ3KFDzbXiKyrYd9llvOvz8ahThdfvhbZDsWoGjoCOw+ejlRBsS0io3ZeZpnTdFG+RFNDyndK9IyyS8dPhPkgeFrGfQ7BxmqwoFvaAdhg4T2YrF2+EHXf/+bX+TYxuN5p7B97LkJZD/teKzURCQzGCf3YEpwlRiVGMfGWkLFBzSlDQq5wYPmvQCJzMIAc/qzMxW2xRGIHI5xiGH7Cg61Xs3n0VjZKH0ueix0gekMvQr//gjPHta4wAgGJzYSb25diSz6URAJRIHG1TwZObUNMci2KwdM5Z+Lx2DF0gBIy/dTYWmx9FlctVeyODXu/PRGlUp3ygKfc2mgincgsgWocEbwBRsBQqD2KaJi+99BJNmzYlNjaW0aNHk5OTA0BiItx/fzl795o884yX9HQvqalpqOqHGMb7gMAwLPh8Lm6/PQVPNcGmf3862Q/Rnkw6spcPuJ5KZPkz03QAd6NQhDQCDqAVMnR7M9ATaQDmIUO5DScVlnvtWNRpSLfSNKRBKQWOo7CYIaxgHPO5p/dEBPVUNi1gPgT6GbK/zNhYJrwziF1lLeg8ahbkVtQyZ0wTKk28hf+PvfMOj6ra3v9nnzN90jsJCb2FEnoTREBEiiLYe1fsYm/o1atYLuq19wKKvSBWQFEp0gVCDz0kpPcy9Zz9++NMymQmwL3q/alf3ufJI86cOW3O7LX3Wu96X4GrBUvMIxRe87dnV52dKxjAQlIoNtmwdbWj2H0IfCjUseSkKg7YTsRW1B+0SHzEk8cZzCSFhrap5wNX3PAkCsDp8fD0Cy+guN2YXC6SCgu54667mNylCw+kp8MJJ0KHEaBY8Fls1DidlMbEsC46Oig5J6RkyopV3Pr9XsyZjxq6QBnnG2Jxg+YeXRCQMkT6vBG6x1APdRXBlruPvK//AiZh4qKsi1hw7gJGtR/1pwoCh8OxGsHviMHXD2b548upyTuyUXUojpQWCkblgUo8VW4szuBfvcuVS3b2yQghcLv34nbvo7Z2I127vsGAgevIz38uLPdcUSwk9jRkNCxRFnSvHrK6ESY/MVn7AYPCudUfScZ983nj8Qs4YcIv9By6lXY99nP9v15g6bf9ydkbQ9sp27DG+tCbj/iBkkelVFHqBhMfsYqG6BJ0pYoVanZzyjk38vXXTSuD7777jvbt27N79y683qcoKHgNIawMHeph1Kh0rr32JQ4dChUqU1WVdetgxAhYvhwOFQjC2V9IqdCNOcTyFKuCZKLTMMqkYLToPoahLNT6KlDTrSjKZQiRiJQujGHUYP5omPiFsdzGbPo5vVjUZoJFDefigDezbDy8F0r9fj7v0IHcwkK2vfMI5OUZ3WPWSIh6GwrHs0tqnOu0cEPaQcYV5+KPtvJcWTu+9qQAUISdJ2R3elv28Fn6v5AF75OCn7uvu5zdEacweJmCuVnKSWKlOBCgbBhMpnAYmJODXlKCPmsWxZ07c8/s2YbuhSnARTYFN5dJRQmaBQhd57OZMxm9YQPd33kHn8UClt4Q05J4cBSwtzW0gcKh+Huo2himaPzboaAwtO1Qnh7/NCblrzW0/rXO9i+AP2IGYImw0PGkjuz4rBn9UMKX0z/lrE/PRlHNKAFxrgMHHsTvr6YpgSzR9Xr27LmRpKTTiYubgJQ+Grj1DdA0F7pjKwCdTm5HdNt41r+8vlF/SagCk0Oj7Zkrqdmdwo5HpuE6FAcSrMmV7FzfnW79c7DYfMxdX8UdP/yISYUrPXBqmIWLLhQq+1yL2RnLjv1rUTU/fgEZtZBRFwgImoeV2+uDgkAD/H4/L7wwnsmT89B1NwTy2m53Lhdc8Ci//hoaCKqr4dZbITERfv7ZeC2dXKbzEj3YwXKO4w2uoIoYKsVYXpZRXEENe4gJ2s+gDquZfcatnPnKSoqrj5QK9KLrIxGiDeEW4BJ4kWt5ZfHVjC5dQsfkvaTH53HOsA9Iii6hzgsfZFvIdZ8ELOGss84ideFCZMPSxucD3yyoHUND81hVLTylt2fIh+3Zvh0W3Rt8zN5ks6L+OBw/uFDR8ANzJ4znorfMOMK0OfQkkxX8gidwl8MJQJRGR0N6OpaLrsLbPzO45fko0s8TVq9m3K/rKY6JpdrZ0qn5P4GEyG5GaiiMfwXS+4fUAwB0dFbnr2bah9P46ZKf/pBj/FE4lhr6ndHzrJ6olsNV5A7/owhLQxWQOS0T1dpsv6pG3oYNrF8/gPr6nciA6XFFxWLCVRE1rR6P5yB2e0ek9Ddu32wLfBkPEX9cDnGjv2fIzBgmvTSJ5D7JRKZG0vv8XvR/9WUUs86mmy+h/kAS0mdC+k24C2LZk90Zk1ljcy7c+QG4fVDrhpw9IUrDgWvSOVT8Evv2zMIv/HhMBtkozwGlVkCxUp94KhOmXdLqverbd5dBL20GKT307buM6MjSoNeF0EiKKmbtWvjmG6irgyGsYis9uZWnmMp8HuJ+dtCdNuxD5xNe4RWG8yQ2KjEFZv0ndPmRn2aOZkSfFdS4jhQEnBg9uA1yF6Hba5ioJpoKPY7P1p/O7G9u584PHqPDzftYsP5EftoGS7ZWI8QXxMRYOG2Ii388cDd7XC4WAyNxABfR0ua+vh4efhi6dAGbOfh5eJ7riKAWNZDSMgF3z5tHXprEFaYR/UouxIGCxPBSbsknqrXZePzss6G+nqi4dmAJp98T5rlv9vq05Utxuj1E1tej/RaTFqFA5xuh2z38bvzP/wA+3cfq/NUcqDzwPz/2b8GxQPA74/j7jiemfUxYB7MjQ8dkC12kSU3SZXIXhswYgmJWUMwKHcZk0PfeXMr3FuOt8SMC+R6zObxpj5R+TKYYfL5SNm0ah8dzEL+/Br+/Gq+3mM2bT8XrPUTKxLVoiR+TnT0Gd7czmfrpICa/OpmhtwzFllxD4cIspNbisdFVdF2wO7sTc5eB1w9OJ9x5J8yYAZZW/Hf8blAamskktKuGYSVg06DC5KEydzGR5talBCIjw7+uCJ3bpzyNzewiyl5FhLUGh8WFx2+h+WBcSgLxlJLJNt7jHJy4gFI0sqgS1/EBH/AxszHTgQn8yMl8x9zzL8RhdaEoMKxLa2dmAYZi+HU1pJKayXw3oiWd09jG7XNQ73VyxjMfMeVJY6UnpQ+Pp5Ckk1LIu74W2dHGWMBMAq2lpnJzYdLxNcS78jE1K2Yfx4qQM7n544+JNf+AzxLcSKgpkjRrCpc7I1AwnB7mAS5VpcrhoN5q5dlp03jxlFPA5cauWVo3LGip/wONwcBq8yEVSKiuZtSmTZh9rRhFSQmaFzzlh19pxA00aMf/H2BRLRTWtiLb+yfFsdTQ7wxbjI3p2dNZOGMhv772ayv9Ba3xuRWGzhjKyidXgjBWB1KXTHt/GtYoK+MeHcfxdx+PUAVmh5mn2lbh9Xai8/y9xCT3RFHMpKVdz86dVxJcwFSJixuPIqzsWPYudbUxrKptj9PZGyHM1NYaujyKGSyx9Wy47nIGzX2OHbO7smjhfMw2B5pPx9n+JmztdqOHkb3WdZWqsjjqvIKISMnbb0N0dOtNpP5aM2ozmcsEF7Sph18ToN4UKCPEVTD3ERhzdfh9eDyZREZup+VAaMXKPRNmceXw1/h+y1hunPsclXXRaLJ5UkOyB0MVcy+duJLX8WBjBW9TQQ0N5RE3bjzCzVrzDI7zPkBKuyb/gKcvhOP+AS4vaBKMs7ZjFIZHhTnjZtXyxv+2PmHwaQpGQFkGTieuWY/wdGY3rKqfu5+xMH7BN+yd8xIX9Z5DvSeRbzZNpN5jDH5CSLr29/Pjoq/5LvZhbi9/hG+ZSAIlgbl9MOx+P7d9/A7TZo/k5qetdNllbGM1bWew5wFe1OrRA3f6auDOiAjann8++8ePp9bphPXraffUp5w0+jHe7AJaSzKb7jMUPeMGEQ7fnDiYaYuW8cXgEQzfsoXcxEQOJCcjpGzWrCbh0Jew56XAbTMZZ6R7jf4Da4JBMW17hmEy3/sJQ6uo5Cf+GwOZ/xZ+3U+vpF7/s+P9HjgWCP4AmKwmJjw3gZr8Gvb+sBdfnQ9h9iMUnU7Xfceuf08CPXz6yJnk5Npt17Lrm12Y7Wa6n9Yde5wd3a8jTAJrlLHsllIibCUMfOklSuWXdNDHoShmSksXhNmrJCH2TNa8uBJP+SiyrjqH7F1Z1NVtDtpK9yvU7knGX+1gz/MTKFqche414Qnkdmp2R6P5MlDtXrQW1BRdSGpH2pjm648lcz1RUYfXE/PX23AVxhHRqQghoGsVZMdDrZmgsVHtDONPgIU/BX9+7Ii+TO5zMXv330eZxYuGD1BQFBtdbZMQ4nOSoksoq03A5bWjyZYjU/DJ1ePkHmbh4u0QIqiUUOjdzqdMIr8ylfZJuQD0SIX+HeCXHAJjuxL4awg4zUUZwjUIHg0C2z30EGT2xG8yGYk/Ad1H1fLhAD9+701IaUcIySlPfsnP20ciTX7WnLGZMxMS8L73JLNee43PPj0dwgpaG8jMzWXGl8/z8xl9qd1+gLErV9D/0F4AevoNc86GLF9lVRWVL75oSEEDqCpjR89j3GLBOxfqaCbR+AA43C5ufm8O/z77AurDdRbrbpY6D5Lx8Yd4dAsesxmL30+P3FzKIyI4YLchkbDmIsNcBt24LZZIw3wmdpDRNFa3H6J7gTnG8AmI6gHdboOEkbD9waO83/85VKGiBfy0nGYnD41+CKfl/89q5L/FsT6CPxBSSg78fIBdC3dSVPUIiWM2Yk2ooXpHKptmXILubjHqCZ2orH2cO/dxknulNO1HlwghGusHrnIXi25fRPa8dQhVI3HUVrLuLKVLr5ls2XIaMoxjUs32dqQ75pN5RiYmq4nPbpvO7g+d6G4z8cN20uGKJah2D+uvvhrXoVjMkS58laFlQcUsiEgzU5PnQfqN81GsPqJ7H6DPv95FUezU1WnY7eG9kDWXhZynJ1HyU0+kX8WWWk6vGV9yQtv9rE8MLyi3bRNcd7Pxb5MJ7pgWy8NTXQjFjEQidQ+70jqhJwwmPf1WIoiAr3uDVs/Zz77PR6vPOarvS0EjGicVYf3FTEAtV4yew31THubTNWcwf10+v+yejxZSlGxHk0pQa9nXoxGyKQUlFfHg/Yjhww15B2EMsD29e1ldei3OFuda7Yog+bq3cF+QDxc0NRI6XC6+vuseRmVvPKrMuSZU/HFgLTMGuDygO6H1gUYIAQ4HNyU9yrP9lyMjHTB4MFRWkvnJJzwFXHXbbeSmpDRtD8ZKwVMMtjYNOwJPkcEYM0VhDPqacb80j2EtWbMdhBnihkB0H6jfZwjGJY2D+GGhgSb/C0NH6KiDb3ikRqZS4arAo3mQUuIwO5jUZRIpESks3LOQNhFtuG34bUzqOuk3HeePRGt9BMcCwf8I27dfTHHxRxhmbVCfF8eGa65C91rRvQLF6kWx+un/0mvYkqvQdp1H+073kjGsI2anmex3s1n55EpcZS481R689V6kP0C5NPmxtalk0FsvINTw36enOJYxpxRhtpv5+MyPyfk6p8krWdUwR7ixpZZTsz0d1e5BmDT8NaHSAYrFx/A5P1Hzw5Vs/2wzitVHysRfST97JUpARVTVIdIHPsWQjG4+8mTfcQGVG9shfU0zdJPFy3mPvUpeViktyw8A+Xlw0cWGKdV5kwRvn2NFtNSiMUXAtMKmvPChhbDyIh54/yYeX3ALHt+RGvYggVKmZQzkzUMH8AfVV1XgRAwpaolJ9WESftz+kUA45yorhrvvG0B0K0cLFwgkoGPGD0hiuZC2k93suPbaYBVPKUnSK8gvOgNTi8Gtqh4uftPCF/d9DgHph74b4MZnJO0PgIk6jmMqymF81AA0BfQTwfwDjVnGX4Dx0LLbIQiW2FgszfL7cbGxPNq/P1dOn059c30gzW00ikndGLiFyUgd7ZgFvkpIPc3oH2guo67rsPU+qFhvsH9aIu0s6HhFsL0lwI7HoSjUFvM/xawxs5jYZSJzs+fi9rk5I/MMTmh/wl+mVwCOic79f0fXri/i85VRWfkDQlhxptcx5Yd6dr04mM3zskmdupr0c1dgiTIGOFP3d9nw4xai2n5B9twc1jy3JsSgpgHSb8JfFQMHz4D2n9IyH6r7Bd68nmgejeqD1eR8lROslKqp+KqcpPbLZOKjg6k8mMvutR+xZ17bEN0gU1Q9SvIvxF2whTb+LNpfvNQ4htdE4Xd9SXf7GTJgG1LVUQS4VSPl41HBdSiWqk3BQQBA86tkLxhGXNaXIdcmJKS1hUWLjF6HXv52iNK9ofcAQdmPb1Opjyd9WDrW1PEw9RBXZ+bw1EILnma3TlUNintzqPhQxSvMKyskIgJqaiyBbaxAHMagDiDwaxb8WGh9hqljKI229vPSgL3AIgw7zIY0gqRn1DY6Ve+jB9tIJ4k3JmcFBwEAIahUItmnptJFy2/5FjGXnNcYBHpu8TL3jsWk+n/GTxT5TKFAmUwb/UuUwzTCeUwWHkmfyPgrdzNi6RaU7TBcGu1wWW3bsicvL+znvBUV4HAQabfz9ttvM2nSJKZu3oyrrIW+vwg8V2ogxegugs13NukApUwI9dKoXG84jYULAmCIzem+0EBgS8UI5v+9HXqkJZIeiT3ISsniyZQn/+v9/FlxjDX0P4KqOunT5ysGD95J795fMmxYHr0GP8PEZyeCLiha2BfXwfjGJtGanSnoup8V34xh5VPLWw0CAN2mdOOW3Hs57uy36Nz5WUymBFJTr6Nnz8/o2OFJ4qJPp2PHWVgiLBT8WtBq97Mt2kbiiANYhs+i8zVL6f/4UuxpDawdQ3fSV+lk579OwVfnw1fhpGZnG/x1VtZdcTW+RT0Y1GcnJlXHjGE67/BDvxLw1VgpXNjbMFRvAamrlOUn0qnKEKNrGF8VvanNTFXBak0k2pEVSBUEw1fnYfWTS/jkrE+YnTKbdS+tA0UltUcPfvxRoVcvo/fKbIaxY32oavMZsUTjIYrkTP75Tw9z54LZ/CEwC3gH2EW4xjO4lFD9IDAksLdirBZa6vZI4D0M68s7gL5AFQBOax0T4+bTnw3Y8TCQdfhM4WtJUodKEZqHtltt/NBlKgAWr5dFd91Ipv954llLEkvI4nZceiLVdD9sosTh9fLPRfPpO3IPnrssBvkp0QhZn5vNRkt3K/DW11NeUcFDDz2EEILtLpeR0moOxWwEg8pso6Cb/3lwk1fLwRygbGV4VdIGlC4jbHBOHsdvKRarQiXKGsWkLn/elM9vxW9aEQgh4oAPMfrv9wNnSSkrWmzTF4N+HIURkh+RUn4YeO9tDHpFVWDzS6SUG3/LOf3ZYbNlYLM1CdRZIi1IKfFVRLLx+itRnfUIs47ushj+Ad7Dm2PHdYnj9PdOxxwQUWvb9jratLkMAFW1I6UkPWMGDDSa3dKGpIX9ragWlaTxK9i69c1Gbn7kgAMMeH0Nay66Gm9AoVT6TZQs6Q1SYE8tp2hxH1SHF3dRDIPPWozFFhywBGDVQH19OLkLRhIuL66a/KR3PUiqC5waHHQaKwi/AJcZGk7Y681nu/sTegrDGjPoOEJn55r2eKqNnPmiO9au2AAAIABJREFU2xbRZkAb0ganMXAgbN4MlZVgMvl5551rWLHiSerqGtI2PwPPMGiQpFs3UBQ7Xu9kjvzzuBqYD6zByJ7bMWaeZwIvA5MC/z0dUBBiJ1JeCaxqto884N84rLcytPMSirfuoi0ZmDETSQ0XLV7MA2lpIcbv5joXndfmUd/DjsPmwq+paLqKyd6OddUzmScyObgqlsT6A6iBYCSQqHjowBzWMAeVy+iLK4yHmQGlBqJwgQoyHsStwF3Qe98+xvTuzZLq6laaREDqOtnZ2SyaMYPck04yZKNbmsz7Ko3BPf9zUG3BgaDkR0OWuvmqwBRpBI8wEwHA8A/efBf0bjCJCqTffkN9QBUqw9KH8e7Ud/+0pjK/B37riuAu4AcpZRcM7d+7wmxTD1wkpeyJYbj0byFE81bN26WUfQN/f+sg0BpM1qYBR6tz4K9yoHssaC6rYcYRtrxnPNj9r+yPYgr+GlXVjqoa6QQhROMfQEz7GHqc2QPFLHC0K8bZqQAUHZNTx5T5VosGLT+KyUPGeSuC9q97zBT/0JuqLenU7EylZEkvpNeMM7LVUiJDJ67CeNyCr0UIHbPFx5CTjcEx2gs9KqBGNfTU0moNaqkI/I4rrFBuNYKEcRcEXo+Znz8bRU1FFJaEKiK65qNTz9qX1jYdqHwDMVsvwPpTT0ZGfkW8o3mqogAwzOAdDrBaXcTGFnFkWIDvgS+AB4CnMLyNG9hYNcD5GHOgOMzm3gQHAQA3dvvb3HnGleQUTmMe77OGNdRRxzY6cvnnC+i1bx8R9cb3YvN4cLpcxNx7Lx/Prsf1bytf/HAKpRtjsUgvincnyXXZ3FT1EU90egVzbOgMWmImkp1MwTD2DDtEKkAzBqRQQCYBgVrv15s309tiCfUFaA6fj8ldHbirfgoVgRMCLLHQ4TLofoeR1mmO3PfAXQB6s+CQchLNbUvDonoLrDzdKCpvvR9+mQrlLe/5kSEQJDmSKLytkGWXLqNdTLv/eB9/JfzWGsEU4ITAv+dgPFd3Nt9ASpnT7N+HhBDFGIq2lb/x2H8LCCHodV4vNs/bjObRAszCo4jPAhAaEW0ijtDJHHq80U92IOKUqxG2CqQU4LeQEncvFTJ09SFMOrH9Q3PyQpFUrO0EUqVhKNmxvjtpnfNDSBs+j5mfPhuFUPxIvemRM9t8dOq1mxPPXUxUXJM+U4UF+pRDlD8guCoM57QNCeA2wbZYiPNAkktB6F347vExHNwTTe8n5hLdJxfpUxEmndqVZwCnQf7XsPws0NyY0emhwMZZ/el/71r2F3fB4Or7qKgAt9sY26655lb+9a838HhaowF+CzyCMaMfiREIOgfuxTygK01kSx1w0VqPVNu2RTwwbwy907dRXLuTxZ7FLGYxVmCNF76//nqWDBvGz1lZJJSW4l68mIcrKvgAuGpLJVOiv4QLCLInVlUdxQJyKog3Wh5RJ5INlOBiPHAt8CQY6TwMZrNiA84APwo/W/pSq9gZ6t9Coq0KBUN3aH1dHRFPPIH3/fcNb8wWhRd/rEQrexpKJcQOgMwHQlM+ihnijwNbGrjzAwVkvzG7/3U6tDkFOl5pnJk9DbrcArueMmoBUg8/R9I9UJUd/maHwah2o3hg1ANc9eVV5Nfko0udrOQsPjjjAxIcrafA/k74rYEgWUpZACClLBBCJB1uYyHEYIzHtfn04BEhxP0EVhQyHPfR+OxVwFUAGRn/qfb/nxsn//tkSreVUphd2MTkOSwk8SO20/3O+RT9GoenpjvWyDDaAGGg6x62bDsRU2xzCQYvZdpDtJZH9ZSEMQLRLIFRGkAgFI213w9i9Bk/IhSJokh03TCvX/jueLKXZyGb9U7Y4+3M+DAHc9GHIbt2qZDqaiadL0GR0L0CNiYCAsptUG7TiXAkkJeTRo/75xCddQDVooHVuIfRoz6ntGQ+CWuuMwaWAFQg2lHFLy91ZZPDzo8/nsUzz0xj6dJPuewy4/EbO/ZDHI5a3nrrQQ4d6kR9fSQyEKBV5WV0eUsjA8wIBguAdUAXIANDmXR84GhdgN3IMCkNi0VQUGD4ffV3mWgjPyCLLEoo4Vu+ZRhFXK3rnLNiBRNXrOAFjPUHGOsMTBiq1mGyFkIF2Sf4tYYuggy+oD+wFngRI7l1u8VCx4wM6nvaGHTiTrYnt+fkuMdxCwsCiTfGzBP9XuSG/UavillKHN264f3nP+H666GwEPr0gYkTwWRC0xeCFsjbxw0On/dvQFQPIxCknmbk+lUbxPQznq8NN0PyiUaPgK8Sw3bS87soSDhMDpZctARFUci5IYeD1QexqBZSIlKO/OG/EY5IHxVCfE/jgjAI9wJzpJQxzbatkFLGtrKfNhgrhoullKuavVaIERxeBfZIKR860kn/FemjR4KUkkPrDjH/kvmUbi89bEpTWLz0fPAjSpZmUvL9QC5bcRmJmYmNSqRSylYpbSUln7Njx8VoWtMMXFHsJCaeTX39dmprNwb1IQjsbLnvLEp/ade4UlFsXgbcbmbk9Ft56/i3sGpbSGhTxo51Peg1PJuktsWkdiigpjKSNYuGcDAnNHCbHCZufv9XnLWfhbznUg3jmuaoMsOWOIOS2rxBNzX1Gkq+nYQncwqKJXSgjbcPpPf+rQbPvAU8SsCbWRcIoZKb+wrffDOb887LwelUMZvNFBXFc++989m9u1/gUz6MBW1wKkOgIjgTnfcDr1QCsY3vtvxCFcVgQ8KFQB8sPMKzPEE6aThw4MePgoJLeDlXPZ8af7BZiwO4HTg5DoYoIGYTNhjo+0C5L/R1gGyMtYwXo6TtAMwDBuCfeRvLXfdwYuLTlKnB9FeH283Sm26if04OXlXgXLgITTWB3w/FxYainzlwIn4XlK+E7f+EDldD2zONRq+W0Dyw+Q6DPjr4XbAlw5b7oHJjoDhsIqwLz2+EzWQje3o2XeJb1Qr52+G/po9KKU88zE6LhBBtAquBNkBYIXAhRBTwNXBfQxAI7Lsg8E+PEOIt4LYjnc/fFUII0galcfZnZ/PawNfw1gbSCooW1GWlmFXAzJa7z4eAa9nbx79N/yv70/uCTNSYQ0SmRuJ09gwbDLzeQmSzopzd3pl+/VagKHak1Ni+/YJGiqsQCh06zMJzzfOguKjemo4lsZp2Fywl4vg8PJYhnDBvG+XVbyBMOifVmBDLO7H45Sl4w/QgAJisEB1XQllBIoueS+C0K50If3BtoaVpil8YFNRwPQZJkSNIu7Ij69ZakdSHvF/nO8jmaA8+BeLdkFbXVGj2BfanKBJFMTN1ah8uvngbUurU1mYzf76Ja67pSV1d8/uYS7hBSaIRwxKqkIF11dCgd1vCCAJTMQrL5zCFSbQjHVvAa9gU+GlqETa0h2fD/beA14PD7cYjJR4MIs+TtfCjhIGbgd40LaMUkG7I/dpgcoRDHyAHQxFpCzAEGL51A+lbL+cq782448whjmZus5lXJ03ilRyjnTotP4fcjEyj0y81NXhjk90who8ZEOD++wnZoZTgKYGaHKMXpHgJWOKaBQH4I4KAVbXywekf/J8KAofDb00NLQAuxhBmv5imVWsjhBAW4HNgrpTy4xbvNQQRAZyG8Tz+n0ZCtwRu2HMDL/V8ifqy+hApCt2vI1QFoRJoHvOh6z7KxQPsql2HqJe0VWbQseNsNK8WXIj2a1RtaYe0Ng1M3bu/g9kcjwjwuvv0+QpNc6MoRqpJ06op6PYaPR/6KPg8dNix40L8/kow64azWJSGmLibiGUHKV/dJaTWYXIILnvhBXb+1IGf50xg+8oMJtx2KrbKL0BzIVHxe+FAXjKdOuY3DhkltvALJAGU7s5G+yALTlMIpb8ouP1luK1GLrnWBAUOGFgCSNjbTLROCJX6+u1ERQ1ECIXIyL6Ul9OisQwgAYE/7PkkkUAPCviFPUCofWMo7BiMpZ6MYWxjEGgOVYM0Wwd2ffIx/Por/lWrsHz+OS6gGsALM4AlL4K5E0b7ggZ0AdEOUlYaiau2zfapY2STIlSVZE2jYcFQLwTrknRSH6znomHLWTpoeMg91VWVioDan1WD5557gSmPPQnCYixzwqFut5HSqdxgBIUG9o2U4K81PAI6TofI7rBhOqgRh6eJ/g4YkjaEU7ud+oce46+E38oaegwYJ4TYBYwL/D9CiIFCiNcD25wFHA9cIoTYGPjrG3hvnhBiMwbNIgF4+Deez98CEUkRXLP5Gjqe2BHVoqJaVeK7xXP5ysuZ6ZvJTM9Mbsi5gQF3qnS8+gcGv/ssaVPXIgJT6aqqZeSvPkju8ly8dV48NR48NR7Kdpax+eUaEhJOR1EMn+PIyP6NQaABqmprZBqpahR9+/6AyRSa8fP7ywiuLksQJobdl4HJroJoqjlYogUnPB1HWb8hcPFqxix8kIzRa/GlT4e4AWBJhI4Xog6chS/ieiqrkhrngV7FKBi3hATy3s+j4JUS5FPXgrt5xAgIkuFvTCXpipEO2hdhpISKzYZcs8cDn3xSy65dwT+Hk0+G0LpJNO3EyVhajJA2bFzIeXTnU9q2vTD0ZENwM0aTmlEeu4+zyW/hEQFGL4XXgjHjHjwY//4DtExyLQe8LoxplD9wY3KAxUbap2Xvs4KRBnpC09ikqlQKwVLgQkUy4hDghdEbN+EN41Jn8vsx+/0ciI/ii26w17cNXrkIliwIjZreSlh3KWyZCftehW0PwprzwRtgmAthrAISxxgMoU03Gq9rh+td/u2wm+w8duJjf6mO4D8axyQm/uRwV7nxu/04k5y4XHsQQmA2J6MoVioqFrFt27lB+X4A3W0lqWYVX13xHbEdY0nOSqZyXyUHlh7gxr03EtM+mqKieRQVvUvv3l81mtq0BiklmlbLrl03UFQ054jnHBt7MknydX6873tyV+YwfMY4jrtzZCPNVUofPl85NTVr0f3VJMVNBnOkQRVULUhfDa5yPz9dcx9xkWvxdy7FP2JfaHHQbYW7H4WNgfx91kY4/0PsAytJsDg55NsUsF1peT3GX/MJrMsFM2faePvttfTqZfAmc3Jy6NXrW3y+yzECXgkQy9ltsikoeJCV/IIJEwLBFVzByZzMS+JVlmdsoOLA4fToj8dQKG3OSNJpg4t5rG28TB1JWZKPs943Q4NPxdXTISd4tTEYIxiE+xa9wPsKXByGB7ADw4VZNYPDDgtHCrJ+kIjAZHzWeedx7xVXGP/T4B0gBGavG5/wYfvyKtyvFRq3xuKEjz+G5l3QW++Hsl+Cef9CBVMMKCZjn1F9ofi3yz+0BoEwBOsCMAkTXRO6suWaLf8nA8ExraG/MGpqfmXr1jPxePKR0gtIhLCQnHweVVWrcLv3Bl4HIcyosg36yjks++eKIBZS2pA0Ll166X9EN20OKf3k5T3Dnj2301o1Wwgr6cmX0tHUD83khNSJqJaw/AGk1NF1F0JYQoKR1P1UbtnEyo0TcWSEKT1JsOzsStScs6jcPAh/ncFsUh11DH72Jnwx+fwa6w4RsdN1ga4LTCa9cT8AuoTvv4ecnNP55JNP8Hq9nHjiiSxbtgyDK1GGMZf2Y1FU5lu+wOv2UEUVKaRgwkQddVyecg+lp41CvvW6sdSgN4bPcVuMwf9thJiDlNNouSA34+EpfqUblVjRUfDS1XoXtXE1THr0UXa0awdz3sP69ut4AieuYuRjJxKeRFOG0ciTHu4LUGBfL/h1aieeHHYzqy2ZWL0+Lvn2W2a//DJ5CQk8O20aVRERVEZEMG3pUkpiYrjrqquMFdqVF8OegNTEUOC0fjDgISNNJFTIfQcOLQBfRbij/+EovKWQ7OJsLvniEqrcVfh1P4PTBvPhGR/SJrLNkXfwN8QxraG/KPz+KjZuHIOmBbNUpPRSVPQ+0dEjiY4+jpKSjwBJQsLpdOr0L+oyTDjiIlh4y0I0j8bklyfT+/zercpLHA2EMNG27QzM5mR27Aif/lCkTtrmt0CfiypU5PGfQUoo30BKSWXlzxQWzgEkycnnExs7rnGWJhQTsb36kFoBlTpBo5xJg47VgkTzQcQVTyJUjZy3bqZo6QTaTvwIs+UgFo8Xmwb1LRSgjZKVgqq76FQNyfXGcFxthv3x8P769bhcLo477jg2bmzobww2GfHqGksv+pler/cmVU9FIjnAAR5mFiXTr4PjekH2BljVDvTXMPSKTBgtNzdiMlXi84V+DxpulvIcU+1VWDuXE5e0FiVbI6FQsOSWW0if8zHEX04S31JCMW68PAmMIXwQ0DDqA90U+G7AIOaMH48UgosWLWLC6tUIHeznxHDpkGeoEXYQCi6rlbcmTGBPaioL7rmHx199FaeniUVWZ7NR7XTyyJQpcCBwX0YIOEEARQa3X8FgB6Wfa3gDbLgB6veHe1z+MNx13F0kRyYzLnIcB2ccZG/FXiIsEf/naKFHi2Mrgj85Dh16jd27bw6xZGyAotgZNGgLdnvHsO8XbCigcGMhvc/tHdb97L+BptWxYcNx1NZuCnrdbk6jZ2E5EZ5mWeyJmyEm1KRj9+4ZHDr0GrpeF7gOJ8nJ59Gt26vNDuSh7lMbvyYYmXqpgMlvuJi1FFnVPFbW3f0GvW+/G0ebgwC4Fdgcb9BRjT49Kx06PcrevffQp8SNSQefChE+MOvg8sGlnx5Hv+GTuf/+mfh8rbNVEk0dedv/PCZU/Phx4eIGbqYgMwpeeAF8Ak4eAHpLKW8XQizBah6P2xv8fdipp2hgMpHX1horlYZY8QVUfevk7O6vE509jEvkNpaJV9kqv+AjJK11kDTom150+618NnosdYG0jdPl4pwlS3h99mxWj+/O8Xc+g1e0qHm4PVRPmoRZD6XklkdEEP/eezBtGnTtDOfkgl4PvR41vAGaU0SlDlVbYNNNrd7L3xuXZl3Km6e9+T873l8Jx1YEf1F4vYdaDQJgzHBdrr0hgaChl6BNvzakZKWE9UI+XL/B4aESEzOGurotxMefSlTUUDyefNKK9uPwtDDGKVoC0ZmGRkEAdXVbOXToFXS9KWDoeh1FRfNo0+YqoqIGGnaEeZ/j9MOQYjjkgEqz0VEc1v5W9ZN8/PeYYppy1DYdBpUYUtg+DSKXjUd9cQZK7QH2uZ+h1hwg4ApIrYO2ZXDL1CRGXn34IABQ4i/nFfowg10UUkgFFVzEwzy+PQ4mD0U4ZNgGMrAjRAZt0jwU5UvqvWYEGnY8/Cv6NiKvrw1N9p8K6kadoYVuRmcUYvZGc0uHTsSvEgi99YmcAH7t3JlPx5wYJAFdZ7fz/tixXLNgAf4qNSQIAPhrA7P7MIitrUXYrciubeGRByA7sDqM7R/aJyAUoxEMhT/KJUwgeGj0Q8Tb45nQZQLtY9r/Icf5O+NYIPiTIypqOKoagdYKk0JKD05nZsjrzQf4cEGgAbrub2QNHX1Q0AATQ4bsx2xORFWtaFo9or0PreZ41Ipm7f1la0OU98vKvg3qZWg6FzdlpQuItHdFcxegrrveUNKQUGmBaivUWOFAFHSohrbN4qMw6aTfHItadDJU5tB8muz0YND/c4zVR1nNMmoswUykAgc4/TDrX9+jaUfDWx/CdySzkaso4gcUuuJiOcgIqFOQddAkMREMKctYvjyd+fOdfP6xnySKuP7kZQxLezn8WGkG50gXE79yEntOHB0e7oD6VS78agV3aKNccywaNAhPGPaPx2zmu2GD6BaTi0V6G4NBVBV0/WkhG6KeJjtZMiCM9e72jAykaoLrJ4LZCardcAjTvaCEkbCTfv5Iq8h+Kf247/hWuuaO4ahwTIb6T47Y2LFERPRDiFCOuaI4SEo6F6s1Ncwnjwyfr5Tt2y9ESl9IEJBS4vGUEC51qCgOOnWahdWahhpQh1RVB8IUiWfkPLzNn6qI9iGfV1UnQoTjuEgqq5ayeds5LF+XyR5LGTqwNRaqrMbMXVOMv71RhvhcA3QRwZw10xk+azZD71rFS99dja/WBC4M0vwrVvRJJ7F9+6WU1/8aQkfVFchzwrdrarBY4LLL4L33YN48uOACpbFZ1ghpTuAxvGgcpDsePLiYgUHKbH7xgtBmqFqGDFlNamoM114Li7+tZN5tExjc/nK8SEO6KeSugD/ZSX1FIgdfOciKISvIvXYJuF1H1NSMdLmwhDZDYPb5iLBJzCMUvJgbl1kei2TdiT3RzCZungB15iYzex2os1q58cYbjZl+11PBZoWej8DwBYZAUctVkOaFou+PcJb/PUyKiTenHEsD/VYcqxH8BaDrHvLznyc//2W83iKk9GI2x5OWdiMZGbeF9AEcDTTNxZYtpwGSzMyPMJtjQrapqlpJXt6/6dbtNRTFfkSaacN+9/7cjS6FB5GKBdpfgBj8cpDOjNdbwqpV7Q+b8jKgoOoSTciw1dAYD2SVgS4snPLs5/y4cQxutxEwHaKO46JXsLDteMQeK7RJY/vngymumN9MIygYZg1OOgWe/je0awfWQKBxu1V27nRy881RwCDgQQw2UC1wE/AmBhmzW8g+BT4EPnS8GMuUp4iNfYri4iJMJhP8PAU9/+vDmsRIDd558lzuTV1GQf8CpCrpWKHzzEITDlsmI7ZswaSHn3EXxcTQ8f33g93BAKvbzT8SY3m0zk11y/SS5oX8T2Dfa/Q/BA9kDyZr7362tm/PgxdfzJrMFitQqTUZzTSMJ5rLoIfW7jYMZ8JIfMTZ44izxbG7Yner194cfZP7MrbDWL7f9z0FtQUMSxvG7PGz6RzX+ag+fwzH6KPH0Ay67mHNml643btR1SiGDy9AVYMlITStjr177yI//3mEMJGefjsdOjyEOIIMsK67Wbu6B0NME5DWRPwZUxER7VGUSBRFRUpJXd0Wysq+4cABY39S9yJ1N3Yf1Le0cRbWsB7MAHYRTcdqWLSvF1fc+R1ud3BhNkKtZ377GYy9uC2+ay5k5bYe6K11rEow6fDBZzBxUqPBVyPq653cc8/XbNo0qtmrdRi00EoMkbmJtFxkm9C4i608TBeM1q4ZOJ3bWL9+Pd06ZSA/iUboobKkskHPT1P5+sc2nFZ9CL2HHlw/EFauz5vCY3O/CGL2NMCnKCAEiwcO5Oz770cJBAtNVRn544/8cNJJ+MKkjQBwHTKavwAGvgXO9mHumQw45GwwfIStiZA4yrgHpUsh7yMjEPwOSHQkUnBrAWo4raJjOGocKxb/H4CUGlVVv6Dr9URHj0BVw0so67oPj8doeNK0avbuvZuOHWehKHaEUNC0etzu/RQUvBnYr07btjOOGASklNTWbsavu2DQiwhgy4bR+HzFZGa+jxA2tmw5FY8nL7CKESQnnEHUnk+IrXGjYhjSbEgAf+N4qhjBokVNQQgzlqh+bBdrWLp1OD5faG66VnPw07mvMHYmeOu2BtJRYQKBNPSHNAWGJ3TF4cgJ2cRiqadbt+Vs2tTQFG9BcCayUU19FjCa5k1iZnyMoDzwih04DvgRr2c0se+8A327ha98Ay4Jb1RFkfrCdM7PfQb9Zj20iCy9rI/ahR6mtuMym/nX2WezvE8fPp85k9ypU/mlf3/qgOiDBznlpZdaDwJg5Psbd5YHjnbBxjIN22y6Fer2GpIQig32vAh9nzHkpH9DEGhoBDMrZsyqmblT5x4LAn8gjgWCvwlqajaQnT0hkG4RSOmna9eXSUkJ5fubTBFER4+gsnIpoJGf/yy1tRtIS7seszmJ0tLPKCh4ozF143B0R1EOb/4upcTvr2b79ktISbkUAJdrH35/Jd27v0Nx8afk5c0OMIWaBr/Cwjdp44IG+SPFD52rYEdjD5pGfPxUSkubZKqEMKOqEXi9heh6PVlZP3PeeY+zbNk09u/v2bid3Q4pAdq4zdYRGY4FI8Hhg77l8Ks/krpNndCG7kO1B8/SPR5JScmDwHIsFisDBtzIvn0TKC39Gb+/HliJYQrwPBCPIUP3IRcQw6OMbbYnO5H+B0l6/FSw2/H/A9TkpsZhAJ+Ej2rgTdGRrH1FeOI94IeLtsBdKyCpDpZlwD1jJSvblbOlY0f65eRgC9QCfECFzcYT551HndVK18mTufDTT0lZtYrvgW9ffx09MhJFaghAa5la1NyQ30w2bPvDkPUcRLUQaMv7EOp2NQUN3WUUFLY9CAkjQu91g9fAUSDaFs1JnU6iXXQ7rh5wNZ3iOh3V547hv8OxYvHfALruZdOmcfh8RWhaDZpWja7Xk5Mznbq6bfj9VRQUvEFu7hNUVxspte7d5waKvZEIYaGqajnbtp3Npk2jyc9/Lih/r2k1h10NSClxuXJYtaoTFksi7dvfD4DXW0CXLs+RnX0iubmPBfYZPAPWgfxmaRgFSGyWTpbSGxQEkIZEhd9fg8tlzNx79FjDZZe9zJw55zJ9+h1N+1L8nHWWMUipqp127e5BUZrnfAQq0KsCLDok746h/Jdu6H41iDmp64Yj4/LlPiyWJRx/fB0rVoymoOAGFi36isGDB6MoCoZtZTqGH0EcCldzB+vZTTN1OxQ0hhi6PDU1mF/QcengChyvVocSDf5ZbWfGcTPockMXzOVmZq6EF76BHqUQ74JTdsKq16Gzux3jzjmHV3WdCoxk1WfAII+Huo0bQVE4VFTE41YrMzAkgBOo5tPymbgLxuMuOIkfSmfQ0Z8fuL+6wfzpfA30uB/MsYbRS93u0NVL4aLglUPDF+Q6BIe+DH5ZdRjGNEdRz7KqVq7ofwUfnvEhT4x74lgQ+B/g2Irgb4Dy8kVIGZpn1nUv+/c/SHn5twE5Bw+KYiE+/hQyM99jyJA9bN58ClVVP4f9fAM8noPU1W0mMtJQ5mwJKTVqa7MZOHAdNlu7RgZSZOQAsrMnGwqlrfFbBBTbDQeydrUQ4Q9bFw7a3oAxszSZ4sjMfI+YmFFI6WfoUDdO5ybeeiuFhx66iB07VmMyfUZs7BgyMu7Gas0gN/dRvN4ioqOH0TFqKo7iG0HVSG5Thq8ygk2l4EICAAAgAElEQVQ3X0KP+z7FlloBQlK638lD/5T4fDXYbD7uvXcLmzaNo0OHh7BazVRVFaI3FmslhiaRcYZlFNASbTnU9D97dervVfjwH4m0pxTsOoWRkjvbdOfMrqP56goX9tzN3PXJRzi0pnuoYqxk7l2qc+nuN7hJ1wlq2fJ64cUXYdgw+Mc/YMEC+PJLkoVknfUxktzlmAMF6lHeTawsvY5OSe9RiyWgA2QxZvWR3WDtRZA0OjQ11BqkD/wtnifNDc6OYEkCT+g9aUCEJYIOMR2YefzMozvWMfwuOBYI/gYwBtpwrBE/paVfBBVbdd1PWdlXFBd/gKpGU1FxdIJfW7dOo1+/1VitqUFUU6MpTSUxcWqI7LSx0vgJkDgcmWRk3E1ERBa1tRvYt+9+o04hDepmiR3KbNCnrHl94Mjo3XsBkZEDG2WzVTWCxx5zcPbZx1NXtx5Ng82bT2XYsIOYzbGkpFxASsoFwTtJmgj75+FwF9P//DQ2fmRn3WXXYYmvRtehrsLKIV4CwOeTuFyFQCFvvbWUu+7yEaZOC4BJtaAwDG8QIUgym1sBwx3sQWDrQZ30t5I5bWo5/doJOm/uidcVw3DlS3aZe9JlzFjk518GuayBUdcYunM/HDpEWOTlGbN4VYWpU3GcfjrvxeeRtnU6ohmlVEXi0D2c6/qB15ynNH1eMYM5xrCSDMcYSzkJ9r8V/tjNIVRQrIbPgBqqsApgUSxckHUBp3Y9lUldJ2FSjg1N/0scu9t/A8TEnBC2QUtRjB9dyxW9rtdRUPBmiGrp4eDx5LNqVVs6d36R1NTLkdIXGGPsgVWCqXG2LqVs9EJIT78Tu70zSUlnI4QZRTHhcPQgL+8ZIxA0xBRhpJd3p3ejQ8dZxBx6jsrKnw57TlZrBhER/RqDQNN1W8nIuJnt2y8MXK+LFSviARNJSWfRpcuzmM1xTR+wp0APY3Ce8IYkts9qPr/jazxlURzAy2I+pTJQFI6IaPJrf/751oMAKpjjvEwfdJBXvj+Ex/cNZlMJ1/hzOFkuYglwCjRa6exfns3y5YJZ6oMMsfTno7NMbO9nwaNKEvKTsHnDrPiAPVIaxZC6upD3iYkJmsW7dJ2v9q9iuN8T4nwQgZtM3/4w12EHR3uo3QORXYPfSzvr6AKBBGunq1C2zcTvPojF7EQiibJGoaAwtuNY7h91/zEa6P9HHAsEfwPYbG1JT7+NgwefDtLusdu74HbvaeVTOj5f2VEeoWGKrrNnz60cOPAQkZH9SUw8MzC7Dp7C63o95VXfkZg4lfbtH0AIU9AqQlFM1NdvR1EcIb0Ete4cYhOmEBM/nn377iMv79+tnpXHk0d9/U4iI/sFva4oKomJZ1NZ+QsFBS/RtFryUVw8j5qadQwevC18mgvBU78M5SvTQNx+BfAA9wCnY7Mt5NJLm8bWffsOc8uGgRgJDu+DKD88iM0CfmniZTRqTCZ+8ftD/NQkkje1dxjqGsl3J4InMFpPmh9NKSNJYAUqTZHHBczKzw97eAs24sadT3Gzq5fABlMHfELF1mJyUCPsbLC04tZlSQBrGDty1YxBZQoNUlGWKDrEdqBnYk/uOO4Oeif35oe9P7CpaBOdYjsxuetkzOqR+1KO4X+DY8Xivwk6dPgnvXt/QULCGcTFnUzXri/Qv/8vYTt4FcVJSsolxMVNOOJ+hbDQo8f7xMaOAyxI6cHnK6S8/JsABTVc3liSkDAZIRQUxRxWumLEiCpGjKikf/+VOBw9Gl83maJRFBVVddKhwyxUNeowZ6dz6NDLoUeXOmVlX1Fa+mnYT7lcu6ioWBL2vU8+gW+/BbfbhPHzsANOhPiQa66xMGVK07YREa0UPu3AiVBvgidegloP1HnA4/XjkpL3VZVtrVzRXvYaV9bsl5lUAju5k2z64MIgwOYD5wO/tNyBomIVds5Vz2fzpf/gyjZtgn7kP1n6slNNx92Mi+pDpUJE8JF9dPiTSjsFLKENhwgVus6g5TDiMDl4d9q7bJy+kXmnzyMrJQtFKIzrNI7bht/G1B5TjwWBPxmOBYK/EWJjx9Kr18f06fMtKSkXo6p2evb8BEVxBtJEAkVxEhs7huTk82nX7u6wzmPNIaWX3btvwlg8+mheiygu/jA8JRMzut5azsSAophRFDORkYPp128FJlMMiuIgLe3GZtvY6N59DocrH5eXfxekw6TrXny+EnJyrsLnC2uhDehUVS0P+87cueGzLE6njYyMJhqoYW5zJ4asRDOYMbT5twM/hSouANR5PEZXcRhEBhhG4xaDJXALN2WBW6iMYRexGJykthg+BIqAc4bBV7fBxy92ZdycW1E++4IbvniQhAkJ5Hk8wdWjun2MiZ3FG44JVAontcLGR7YTGJz4Mm7Rio6p1MJfCECbCVj7/Zus1GHE2+MZ1nYYC85dwCndTgm//TH8KXEsNfQ3R2zsaIYO3Udx8Qf4fKXExo4lOnokQgis1lQGDdrCgQNPUFb2BSDwehvMb5rg91dTW7uGlsyf+vrt5Oe/SFratQHWkaGdnJf3LPHxJ3Pw4JNUVv6IxZJCevqdJCWdEXJ+xqrBQkrKZWhaLe3azWz2niAhYQqZmR/x/9o79/CoyjuPf35n7pncExICSUxArkoNd9FF0WoXtxbdqqBsWbVS2GrXfWptV61t3eK6KIq1Wy/F1rtWqvXWql0REFsVRQRBQe4hBEggEAIhM5nLefePcxImyUwyIZAAeT/PM8/MOeedM99zZub8zvu+v8u6dVfFPb7Gxgo2bJhJYeGPcLly2LfvTSoq7iEcrmn3vLjd8QuTJCq7axhu8vOvwDCWAcL69SOJRH6K9Rd6AFy29SgAlh55X2Kv+RKgvEULDx6mMQ2Aq1+E5eNhR7Hi2RlCybIdBANBGmnySbJ45Yfw9TMg1Quwkcnya/7AOlaUPcZo4BvZ2Sw9cIAG07RcQ0U4pAx+kH4TP8j8YUJ1zUQDXFL3GktyphPPtPsNgz+ccw3fyv33jvelOWHRKSY0zSilWLNmMnV1f28euzeMFNLSRnPw4CcJUz0MGHAfoVA1pllPTc1rhMO1GIbPvlOPNu+npOQXFBX9OO5QUSRyGKczfiS0Uor3309FqY5yEyWLg4kTDzcnzAuHDxAO78HrLeH1193MmNG2V5CVBdXVYBhBQqHdLFvWj2nTPBw8CBCE3Hdh/DXwZsf1dt1uP0otIBxeglW32GIQg/gVD1DESvrwAUF8/N+IsWwaW0H6V/u4+8M/E44xHBcMh9dvgbRWjjgNeHhkxGvcOmIyhyIRRqxYQUVjo5UWu8mP34xYkx1m2PLoifOdOFSU54v9nNl3BGNXriTQKp+R3zB4Ztgwvt2nT4fHrDkxOC4pJkQkG1jIkdubqUqpNnXpRCSKVaAeoEIpNcVeXwq8CGRjJWKZoVrfjmq6DRFhxIi/sHv3E1RVPWnVMyiYictVwPr104hG4xuCrVtvw+FIwzQbmuMRotGmHoKFaTZQXv5f9O//gzZ5jSKR+rhzGaYZYe/ehVRVPYOIu0NDkJs7jZqaP5IwZgEAg8GDH7dTZwfZsGEme/e+jIg1lzFmzP8wdepNLFwI4TC43dY18pVX9hAM7sAwUolGDzFuXB/C4aahFC/UXApvZmElomuLiKCUIiUlBcM4h/r6acB04EdYBexXsJVMslNnMrihFo8ZRgGz1v4Zsf85S4H3YvY5+WvgjzOaI5h8vfFTYDJpTiePDB7M5V98QZiYOQ3DaSWC2/wwONNxlMxADBcRHBiiSHe4eOD0IUwrsHpOV/bpwyt793LYNgYphsGZfj9TcnLa+0o0JwldHRq6DVislJorIrfZy/8Zp11AKVUWZ/29wINKqRdF5DHgBrAdtjU9gmG46N9/Nv37z25eFw4fiOueegSzTSnNeBdjEScNDRtJTT2ruVdgmhEcDm+LyOXa2vfYufNhDhxYQiRyiHheKW11+xgy5FFqal4lUR2ApimxLVt+yMGDf+fgwZU0NHwJRJp7O9u2/YT77ivk5psvY9EiyM4OMnr0ddTVvcbKlVGsoRw3Iga33/4Kc+ZcQjjcVHGhOqG+0tJSfD4fmzZtIhKZijXX4gCGAVbk9JWOJzkzOBOPfbFtfY++BGteYDqWx9C+eghFwNsqzVIEByOyCpuX19TXx00njuEBTy7+iqeZH/kTE7L6k6oaEE8fCqd8jjNmnOypoUO5OCuL3+7aRdA0mZGfz+x+/Vq00Zy8dGloSEQ2AJOUUrtFpAB4TynVJheviNQrpVJbrROs4c6+SqmIiEwA7lJK/WNHn6uHhrqfHTvms23bz5JIHZ0YES9nn70NtzsPpaKIONq4cFZUzKO8/K5OfY5hpJGePo5QqIpAYGO7UdLJkJY2ltGjPwFgw4bZVFc/26KaWjTqoLHRQ6of/vboHF5ceDGH8VPFhQTYHnefIoKI2BHIZwAfE5ugDgnzsusSrggtblebwqqxcz1wKBuW3Q8prXoFIbxwRRWL6iPUhsO8tf0jXqz3oRytogciAdzbHmXU/j+zrBDcTZbHkQLT4syYa056jlf20Xyl1G4A2xjEcTYGwCsin2LdTs1VSr2GlZnrgDpyq1kJ9E/0QSIyC5gFUFxc3EXZms5SVHQLqamjqKiYy8GDy+P0ANpHxEN29jfwePray0cMgHUzEiUSqaO8/OeJU0UnIC1tNCUlP2f16vMTtHDS3rRtaxobLd980wxRXf1MGz0OR5QDB/L505+mc/nX7yey0ArM28A5LKQSs01tgVyUWoJSh4BfYfUApmPND3jA4YSC1RxK/wBzXfuufILlNfRoYSGuSIQl/1vF+TeBqcAwBJcnhQ3n/ZWLPv2CkGnSGA3RaPqxkjSZLUqGOkR4SC3hu7FGAIH8BG6kmlOWDg2BiLwL9I2z6aed+JxipdQuERkALBGRtcDBOO0Sdk+UUguABWD1CDrx2ZpjhN8/nEOHPm0RkWwYaXYQm6LJa8gw3M0XT2vs3yAn51sMHRo/CtU0g9TXryYU2ouIm7ipotvBNAM0Nla20yJ5IwDg9ZYCVk2G+O6xkJ6+nxdeuI0Bfb/Ek38AFRWG1Azhauc0FvsXU13XNEx0LfAwR+7+vwaMxhpF7QsMhQl1cGElj1fCVZvA30GHpt7nY8btt/PFgAEMqqzklQfnUfT2r3C5fajcc/mnj1dQE24aHnNYdYSjQQjVgivdygKKwu30Mm/A4/zj/p9QGqm0ks05fDDqgU6dL83JT4eGQCl1UaJtIlItIgUxQ0NxHbeVUrvs560i8h4wEvgTkCkiTrtXUAgkSJqiORHYufNh2xPoyMXRNA+RkTER04wQCu1AxEMweGR4RKkw6en/wPDhz2PEq2eLVSgnHK610z501sa7iESsiehjRX39SjZtuoW6ug8S1FYW1q49l2AwlTfemcU9T00BgUBlNr7/mso3x8/nX1/9V6LRm4G7aRlrkArcDDyANTL6JawDJsLyYoM5E01+sQzCDvBHBMNUcaMo1g4cSNDj4YvSUibdO5/ywsmICMvr6jgUjePz7/Ba9QGcfjtvkBBQUO4s4Fv5v+GL0HzIHQ9D/gNSEnbMNacoXZ3peQPrlgf7+fXWDUQkS8SKVBGRXKzqHOuUNR6wFLiyvfdrThysC2Nbz6G6uo/w+0cwZswaXK7sFiUtRdwcPPgR69ZdTTQabDNpGY0G2L//HQ4e/AC3Ox+nM5N4AWQt00fHEiYQWNuckvpYYJpBdu580I6dMDFNA9Mu3BuJOAgEUlmw4D4A6hsycXgjODwR/KV7KPv1k2zwrbMnwyfTJuAMsNJWjD2yuB+8z3gZVTuKeSsMBhjCTVEH95YOOJLYyOawx8MvrruOoF1H03Q4qEtLY3Gt5azXYJqJw+98RZZBiD1WYJtksf6ct2DkfdoI9FK6OkcwF/ijiNyANYd1FYCIjAH+TSk1E8st4rciYmIZnrlKqaYI+/8EXhSRu4FVxDpVa044/P5hHDiwjLZDLRGqqn5PJFLD8OEvUV39HNXVzyLixOPpT23tO9TUvMqHH+ZTVPQj8vP/Bbe7H6HQLsrLf0l19TMAVFTcw9Chz7Jt251EIvsAA6XCFBT8G7m5l/L555eQ2COoszignTrBLY4u4mTFim/Qr99W1q8/m+efv51du07H427gvPNebm4nBjg8EfalriESiWD9JSK0/ps58JBNtDkwzOfzMb5kFLt/uxJP0KQKeI4ojvJy/lZaylsjRyJLl7I1J4dbp0/n1fPOa7E/BewOWedlQno60XgOINEA8TPUglOEujgF7jW9Bx1QpkmahobNfPppWXNiu7Y48flKGTduvV2KEnbuXMDmzTcnDEZrjWGkIOKif/8bycy8kPT08TidaZhmI3//e1YL752OiT9JnJFxAY2N2wgGy5Pe09tvX8tDDz1COJyCaYLXGyIvbwuPPTYWn+/I+RDcrFl7FXfc8Tr19aVYlcv8MdujnEaA//UvY6b/Brw+L4+deSbnL1qEGQohwBPAD23lqampvPvuu4wfP55nqqq4cePGZl/+JryGwZoxYxhkF1p+obqamRs2EDZN2wyZRBRWdTBxtQkeS3M42HvuuXi0K+gpTyKvIf3Na5ImJeV0vva1v5KSMhSIl3AtQihUxf79iwAIBrezffsv4hoBK4CrbSSxaTYQjdZRWfkQSoVxOtPsfVUkaQQEMMjImERa2mikRf4cBy5XDsOGPUtjY+emoy655GneeKOABQtmMH36Ou66az0LFkxqYQQAxHAxdepMsrOzcTrXAzOAfVi+EUGGcoh5rCE9msb2z7ZTPm8ek5cuxRcK4ccaSLoemGfvzzAMdtoZRqfl5VHi9eKNuWD7DYNpffo0GwGA6fn5rBw9mpsLC7kyNxdDHFZ3xXC3MAIGVmDYY4MHayPQy9HfvqZTZGb+A+PGraeg4Htxt5tmiEBgAwBfffVdQqG9bdq4XH0YO/ZLJk6sJSfnnxPsp4Ht2/8b0wwTjR5m48bvAQmSosXQFJhWUnInZWWL6ddvFg5HBobhIzf3ckaNWsGmTd9vk08pGdzugwwc+Admzx7H7Nn15OQUInJkzN0wfGRknENe3vl8/PHHfPvb38Ytb+KmmHP5Cb/jfR5hNbmEUKbC8BswZw40WDETpggrBw9m7bBhfNcwcAONjY2MHWvNJ3gMg49GjeKO4mKGp6QwJi2N3wwaxBNDh7bROszv54HTT+eCrCwccdJHCDAmLY0PR41ien5+p8+F5tRCJ53THBUZGWdTXf0cptkypYJhuPD7RxCNBqire5944/BKRUlJsXLfDxx4L7W178QdbgoENrJ79+NUVj5kTwa7MQx/wqEpESdFRbdRWTkPr3cADoefQYN+zaBBv475bJNAYHMHR+ckLW0M9fWr7d5M7PBpFNM8zJYttzBy5Pvs2PEA1dXPIeKgb98bKCy8GRGhb9++LFy4kJ2TdrLl1i2YDUeGc8QtZF2UhSvTBfbd/srBg7ns7rup8/sRpXBGo2Teey9XnHUWRUVFze9Nczr5WUkJPysp6eAYLIKmiRln+NcAvpmTw1mpqW3fpOl16B6B5qjo02cqLlcWsfcSIm58vtPJzEw+IMmqcRz/fiQc3sumTTfFeASFEhoBw/AyePACTjvtJzidWRw6tALTjDcBKvh8HRVDj1BfvxqHww7EisOhQytxOPyUlPyc8eM3Mm7ceoqLb23jIttvdj/yZ+RjeA0cGQ6MFIPUslSGPWvXYBgzhgaPh4vuv5+dffpQn5LCIb+f2vR0DsyZwx3z53egtX0uzcmJm+TPYxg6T5CmGW0INEeFw+Fj1KiPycu7EsNIweFIo2/f6ykrW4aI4HD4yMiYSOu5BBE3eXnTmpcNw82AAf/TjnvoEbzegW32Z+HE7e4LKD777GxCod0EAuUoFUEpk4aGjVRUzGPHjgcJBDbjcnWcLVOpoO25FB+nM6PDfQCIIQx5bAjjN49n+PPDGbV8FKM/Ho0r23axnTuXN847j6ij7XEJ8Hx14vxFyTA4JYVbi4pIMQwMe58phsGsfv0oS0vr0r41pw56aEhz1Hg8BQwf/oeE24cMeYJVqyYQjdYTjR7G4fDj8RRTWnpPi3b9+38fj6eQ7dvvpr7+czuIqyl9tQ/DSCES2Udm5iSysi5k/fpraekNFCEYLGfDhhua1zQ0rEGpKNu330NFxT32Pg22bbsDhyO5i/gRDGJdL1sX0EkGT38Pnv5x5jhGjqQmL49wHEPQaBhUh7uWNwlgTmkpU3JyeGHPHkylmJaXxzkZnT0HmlMZ7T6qOa5Eo0Fqal4hENhCaupZ5OR8s9m1NB6mGWHPnheoqnoWw3BTUPA9cnMvIxKpo6JiLllZF+JyFfDZZ+NQKnEqiqYSm1999Z1OupzG25fXdrZxoVQj+fnfYciQBe0eR9IoxRcDBjDu0UcJtAoeS21o4I/jx3OJHsLRHCMSuY9qQ6A5qaipeZ3a2qU4nZlUVT1JY2OFvUXweE4jFKqyDYRwJI6ga79xhyOdjIzzqa39P0RcdtqM8fTvfxO5uf+cMHVG0pSWct3Uqbw8aRKHfVaVmZRAgPHbt/Pu7NkYccb4NZqjQRsCzSnJhx+WEAq1Tf3scGSRk3Mpe/Y8T6KI2s4g4mkTDyHixecbwKhRH+F0ph/9zl96CfP66/njuHE8fumlhJxOZixdynXXX497ypQuKtdojqADyjSnJGed9Q7Q9o7cqjF8DYbRcexBMsQLilMqSCCwhe3b/7trO7/qKoznnuPqqioW33knf3v8cWbdcIM2AppuQ/cINCc9DQ2b2bbtZxw48B4eTz+Ki28jL88qdr9584/YtesRq14vAphkZl5MMFhOY+NOTDNeNvTO4fEUM2FC/II0Gs2JxPEqTKPR9DgpKadzxhnxvZcGDryfffv+Yl/0D5OWNpozzngRpzOdYLCSTz4Z1OlCOK2JV29ZozmZ0ENDmlMaEaGsbBnp6eMRcXP48DoikTqUMvF6Cxky5PcYhg+HIw2HIw3r3ij5v4Vh+CgomHnc9Gs03YHuEWhOeTyevpSVLSYc3o9pBnG7C5qjbfPzp5OdfQn79/8VEFJTy1i16lwikTqOxDKk0KfPFQQCmzl48BNAEDEQcZGRcS5FRbf02LFpNMcCbQg0vQarAlq89Vnk51/TvDxmzCrKy++itnYRLlceRUU/Ji9vml18Psz+/W8RDO4gPX0c6enjuku+RnPc0IZAo2mF11vM0KFPxN1mGC5ycy/rZkUazfFFzxFoNBpNL0cbAo1Go+nlaEOg0Wg0vRxtCDQajaaX0yVDICLZIrJIRDbZz1lx2lwgIqtjHkERudze9pSIbIvZVtYVPRqNRqPpPF3tEdwGLFZKDQIW28stUEotVUqVKaXKgAuBBuCdmCY/btqulFrdRT0ajUaj6SRdNQSXAU/br58GLu+g/ZXA20qphi5+rkaj0WiOEV1KOiciB5RSmTHLtUqpNsNDMduXAPOVUn+xl58CJgCN2D0KFS/No9V2FjDLXhwCbDhq4ceeXKCmp0V0kpNN88mmF7Tm7kJrTp7TlFJtarV2aAhE5F2gb5xNPwWeTtYQiEgBsAbop5QKx6yrwsojvADYopT6ZXLHc+IgIp/Gy+h3InOyaT7Z9ILW3F1ozV2nw8hipdRFibaJSLWIFCildtsX9T3t7Goq8GqTEbD3vdt+2SgiTwK3Jqlbo9FoNMeIrs4RvAFca7++Fni9nbbXAC1yBdvGA7EygF0OfNFFPRqNRqPpJF01BHOBi0VkE3CxvYyIjBGR3zU1EpESoAhY1ur9z4vIWmAt1pjZ3V3U01Ms6GkBR8HJpvlk0wtac3ehNXeRk7JCmUaj0WiOHTqyWKPRaHo52hBoNBpNL0cbgqMgmdQadrtiEXlHRNaLyDp7rqRHSFaz3TZdRHaKyG+6U2MrDcmkLykTkY9E5EsRWSMi03pI62QR2SAim0WkTXS9iHhEZKG9/eOe/B3EaOpI8y32b3aNiCwWkdN6QmcrTe1qjml3pYgoEelx98xkNIvIVPtcfykiL3S3RgCUUvrRyQdwH1bwG1hpNe5N0O494GL7dSqQcqJrtrc/BLwA/OZE1gsMBgbZr/sBu4HMbtbpALYAA7DiYT4HhrdqcyPwmP36amBhT53XTmi+oOn3Cnz/ZNBst0sD3geWA2NOdM3AIGAVkGUv5/WEVt0jODo6TK0hIsMBp1JqEYBSql71bGqNpNKBiMhoIJ+W+aB6gg71KqU2KqU22a93YcWxtImaPM6MAzYrpbYqpULAi1jaY4k9lpeBr0tT0eSeoUPNysoR1vR7XQ4UdrPG1iRzngHmYN1EBLtTXAKS0fw94GGlVC2AUqq9WKzjhjYER0e+soPh7Oe8OG0GAwdE5BURWSUi80TE0a0qW9KhZhExgAeAH3eztngkc46bEZFxWHddW7pBWyz9gR0xy5X2urhtlFIRoA7I6RZ18UlGcyw3AG8fV0Ud06FmERkJFCk7hc0JQDLneTAwWEQ+EJHlIjK529TFoGsWJ6CD1BrJ4AQmAiOBCmAhcB3w+2OhLx7HQPONwFtKqR3dccN6DPQ27acAeBa4VillHgttnfn4OOta+2Qn06Y7SVqPiHwHGAOcf1wVdUy7mu2bmAex/mMnCsmcZyfW8NAkrF7X30TkTKXUgeOsrY0ITRxU11NrVAKrlFJb7fe8BpzNcTQEx0DzBGCiiNyINafhFpF6pVTCibke1ouIpANvAncqpZYfD50dUIkVLNlEIbArQZtKEXECGcD+7pEXl2Q0IyIXYRnl81WCZJDdSEea04Azgffsm5i+wBsiMkUp9Wm3qWxJsr+N5cpKvbNNRDZgGYYV3SPRQg8NHR3JpNZYAWSJSNOY9YXAum7QlogONSul/kUpVayUKsHK+/TM8TICSdChXhFxA69i6XypG7XFsgIYJCKltp6rsbTHEnssVwJLlEhU/f4AAADtSURBVD0z2EN0qNkeZvktMKWnxq1b0a5mpVSdUipXKVVi/36XY2nvKSMAyf02XsOamEdEcrGGirZ2q0rQXkNH88Aa310MbLKfs+31Y4DfxbS7GCvj6lrgKcB9omuOaX8dPes11KFe4DtAGFgd8yjrAa3/BGzEmp/4qb3ul1gXIgAv8BKwGfgEGNBT57UTmt8FqmPO6xsnuuZWbd+jh72GkjzPAszHuklcC1zdEzp1igmNRqPp5eihIY1Go+nlaEOg0Wg0vRxtCDQajaaXow2BRqPR9HK0IdBoNJpejjYEGo1G08vRhkCj0Wh6Of8P8XVgJIxQyXwAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(Zs[:,0], Zs[:,1], c=c)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Let's implement `AE2` extending the above by adding a non-linear activation function (try `Sigmoid`)." ] }, { "cell_type": "code", "execution_count": 202, "metadata": {}, "outputs": [], "source": [ "class AE2(nn.Module):\n", " \n", " def __init__(self, input_size=784, hidden_size=16):\n", " '''\n", " In the initializer we setup model parameters/layers.\n", " '''\n", " super(AE2, self).__init__() \n", "\n", " self.input_size = input_size\n", " self.hidden_size = hidden_size\n", " \n", " # input layer; from x -> z\n", " self.i = nn.Linear(self.input_size, self.hidden_size)\n", " \n", " self.a = nn.Sigmoid()\n", " \n", " # output layer\n", " self.o = nn.Linear(self.hidden_size, self.input_size)\n", " \n", "\n", " def forward(self, X, return_z=False):\n", " z = self.a(self.i(X))\n", " if return_z:\n", " return z\n", " return self.o(z)" ] }, { "cell_type": "code", "execution_count": 203, "metadata": {}, "outputs": [], "source": [ "auto2 = AE2()\n", "optimizer = optim.SGD(auto2.parameters(), lr=0.001, momentum=0.9)" ] }, { "cell_type": "code", "execution_count": 204, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "epoch: 0, batch: 0 // loss: 0.309\n", "epoch: 0, batch: 100 // loss: 0.292\n", "epoch: 0, batch: 200 // loss: 0.255\n", "epoch: 0, batch: 300 // loss: 0.236\n", "epoch: 0, batch: 400 // loss: 0.238\n", "epoch: 0, batch: 500 // loss: 0.233\n", "epoch: 0, batch: 600 // loss: 0.235\n", "epoch: 0, batch: 700 // loss: 0.242\n", "epoch: 0, batch: 800 // loss: 0.213\n", "epoch: 0, batch: 900 // loss: 0.255\n", "epoch: 0, batch: 1000 // loss: 0.230\n", "epoch: 0, batch: 1100 // loss: 0.260\n", "epoch: 0, batch: 1200 // loss: 0.204\n", "epoch: 0, batch: 1300 // loss: 0.248\n", "epoch: 0, batch: 1400 // loss: 0.205\n", "epoch: 0, batch: 1500 // loss: 0.204\n", "epoch: 0, batch: 1600 // loss: 0.234\n", "epoch: 0, batch: 1700 // loss: 0.219\n", "epoch: 0, batch: 1800 // loss: 0.253\n", "epoch: 0, batch: 1900 // loss: 0.223\n", "epoch: 0, batch: 2000 // loss: 0.197\n", "epoch: 0, batch: 2100 // loss: 0.197\n", "epoch: 0, batch: 2200 // loss: 0.244\n", "epoch: 0, batch: 2300 // loss: 0.216\n", "epoch: 0, batch: 2400 // loss: 0.168\n", "epoch: 0, batch: 2500 // loss: 0.184\n", "epoch: 0, batch: 2600 // loss: 0.233\n", "epoch: 0, batch: 2700 // loss: 0.183\n", "epoch: 0, batch: 2800 // loss: 0.236\n", "epoch: 0, batch: 2900 // loss: 0.172\n", "epoch: 0, batch: 3000 // loss: 0.190\n", "epoch: 0, batch: 3100 // loss: 0.226\n", "epoch: 0, batch: 3200 // loss: 0.164\n", "epoch: 0, batch: 3300 // loss: 0.192\n", "epoch: 0, batch: 3400 // loss: 0.194\n", "epoch: 0, batch: 3500 // loss: 0.205\n", "epoch: 0, batch: 3600 // loss: 0.203\n", "epoch: 0, batch: 3700 // loss: 0.224\n", "\n", "epoch: 1, batch: 0 // loss: 0.204\n", "epoch: 1, batch: 100 // loss: 0.213\n", "epoch: 1, batch: 200 // loss: 0.194\n", "epoch: 1, batch: 300 // loss: 0.182\n", "epoch: 1, batch: 400 // loss: 0.191\n", "epoch: 1, batch: 500 // loss: 0.189\n", "epoch: 1, batch: 600 // loss: 0.193\n", "epoch: 1, batch: 700 // loss: 0.201\n", "epoch: 1, batch: 800 // loss: 0.176\n", "epoch: 1, batch: 900 // loss: 0.217\n", "epoch: 1, batch: 1000 // loss: 0.193\n", "epoch: 1, batch: 1100 // loss: 0.222\n", "epoch: 1, batch: 1200 // loss: 0.171\n", "epoch: 1, batch: 1300 // loss: 0.212\n", "epoch: 1, batch: 1400 // loss: 0.172\n", "epoch: 1, batch: 1500 // loss: 0.172\n", "epoch: 1, batch: 1600 // loss: 0.199\n", "epoch: 1, batch: 1700 // loss: 0.186\n", "epoch: 1, batch: 1800 // loss: 0.217\n", "epoch: 1, batch: 1900 // loss: 0.189\n", "epoch: 1, batch: 2000 // loss: 0.166\n", "epoch: 1, batch: 2100 // loss: 0.167\n", "epoch: 1, batch: 2200 // loss: 0.209\n", "epoch: 1, batch: 2300 // loss: 0.184\n", "epoch: 1, batch: 2400 // loss: 0.141\n", "epoch: 1, batch: 2500 // loss: 0.154\n", "epoch: 1, batch: 2600 // loss: 0.198\n", "epoch: 1, batch: 2700 // loss: 0.154\n", "epoch: 1, batch: 2800 // loss: 0.201\n", "epoch: 1, batch: 2900 // loss: 0.145\n", "epoch: 1, batch: 3000 // loss: 0.160\n", "epoch: 1, batch: 3100 // loss: 0.191\n", "epoch: 1, batch: 3200 // loss: 0.138\n", "epoch: 1, batch: 3300 // loss: 0.161\n", "epoch: 1, batch: 3400 // loss: 0.162\n", "epoch: 1, batch: 3500 // loss: 0.171\n", "epoch: 1, batch: 3600 // loss: 0.171\n", "epoch: 1, batch: 3700 // loss: 0.189\n", "\n", "epoch: 2, batch: 0 // loss: 0.174\n", "epoch: 2, batch: 100 // loss: 0.178\n", "epoch: 2, batch: 200 // loss: 0.163\n", "epoch: 2, batch: 300 // loss: 0.153\n", "epoch: 2, batch: 400 // loss: 0.160\n", "epoch: 2, batch: 500 // loss: 0.156\n", "epoch: 2, batch: 600 // loss: 0.160\n", "epoch: 2, batch: 700 // loss: 0.167\n", "epoch: 2, batch: 800 // loss: 0.147\n", "epoch: 2, batch: 900 // loss: 0.181\n", "epoch: 2, batch: 1000 // loss: 0.158\n", "epoch: 2, batch: 1100 // loss: 0.183\n", "epoch: 2, batch: 1200 // loss: 0.143\n", "epoch: 2, batch: 1300 // loss: 0.176\n", "epoch: 2, batch: 1400 // loss: 0.142\n", "epoch: 2, batch: 1500 // loss: 0.142\n", "epoch: 2, batch: 1600 // loss: 0.164\n", "epoch: 2, batch: 1700 // loss: 0.153\n", "epoch: 2, batch: 1800 // loss: 0.178\n", "epoch: 2, batch: 1900 // loss: 0.155\n", "epoch: 2, batch: 2000 // loss: 0.136\n", "epoch: 2, batch: 2100 // loss: 0.139\n", "epoch: 2, batch: 2200 // loss: 0.172\n", "epoch: 2, batch: 2300 // loss: 0.152\n", "epoch: 2, batch: 2400 // loss: 0.116\n", "epoch: 2, batch: 2500 // loss: 0.126\n", "epoch: 2, batch: 2600 // loss: 0.161\n", "epoch: 2, batch: 2700 // loss: 0.125\n", "epoch: 2, batch: 2800 // loss: 0.165\n", "epoch: 2, batch: 2900 // loss: 0.118\n", "epoch: 2, batch: 3000 // loss: 0.130\n", "epoch: 2, batch: 3100 // loss: 0.154\n", "epoch: 2, batch: 3200 // loss: 0.113\n", "epoch: 2, batch: 3300 // loss: 0.129\n", "epoch: 2, batch: 3400 // loss: 0.130\n", "epoch: 2, batch: 3500 // loss: 0.137\n", "epoch: 2, batch: 3600 // loss: 0.139\n", "epoch: 2, batch: 3700 // loss: 0.153\n", "\n", "epoch: 3, batch: 0 // loss: 0.144\n", "epoch: 3, batch: 100 // loss: 0.143\n", "epoch: 3, batch: 200 // loss: 0.134\n", "epoch: 3, batch: 300 // loss: 0.126\n", "epoch: 3, batch: 400 // loss: 0.130\n", "epoch: 3, batch: 500 // loss: 0.125\n", "epoch: 3, batch: 600 // loss: 0.127\n", "epoch: 3, batch: 700 // loss: 0.133\n", "epoch: 3, batch: 800 // loss: 0.120\n", "epoch: 3, batch: 900 // loss: 0.147\n", "epoch: 3, batch: 1000 // loss: 0.125\n", "epoch: 3, batch: 1100 // loss: 0.145\n", "epoch: 3, batch: 1200 // loss: 0.116\n", "epoch: 3, batch: 1300 // loss: 0.141\n", "epoch: 3, batch: 1400 // loss: 0.114\n", "epoch: 3, batch: 1500 // loss: 0.115\n", "epoch: 3, batch: 1600 // loss: 0.132\n", "epoch: 3, batch: 1700 // loss: 0.124\n", "epoch: 3, batch: 1800 // loss: 0.142\n", "epoch: 3, batch: 1900 // loss: 0.125\n", "epoch: 3, batch: 2000 // loss: 0.110\n", "epoch: 3, batch: 2100 // loss: 0.115\n", "epoch: 3, batch: 2200 // loss: 0.139\n", "epoch: 3, batch: 2300 // loss: 0.123\n", "epoch: 3, batch: 2400 // loss: 0.096\n", "epoch: 3, batch: 2500 // loss: 0.102\n", "epoch: 3, batch: 2600 // loss: 0.129\n", "epoch: 3, batch: 2700 // loss: 0.101\n", "epoch: 3, batch: 2800 // loss: 0.133\n", "epoch: 3, batch: 2900 // loss: 0.096\n", "epoch: 3, batch: 3000 // loss: 0.106\n", "epoch: 3, batch: 3100 // loss: 0.122\n", "epoch: 3, batch: 3200 // loss: 0.094\n", "epoch: 3, batch: 3300 // loss: 0.104\n", "epoch: 3, batch: 3400 // loss: 0.103\n", "epoch: 3, batch: 3500 // loss: 0.109\n", "epoch: 3, batch: 3600 // loss: 0.114\n", "epoch: 3, batch: 3700 // loss: 0.124\n", "\n", "epoch: 4, batch: 0 // loss: 0.120\n", "epoch: 4, batch: 100 // loss: 0.115\n", "epoch: 4, batch: 200 // loss: 0.112\n", "epoch: 4, batch: 300 // loss: 0.105\n", "epoch: 4, batch: 400 // loss: 0.108\n", "epoch: 4, batch: 500 // loss: 0.101\n", "epoch: 4, batch: 600 // loss: 0.103\n", "epoch: 4, batch: 700 // loss: 0.108\n", "epoch: 4, batch: 800 // loss: 0.101\n", "epoch: 4, batch: 900 // loss: 0.121\n", "epoch: 4, batch: 1000 // loss: 0.100\n", "epoch: 4, batch: 1100 // loss: 0.117\n", "epoch: 4, batch: 1200 // loss: 0.097\n", "epoch: 4, batch: 1300 // loss: 0.116\n", "epoch: 4, batch: 1400 // loss: 0.095\n", "epoch: 4, batch: 1500 // loss: 0.096\n", "epoch: 4, batch: 1600 // loss: 0.109\n", "epoch: 4, batch: 1700 // loss: 0.104\n", "epoch: 4, batch: 1800 // loss: 0.116\n", "epoch: 4, batch: 1900 // loss: 0.104\n", "epoch: 4, batch: 2000 // loss: 0.092\n", "epoch: 4, batch: 2100 // loss: 0.098\n", "epoch: 4, batch: 2200 // loss: 0.117\n", "epoch: 4, batch: 2300 // loss: 0.104\n", "epoch: 4, batch: 2400 // loss: 0.084\n", "epoch: 4, batch: 2500 // loss: 0.086\n", "epoch: 4, batch: 2600 // loss: 0.108\n", "epoch: 4, batch: 2700 // loss: 0.086\n", "epoch: 4, batch: 2800 // loss: 0.112\n", "epoch: 4, batch: 2900 // loss: 0.082\n", "epoch: 4, batch: 3000 // loss: 0.090\n", "epoch: 4, batch: 3100 // loss: 0.102\n", "epoch: 4, batch: 3200 // loss: 0.082\n", "epoch: 4, batch: 3300 // loss: 0.088\n", "epoch: 4, batch: 3400 // loss: 0.086\n", "epoch: 4, batch: 3500 // loss: 0.091\n", "epoch: 4, batch: 3600 // loss: 0.098\n", "epoch: 4, batch: 3700 // loss: 0.105\n", "\n", "epoch: 5, batch: 0 // loss: 0.105\n", "epoch: 5, batch: 100 // loss: 0.098\n", "epoch: 5, batch: 200 // loss: 0.098\n", "epoch: 5, batch: 300 // loss: 0.092\n", "epoch: 5, batch: 400 // loss: 0.094\n", "epoch: 5, batch: 500 // loss: 0.086\n", "epoch: 5, batch: 600 // loss: 0.089\n", "epoch: 5, batch: 700 // loss: 0.093\n", "epoch: 5, batch: 800 // loss: 0.089\n", "epoch: 5, batch: 900 // loss: 0.105\n", "epoch: 5, batch: 1000 // loss: 0.086\n", "epoch: 5, batch: 1100 // loss: 0.099\n", "epoch: 5, batch: 1200 // loss: 0.087\n", "epoch: 5, batch: 1300 // loss: 0.100\n", "epoch: 5, batch: 1400 // loss: 0.084\n", "epoch: 5, batch: 1500 // loss: 0.086\n", "epoch: 5, batch: 1600 // loss: 0.095\n", "epoch: 5, batch: 1700 // loss: 0.092\n", "epoch: 5, batch: 1800 // loss: 0.100\n", "epoch: 5, batch: 1900 // loss: 0.091\n", "epoch: 5, batch: 2000 // loss: 0.083\n", "epoch: 5, batch: 2100 // loss: 0.089\n", "epoch: 5, batch: 2200 // loss: 0.103\n", "epoch: 5, batch: 2300 // loss: 0.093\n", "epoch: 5, batch: 2400 // loss: 0.078\n", "epoch: 5, batch: 2500 // loss: 0.078\n", "epoch: 5, batch: 2600 // loss: 0.095\n", "epoch: 5, batch: 2700 // loss: 0.078\n", "epoch: 5, batch: 2800 // loss: 0.099\n", "epoch: 5, batch: 2900 // loss: 0.075\n", "epoch: 5, batch: 3000 // loss: 0.081\n", "epoch: 5, batch: 3100 // loss: 0.090\n", "epoch: 5, batch: 3200 // loss: 0.076\n", "epoch: 5, batch: 3300 // loss: 0.079\n", "epoch: 5, batch: 3400 // loss: 0.077\n", "epoch: 5, batch: 3500 // loss: 0.081\n", "epoch: 5, batch: 3600 // loss: 0.089\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 5, batch: 3700 // loss: 0.094\n", "\n", "epoch: 6, batch: 0 // loss: 0.097\n", "epoch: 6, batch: 100 // loss: 0.088\n", "epoch: 6, batch: 200 // loss: 0.091\n", "epoch: 6, batch: 300 // loss: 0.085\n", "epoch: 6, batch: 400 // loss: 0.087\n", "epoch: 6, batch: 500 // loss: 0.078\n", "epoch: 6, batch: 600 // loss: 0.080\n", "epoch: 6, batch: 700 // loss: 0.084\n", "epoch: 6, batch: 800 // loss: 0.083\n", "epoch: 6, batch: 900 // loss: 0.096\n", "epoch: 6, batch: 1000 // loss: 0.077\n", "epoch: 6, batch: 1100 // loss: 0.089\n", "epoch: 6, batch: 1200 // loss: 0.081\n", "epoch: 6, batch: 1300 // loss: 0.092\n", "epoch: 6, batch: 1400 // loss: 0.078\n", "epoch: 6, batch: 1500 // loss: 0.081\n", "epoch: 6, batch: 1600 // loss: 0.088\n", "epoch: 6, batch: 1700 // loss: 0.085\n", "epoch: 6, batch: 1800 // loss: 0.092\n", "epoch: 6, batch: 1900 // loss: 0.085\n", "epoch: 6, batch: 2000 // loss: 0.078\n", "epoch: 6, batch: 2100 // loss: 0.085\n", "epoch: 6, batch: 2200 // loss: 0.096\n", "epoch: 6, batch: 2300 // loss: 0.087\n", "epoch: 6, batch: 2400 // loss: 0.075\n", "epoch: 6, batch: 2500 // loss: 0.073\n", "epoch: 6, batch: 2600 // loss: 0.088\n", "epoch: 6, batch: 2700 // loss: 0.073\n", "epoch: 6, batch: 2800 // loss: 0.092\n", "epoch: 6, batch: 2900 // loss: 0.071\n", "epoch: 6, batch: 3000 // loss: 0.077\n", "epoch: 6, batch: 3100 // loss: 0.083\n", "epoch: 6, batch: 3200 // loss: 0.073\n", "epoch: 6, batch: 3300 // loss: 0.075\n", "epoch: 6, batch: 3400 // loss: 0.072\n", "epoch: 6, batch: 3500 // loss: 0.076\n", "epoch: 6, batch: 3600 // loss: 0.084\n", "epoch: 6, batch: 3700 // loss: 0.088\n", "\n", "epoch: 7, batch: 0 // loss: 0.092\n", "epoch: 7, batch: 100 // loss: 0.083\n", "epoch: 7, batch: 200 // loss: 0.086\n", "epoch: 7, batch: 300 // loss: 0.082\n", "epoch: 7, batch: 400 // loss: 0.083\n", "epoch: 7, batch: 500 // loss: 0.073\n", "epoch: 7, batch: 600 // loss: 0.076\n", "epoch: 7, batch: 700 // loss: 0.079\n", "epoch: 7, batch: 800 // loss: 0.080\n", "epoch: 7, batch: 900 // loss: 0.090\n", "epoch: 7, batch: 1000 // loss: 0.073\n", "epoch: 7, batch: 1100 // loss: 0.083\n", "epoch: 7, batch: 1200 // loss: 0.079\n", "epoch: 7, batch: 1300 // loss: 0.087\n", "epoch: 7, batch: 1400 // loss: 0.075\n", "epoch: 7, batch: 1500 // loss: 0.078\n", "epoch: 7, batch: 1600 // loss: 0.084\n", "epoch: 7, batch: 1700 // loss: 0.081\n", "epoch: 7, batch: 1800 // loss: 0.087\n", "epoch: 7, batch: 1900 // loss: 0.081\n", "epoch: 7, batch: 2000 // loss: 0.075\n", "epoch: 7, batch: 2100 // loss: 0.083\n", "epoch: 7, batch: 2200 // loss: 0.091\n", "epoch: 7, batch: 2300 // loss: 0.084\n", "epoch: 7, batch: 2400 // loss: 0.073\n", "epoch: 7, batch: 2500 // loss: 0.071\n", "epoch: 7, batch: 2600 // loss: 0.084\n", "epoch: 7, batch: 2700 // loss: 0.071\n", "epoch: 7, batch: 2800 // loss: 0.088\n", "epoch: 7, batch: 2900 // loss: 0.069\n", "epoch: 7, batch: 3000 // loss: 0.074\n", "epoch: 7, batch: 3100 // loss: 0.079\n", "epoch: 7, batch: 3200 // loss: 0.072\n", "epoch: 7, batch: 3300 // loss: 0.072\n", "epoch: 7, batch: 3400 // loss: 0.069\n", "epoch: 7, batch: 3500 // loss: 0.072\n", "epoch: 7, batch: 3600 // loss: 0.081\n", "epoch: 7, batch: 3700 // loss: 0.085\n", "\n", "epoch: 8, batch: 0 // loss: 0.089\n", "epoch: 8, batch: 100 // loss: 0.080\n", "epoch: 8, batch: 200 // loss: 0.084\n", "epoch: 8, batch: 300 // loss: 0.080\n", "epoch: 8, batch: 400 // loss: 0.081\n", "epoch: 8, batch: 500 // loss: 0.071\n", "epoch: 8, batch: 600 // loss: 0.073\n", "epoch: 8, batch: 700 // loss: 0.076\n", "epoch: 8, batch: 800 // loss: 0.078\n", "epoch: 8, batch: 900 // loss: 0.087\n", "epoch: 8, batch: 1000 // loss: 0.070\n", "epoch: 8, batch: 1100 // loss: 0.079\n", "epoch: 8, batch: 1200 // loss: 0.077\n", "epoch: 8, batch: 1300 // loss: 0.084\n", "epoch: 8, batch: 1400 // loss: 0.074\n", "epoch: 8, batch: 1500 // loss: 0.077\n", "epoch: 8, batch: 1600 // loss: 0.081\n", "epoch: 8, batch: 1700 // loss: 0.079\n", "epoch: 8, batch: 1800 // loss: 0.084\n", "epoch: 8, batch: 1900 // loss: 0.079\n", "epoch: 8, batch: 2000 // loss: 0.074\n", "epoch: 8, batch: 2100 // loss: 0.081\n", "epoch: 8, batch: 2200 // loss: 0.089\n", "epoch: 8, batch: 2300 // loss: 0.082\n", "epoch: 8, batch: 2400 // loss: 0.072\n", "epoch: 8, batch: 2500 // loss: 0.070\n", "epoch: 8, batch: 2600 // loss: 0.081\n", "epoch: 8, batch: 2700 // loss: 0.070\n", "epoch: 8, batch: 2800 // loss: 0.085\n", "epoch: 8, batch: 2900 // loss: 0.068\n", "epoch: 8, batch: 3000 // loss: 0.072\n", "epoch: 8, batch: 3100 // loss: 0.077\n", "epoch: 8, batch: 3200 // loss: 0.071\n", "epoch: 8, batch: 3300 // loss: 0.070\n", "epoch: 8, batch: 3400 // loss: 0.068\n", "epoch: 8, batch: 3500 // loss: 0.070\n", "epoch: 8, batch: 3600 // loss: 0.079\n", "epoch: 8, batch: 3700 // loss: 0.082\n", "\n", "epoch: 9, batch: 0 // loss: 0.088\n", "epoch: 9, batch: 100 // loss: 0.078\n", "epoch: 9, batch: 200 // loss: 0.082\n", "epoch: 9, batch: 300 // loss: 0.079\n", "epoch: 9, batch: 400 // loss: 0.079\n", "epoch: 9, batch: 500 // loss: 0.069\n", "epoch: 9, batch: 600 // loss: 0.071\n", "epoch: 9, batch: 700 // loss: 0.074\n", "epoch: 9, batch: 800 // loss: 0.077\n", "epoch: 9, batch: 900 // loss: 0.085\n", "epoch: 9, batch: 1000 // loss: 0.069\n", "epoch: 9, batch: 1100 // loss: 0.077\n", "epoch: 9, batch: 1200 // loss: 0.076\n", "epoch: 9, batch: 1300 // loss: 0.082\n", "epoch: 9, batch: 1400 // loss: 0.072\n", "epoch: 9, batch: 1500 // loss: 0.076\n", "epoch: 9, batch: 1600 // loss: 0.080\n", "epoch: 9, batch: 1700 // loss: 0.077\n", "epoch: 9, batch: 1800 // loss: 0.082\n", "epoch: 9, batch: 1900 // loss: 0.077\n", "epoch: 9, batch: 2000 // loss: 0.073\n", "epoch: 9, batch: 2100 // loss: 0.080\n", "epoch: 9, batch: 2200 // loss: 0.087\n", "epoch: 9, batch: 2300 // loss: 0.080\n", "epoch: 9, batch: 2400 // loss: 0.072\n", "epoch: 9, batch: 2500 // loss: 0.069\n", "epoch: 9, batch: 2600 // loss: 0.079\n", "epoch: 9, batch: 2700 // loss: 0.069\n", "epoch: 9, batch: 2800 // loss: 0.084\n", "epoch: 9, batch: 2900 // loss: 0.068\n", "epoch: 9, batch: 3000 // loss: 0.071\n", "epoch: 9, batch: 3100 // loss: 0.075\n", "epoch: 9, batch: 3200 // loss: 0.071\n", "epoch: 9, batch: 3300 // loss: 0.069\n", "epoch: 9, batch: 3400 // loss: 0.067\n", "epoch: 9, batch: 3500 // loss: 0.068\n", "epoch: 9, batch: 3600 // loss: 0.077\n", "epoch: 9, batch: 3700 // loss: 0.081\n" ] } ], "source": [ "train_AE(X, X, auto2, optimizer, loss_function)" ] }, { "cell_type": "code", "execution_count": 205, "metadata": {}, "outputs": [], "source": [ "Zs = auto2(X[:5000].float(), return_z=True).detach().numpy()" ] }, { "cell_type": "code", "execution_count": 206, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 206, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(Zs[:,0], Zs[:,1], c=c)" ] }, { "cell_type": "code", "execution_count": 207, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(5000, 16)" ] }, "execution_count": 207, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Zs.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### TODO 3\n", "\n", "*Denoising* auto-encoder. Now let's take as our target *corrupted* versions of the inputs. To create a corrupt version we will perturb the input pixel values by some random noise." ] }, { "cell_type": "code", "execution_count": 208, "metadata": {}, "outputs": [], "source": [ "def corrupt(x, var=0.01):\n", " return x + np.random.normal(np.zeros(x.shape), var)" ] }, { "cell_type": "code", "execution_count": 209, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([0., 0., 0., 0., 0., 0., 0., 0., 0., 0.], dtype=torch.float64)" ] }, "execution_count": 209, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X[0,:10]" ] }, { "cell_type": "code", "execution_count": 210, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor([ 0.0073, 0.0166, -0.0076, 0.0072, 0.0170, 0.0171, 0.0167, 0.0069,\n", " 0.0050, 0.0150], dtype=torch.float64)" ] }, "execution_count": 210, "metadata": {}, "output_type": "execute_result" } ], "source": [ "corrupt(X[0])[:10]" ] }, { "cell_type": "code", "execution_count": 211, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 211, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow(np.asarray(X[0].reshape((28,28))), cmap='gray')" ] }, { "cell_type": "code", "execution_count": 212, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 212, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow(np.asarray(corrupt(X[0], var=0.1).reshape((28,28))), cmap='gray')" ] }, { "cell_type": "code", "execution_count": 213, "metadata": {}, "outputs": [], "source": [ "X_corrupt = corrupt(X)" ] }, { "cell_type": "code", "execution_count": 214, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "epoch: 0, batch: 0 // loss: 0.306\n", "epoch: 0, batch: 100 // loss: 0.235\n", "epoch: 0, batch: 200 // loss: 0.204\n", "epoch: 0, batch: 300 // loss: 0.184\n", "epoch: 0, batch: 400 // loss: 0.186\n", "epoch: 0, batch: 500 // loss: 0.175\n", "epoch: 0, batch: 600 // loss: 0.171\n", "epoch: 0, batch: 700 // loss: 0.168\n", "epoch: 0, batch: 800 // loss: 0.141\n", "epoch: 0, batch: 900 // loss: 0.162\n", "epoch: 0, batch: 1000 // loss: 0.131\n", "epoch: 0, batch: 1100 // loss: 0.140\n", "epoch: 0, batch: 1200 // loss: 0.108\n", "epoch: 0, batch: 1300 // loss: 0.120\n", "epoch: 0, batch: 1400 // loss: 0.095\n", "epoch: 0, batch: 1500 // loss: 0.092\n", "epoch: 0, batch: 1600 // loss: 0.097\n", "epoch: 0, batch: 1700 // loss: 0.090\n", "epoch: 0, batch: 1800 // loss: 0.095\n", "epoch: 0, batch: 1900 // loss: 0.086\n", "epoch: 0, batch: 2000 // loss: 0.077\n", "epoch: 0, batch: 2100 // loss: 0.084\n", "epoch: 0, batch: 2200 // loss: 0.091\n", "epoch: 0, batch: 2300 // loss: 0.083\n", "epoch: 0, batch: 2400 // loss: 0.073\n", "epoch: 0, batch: 2500 // loss: 0.070\n", "epoch: 0, batch: 2600 // loss: 0.080\n", "epoch: 0, batch: 2700 // loss: 0.070\n", "epoch: 0, batch: 2800 // loss: 0.084\n", "epoch: 0, batch: 2900 // loss: 0.068\n", "epoch: 0, batch: 3000 // loss: 0.070\n", "epoch: 0, batch: 3100 // loss: 0.075\n", "epoch: 0, batch: 3200 // loss: 0.071\n", "epoch: 0, batch: 3300 // loss: 0.068\n", "epoch: 0, batch: 3400 // loss: 0.066\n", "epoch: 0, batch: 3500 // loss: 0.067\n", "epoch: 0, batch: 3600 // loss: 0.076\n", "epoch: 0, batch: 3700 // loss: 0.079\n", "\n", "epoch: 1, batch: 0 // loss: 0.085\n", "epoch: 1, batch: 100 // loss: 0.074\n", "epoch: 1, batch: 200 // loss: 0.078\n", "epoch: 1, batch: 300 // loss: 0.077\n", "epoch: 1, batch: 400 // loss: 0.076\n", "epoch: 1, batch: 500 // loss: 0.065\n", "epoch: 1, batch: 600 // loss: 0.067\n", "epoch: 1, batch: 700 // loss: 0.071\n", "epoch: 1, batch: 800 // loss: 0.074\n", "epoch: 1, batch: 900 // loss: 0.080\n", "epoch: 1, batch: 1000 // loss: 0.065\n", "epoch: 1, batch: 1100 // loss: 0.071\n", "epoch: 1, batch: 1200 // loss: 0.074\n", "epoch: 1, batch: 1300 // loss: 0.075\n", "epoch: 1, batch: 1400 // loss: 0.069\n", "epoch: 1, batch: 1500 // loss: 0.074\n", "epoch: 1, batch: 1600 // loss: 0.076\n", "epoch: 1, batch: 1700 // loss: 0.071\n", "epoch: 1, batch: 1800 // loss: 0.076\n", "epoch: 1, batch: 1900 // loss: 0.072\n", "epoch: 1, batch: 2000 // loss: 0.069\n", "epoch: 1, batch: 2100 // loss: 0.076\n", "epoch: 1, batch: 2200 // loss: 0.079\n", "epoch: 1, batch: 2300 // loss: 0.074\n", "epoch: 1, batch: 2400 // loss: 0.068\n", "epoch: 1, batch: 2500 // loss: 0.065\n", "epoch: 1, batch: 2600 // loss: 0.071\n", "epoch: 1, batch: 2700 // loss: 0.065\n", "epoch: 1, batch: 2800 // loss: 0.075\n", "epoch: 1, batch: 2900 // loss: 0.063\n", "epoch: 1, batch: 3000 // loss: 0.065\n", "epoch: 1, batch: 3100 // loss: 0.068\n", "epoch: 1, batch: 3200 // loss: 0.065\n", "epoch: 1, batch: 3300 // loss: 0.063\n", "epoch: 1, batch: 3400 // loss: 0.062\n", "epoch: 1, batch: 3500 // loss: 0.060\n", "epoch: 1, batch: 3600 // loss: 0.069\n", "epoch: 1, batch: 3700 // loss: 0.072\n", "\n", "epoch: 2, batch: 0 // loss: 0.078\n", "epoch: 2, batch: 100 // loss: 0.069\n", "epoch: 2, batch: 200 // loss: 0.071\n", "epoch: 2, batch: 300 // loss: 0.071\n", "epoch: 2, batch: 400 // loss: 0.070\n", "epoch: 2, batch: 500 // loss: 0.060\n", "epoch: 2, batch: 600 // loss: 0.062\n", "epoch: 2, batch: 700 // loss: 0.065\n", "epoch: 2, batch: 800 // loss: 0.067\n", "epoch: 2, batch: 900 // loss: 0.073\n", "epoch: 2, batch: 1000 // loss: 0.061\n", "epoch: 2, batch: 1100 // loss: 0.065\n", "epoch: 2, batch: 1200 // loss: 0.068\n", "epoch: 2, batch: 1300 // loss: 0.068\n", "epoch: 2, batch: 1400 // loss: 0.063\n", "epoch: 2, batch: 1500 // loss: 0.069\n", "epoch: 2, batch: 1600 // loss: 0.070\n", "epoch: 2, batch: 1700 // loss: 0.064\n", "epoch: 2, batch: 1800 // loss: 0.071\n", "epoch: 2, batch: 1900 // loss: 0.065\n", "epoch: 2, batch: 2000 // loss: 0.064\n", "epoch: 2, batch: 2100 // loss: 0.069\n", "epoch: 2, batch: 2200 // loss: 0.072\n", "epoch: 2, batch: 2300 // loss: 0.068\n", "epoch: 2, batch: 2400 // loss: 0.061\n", "epoch: 2, batch: 2500 // loss: 0.059\n", "epoch: 2, batch: 2600 // loss: 0.065\n", "epoch: 2, batch: 2700 // loss: 0.059\n", "epoch: 2, batch: 2800 // loss: 0.067\n", "epoch: 2, batch: 2900 // loss: 0.057\n", "epoch: 2, batch: 3000 // loss: 0.060\n", "epoch: 2, batch: 3100 // loss: 0.061\n", "epoch: 2, batch: 3200 // loss: 0.057\n", "epoch: 2, batch: 3300 // loss: 0.056\n", "epoch: 2, batch: 3400 // loss: 0.056\n", "epoch: 2, batch: 3500 // loss: 0.053\n", "epoch: 2, batch: 3600 // loss: 0.061\n", "epoch: 2, batch: 3700 // loss: 0.064\n", "\n", "epoch: 3, batch: 0 // loss: 0.070\n", "epoch: 3, batch: 100 // loss: 0.062\n", "epoch: 3, batch: 200 // loss: 0.064\n", "epoch: 3, batch: 300 // loss: 0.064\n", "epoch: 3, batch: 400 // loss: 0.062\n", "epoch: 3, batch: 500 // loss: 0.054\n", "epoch: 3, batch: 600 // loss: 0.055\n", "epoch: 3, batch: 700 // loss: 0.059\n", "epoch: 3, batch: 800 // loss: 0.059\n", "epoch: 3, batch: 900 // loss: 0.065\n", "epoch: 3, batch: 1000 // loss: 0.056\n", "epoch: 3, batch: 1100 // loss: 0.058\n", "epoch: 3, batch: 1200 // loss: 0.060\n", "epoch: 3, batch: 1300 // loss: 0.061\n", "epoch: 3, batch: 1400 // loss: 0.057\n", "epoch: 3, batch: 1500 // loss: 0.062\n", "epoch: 3, batch: 1600 // loss: 0.064\n", "epoch: 3, batch: 1700 // loss: 0.058\n", "epoch: 3, batch: 1800 // loss: 0.065\n", "epoch: 3, batch: 1900 // loss: 0.058\n", "epoch: 3, batch: 2000 // loss: 0.058\n", "epoch: 3, batch: 2100 // loss: 0.060\n", "epoch: 3, batch: 2200 // loss: 0.065\n", "epoch: 3, batch: 2300 // loss: 0.061\n", "epoch: 3, batch: 2400 // loss: 0.054\n", "epoch: 3, batch: 2500 // loss: 0.053\n", "epoch: 3, batch: 2600 // loss: 0.058\n", "epoch: 3, batch: 2700 // loss: 0.054\n", "epoch: 3, batch: 2800 // loss: 0.059\n", "epoch: 3, batch: 2900 // loss: 0.051\n", "epoch: 3, batch: 3000 // loss: 0.055\n", "epoch: 3, batch: 3100 // loss: 0.054\n", "epoch: 3, batch: 3200 // loss: 0.050\n", "epoch: 3, batch: 3300 // loss: 0.049\n", "epoch: 3, batch: 3400 // loss: 0.051\n", "epoch: 3, batch: 3500 // loss: 0.047\n", "epoch: 3, batch: 3600 // loss: 0.055\n", "epoch: 3, batch: 3700 // loss: 0.056\n", "\n", "epoch: 4, batch: 0 // loss: 0.064\n", "epoch: 4, batch: 100 // loss: 0.056\n", "epoch: 4, batch: 200 // loss: 0.057\n", "epoch: 4, batch: 300 // loss: 0.058\n", "epoch: 4, batch: 400 // loss: 0.056\n", "epoch: 4, batch: 500 // loss: 0.048\n", "epoch: 4, batch: 600 // loss: 0.050\n", "epoch: 4, batch: 700 // loss: 0.054\n", "epoch: 4, batch: 800 // loss: 0.052\n", "epoch: 4, batch: 900 // loss: 0.059\n", "epoch: 4, batch: 1000 // loss: 0.052\n", "epoch: 4, batch: 1100 // loss: 0.052\n", "epoch: 4, batch: 1200 // loss: 0.054\n", "epoch: 4, batch: 1300 // loss: 0.055\n", "epoch: 4, batch: 1400 // loss: 0.052\n", "epoch: 4, batch: 1500 // loss: 0.057\n", "epoch: 4, batch: 1600 // loss: 0.060\n", "epoch: 4, batch: 1700 // loss: 0.053\n", "epoch: 4, batch: 1800 // loss: 0.060\n", "epoch: 4, batch: 1900 // loss: 0.053\n", "epoch: 4, batch: 2000 // loss: 0.053\n", "epoch: 4, batch: 2100 // loss: 0.054\n", "epoch: 4, batch: 2200 // loss: 0.060\n", "epoch: 4, batch: 2300 // loss: 0.056\n", "epoch: 4, batch: 2400 // loss: 0.048\n", "epoch: 4, batch: 2500 // loss: 0.048\n", "epoch: 4, batch: 2600 // loss: 0.053\n", "epoch: 4, batch: 2700 // loss: 0.050\n", "epoch: 4, batch: 2800 // loss: 0.053\n", "epoch: 4, batch: 2900 // loss: 0.047\n", "epoch: 4, batch: 3000 // loss: 0.051\n", "epoch: 4, batch: 3100 // loss: 0.050\n", "epoch: 4, batch: 3200 // loss: 0.045\n", "epoch: 4, batch: 3300 // loss: 0.045\n", "epoch: 4, batch: 3400 // loss: 0.048\n", "epoch: 4, batch: 3500 // loss: 0.042\n", "epoch: 4, batch: 3600 // loss: 0.050\n", "epoch: 4, batch: 3700 // loss: 0.051\n", "\n", "epoch: 5, batch: 0 // loss: 0.059\n", "epoch: 5, batch: 100 // loss: 0.052\n", "epoch: 5, batch: 200 // loss: 0.052\n", "epoch: 5, batch: 300 // loss: 0.054\n", "epoch: 5, batch: 400 // loss: 0.052\n", "epoch: 5, batch: 500 // loss: 0.045\n", "epoch: 5, batch: 600 // loss: 0.046\n", "epoch: 5, batch: 700 // loss: 0.050\n", "epoch: 5, batch: 800 // loss: 0.048\n", "epoch: 5, batch: 900 // loss: 0.055\n", "epoch: 5, batch: 1000 // loss: 0.049\n", "epoch: 5, batch: 1100 // loss: 0.049\n", "epoch: 5, batch: 1200 // loss: 0.050\n", "epoch: 5, batch: 1300 // loss: 0.051\n", "epoch: 5, batch: 1400 // loss: 0.048\n", "epoch: 5, batch: 1500 // loss: 0.054\n", "epoch: 5, batch: 1600 // loss: 0.056\n", "epoch: 5, batch: 1700 // loss: 0.050\n", "epoch: 5, batch: 1800 // loss: 0.057\n", "epoch: 5, batch: 1900 // loss: 0.050\n", "epoch: 5, batch: 2000 // loss: 0.050\n", "epoch: 5, batch: 2100 // loss: 0.051\n", "epoch: 5, batch: 2200 // loss: 0.056\n", "epoch: 5, batch: 2300 // loss: 0.053\n", "epoch: 5, batch: 2400 // loss: 0.045\n", "epoch: 5, batch: 2500 // loss: 0.045\n", "epoch: 5, batch: 2600 // loss: 0.050\n", "epoch: 5, batch: 2700 // loss: 0.047\n", "epoch: 5, batch: 2800 // loss: 0.050\n", "epoch: 5, batch: 2900 // loss: 0.044\n", "epoch: 5, batch: 3000 // loss: 0.049\n", "epoch: 5, batch: 3100 // loss: 0.047\n", "epoch: 5, batch: 3200 // loss: 0.042\n", "epoch: 5, batch: 3300 // loss: 0.042\n", "epoch: 5, batch: 3400 // loss: 0.045\n", "epoch: 5, batch: 3500 // loss: 0.039\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 5, batch: 3600 // loss: 0.047\n", "epoch: 5, batch: 3700 // loss: 0.048\n", "\n", "epoch: 6, batch: 0 // loss: 0.056\n", "epoch: 6, batch: 100 // loss: 0.049\n", "epoch: 6, batch: 200 // loss: 0.049\n", "epoch: 6, batch: 300 // loss: 0.052\n", "epoch: 6, batch: 400 // loss: 0.049\n", "epoch: 6, batch: 500 // loss: 0.043\n", "epoch: 6, batch: 600 // loss: 0.044\n", "epoch: 6, batch: 700 // loss: 0.048\n", "epoch: 6, batch: 800 // loss: 0.045\n", "epoch: 6, batch: 900 // loss: 0.052\n", "epoch: 6, batch: 1000 // loss: 0.047\n", "epoch: 6, batch: 1100 // loss: 0.046\n", "epoch: 6, batch: 1200 // loss: 0.048\n", "epoch: 6, batch: 1300 // loss: 0.048\n", "epoch: 6, batch: 1400 // loss: 0.046\n", "epoch: 6, batch: 1500 // loss: 0.052\n", "epoch: 6, batch: 1600 // loss: 0.054\n", "epoch: 6, batch: 1700 // loss: 0.048\n", "epoch: 6, batch: 1800 // loss: 0.055\n", "epoch: 6, batch: 1900 // loss: 0.047\n", "epoch: 6, batch: 2000 // loss: 0.048\n", "epoch: 6, batch: 2100 // loss: 0.049\n", "epoch: 6, batch: 2200 // loss: 0.053\n", "epoch: 6, batch: 2300 // loss: 0.051\n", "epoch: 6, batch: 2400 // loss: 0.043\n", "epoch: 6, batch: 2500 // loss: 0.043\n", "epoch: 6, batch: 2600 // loss: 0.048\n", "epoch: 6, batch: 2700 // loss: 0.046\n", "epoch: 6, batch: 2800 // loss: 0.048\n", "epoch: 6, batch: 2900 // loss: 0.043\n", "epoch: 6, batch: 3000 // loss: 0.047\n", "epoch: 6, batch: 3100 // loss: 0.045\n", "epoch: 6, batch: 3200 // loss: 0.040\n", "epoch: 6, batch: 3300 // loss: 0.040\n", "epoch: 6, batch: 3400 // loss: 0.044\n", "epoch: 6, batch: 3500 // loss: 0.037\n", "epoch: 6, batch: 3600 // loss: 0.045\n", "epoch: 6, batch: 3700 // loss: 0.045\n", "\n", "epoch: 7, batch: 0 // loss: 0.054\n", "epoch: 7, batch: 100 // loss: 0.047\n", "epoch: 7, batch: 200 // loss: 0.046\n", "epoch: 7, batch: 300 // loss: 0.050\n", "epoch: 7, batch: 400 // loss: 0.047\n", "epoch: 7, batch: 500 // loss: 0.041\n", "epoch: 7, batch: 600 // loss: 0.042\n", "epoch: 7, batch: 700 // loss: 0.046\n", "epoch: 7, batch: 800 // loss: 0.043\n", "epoch: 7, batch: 900 // loss: 0.050\n", "epoch: 7, batch: 1000 // loss: 0.046\n", "epoch: 7, batch: 1100 // loss: 0.044\n", "epoch: 7, batch: 1200 // loss: 0.046\n", "epoch: 7, batch: 1300 // loss: 0.046\n", "epoch: 7, batch: 1400 // loss: 0.044\n", "epoch: 7, batch: 1500 // loss: 0.050\n", "epoch: 7, batch: 1600 // loss: 0.052\n", "epoch: 7, batch: 1700 // loss: 0.046\n", "epoch: 7, batch: 1800 // loss: 0.053\n", "epoch: 7, batch: 1900 // loss: 0.046\n", "epoch: 7, batch: 2000 // loss: 0.046\n", "epoch: 7, batch: 2100 // loss: 0.047\n", "epoch: 7, batch: 2200 // loss: 0.051\n", "epoch: 7, batch: 2300 // loss: 0.049\n", "epoch: 7, batch: 2400 // loss: 0.042\n", "epoch: 7, batch: 2500 // loss: 0.042\n", "epoch: 7, batch: 2600 // loss: 0.046\n", "epoch: 7, batch: 2700 // loss: 0.044\n", "epoch: 7, batch: 2800 // loss: 0.046\n", "epoch: 7, batch: 2900 // loss: 0.041\n", "epoch: 7, batch: 3000 // loss: 0.046\n", "epoch: 7, batch: 3100 // loss: 0.044\n", "epoch: 7, batch: 3200 // loss: 0.039\n", "epoch: 7, batch: 3300 // loss: 0.038\n", "epoch: 7, batch: 3400 // loss: 0.042\n", "epoch: 7, batch: 3500 // loss: 0.035\n", "epoch: 7, batch: 3600 // loss: 0.044\n", "epoch: 7, batch: 3700 // loss: 0.044\n", "\n", "epoch: 8, batch: 0 // loss: 0.052\n", "epoch: 8, batch: 100 // loss: 0.046\n", "epoch: 8, batch: 200 // loss: 0.045\n", "epoch: 8, batch: 300 // loss: 0.048\n", "epoch: 8, batch: 400 // loss: 0.045\n", "epoch: 8, batch: 500 // loss: 0.040\n", "epoch: 8, batch: 600 // loss: 0.041\n", "epoch: 8, batch: 700 // loss: 0.045\n", "epoch: 8, batch: 800 // loss: 0.041\n", "epoch: 8, batch: 900 // loss: 0.049\n", "epoch: 8, batch: 1000 // loss: 0.044\n", "epoch: 8, batch: 1100 // loss: 0.043\n", "epoch: 8, batch: 1200 // loss: 0.045\n", "epoch: 8, batch: 1300 // loss: 0.044\n", "epoch: 8, batch: 1400 // loss: 0.042\n", "epoch: 8, batch: 1500 // loss: 0.048\n", "epoch: 8, batch: 1600 // loss: 0.051\n", "epoch: 8, batch: 1700 // loss: 0.045\n", "epoch: 8, batch: 1800 // loss: 0.052\n", "epoch: 8, batch: 1900 // loss: 0.044\n", "epoch: 8, batch: 2000 // loss: 0.045\n", "epoch: 8, batch: 2100 // loss: 0.046\n", "epoch: 8, batch: 2200 // loss: 0.050\n", "epoch: 8, batch: 2300 // loss: 0.048\n", "epoch: 8, batch: 2400 // loss: 0.041\n", "epoch: 8, batch: 2500 // loss: 0.041\n", "epoch: 8, batch: 2600 // loss: 0.045\n", "epoch: 8, batch: 2700 // loss: 0.043\n", "epoch: 8, batch: 2800 // loss: 0.044\n", "epoch: 8, batch: 2900 // loss: 0.040\n", "epoch: 8, batch: 3000 // loss: 0.044\n", "epoch: 8, batch: 3100 // loss: 0.042\n", "epoch: 8, batch: 3200 // loss: 0.037\n", "epoch: 8, batch: 3300 // loss: 0.037\n", "epoch: 8, batch: 3400 // loss: 0.041\n", "epoch: 8, batch: 3500 // loss: 0.034\n", "epoch: 8, batch: 3600 // loss: 0.043\n", "epoch: 8, batch: 3700 // loss: 0.042\n", "\n", "epoch: 9, batch: 0 // loss: 0.051\n", "epoch: 9, batch: 100 // loss: 0.045\n", "epoch: 9, batch: 200 // loss: 0.043\n", "epoch: 9, batch: 300 // loss: 0.047\n", "epoch: 9, batch: 400 // loss: 0.044\n", "epoch: 9, batch: 500 // loss: 0.039\n", "epoch: 9, batch: 600 // loss: 0.039\n", "epoch: 9, batch: 700 // loss: 0.044\n", "epoch: 9, batch: 800 // loss: 0.040\n", "epoch: 9, batch: 900 // loss: 0.048\n", "epoch: 9, batch: 1000 // loss: 0.043\n", "epoch: 9, batch: 1100 // loss: 0.042\n", "epoch: 9, batch: 1200 // loss: 0.043\n", "epoch: 9, batch: 1300 // loss: 0.043\n", "epoch: 9, batch: 1400 // loss: 0.041\n", "epoch: 9, batch: 1500 // loss: 0.047\n", "epoch: 9, batch: 1600 // loss: 0.049\n", "epoch: 9, batch: 1700 // loss: 0.044\n", "epoch: 9, batch: 1800 // loss: 0.051\n", "epoch: 9, batch: 1900 // loss: 0.043\n", "epoch: 9, batch: 2000 // loss: 0.043\n", "epoch: 9, batch: 2100 // loss: 0.045\n", "epoch: 9, batch: 2200 // loss: 0.048\n", "epoch: 9, batch: 2300 // loss: 0.047\n", "epoch: 9, batch: 2400 // loss: 0.040\n", "epoch: 9, batch: 2500 // loss: 0.040\n", "epoch: 9, batch: 2600 // loss: 0.044\n", "epoch: 9, batch: 2700 // loss: 0.042\n", "epoch: 9, batch: 2800 // loss: 0.043\n", "epoch: 9, batch: 2900 // loss: 0.039\n", "epoch: 9, batch: 3000 // loss: 0.043\n", "epoch: 9, batch: 3100 // loss: 0.042\n", "epoch: 9, batch: 3200 // loss: 0.036\n", "epoch: 9, batch: 3300 // loss: 0.036\n", "epoch: 9, batch: 3400 // loss: 0.040\n", "epoch: 9, batch: 3500 // loss: 0.033\n", "epoch: 9, batch: 3600 // loss: 0.041\n", "epoch: 9, batch: 3700 // loss: 0.041\n" ] } ], "source": [ "auto3 = AE2(hidden_size=16)\n", "optimizer = optim.SGD(auto3.parameters(), lr=0.01, momentum=0.9)\n", "train_AE(X_corrupt, X, auto3, optimizer, loss_function)" ] }, { "cell_type": "code", "execution_count": 215, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 215, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "Zs = auto3(X[:5000].float(), return_z=True).detach().numpy()\n", "plt.scatter(Zs[:,0], Zs[:,1], c=c)" ] }, { "cell_type": "code", "execution_count": 216, "metadata": {}, "outputs": [], "source": [ "X_tilde = auto3(X[:5000].float()).detach().numpy()" ] }, { "cell_type": "code", "execution_count": 222, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 222, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow(np.asarray(X_tilde[2]).reshape(28,28), cmap='gray')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Finally, let's add a regularization penalty on the hidden layer" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "First, let's define the model appropriately. Consider: What do we need to change from above variants? Think about the training loop (below.)" ] }, { "cell_type": "code", "execution_count": 223, "metadata": {}, "outputs": [], "source": [ "class AE_regularized(nn.Module):\n", " \n", " def __init__(self, input_size=784, hidden_size=2):\n", " '''\n", " In the initializer we setup model parameters/layers.\n", " '''\n", " super(AE_regularized, self).__init__() \n", "\n", " self.input_size = input_size\n", " self.hidden_size = hidden_size\n", " \n", " # input layer; from x -> z\n", " self.i = nn.Linear(self.input_size, self.hidden_size)\n", " \n", " self.a = nn.Sigmoid()\n", " \n", " # output layer\n", " self.o = nn.Linear(self.hidden_size, self.input_size)\n", " \n", "\n", " def forward(self, X):\n", " z = self.a(self.i(X))\n", " # Now we always return z along with the output\n", " return self.o(z), z" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now update the training loop to incorporate regularization. This will take a parameter `lambda_` that encodes how much weight to put on the regularization penalty (vs typical/reconstruction loss).\n", "\n", "Two hints: \n", "\n", "(1) Consider that we want to incur a loss associated with our regularization (an l1 norm); where should we do that?\n", "\n", "(2) See `torch.norm` (https://pytorch.org/docs/stable/torch.html#torch.norm)." ] }, { "cell_type": "code", "execution_count": 228, "metadata": {}, "outputs": [], "source": [ "def train_regularized_AE(X_in, X_target, model, optimizer, loss_function, lambda_, EPOCHS=10):\n", " for epoch in range(EPOCHS): \n", " idx, batch_num = 0, 0\n", " batch_size = 16\n", "\n", " print(\"\")\n", " while idx < 60000:\n", " # zero the parameter gradients\n", " optimizer.zero_grad()\n", "\n", " X_batch = X_in[idx: idx + batch_size].float()\n", " X_target_batch = X_target[idx: idx + batch_size].float()\n", " idx += batch_size\n", "\n", " # now run our X's forward, get preds, incur\n", " # loss, backprop, and step the optimizer.\n", " X_tilde_batch, z = model(X_batch)\n", " output_loss = loss_function(X_tilde_batch, X_target_batch)\n", " \n", " # here is the regularization loss.\n", " reg_loss = torch.norm(z, 1)\n", " \n", " loss = output_loss + lambda_ * reg_loss\n", " loss.backward()\n", " optimizer.step()\n", "\n", " # print out loss\n", " if batch_num % 100 == 0:\n", " print(\"epoch: {}, batch: {} // loss: {:.3f} // reg. loss (* \\lambda): {:.3f}\".format(\n", " epoch, batch_num, output_loss.item(), lambda_ * reg_loss.item()))\n", "\n", " batch_num += 1" ] }, { "cell_type": "code", "execution_count": 229, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "epoch: 0, batch: 0 // loss: 0.311 // reg. loss (* \\lambda): 125.579\n", "epoch: 0, batch: 100 // loss: 0.239 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 200 // loss: 0.207 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 300 // loss: 0.192 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 400 // loss: 0.196 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 500 // loss: 0.191 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 600 // loss: 0.189 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 700 // loss: 0.195 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 800 // loss: 0.162 // reg. loss (* \\lambda): 0.005\n", "epoch: 0, batch: 900 // loss: 0.198 // reg. loss (* \\lambda): 0.184\n", "epoch: 0, batch: 1000 // loss: 0.173 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 1100 // loss: 0.196 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 1200 // loss: 0.149 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 1300 // loss: 0.179 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 1400 // loss: 0.140 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 1500 // loss: 0.140 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 1600 // loss: 0.160 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 1700 // loss: 0.144 // reg. loss (* \\lambda): 0.006\n", "epoch: 0, batch: 1800 // loss: 0.170 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 1900 // loss: 0.144 // reg. loss (* \\lambda): 0.001\n", "epoch: 0, batch: 2000 // loss: 0.122 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 2100 // loss: 0.125 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 2200 // loss: 0.155 // reg. loss (* \\lambda): 0.001\n", "epoch: 0, batch: 2300 // loss: 0.132 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 2400 // loss: 0.099 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 2500 // loss: 0.106 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 2600 // loss: 0.140 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 2700 // loss: 0.103 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 2800 // loss: 0.139 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 2900 // loss: 0.094 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 3000 // loss: 0.106 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 3100 // loss: 0.127 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 3200 // loss: 0.090 // reg. loss (* \\lambda): 0.002\n", "epoch: 0, batch: 3300 // loss: 0.103 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 3400 // loss: 0.101 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 3500 // loss: 0.108 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 3600 // loss: 0.111 // reg. loss (* \\lambda): 0.000\n", "epoch: 0, batch: 3700 // loss: 0.122 // reg. loss (* \\lambda): 0.000\n", "\n", "epoch: 1, batch: 0 // loss: 0.115 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 100 // loss: 0.110 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 200 // loss: 0.108 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 300 // loss: 0.097 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 400 // loss: 0.101 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 500 // loss: 0.095 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 600 // loss: 0.097 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 700 // loss: 0.102 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 800 // loss: 0.092 // reg. loss (* \\lambda): 0.004\n", "epoch: 1, batch: 900 // loss: 0.113 // reg. loss (* \\lambda): 0.161\n", "epoch: 1, batch: 1000 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 1100 // loss: 0.110 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 1200 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 1300 // loss: 0.107 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 1400 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 1500 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 1600 // loss: 0.101 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 1700 // loss: 0.097 // reg. loss (* \\lambda): 0.005\n", "epoch: 1, batch: 1800 // loss: 0.107 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 1900 // loss: 0.095 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 2000 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 2100 // loss: 0.091 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 2200 // loss: 0.108 // reg. loss (* \\lambda): 0.001\n", "epoch: 1, batch: 2300 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 2400 // loss: 0.078 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 2500 // loss: 0.078 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 2600 // loss: 0.102 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 2700 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 2800 // loss: 0.105 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 2900 // loss: 0.075 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 3000 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 3100 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 3200 // loss: 0.077 // reg. loss (* \\lambda): 0.001\n", "epoch: 1, batch: 3300 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 3400 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 3500 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 3600 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "epoch: 1, batch: 3700 // loss: 0.099 // reg. loss (* \\lambda): 0.000\n", "\n", "epoch: 2, batch: 0 // loss: 0.100 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 100 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 200 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 300 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 400 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 500 // loss: 0.081 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 600 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 700 // loss: 0.087 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 800 // loss: 0.085 // reg. loss (* \\lambda): 0.003\n", "epoch: 2, batch: 900 // loss: 0.099 // reg. loss (* \\lambda): 0.144\n", "epoch: 2, batch: 1000 // loss: 0.081 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 1100 // loss: 0.094 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 1200 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 1300 // loss: 0.095 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 1400 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 1500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 1600 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 1700 // loss: 0.092 // reg. loss (* \\lambda): 0.004\n", "epoch: 2, batch: 1800 // loss: 0.095 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 1900 // loss: 0.087 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 2000 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 2100 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 2200 // loss: 0.100 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 2300 // loss: 0.091 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 2400 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 2500 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 2600 // loss: 0.095 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 2700 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 2800 // loss: 0.098 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 2900 // loss: 0.075 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 3000 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 3100 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 3200 // loss: 0.078 // reg. loss (* \\lambda): 0.001\n", "epoch: 2, batch: 3300 // loss: 0.080 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 3400 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 3500 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 3600 // loss: 0.091 // reg. loss (* \\lambda): 0.000\n", "epoch: 2, batch: 3700 // loss: 0.094 // reg. loss (* \\lambda): 0.000\n", "\n", "epoch: 3, batch: 0 // loss: 0.098 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 100 // loss: 0.085 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 200 // loss: 0.095 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 300 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 400 // loss: 0.087 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 500 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 3, batch: 600 // loss: 0.081 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 700 // loss: 0.085 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 800 // loss: 0.085 // reg. loss (* \\lambda): 0.003\n", "epoch: 3, batch: 900 // loss: 0.097 // reg. loss (* \\lambda): 0.130\n", "epoch: 3, batch: 1000 // loss: 0.078 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 1100 // loss: 0.091 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 1200 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 1300 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 1400 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 1500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 1600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 1700 // loss: 0.092 // reg. loss (* \\lambda): 0.004\n", "epoch: 3, batch: 1800 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 1900 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 2000 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 2100 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 2200 // loss: 0.098 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 2300 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 2400 // loss: 0.081 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 2500 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 2600 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 2700 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 2800 // loss: 0.097 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 2900 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 3000 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 3100 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 3200 // loss: 0.079 // reg. loss (* \\lambda): 0.001\n", "epoch: 3, batch: 3300 // loss: 0.080 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 3400 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 3500 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 3600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 3, batch: 3700 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "\n", "epoch: 4, batch: 0 // loss: 0.099 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 100 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 200 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 300 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 400 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 500 // loss: 0.078 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 600 // loss: 0.081 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 700 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 800 // loss: 0.085 // reg. loss (* \\lambda): 0.002\n", "epoch: 4, batch: 900 // loss: 0.096 // reg. loss (* \\lambda): 0.119\n", "epoch: 4, batch: 1000 // loss: 0.078 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 1100 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 1200 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 1300 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 1400 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 1500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 1600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 1700 // loss: 0.092 // reg. loss (* \\lambda): 0.003\n", "epoch: 4, batch: 1800 // loss: 0.091 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 1900 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 2000 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 2100 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 2200 // loss: 0.098 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 2300 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 2400 // loss: 0.081 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 2500 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 2600 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 2700 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 2800 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 2900 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 3000 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 3100 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 3200 // loss: 0.080 // reg. loss (* \\lambda): 0.001\n", "epoch: 4, batch: 3300 // loss: 0.080 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 3400 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 3500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 3600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 4, batch: 3700 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "\n", "epoch: 5, batch: 0 // loss: 0.099 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 100 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 200 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 300 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 400 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 500 // loss: 0.078 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 600 // loss: 0.081 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 700 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 800 // loss: 0.086 // reg. loss (* \\lambda): 0.002\n", "epoch: 5, batch: 900 // loss: 0.096 // reg. loss (* \\lambda): 0.110\n", "epoch: 5, batch: 1000 // loss: 0.078 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 1100 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 1200 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 1300 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 1400 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 1500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 1600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 1700 // loss: 0.092 // reg. loss (* \\lambda): 0.003\n", "epoch: 5, batch: 1800 // loss: 0.091 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 1900 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 2000 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 2100 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 2200 // loss: 0.098 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 2300 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 2400 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 2500 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 2600 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 2700 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 2800 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 2900 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 3000 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 3100 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 3200 // loss: 0.080 // reg. loss (* \\lambda): 0.001\n", "epoch: 5, batch: 3300 // loss: 0.080 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 3400 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 3500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 3600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 5, batch: 3700 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "\n", "epoch: 6, batch: 0 // loss: 0.099 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 100 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 200 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 300 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 400 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 500 // loss: 0.078 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 600 // loss: 0.081 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 700 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 800 // loss: 0.086 // reg. loss (* \\lambda): 0.002\n", "epoch: 6, batch: 900 // loss: 0.096 // reg. loss (* \\lambda): 0.102\n", "epoch: 6, batch: 1000 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 1100 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 6, batch: 1200 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 1300 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 1400 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 1500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 1600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 1700 // loss: 0.092 // reg. loss (* \\lambda): 0.003\n", "epoch: 6, batch: 1800 // loss: 0.091 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 1900 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 2000 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 2100 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 2200 // loss: 0.098 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 2300 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 2400 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 2500 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 2600 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 2700 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 2800 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 2900 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 3000 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 3100 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 3200 // loss: 0.080 // reg. loss (* \\lambda): 0.001\n", "epoch: 6, batch: 3300 // loss: 0.080 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 3400 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 3500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 3600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 6, batch: 3700 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "\n", "epoch: 7, batch: 0 // loss: 0.099 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 100 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 200 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 300 // loss: 0.087 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 400 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 500 // loss: 0.078 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 600 // loss: 0.081 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 700 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 800 // loss: 0.086 // reg. loss (* \\lambda): 0.001\n", "epoch: 7, batch: 900 // loss: 0.096 // reg. loss (* \\lambda): 0.096\n", "epoch: 7, batch: 1000 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 1100 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 1200 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 1300 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 1400 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 1500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 1600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 1700 // loss: 0.092 // reg. loss (* \\lambda): 0.003\n", "epoch: 7, batch: 1800 // loss: 0.091 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 1900 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 2000 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 2100 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 2200 // loss: 0.098 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 2300 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 2400 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 2500 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 2600 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 2700 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 2800 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 2900 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 3000 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 3100 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 3200 // loss: 0.080 // reg. loss (* \\lambda): 0.001\n", "epoch: 7, batch: 3300 // loss: 0.080 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 3400 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 3500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 3600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 7, batch: 3700 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "\n", "epoch: 8, batch: 0 // loss: 0.099 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 100 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 200 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 300 // loss: 0.087 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 400 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 500 // loss: 0.078 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 600 // loss: 0.081 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 700 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 800 // loss: 0.086 // reg. loss (* \\lambda): 0.001\n", "epoch: 8, batch: 900 // loss: 0.096 // reg. loss (* \\lambda): 0.090\n", "epoch: 8, batch: 1000 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 1100 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 1200 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 1300 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 1400 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 1500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 1600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 1700 // loss: 0.092 // reg. loss (* \\lambda): 0.002\n", "epoch: 8, batch: 1800 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 1900 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 2000 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 2100 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 2200 // loss: 0.098 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 2300 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 2400 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 2500 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 2600 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 2700 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 2800 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 2900 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 3000 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 3100 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 3200 // loss: 0.080 // reg. loss (* \\lambda): 0.001\n", "epoch: 8, batch: 3300 // loss: 0.080 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 3400 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 3500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 3600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 8, batch: 3700 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "\n", "epoch: 9, batch: 0 // loss: 0.099 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 100 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 200 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 300 // loss: 0.087 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 400 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 500 // loss: 0.078 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 600 // loss: 0.081 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 700 // loss: 0.084 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 800 // loss: 0.086 // reg. loss (* \\lambda): 0.001\n", "epoch: 9, batch: 900 // loss: 0.096 // reg. loss (* \\lambda): 0.085\n", "epoch: 9, batch: 1000 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 1100 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 1200 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 1300 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 1400 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 1500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 1600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 1700 // loss: 0.092 // reg. loss (* \\lambda): 0.002\n", "epoch: 9, batch: 1800 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 1900 // loss: 0.086 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 2000 // loss: 0.079 // reg. loss (* \\lambda): 0.000\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 9, batch: 2100 // loss: 0.089 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 2200 // loss: 0.098 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 2300 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 2400 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 2500 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 2600 // loss: 0.093 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 2700 // loss: 0.077 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 2800 // loss: 0.096 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 2900 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 3000 // loss: 0.083 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 3100 // loss: 0.088 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 3200 // loss: 0.080 // reg. loss (* \\lambda): 0.001\n", "epoch: 9, batch: 3300 // loss: 0.080 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 3400 // loss: 0.076 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 3500 // loss: 0.082 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 3600 // loss: 0.090 // reg. loss (* \\lambda): 0.000\n", "epoch: 9, batch: 3700 // loss: 0.092 // reg. loss (* \\lambda): 0.000\n" ] } ], "source": [ "AER = AE_regularized(hidden_size=16)\n", "optimizer = optim.SGD(AER.parameters(), lr=0.01, momentum=0.9)\n", "train_regularized_AE(X_corrupt, X, AER, optimizer, loss_function, 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Variational auto-encoders\n", "\n", "First, let's review on board..." ] }, { "cell_type": "code", "execution_count": 176, "metadata": {}, "outputs": [], "source": [ "from torch.nn import functional as F\n", "\n", "class VAE(nn.Module):\n", " \n", " def __init__(self, input_size=784, hidden_size1=32, hidden_size2=32):\n", " '''\n", " In the initializer we setup model parameters/layers.\n", " '''\n", " super(VAE, self).__init__() \n", " \n", " ### encoder layers\n", " self.fc_e = nn.Linear(784, hidden_size1)\n", " self.fc_mean = nn.Linear(hidden_size1, hidden_size2)\n", " self.fc_logvar = nn.Linear(hidden_size1, hidden_size2)\n", " \n", " ### decoder layers\n", " self.fc_d1 = nn.Linear(hidden_size2, hidden_size1)\n", " self.fc_d2 = nn.Linear(hidden_size1, 784)\n", " \n", " \n", " def encoder(self, x_in):\n", " x = self.fc_e(x_in)\n", " mean = self.fc_mean(x)\n", " logvar = self.fc_logvar(x)\n", " return mean, logvar\n", " \n", " def decoder(self, z):\n", " z = F.relu(self.fc_d1(z))\n", " x_out = F.sigmoid(self.fc_d2(z))\n", " #return x_out.view(-1,1,28,28)\n", " return x_out\n", " \n", " def sample_normal(self, mean, logvar):\n", " # Using torch.normal(means,sds) returns a stochastic tensor which we cannot backpropogate through.\n", " # Instead we utilize the 'reparameterization trick'.\n", " # http://stats.stackexchange.com/a/205336\n", " # http://dpkingma.com/wordpress/wp-content/uploads/2015/12/talk_nips_workshop_2015.pdf\n", " sd = torch.exp(logvar*0.5)\n", " e = torch.tensor((torch.randn(sd.size()))) # Sample from standard normal\n", " z = e.mul(sd).add_(mean)\n", " return z\n", " \n", " def forward(self, x_in):\n", " z_mean, z_logvar = self.encoder(x_in)\n", " z = self.sample_normal(z_mean, z_logvar)\n", " x_out = self.decoder(z)\n", " return x_out, z_mean, z_logvar\n" ] }, { "cell_type": "code", "execution_count": 177, "metadata": {}, "outputs": [], "source": [ "def train_VAE(X_in, X_target, model, optimizer, loss_function, EPOCHS=10):\n", " for epoch in range(EPOCHS): \n", " idx, batch_num = 0, 0\n", " batch_size = 16\n", "\n", " print(\"\")\n", " while idx < 60000:\n", " # zero the parameter gradients\n", " optimizer.zero_grad()\n", "\n", " X_batch = X_in[idx: idx + batch_size].float()\n", " X_target_batch = X_target[idx: idx + batch_size].float()\n", " idx += batch_size\n", "\n", " # now run our X's forward, get preds, incur\n", " # loss, backprop, and step the optimizer.\n", " X_tilde_batch, _, _ = model(X_batch)\n", " loss = loss_function(X_tilde_batch, X_target_batch)\n", " loss.backward()\n", " optimizer.step()\n", "\n", " # print out loss\n", " if batch_num % 100 == 0:\n", " print(\"epoch: {}, batch: {} // loss: {:.3f}\".format(epoch, batch_num, loss.item()))\n", "\n", " batch_num += 1" ] }, { "cell_type": "code", "execution_count": 178, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "epoch: 0, batch: 0 // loss: 0.186\n", "epoch: 0, batch: 100 // loss: 0.157\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:39: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 0, batch: 200 // loss: 0.187\n", "epoch: 0, batch: 300 // loss: 0.175\n", "epoch: 0, batch: 400 // loss: 0.172\n", "epoch: 0, batch: 500 // loss: 0.162\n", "epoch: 0, batch: 600 // loss: 0.167\n", "epoch: 0, batch: 700 // loss: 0.164\n", "epoch: 0, batch: 800 // loss: 0.173\n", "epoch: 0, batch: 900 // loss: 0.167\n", "epoch: 0, batch: 1000 // loss: 0.152\n", "epoch: 0, batch: 1100 // loss: 0.157\n", "epoch: 0, batch: 1200 // loss: 0.153\n", "epoch: 0, batch: 1300 // loss: 0.148\n", "epoch: 0, batch: 1400 // loss: 0.155\n", "epoch: 0, batch: 1500 // loss: 0.148\n", "epoch: 0, batch: 1600 // loss: 0.147\n", "epoch: 0, batch: 1700 // loss: 0.144\n", "epoch: 0, batch: 1800 // loss: 0.132\n", "epoch: 0, batch: 1900 // loss: 0.135\n", "epoch: 0, batch: 2000 // loss: 0.119\n", "epoch: 0, batch: 2100 // loss: 0.123\n", "epoch: 0, batch: 2200 // loss: 0.127\n", "epoch: 0, batch: 2300 // loss: 0.119\n", "epoch: 0, batch: 2400 // loss: 0.109\n", "epoch: 0, batch: 2500 // loss: 0.100\n", "epoch: 0, batch: 2600 // loss: 0.107\n", "epoch: 0, batch: 2700 // loss: 0.094\n", "epoch: 0, batch: 2800 // loss: 0.104\n", "epoch: 0, batch: 2900 // loss: 0.091\n", "epoch: 0, batch: 3000 // loss: 0.094\n", "epoch: 0, batch: 3100 // loss: 0.089\n", "epoch: 0, batch: 3200 // loss: 0.093\n", "epoch: 0, batch: 3300 // loss: 0.088\n", "epoch: 0, batch: 3400 // loss: 0.078\n", "epoch: 0, batch: 3500 // loss: 0.084\n", "epoch: 0, batch: 3600 // loss: 0.099\n", "epoch: 0, batch: 3700 // loss: 0.092\n", "\n", "epoch: 1, batch: 0 // loss: 0.108\n", "epoch: 1, batch: 100 // loss: 0.089\n", "epoch: 1, batch: 200 // loss: 0.101\n", "epoch: 1, batch: 300 // loss: 0.090\n", "epoch: 1, batch: 400 // loss: 0.094\n", "epoch: 1, batch: 500 // loss: 0.080\n", "epoch: 1, batch: 600 // loss: 0.086\n", "epoch: 1, batch: 700 // loss: 0.086\n", "epoch: 1, batch: 800 // loss: 0.089\n", "epoch: 1, batch: 900 // loss: 0.093\n", "epoch: 1, batch: 1000 // loss: 0.075\n", "epoch: 1, batch: 1100 // loss: 0.086\n", "epoch: 1, batch: 1200 // loss: 0.084\n", "epoch: 1, batch: 1300 // loss: 0.086\n", "epoch: 1, batch: 1400 // loss: 0.084\n", "epoch: 1, batch: 1500 // loss: 0.079\n", "epoch: 1, batch: 1600 // loss: 0.089\n", "epoch: 1, batch: 1700 // loss: 0.089\n", "epoch: 1, batch: 1800 // loss: 0.086\n", "epoch: 1, batch: 1900 // loss: 0.082\n", "epoch: 1, batch: 2000 // loss: 0.071\n", "epoch: 1, batch: 2100 // loss: 0.085\n", "epoch: 1, batch: 2200 // loss: 0.093\n", "epoch: 1, batch: 2300 // loss: 0.087\n", "epoch: 1, batch: 2400 // loss: 0.075\n", "epoch: 1, batch: 2500 // loss: 0.072\n", "epoch: 1, batch: 2600 // loss: 0.083\n", "epoch: 1, batch: 2700 // loss: 0.074\n", "epoch: 1, batch: 2800 // loss: 0.084\n", "epoch: 1, batch: 2900 // loss: 0.073\n", "epoch: 1, batch: 3000 // loss: 0.075\n", "epoch: 1, batch: 3100 // loss: 0.071\n", "epoch: 1, batch: 3200 // loss: 0.070\n", "epoch: 1, batch: 3300 // loss: 0.068\n", "epoch: 1, batch: 3400 // loss: 0.062\n", "epoch: 1, batch: 3500 // loss: 0.063\n", "epoch: 1, batch: 3600 // loss: 0.074\n", "epoch: 1, batch: 3700 // loss: 0.071\n", "\n", "epoch: 2, batch: 0 // loss: 0.086\n", "epoch: 2, batch: 100 // loss: 0.075\n", "epoch: 2, batch: 200 // loss: 0.070\n", "epoch: 2, batch: 300 // loss: 0.072\n", "epoch: 2, batch: 400 // loss: 0.073\n", "epoch: 2, batch: 500 // loss: 0.059\n", "epoch: 2, batch: 600 // loss: 0.065\n", "epoch: 2, batch: 700 // loss: 0.065\n", "epoch: 2, batch: 800 // loss: 0.067\n", "epoch: 2, batch: 900 // loss: 0.072\n", "epoch: 2, batch: 1000 // loss: 0.056\n", "epoch: 2, batch: 1100 // loss: 0.062\n", "epoch: 2, batch: 1200 // loss: 0.060\n", "epoch: 2, batch: 1300 // loss: 0.067\n", "epoch: 2, batch: 1400 // loss: 0.060\n", "epoch: 2, batch: 1500 // loss: 0.061\n", "epoch: 2, batch: 1600 // loss: 0.068\n", "epoch: 2, batch: 1700 // loss: 0.063\n", "epoch: 2, batch: 1800 // loss: 0.066\n", "epoch: 2, batch: 1900 // loss: 0.060\n", "epoch: 2, batch: 2000 // loss: 0.057\n", "epoch: 2, batch: 2100 // loss: 0.062\n", "epoch: 2, batch: 2200 // loss: 0.070\n", "epoch: 2, batch: 2300 // loss: 0.067\n", "epoch: 2, batch: 2400 // loss: 0.049\n", "epoch: 2, batch: 2500 // loss: 0.054\n", "epoch: 2, batch: 2600 // loss: 0.058\n", "epoch: 2, batch: 2700 // loss: 0.055\n", "epoch: 2, batch: 2800 // loss: 0.059\n", "epoch: 2, batch: 2900 // loss: 0.056\n", "epoch: 2, batch: 3000 // loss: 0.057\n", "epoch: 2, batch: 3100 // loss: 0.050\n", "epoch: 2, batch: 3200 // loss: 0.050\n", "epoch: 2, batch: 3300 // loss: 0.049\n", "epoch: 2, batch: 3400 // loss: 0.048\n", "epoch: 2, batch: 3500 // loss: 0.042\n", "epoch: 2, batch: 3600 // loss: 0.052\n", "epoch: 2, batch: 3700 // loss: 0.051\n", "\n", "epoch: 3, batch: 0 // loss: 0.067\n", "epoch: 3, batch: 100 // loss: 0.060\n", "epoch: 3, batch: 200 // loss: 0.051\n", "epoch: 3, batch: 300 // loss: 0.058\n", "epoch: 3, batch: 400 // loss: 0.056\n", "epoch: 3, batch: 500 // loss: 0.045\n", "epoch: 3, batch: 600 // loss: 0.048\n", "epoch: 3, batch: 700 // loss: 0.051\n", "epoch: 3, batch: 800 // loss: 0.052\n", "epoch: 3, batch: 900 // loss: 0.058\n", "epoch: 3, batch: 1000 // loss: 0.046\n", "epoch: 3, batch: 1100 // loss: 0.048\n", "epoch: 3, batch: 1200 // loss: 0.050\n", "epoch: 3, batch: 1300 // loss: 0.053\n", "epoch: 3, batch: 1400 // loss: 0.047\n", "epoch: 3, batch: 1500 // loss: 0.052\n", "epoch: 3, batch: 1600 // loss: 0.059\n", "epoch: 3, batch: 1700 // loss: 0.050\n", "epoch: 3, batch: 1800 // loss: 0.055\n", "epoch: 3, batch: 1900 // loss: 0.050\n", "epoch: 3, batch: 2000 // loss: 0.049\n", "epoch: 3, batch: 2100 // loss: 0.052\n", "epoch: 3, batch: 2200 // loss: 0.055\n", "epoch: 3, batch: 2300 // loss: 0.054\n", "epoch: 3, batch: 2400 // loss: 0.043\n", "epoch: 3, batch: 2500 // loss: 0.046\n", "epoch: 3, batch: 2600 // loss: 0.048\n", "epoch: 3, batch: 2700 // loss: 0.046\n", "epoch: 3, batch: 2800 // loss: 0.048\n", "epoch: 3, batch: 2900 // loss: 0.048\n", "epoch: 3, batch: 3000 // loss: 0.050\n", "epoch: 3, batch: 3100 // loss: 0.043\n", "epoch: 3, batch: 3200 // loss: 0.043\n", "epoch: 3, batch: 3300 // loss: 0.041\n", "epoch: 3, batch: 3400 // loss: 0.044\n", "epoch: 3, batch: 3500 // loss: 0.035\n", "epoch: 3, batch: 3600 // loss: 0.044\n", "epoch: 3, batch: 3700 // loss: 0.044\n", "\n", "epoch: 4, batch: 0 // loss: 0.057\n", "epoch: 4, batch: 100 // loss: 0.049\n", "epoch: 4, batch: 200 // loss: 0.044\n", "epoch: 4, batch: 300 // loss: 0.052\n", "epoch: 4, batch: 400 // loss: 0.047\n", "epoch: 4, batch: 500 // loss: 0.040\n", "epoch: 4, batch: 600 // loss: 0.041\n", "epoch: 4, batch: 700 // loss: 0.045\n", "epoch: 4, batch: 800 // loss: 0.042\n", "epoch: 4, batch: 900 // loss: 0.050\n", "epoch: 4, batch: 1000 // loss: 0.043\n", "epoch: 4, batch: 1100 // loss: 0.043\n", "epoch: 4, batch: 1200 // loss: 0.045\n", "epoch: 4, batch: 1300 // loss: 0.046\n", "epoch: 4, batch: 1400 // loss: 0.042\n", "epoch: 4, batch: 1500 // loss: 0.046\n", "epoch: 4, batch: 1600 // loss: 0.053\n", "epoch: 4, batch: 1700 // loss: 0.043\n", "epoch: 4, batch: 1800 // loss: 0.050\n", "epoch: 4, batch: 1900 // loss: 0.044\n", "epoch: 4, batch: 2000 // loss: 0.045\n", "epoch: 4, batch: 2100 // loss: 0.046\n", "epoch: 4, batch: 2200 // loss: 0.048\n", "epoch: 4, batch: 2300 // loss: 0.049\n", "epoch: 4, batch: 2400 // loss: 0.041\n", "epoch: 4, batch: 2500 // loss: 0.042\n", "epoch: 4, batch: 2600 // loss: 0.044\n", "epoch: 4, batch: 2700 // loss: 0.042\n", "epoch: 4, batch: 2800 // loss: 0.043\n", "epoch: 4, batch: 2900 // loss: 0.044\n", "epoch: 4, batch: 3000 // loss: 0.046\n", "epoch: 4, batch: 3100 // loss: 0.040\n", "epoch: 4, batch: 3200 // loss: 0.038\n", "epoch: 4, batch: 3300 // loss: 0.038\n", "epoch: 4, batch: 3400 // loss: 0.042\n", "epoch: 4, batch: 3500 // loss: 0.032\n", "epoch: 4, batch: 3600 // loss: 0.041\n", "epoch: 4, batch: 3700 // loss: 0.040\n", "\n", "epoch: 5, batch: 0 // loss: 0.052\n", "epoch: 5, batch: 100 // loss: 0.045\n", "epoch: 5, batch: 200 // loss: 0.041\n", "epoch: 5, batch: 300 // loss: 0.048\n", "epoch: 5, batch: 400 // loss: 0.044\n", "epoch: 5, batch: 500 // loss: 0.038\n", "epoch: 5, batch: 600 // loss: 0.038\n", "epoch: 5, batch: 700 // loss: 0.041\n", "epoch: 5, batch: 800 // loss: 0.039\n", "epoch: 5, batch: 900 // loss: 0.046\n", "epoch: 5, batch: 1000 // loss: 0.042\n", "epoch: 5, batch: 1100 // loss: 0.041\n", "epoch: 5, batch: 1200 // loss: 0.043\n", "epoch: 5, batch: 1300 // loss: 0.043\n", "epoch: 5, batch: 1400 // loss: 0.040\n", "epoch: 5, batch: 1500 // loss: 0.043\n", "epoch: 5, batch: 1600 // loss: 0.050\n", "epoch: 5, batch: 1700 // loss: 0.040\n", "epoch: 5, batch: 1800 // loss: 0.048\n", "epoch: 5, batch: 1900 // loss: 0.042\n", "epoch: 5, batch: 2000 // loss: 0.043\n", "epoch: 5, batch: 2100 // loss: 0.044\n", "epoch: 5, batch: 2200 // loss: 0.045\n", "epoch: 5, batch: 2300 // loss: 0.046\n", "epoch: 5, batch: 2400 // loss: 0.039\n", "epoch: 5, batch: 2500 // loss: 0.040\n", "epoch: 5, batch: 2600 // loss: 0.042\n", "epoch: 5, batch: 2700 // loss: 0.041\n", "epoch: 5, batch: 2800 // loss: 0.041\n", "epoch: 5, batch: 2900 // loss: 0.042\n", "epoch: 5, batch: 3000 // loss: 0.044\n", "epoch: 5, batch: 3100 // loss: 0.040\n", "epoch: 5, batch: 3200 // loss: 0.036\n", "epoch: 5, batch: 3300 // loss: 0.036\n", "epoch: 5, batch: 3400 // loss: 0.041\n", "epoch: 5, batch: 3500 // loss: 0.031\n", "epoch: 5, batch: 3600 // loss: 0.040\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 5, batch: 3700 // loss: 0.038\n", "\n", "epoch: 6, batch: 0 // loss: 0.051\n", "epoch: 6, batch: 100 // loss: 0.043\n", "epoch: 6, batch: 200 // loss: 0.039\n", "epoch: 6, batch: 300 // loss: 0.047\n", "epoch: 6, batch: 400 // loss: 0.043\n", "epoch: 6, batch: 500 // loss: 0.037\n", "epoch: 6, batch: 600 // loss: 0.037\n", "epoch: 6, batch: 700 // loss: 0.041\n", "epoch: 6, batch: 800 // loss: 0.037\n", "epoch: 6, batch: 900 // loss: 0.045\n", "epoch: 6, batch: 1000 // loss: 0.042\n", "epoch: 6, batch: 1100 // loss: 0.041\n", "epoch: 6, batch: 1200 // loss: 0.042\n", "epoch: 6, batch: 1300 // loss: 0.042\n", "epoch: 6, batch: 1400 // loss: 0.040\n", "epoch: 6, batch: 1500 // loss: 0.042\n", "epoch: 6, batch: 1600 // loss: 0.049\n", "epoch: 6, batch: 1700 // loss: 0.039\n", "epoch: 6, batch: 1800 // loss: 0.047\n", "epoch: 6, batch: 1900 // loss: 0.041\n", "epoch: 6, batch: 2000 // loss: 0.042\n", "epoch: 6, batch: 2100 // loss: 0.042\n", "epoch: 6, batch: 2200 // loss: 0.044\n", "epoch: 6, batch: 2300 // loss: 0.045\n", "epoch: 6, batch: 2400 // loss: 0.038\n", "epoch: 6, batch: 2500 // loss: 0.039\n", "epoch: 6, batch: 2600 // loss: 0.042\n", "epoch: 6, batch: 2700 // loss: 0.041\n", "epoch: 6, batch: 2800 // loss: 0.040\n", "epoch: 6, batch: 2900 // loss: 0.041\n", "epoch: 6, batch: 3000 // loss: 0.044\n", "epoch: 6, batch: 3100 // loss: 0.039\n", "epoch: 6, batch: 3200 // loss: 0.036\n", "epoch: 6, batch: 3300 // loss: 0.035\n", "epoch: 6, batch: 3400 // loss: 0.040\n", "epoch: 6, batch: 3500 // loss: 0.030\n", "epoch: 6, batch: 3600 // loss: 0.039\n", "epoch: 6, batch: 3700 // loss: 0.037\n", "\n", "epoch: 7, batch: 0 // loss: 0.049\n", "epoch: 7, batch: 100 // loss: 0.042\n", "epoch: 7, batch: 200 // loss: 0.038\n", "epoch: 7, batch: 300 // loss: 0.046\n", "epoch: 7, batch: 400 // loss: 0.042\n", "epoch: 7, batch: 500 // loss: 0.036\n", "epoch: 7, batch: 600 // loss: 0.036\n", "epoch: 7, batch: 700 // loss: 0.040\n", "epoch: 7, batch: 800 // loss: 0.036\n", "epoch: 7, batch: 900 // loss: 0.044\n", "epoch: 7, batch: 1000 // loss: 0.042\n", "epoch: 7, batch: 1100 // loss: 0.040\n", "epoch: 7, batch: 1200 // loss: 0.041\n", "epoch: 7, batch: 1300 // loss: 0.042\n", "epoch: 7, batch: 1400 // loss: 0.039\n", "epoch: 7, batch: 1500 // loss: 0.042\n", "epoch: 7, batch: 1600 // loss: 0.048\n", "epoch: 7, batch: 1700 // loss: 0.038\n", "epoch: 7, batch: 1800 // loss: 0.046\n", "epoch: 7, batch: 1900 // loss: 0.041\n", "epoch: 7, batch: 2000 // loss: 0.042\n", "epoch: 7, batch: 2100 // loss: 0.041\n", "epoch: 7, batch: 2200 // loss: 0.043\n", "epoch: 7, batch: 2300 // loss: 0.044\n", "epoch: 7, batch: 2400 // loss: 0.037\n", "epoch: 7, batch: 2500 // loss: 0.039\n", "epoch: 7, batch: 2600 // loss: 0.041\n", "epoch: 7, batch: 2700 // loss: 0.040\n", "epoch: 7, batch: 2800 // loss: 0.039\n", "epoch: 7, batch: 2900 // loss: 0.040\n", "epoch: 7, batch: 3000 // loss: 0.043\n", "epoch: 7, batch: 3100 // loss: 0.039\n", "epoch: 7, batch: 3200 // loss: 0.035\n", "epoch: 7, batch: 3300 // loss: 0.034\n", "epoch: 7, batch: 3400 // loss: 0.040\n", "epoch: 7, batch: 3500 // loss: 0.030\n", "epoch: 7, batch: 3600 // loss: 0.038\n", "epoch: 7, batch: 3700 // loss: 0.037\n", "\n", "epoch: 8, batch: 0 // loss: 0.048\n", "epoch: 8, batch: 100 // loss: 0.041\n", "epoch: 8, batch: 200 // loss: 0.037\n", "epoch: 8, batch: 300 // loss: 0.045\n", "epoch: 8, batch: 400 // loss: 0.041\n", "epoch: 8, batch: 500 // loss: 0.035\n", "epoch: 8, batch: 600 // loss: 0.036\n", "epoch: 8, batch: 700 // loss: 0.039\n", "epoch: 8, batch: 800 // loss: 0.036\n", "epoch: 8, batch: 900 // loss: 0.043\n", "epoch: 8, batch: 1000 // loss: 0.041\n", "epoch: 8, batch: 1100 // loss: 0.039\n", "epoch: 8, batch: 1200 // loss: 0.040\n", "epoch: 8, batch: 1300 // loss: 0.041\n", "epoch: 8, batch: 1400 // loss: 0.038\n", "epoch: 8, batch: 1500 // loss: 0.041\n", "epoch: 8, batch: 1600 // loss: 0.047\n", "epoch: 8, batch: 1700 // loss: 0.037\n", "epoch: 8, batch: 1800 // loss: 0.046\n", "epoch: 8, batch: 1900 // loss: 0.039\n", "epoch: 8, batch: 2000 // loss: 0.041\n", "epoch: 8, batch: 2100 // loss: 0.040\n", "epoch: 8, batch: 2200 // loss: 0.042\n", "epoch: 8, batch: 2300 // loss: 0.043\n", "epoch: 8, batch: 2400 // loss: 0.037\n", "epoch: 8, batch: 2500 // loss: 0.038\n", "epoch: 8, batch: 2600 // loss: 0.041\n", "epoch: 8, batch: 2700 // loss: 0.039\n", "epoch: 8, batch: 2800 // loss: 0.038\n", "epoch: 8, batch: 2900 // loss: 0.039\n", "epoch: 8, batch: 3000 // loss: 0.042\n", "epoch: 8, batch: 3100 // loss: 0.038\n", "epoch: 8, batch: 3200 // loss: 0.034\n", "epoch: 8, batch: 3300 // loss: 0.034\n", "epoch: 8, batch: 3400 // loss: 0.039\n", "epoch: 8, batch: 3500 // loss: 0.029\n", "epoch: 8, batch: 3600 // loss: 0.037\n", "epoch: 8, batch: 3700 // loss: 0.036\n", "\n", "epoch: 9, batch: 0 // loss: 0.047\n", "epoch: 9, batch: 100 // loss: 0.040\n", "epoch: 9, batch: 200 // loss: 0.036\n", "epoch: 9, batch: 300 // loss: 0.044\n", "epoch: 9, batch: 400 // loss: 0.040\n", "epoch: 9, batch: 500 // loss: 0.035\n", "epoch: 9, batch: 600 // loss: 0.035\n", "epoch: 9, batch: 700 // loss: 0.038\n", "epoch: 9, batch: 800 // loss: 0.035\n", "epoch: 9, batch: 900 // loss: 0.042\n", "epoch: 9, batch: 1000 // loss: 0.040\n", "epoch: 9, batch: 1100 // loss: 0.038\n", "epoch: 9, batch: 1200 // loss: 0.039\n", "epoch: 9, batch: 1300 // loss: 0.040\n", "epoch: 9, batch: 1400 // loss: 0.037\n", "epoch: 9, batch: 1500 // loss: 0.039\n", "epoch: 9, batch: 1600 // loss: 0.046\n", "epoch: 9, batch: 1700 // loss: 0.036\n", "epoch: 9, batch: 1800 // loss: 0.044\n", "epoch: 9, batch: 1900 // loss: 0.037\n", "epoch: 9, batch: 2000 // loss: 0.040\n", "epoch: 9, batch: 2100 // loss: 0.039\n", "epoch: 9, batch: 2200 // loss: 0.041\n", "epoch: 9, batch: 2300 // loss: 0.041\n", "epoch: 9, batch: 2400 // loss: 0.036\n", "epoch: 9, batch: 2500 // loss: 0.037\n", "epoch: 9, batch: 2600 // loss: 0.040\n", "epoch: 9, batch: 2700 // loss: 0.037\n", "epoch: 9, batch: 2800 // loss: 0.036\n", "epoch: 9, batch: 2900 // loss: 0.038\n", "epoch: 9, batch: 3000 // loss: 0.041\n", "epoch: 9, batch: 3100 // loss: 0.038\n", "epoch: 9, batch: 3200 // loss: 0.033\n", "epoch: 9, batch: 3300 // loss: 0.033\n", "epoch: 9, batch: 3400 // loss: 0.037\n", "epoch: 9, batch: 3500 // loss: 0.028\n", "epoch: 9, batch: 3600 // loss: 0.036\n", "epoch: 9, batch: 3700 // loss: 0.035\n", "\n", "epoch: 10, batch: 0 // loss: 0.045\n", "epoch: 10, batch: 100 // loss: 0.039\n", "epoch: 10, batch: 200 // loss: 0.035\n", "epoch: 10, batch: 300 // loss: 0.043\n", "epoch: 10, batch: 400 // loss: 0.039\n", "epoch: 10, batch: 500 // loss: 0.034\n", "epoch: 10, batch: 600 // loss: 0.034\n", "epoch: 10, batch: 700 // loss: 0.037\n", "epoch: 10, batch: 800 // loss: 0.034\n", "epoch: 10, batch: 900 // loss: 0.041\n", "epoch: 10, batch: 1000 // loss: 0.039\n", "epoch: 10, batch: 1100 // loss: 0.037\n", "epoch: 10, batch: 1200 // loss: 0.037\n", "epoch: 10, batch: 1300 // loss: 0.039\n", "epoch: 10, batch: 1400 // loss: 0.036\n", "epoch: 10, batch: 1500 // loss: 0.038\n", "epoch: 10, batch: 1600 // loss: 0.044\n", "epoch: 10, batch: 1700 // loss: 0.035\n", "epoch: 10, batch: 1800 // loss: 0.043\n", "epoch: 10, batch: 1900 // loss: 0.035\n", "epoch: 10, batch: 2000 // loss: 0.039\n", "epoch: 10, batch: 2100 // loss: 0.038\n", "epoch: 10, batch: 2200 // loss: 0.039\n", "epoch: 10, batch: 2300 // loss: 0.040\n", "epoch: 10, batch: 2400 // loss: 0.034\n", "epoch: 10, batch: 2500 // loss: 0.035\n", "epoch: 10, batch: 2600 // loss: 0.038\n", "epoch: 10, batch: 2700 // loss: 0.036\n", "epoch: 10, batch: 2800 // loss: 0.034\n", "epoch: 10, batch: 2900 // loss: 0.037\n", "epoch: 10, batch: 3000 // loss: 0.040\n", "epoch: 10, batch: 3100 // loss: 0.037\n", "epoch: 10, batch: 3200 // loss: 0.031\n", "epoch: 10, batch: 3300 // loss: 0.031\n", "epoch: 10, batch: 3400 // loss: 0.036\n", "epoch: 10, batch: 3500 // loss: 0.027\n", "epoch: 10, batch: 3600 // loss: 0.034\n", "epoch: 10, batch: 3700 // loss: 0.033\n", "\n", "epoch: 11, batch: 0 // loss: 0.044\n", "epoch: 11, batch: 100 // loss: 0.037\n", "epoch: 11, batch: 200 // loss: 0.034\n", "epoch: 11, batch: 300 // loss: 0.041\n", "epoch: 11, batch: 400 // loss: 0.037\n", "epoch: 11, batch: 500 // loss: 0.033\n", "epoch: 11, batch: 600 // loss: 0.033\n", "epoch: 11, batch: 700 // loss: 0.035\n", "epoch: 11, batch: 800 // loss: 0.032\n", "epoch: 11, batch: 900 // loss: 0.040\n", "epoch: 11, batch: 1000 // loss: 0.038\n", "epoch: 11, batch: 1100 // loss: 0.036\n", "epoch: 11, batch: 1200 // loss: 0.036\n", "epoch: 11, batch: 1300 // loss: 0.039\n", "epoch: 11, batch: 1400 // loss: 0.035\n", "epoch: 11, batch: 1500 // loss: 0.037\n", "epoch: 11, batch: 1600 // loss: 0.042\n", "epoch: 11, batch: 1700 // loss: 0.033\n", "epoch: 11, batch: 1800 // loss: 0.041\n", "epoch: 11, batch: 1900 // loss: 0.033\n", "epoch: 11, batch: 2000 // loss: 0.038\n", "epoch: 11, batch: 2100 // loss: 0.036\n", "epoch: 11, batch: 2200 // loss: 0.038\n", "epoch: 11, batch: 2300 // loss: 0.039\n", "epoch: 11, batch: 2400 // loss: 0.033\n", "epoch: 11, batch: 2500 // loss: 0.034\n", "epoch: 11, batch: 2600 // loss: 0.037\n", "epoch: 11, batch: 2700 // loss: 0.035\n", "epoch: 11, batch: 2800 // loss: 0.033\n", "epoch: 11, batch: 2900 // loss: 0.036\n", "epoch: 11, batch: 3000 // loss: 0.039\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 11, batch: 3100 // loss: 0.037\n", "epoch: 11, batch: 3200 // loss: 0.030\n", "epoch: 11, batch: 3300 // loss: 0.030\n", "epoch: 11, batch: 3400 // loss: 0.035\n", "epoch: 11, batch: 3500 // loss: 0.026\n", "epoch: 11, batch: 3600 // loss: 0.033\n", "epoch: 11, batch: 3700 // loss: 0.032\n", "\n", "epoch: 12, batch: 0 // loss: 0.042\n", "epoch: 12, batch: 100 // loss: 0.036\n", "epoch: 12, batch: 200 // loss: 0.033\n", "epoch: 12, batch: 300 // loss: 0.040\n", "epoch: 12, batch: 400 // loss: 0.036\n", "epoch: 12, batch: 500 // loss: 0.033\n", "epoch: 12, batch: 600 // loss: 0.033\n", "epoch: 12, batch: 700 // loss: 0.035\n", "epoch: 12, batch: 800 // loss: 0.031\n", "epoch: 12, batch: 900 // loss: 0.039\n", "epoch: 12, batch: 1000 // loss: 0.037\n", "epoch: 12, batch: 1100 // loss: 0.036\n", "epoch: 12, batch: 1200 // loss: 0.035\n", "epoch: 12, batch: 1300 // loss: 0.037\n", "epoch: 12, batch: 1400 // loss: 0.034\n", "epoch: 12, batch: 1500 // loss: 0.035\n", "epoch: 12, batch: 1600 // loss: 0.041\n", "epoch: 12, batch: 1700 // loss: 0.033\n", "epoch: 12, batch: 1800 // loss: 0.040\n", "epoch: 12, batch: 1900 // loss: 0.032\n", "epoch: 12, batch: 2000 // loss: 0.037\n", "epoch: 12, batch: 2100 // loss: 0.035\n", "epoch: 12, batch: 2200 // loss: 0.037\n", "epoch: 12, batch: 2300 // loss: 0.038\n", "epoch: 12, batch: 2400 // loss: 0.032\n", "epoch: 12, batch: 2500 // loss: 0.034\n", "epoch: 12, batch: 2600 // loss: 0.037\n", "epoch: 12, batch: 2700 // loss: 0.034\n", "epoch: 12, batch: 2800 // loss: 0.031\n", "epoch: 12, batch: 2900 // loss: 0.035\n", "epoch: 12, batch: 3000 // loss: 0.038\n", "epoch: 12, batch: 3100 // loss: 0.036\n", "epoch: 12, batch: 3200 // loss: 0.030\n", "epoch: 12, batch: 3300 // loss: 0.030\n", "epoch: 12, batch: 3400 // loss: 0.034\n", "epoch: 12, batch: 3500 // loss: 0.025\n", "epoch: 12, batch: 3600 // loss: 0.032\n", "epoch: 12, batch: 3700 // loss: 0.032\n", "\n", "epoch: 13, batch: 0 // loss: 0.042\n", "epoch: 13, batch: 100 // loss: 0.035\n", "epoch: 13, batch: 200 // loss: 0.032\n", "epoch: 13, batch: 300 // loss: 0.039\n", "epoch: 13, batch: 400 // loss: 0.035\n", "epoch: 13, batch: 500 // loss: 0.032\n", "epoch: 13, batch: 600 // loss: 0.032\n", "epoch: 13, batch: 700 // loss: 0.034\n", "epoch: 13, batch: 800 // loss: 0.031\n", "epoch: 13, batch: 900 // loss: 0.039\n", "epoch: 13, batch: 1000 // loss: 0.036\n", "epoch: 13, batch: 1100 // loss: 0.035\n", "epoch: 13, batch: 1200 // loss: 0.034\n", "epoch: 13, batch: 1300 // loss: 0.037\n", "epoch: 13, batch: 1400 // loss: 0.033\n", "epoch: 13, batch: 1500 // loss: 0.035\n", "epoch: 13, batch: 1600 // loss: 0.040\n", "epoch: 13, batch: 1700 // loss: 0.032\n", "epoch: 13, batch: 1800 // loss: 0.039\n", "epoch: 13, batch: 1900 // loss: 0.031\n", "epoch: 13, batch: 2000 // loss: 0.037\n", "epoch: 13, batch: 2100 // loss: 0.034\n", "epoch: 13, batch: 2200 // loss: 0.037\n", "epoch: 13, batch: 2300 // loss: 0.037\n", "epoch: 13, batch: 2400 // loss: 0.032\n", "epoch: 13, batch: 2500 // loss: 0.033\n", "epoch: 13, batch: 2600 // loss: 0.036\n", "epoch: 13, batch: 2700 // loss: 0.034\n", "epoch: 13, batch: 2800 // loss: 0.030\n", "epoch: 13, batch: 2900 // loss: 0.035\n", "epoch: 13, batch: 3000 // loss: 0.037\n", "epoch: 13, batch: 3100 // loss: 0.036\n", "epoch: 13, batch: 3200 // loss: 0.029\n", "epoch: 13, batch: 3300 // loss: 0.029\n", "epoch: 13, batch: 3400 // loss: 0.034\n", "epoch: 13, batch: 3500 // loss: 0.025\n", "epoch: 13, batch: 3600 // loss: 0.031\n", "epoch: 13, batch: 3700 // loss: 0.031\n", "\n", "epoch: 14, batch: 0 // loss: 0.041\n", "epoch: 14, batch: 100 // loss: 0.035\n", "epoch: 14, batch: 200 // loss: 0.031\n", "epoch: 14, batch: 300 // loss: 0.038\n", "epoch: 14, batch: 400 // loss: 0.034\n", "epoch: 14, batch: 500 // loss: 0.032\n", "epoch: 14, batch: 600 // loss: 0.032\n", "epoch: 14, batch: 700 // loss: 0.033\n", "epoch: 14, batch: 800 // loss: 0.030\n", "epoch: 14, batch: 900 // loss: 0.038\n", "epoch: 14, batch: 1000 // loss: 0.036\n", "epoch: 14, batch: 1100 // loss: 0.034\n", "epoch: 14, batch: 1200 // loss: 0.033\n", "epoch: 14, batch: 1300 // loss: 0.036\n", "epoch: 14, batch: 1400 // loss: 0.033\n", "epoch: 14, batch: 1500 // loss: 0.034\n", "epoch: 14, batch: 1600 // loss: 0.039\n", "epoch: 14, batch: 1700 // loss: 0.031\n", "epoch: 14, batch: 1800 // loss: 0.038\n", "epoch: 14, batch: 1900 // loss: 0.030\n", "epoch: 14, batch: 2000 // loss: 0.036\n", "epoch: 14, batch: 2100 // loss: 0.034\n", "epoch: 14, batch: 2200 // loss: 0.036\n", "epoch: 14, batch: 2300 // loss: 0.036\n", "epoch: 14, batch: 2400 // loss: 0.031\n", "epoch: 14, batch: 2500 // loss: 0.033\n", "epoch: 14, batch: 2600 // loss: 0.035\n", "epoch: 14, batch: 2700 // loss: 0.033\n", "epoch: 14, batch: 2800 // loss: 0.030\n", "epoch: 14, batch: 2900 // loss: 0.034\n", "epoch: 14, batch: 3000 // loss: 0.037\n", "epoch: 14, batch: 3100 // loss: 0.035\n", "epoch: 14, batch: 3200 // loss: 0.029\n", "epoch: 14, batch: 3300 // loss: 0.029\n", "epoch: 14, batch: 3400 // loss: 0.033\n", "epoch: 14, batch: 3500 // loss: 0.025\n", "epoch: 14, batch: 3600 // loss: 0.031\n", "epoch: 14, batch: 3700 // loss: 0.030\n", "\n", "epoch: 15, batch: 0 // loss: 0.040\n", "epoch: 15, batch: 100 // loss: 0.034\n", "epoch: 15, batch: 200 // loss: 0.031\n", "epoch: 15, batch: 300 // loss: 0.038\n", "epoch: 15, batch: 400 // loss: 0.034\n", "epoch: 15, batch: 500 // loss: 0.032\n", "epoch: 15, batch: 600 // loss: 0.031\n", "epoch: 15, batch: 700 // loss: 0.033\n", "epoch: 15, batch: 800 // loss: 0.029\n", "epoch: 15, batch: 900 // loss: 0.038\n", "epoch: 15, batch: 1000 // loss: 0.036\n", "epoch: 15, batch: 1100 // loss: 0.034\n", "epoch: 15, batch: 1200 // loss: 0.033\n", "epoch: 15, batch: 1300 // loss: 0.036\n", "epoch: 15, batch: 1400 // loss: 0.033\n", "epoch: 15, batch: 1500 // loss: 0.034\n", "epoch: 15, batch: 1600 // loss: 0.039\n", "epoch: 15, batch: 1700 // loss: 0.031\n", "epoch: 15, batch: 1800 // loss: 0.037\n", "epoch: 15, batch: 1900 // loss: 0.030\n", "epoch: 15, batch: 2000 // loss: 0.035\n", "epoch: 15, batch: 2100 // loss: 0.033\n", "epoch: 15, batch: 2200 // loss: 0.036\n", "epoch: 15, batch: 2300 // loss: 0.036\n", "epoch: 15, batch: 2400 // loss: 0.031\n", "epoch: 15, batch: 2500 // loss: 0.032\n", "epoch: 15, batch: 2600 // loss: 0.035\n", "epoch: 15, batch: 2700 // loss: 0.033\n", "epoch: 15, batch: 2800 // loss: 0.029\n", "epoch: 15, batch: 2900 // loss: 0.034\n", "epoch: 15, batch: 3000 // loss: 0.036\n", "epoch: 15, batch: 3100 // loss: 0.035\n", "epoch: 15, batch: 3200 // loss: 0.028\n", "epoch: 15, batch: 3300 // loss: 0.028\n", "epoch: 15, batch: 3400 // loss: 0.033\n", "epoch: 15, batch: 3500 // loss: 0.024\n", "epoch: 15, batch: 3600 // loss: 0.030\n", "epoch: 15, batch: 3700 // loss: 0.030\n", "\n", "epoch: 16, batch: 0 // loss: 0.040\n", "epoch: 16, batch: 100 // loss: 0.033\n", "epoch: 16, batch: 200 // loss: 0.030\n", "epoch: 16, batch: 300 // loss: 0.037\n", "epoch: 16, batch: 400 // loss: 0.033\n", "epoch: 16, batch: 500 // loss: 0.031\n", "epoch: 16, batch: 600 // loss: 0.031\n", "epoch: 16, batch: 700 // loss: 0.032\n", "epoch: 16, batch: 800 // loss: 0.029\n", "epoch: 16, batch: 900 // loss: 0.038\n", "epoch: 16, batch: 1000 // loss: 0.035\n", "epoch: 16, batch: 1100 // loss: 0.033\n", "epoch: 16, batch: 1200 // loss: 0.032\n", "epoch: 16, batch: 1300 // loss: 0.036\n", "epoch: 16, batch: 1400 // loss: 0.032\n", "epoch: 16, batch: 1500 // loss: 0.034\n", "epoch: 16, batch: 1600 // loss: 0.038\n", "epoch: 16, batch: 1700 // loss: 0.030\n", "epoch: 16, batch: 1800 // loss: 0.036\n", "epoch: 16, batch: 1900 // loss: 0.029\n", "epoch: 16, batch: 2000 // loss: 0.035\n", "epoch: 16, batch: 2100 // loss: 0.033\n", "epoch: 16, batch: 2200 // loss: 0.035\n", "epoch: 16, batch: 2300 // loss: 0.035\n", "epoch: 16, batch: 2400 // loss: 0.031\n", "epoch: 16, batch: 2500 // loss: 0.031\n", "epoch: 16, batch: 2600 // loss: 0.035\n", "epoch: 16, batch: 2700 // loss: 0.032\n", "epoch: 16, batch: 2800 // loss: 0.029\n", "epoch: 16, batch: 2900 // loss: 0.033\n", "epoch: 16, batch: 3000 // loss: 0.036\n", "epoch: 16, batch: 3100 // loss: 0.034\n", "epoch: 16, batch: 3200 // loss: 0.027\n", "epoch: 16, batch: 3300 // loss: 0.028\n", "epoch: 16, batch: 3400 // loss: 0.032\n", "epoch: 16, batch: 3500 // loss: 0.024\n", "epoch: 16, batch: 3600 // loss: 0.029\n", "epoch: 16, batch: 3700 // loss: 0.029\n", "\n", "epoch: 17, batch: 0 // loss: 0.039\n", "epoch: 17, batch: 100 // loss: 0.032\n", "epoch: 17, batch: 200 // loss: 0.029\n", "epoch: 17, batch: 300 // loss: 0.037\n", "epoch: 17, batch: 400 // loss: 0.033\n", "epoch: 17, batch: 500 // loss: 0.031\n", "epoch: 17, batch: 600 // loss: 0.030\n", "epoch: 17, batch: 700 // loss: 0.032\n", "epoch: 17, batch: 800 // loss: 0.028\n", "epoch: 17, batch: 900 // loss: 0.037\n", "epoch: 17, batch: 1000 // loss: 0.035\n", "epoch: 17, batch: 1100 // loss: 0.032\n", "epoch: 17, batch: 1200 // loss: 0.031\n", "epoch: 17, batch: 1300 // loss: 0.035\n", "epoch: 17, batch: 1400 // loss: 0.031\n", "epoch: 17, batch: 1500 // loss: 0.033\n", "epoch: 17, batch: 1600 // loss: 0.037\n", "epoch: 17, batch: 1700 // loss: 0.030\n", "epoch: 17, batch: 1800 // loss: 0.035\n", "epoch: 17, batch: 1900 // loss: 0.029\n", "epoch: 17, batch: 2000 // loss: 0.034\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "epoch: 17, batch: 2100 // loss: 0.032\n", "epoch: 17, batch: 2200 // loss: 0.034\n", "epoch: 17, batch: 2300 // loss: 0.033\n", "epoch: 17, batch: 2400 // loss: 0.030\n", "epoch: 17, batch: 2500 // loss: 0.030\n", "epoch: 17, batch: 2600 // loss: 0.034\n", "epoch: 17, batch: 2700 // loss: 0.031\n", "epoch: 17, batch: 2800 // loss: 0.028\n", "epoch: 17, batch: 2900 // loss: 0.032\n", "epoch: 17, batch: 3000 // loss: 0.035\n", "epoch: 17, batch: 3100 // loss: 0.034\n", "epoch: 17, batch: 3200 // loss: 0.027\n", "epoch: 17, batch: 3300 // loss: 0.027\n", "epoch: 17, batch: 3400 // loss: 0.031\n", "epoch: 17, batch: 3500 // loss: 0.024\n", "epoch: 17, batch: 3600 // loss: 0.029\n", "epoch: 17, batch: 3700 // loss: 0.028\n", "\n", "epoch: 18, batch: 0 // loss: 0.039\n", "epoch: 18, batch: 100 // loss: 0.031\n", "epoch: 18, batch: 200 // loss: 0.028\n", "epoch: 18, batch: 300 // loss: 0.036\n", "epoch: 18, batch: 400 // loss: 0.032\n", "epoch: 18, batch: 500 // loss: 0.031\n", "epoch: 18, batch: 600 // loss: 0.030\n", "epoch: 18, batch: 700 // loss: 0.031\n", "epoch: 18, batch: 800 // loss: 0.027\n", "epoch: 18, batch: 900 // loss: 0.036\n", "epoch: 18, batch: 1000 // loss: 0.034\n", "epoch: 18, batch: 1100 // loss: 0.031\n", "epoch: 18, batch: 1200 // loss: 0.031\n", "epoch: 18, batch: 1300 // loss: 0.034\n", "epoch: 18, batch: 1400 // loss: 0.031\n", "epoch: 18, batch: 1500 // loss: 0.033\n", "epoch: 18, batch: 1600 // loss: 0.036\n", "epoch: 18, batch: 1700 // loss: 0.030\n", "epoch: 18, batch: 1800 // loss: 0.033\n", "epoch: 18, batch: 1900 // loss: 0.028\n", "epoch: 18, batch: 2000 // loss: 0.033\n", "epoch: 18, batch: 2100 // loss: 0.031\n", "epoch: 18, batch: 2200 // loss: 0.033\n", "epoch: 18, batch: 2300 // loss: 0.032\n", "epoch: 18, batch: 2400 // loss: 0.029\n", "epoch: 18, batch: 2500 // loss: 0.029\n", "epoch: 18, batch: 2600 // loss: 0.033\n", "epoch: 18, batch: 2700 // loss: 0.030\n", "epoch: 18, batch: 2800 // loss: 0.027\n", "epoch: 18, batch: 2900 // loss: 0.031\n", "epoch: 18, batch: 3000 // loss: 0.034\n", "epoch: 18, batch: 3100 // loss: 0.033\n", "epoch: 18, batch: 3200 // loss: 0.026\n", "epoch: 18, batch: 3300 // loss: 0.026\n", "epoch: 18, batch: 3400 // loss: 0.030\n", "epoch: 18, batch: 3500 // loss: 0.023\n", "epoch: 18, batch: 3600 // loss: 0.028\n", "epoch: 18, batch: 3700 // loss: 0.027\n", "\n", "epoch: 19, batch: 0 // loss: 0.038\n", "epoch: 19, batch: 100 // loss: 0.030\n", "epoch: 19, batch: 200 // loss: 0.027\n", "epoch: 19, batch: 300 // loss: 0.035\n", "epoch: 19, batch: 400 // loss: 0.031\n", "epoch: 19, batch: 500 // loss: 0.030\n", "epoch: 19, batch: 600 // loss: 0.029\n", "epoch: 19, batch: 700 // loss: 0.030\n", "epoch: 19, batch: 800 // loss: 0.026\n", "epoch: 19, batch: 900 // loss: 0.036\n", "epoch: 19, batch: 1000 // loss: 0.033\n", "epoch: 19, batch: 1100 // loss: 0.031\n", "epoch: 19, batch: 1200 // loss: 0.030\n", "epoch: 19, batch: 1300 // loss: 0.034\n", "epoch: 19, batch: 1400 // loss: 0.030\n", "epoch: 19, batch: 1500 // loss: 0.033\n", "epoch: 19, batch: 1600 // loss: 0.035\n", "epoch: 19, batch: 1700 // loss: 0.029\n", "epoch: 19, batch: 1800 // loss: 0.032\n", "epoch: 19, batch: 1900 // loss: 0.027\n", "epoch: 19, batch: 2000 // loss: 0.033\n", "epoch: 19, batch: 2100 // loss: 0.030\n", "epoch: 19, batch: 2200 // loss: 0.031\n", "epoch: 19, batch: 2300 // loss: 0.031\n", "epoch: 19, batch: 2400 // loss: 0.029\n", "epoch: 19, batch: 2500 // loss: 0.028\n", "epoch: 19, batch: 2600 // loss: 0.033\n", "epoch: 19, batch: 2700 // loss: 0.029\n", "epoch: 19, batch: 2800 // loss: 0.026\n", "epoch: 19, batch: 2900 // loss: 0.030\n", "epoch: 19, batch: 3000 // loss: 0.033\n", "epoch: 19, batch: 3100 // loss: 0.032\n", "epoch: 19, batch: 3200 // loss: 0.025\n", "epoch: 19, batch: 3300 // loss: 0.025\n", "epoch: 19, batch: 3400 // loss: 0.029\n", "epoch: 19, batch: 3500 // loss: 0.023\n", "epoch: 19, batch: 3600 // loss: 0.027\n", "epoch: 19, batch: 3700 // loss: 0.026\n" ] } ], "source": [ "m = VAE()\n", "optimizer = optim.SGD(m.parameters(), lr=0.01, momentum=0.9)\n", "train_VAE(X, X, m, optimizer, loss_function, EPOCHS=20)" ] }, { "cell_type": "code", "execution_count": 169, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:39: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n" ] } ], "source": [ "samples = [m(X[2,:].float())[0].detach().numpy() for _ in range(5)]" ] }, { "cell_type": "code", "execution_count": 174, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 174, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "imshow(np.asarray(samples[4]).reshape(28,28), cmap='gray')" ] }, { "cell_type": "code", "execution_count": 157, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "torch.Size([784])" ] }, "execution_count": 157, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X[0,:].shape" ] }, { "cell_type": "code", "execution_count": 156, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "torch.Size([60000, 784])" ] }, "execution_count": 156, "metadata": {}, "output_type": "execute_result" } ], "source": [ "X.shape" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }