Skip to content

Instantly share code, notes, and snippets.

@melgor
Last active June 21, 2018 14:56
Show Gist options
  • Save melgor/e106ff0e712534d267a2a1851b6fc299 to your computer and use it in GitHub Desktop.
Save melgor/e106ff0e712534d267a2a1851b6fc299 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Training simple CNN to classify CIFAR10 dataset\n",
"\n",
"The implementation of the CNN net is taken from the: https://github.com/keras-team/keras/blob/master/examples/cifar10_cnn.py\n",
"\n",
"According to that file:\n",
"```\n",
"It gets to 75% validation accuracy in 25 epochs, and 79% after 50 epochs.\n",
"(it's still underfitting at that point, though).\n",
"```\n",
"When trained with single learning rate and RMSprop optimizer:\n",
"```\n",
"# initiate RMSprop optimizer\n",
"opt = keras.optimizers.rmsprop(lr=0.0001, decay=1e-6)\n",
"```\n",
"Here we do manual scheduling of learning rate and no data augmentation is used. The `std` normalized gradients optimizer reach 80% after only 20 epochs. After 45 epochs the final validation accuracy is 82%."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Setup"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%load_ext autoreload\n",
"%autoreload 2\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'1.8.0'"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import tensorflow as tf\n",
"tf.__version__"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"import sys\n",
"sys.path.append(\"../src/\")\n",
"import keras_cifar_cnn as cnn\n",
"import tf_optimizer as tf_opt\n",
"import callbacks as clb\n",
"import utils as ut\n",
"from plotting import set_display_settings\n",
"set_display_settings()\n",
"\n",
"from keras.optimizers import TFOptimizer\n",
"from keras.callbacks import History"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Dataset and model definition"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Downloading data from https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz\n",
"170500096/170498071 [==============================] - 12s 0us/step\n",
"x_train shape: (50000, 32, 32, 3)\n",
"50000 train samples\n",
"10000 test samples\n"
]
}
],
"source": [
"x_train, y_train, validation_set, datagen = cnn.get_dataset()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"model = cnn.get_cnn()\n",
"batch_size = 128"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"_________________________________________________________________\n",
"Layer (type) Output Shape Param # \n",
"=================================================================\n",
"conv2d_1 (Conv2D) (None, 32, 32, 32) 896 \n",
"_________________________________________________________________\n",
"activation_1 (Activation) (None, 32, 32, 32) 0 \n",
"_________________________________________________________________\n",
"conv2d_2 (Conv2D) (None, 30, 30, 32) 9248 \n",
"_________________________________________________________________\n",
"activation_2 (Activation) (None, 30, 30, 32) 0 \n",
"_________________________________________________________________\n",
"max_pooling2d_1 (MaxPooling2 (None, 15, 15, 32) 0 \n",
"_________________________________________________________________\n",
"dropout_1 (Dropout) (None, 15, 15, 32) 0 \n",
"_________________________________________________________________\n",
"conv2d_3 (Conv2D) (None, 15, 15, 64) 18496 \n",
"_________________________________________________________________\n",
"activation_3 (Activation) (None, 15, 15, 64) 0 \n",
"_________________________________________________________________\n",
"conv2d_4 (Conv2D) (None, 13, 13, 64) 36928 \n",
"_________________________________________________________________\n",
"activation_4 (Activation) (None, 13, 13, 64) 0 \n",
"_________________________________________________________________\n",
"max_pooling2d_2 (MaxPooling2 (None, 6, 6, 64) 0 \n",
"_________________________________________________________________\n",
"dropout_2 (Dropout) (None, 6, 6, 64) 0 \n",
"_________________________________________________________________\n",
"flatten_1 (Flatten) (None, 2304) 0 \n",
"_________________________________________________________________\n",
"dense_1 (Dense) (None, 512) 1180160 \n",
"_________________________________________________________________\n",
"activation_5 (Activation) (None, 512) 0 \n",
"_________________________________________________________________\n",
"dropout_3 (Dropout) (None, 512) 0 \n",
"_________________________________________________________________\n",
"dense_2 (Dense) (None, 10) 5130 \n",
"_________________________________________________________________\n",
"activation_6 (Activation) (None, 10) 0 \n",
"=================================================================\n",
"Total params: 1,250,858\n",
"Trainable params: 1,250,858\n",
"Non-trainable params: 0\n",
"_________________________________________________________________\n"
]
}
],
"source": [
"model.summary()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Train model with `AdaptiveNormalizedSGD`\n",
"\n",
"Some notes: \n",
"\n",
"* `AdaptiveNormalizedSGD` is set to normalize gradients by their standard deviation.\n",
"* No momentum is used, since it did not improve results for this case.\n",
"* Adaptive learning rate is disabled. "
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 50000 samples, validate on 10000 samples\n",
"Epoch 1/15\n",
"50000/50000 [==============================] - 10s 194us/step - loss: 1.9256 - acc: 0.2997 - val_loss: 1.6907 - val_acc: 0.3894\n",
"Epoch 2/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 1.5166 - acc: 0.4520 - val_loss: 1.3047 - val_acc: 0.5230\n",
"Epoch 3/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 1.3128 - acc: 0.5331 - val_loss: 1.1472 - val_acc: 0.5973\n",
"Epoch 4/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 1.1651 - acc: 0.5853 - val_loss: 1.0268 - val_acc: 0.6513\n",
"Epoch 5/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 1.0441 - acc: 0.6326 - val_loss: 0.8916 - val_acc: 0.6849\n",
"Epoch 6/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.9441 - acc: 0.6698 - val_loss: 0.8997 - val_acc: 0.6857\n",
"Epoch 7/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.8693 - acc: 0.6976 - val_loss: 0.8161 - val_acc: 0.7158\n",
"Epoch 8/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.8000 - acc: 0.7189 - val_loss: 0.7558 - val_acc: 0.7355\n",
"Epoch 9/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.7525 - acc: 0.7381 - val_loss: 0.7544 - val_acc: 0.7382\n",
"Epoch 10/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.7065 - acc: 0.7550 - val_loss: 0.7042 - val_acc: 0.7584\n",
"Epoch 11/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.6659 - acc: 0.7649 - val_loss: 0.6821 - val_acc: 0.7632\n",
"Epoch 12/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.6321 - acc: 0.7767 - val_loss: 0.7130 - val_acc: 0.7548\n",
"Epoch 13/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.5965 - acc: 0.7907 - val_loss: 0.6597 - val_acc: 0.7716\n",
"Epoch 14/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.5694 - acc: 0.7974 - val_loss: 0.6400 - val_acc: 0.7848\n",
"Epoch 15/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.5495 - acc: 0.8067 - val_loss: 0.6640 - val_acc: 0.7727\n",
"Train on 50000 samples, validate on 10000 samples\n",
"Epoch 1/15\n",
"50000/50000 [==============================] - 4s 89us/step - loss: 0.4535 - acc: 0.8390 - val_loss: 0.6151 - val_acc: 0.7963\n",
"Epoch 2/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.4226 - acc: 0.8508 - val_loss: 0.6100 - val_acc: 0.7984\n",
"Epoch 3/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.4035 - acc: 0.8578 - val_loss: 0.6284 - val_acc: 0.7958\n",
"Epoch 4/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.3865 - acc: 0.8618 - val_loss: 0.6190 - val_acc: 0.8005\n",
"Epoch 5/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.3743 - acc: 0.8671 - val_loss: 0.6213 - val_acc: 0.8023\n",
"Epoch 6/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.3640 - acc: 0.8701 - val_loss: 0.6325 - val_acc: 0.7975\n",
"Epoch 7/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.3421 - acc: 0.8763 - val_loss: 0.6449 - val_acc: 0.7961\n",
"Epoch 8/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.3422 - acc: 0.8790 - val_loss: 0.6227 - val_acc: 0.8014\n",
"Epoch 9/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.3265 - acc: 0.8839 - val_loss: 0.6276 - val_acc: 0.8005\n",
"Epoch 10/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.3176 - acc: 0.8880 - val_loss: 0.6337 - val_acc: 0.8032\n",
"Epoch 11/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.3095 - acc: 0.8904 - val_loss: 0.6413 - val_acc: 0.8045\n",
"Epoch 12/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.3040 - acc: 0.8918 - val_loss: 0.6341 - val_acc: 0.8037\n",
"Epoch 13/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.2936 - acc: 0.8957 - val_loss: 0.6364 - val_acc: 0.8058\n",
"Epoch 14/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.2892 - acc: 0.8953 - val_loss: 0.7045 - val_acc: 0.7947\n",
"Epoch 15/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.2794 - acc: 0.9001 - val_loss: 0.6587 - val_acc: 0.8054\n",
"Train on 50000 samples, validate on 10000 samples\n",
"Epoch 1/15\n",
"50000/50000 [==============================] - 4s 89us/step - loss: 0.2331 - acc: 0.9166 - val_loss: 0.6452 - val_acc: 0.8119\n",
"Epoch 2/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.2251 - acc: 0.9194 - val_loss: 0.6446 - val_acc: 0.8104\n",
"Epoch 3/15\n",
"50000/50000 [==============================] - 4s 75us/step - loss: 0.2180 - acc: 0.9230 - val_loss: 0.6493 - val_acc: 0.8123\n",
"Epoch 4/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.2106 - acc: 0.9247 - val_loss: 0.6446 - val_acc: 0.8152\n",
"Epoch 5/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.2092 - acc: 0.9250 - val_loss: 0.6503 - val_acc: 0.8115\n",
"Epoch 6/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.2118 - acc: 0.9240 - val_loss: 0.6555 - val_acc: 0.8117\n",
"Epoch 7/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.2037 - acc: 0.9277 - val_loss: 0.6561 - val_acc: 0.8107\n",
"Epoch 8/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.2007 - acc: 0.9279 - val_loss: 0.6554 - val_acc: 0.8123\n",
"Epoch 9/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1989 - acc: 0.9294 - val_loss: 0.6515 - val_acc: 0.8121\n",
"Epoch 10/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1994 - acc: 0.9291 - val_loss: 0.6582 - val_acc: 0.8141\n",
"Epoch 11/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1940 - acc: 0.9311 - val_loss: 0.6599 - val_acc: 0.8123\n",
"Epoch 12/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1919 - acc: 0.9314 - val_loss: 0.6625 - val_acc: 0.8128\n",
"Epoch 13/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1924 - acc: 0.9305 - val_loss: 0.6545 - val_acc: 0.8103\n",
"Epoch 14/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1888 - acc: 0.9326 - val_loss: 0.6616 - val_acc: 0.8143\n",
"Epoch 15/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1834 - acc: 0.9343 - val_loss: 0.6593 - val_acc: 0.8153\n",
"Train on 50000 samples, validate on 10000 samples\n",
"Epoch 1/15\n",
"50000/50000 [==============================] - 5s 93us/step - loss: 0.1790 - acc: 0.9366 - val_loss: 0.6595 - val_acc: 0.8163\n",
"Epoch 2/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1793 - acc: 0.9364 - val_loss: 0.6616 - val_acc: 0.8158\n",
"Epoch 3/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1734 - acc: 0.9374 - val_loss: 0.6620 - val_acc: 0.8159\n",
"Epoch 4/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1765 - acc: 0.9375 - val_loss: 0.6638 - val_acc: 0.8164\n",
"Epoch 5/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1761 - acc: 0.9369 - val_loss: 0.6627 - val_acc: 0.8168\n",
"Epoch 6/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1725 - acc: 0.9385 - val_loss: 0.6652 - val_acc: 0.8156\n",
"Epoch 7/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1753 - acc: 0.9378 - val_loss: 0.6636 - val_acc: 0.8158\n",
"Epoch 8/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1749 - acc: 0.9379 - val_loss: 0.6651 - val_acc: 0.8158\n",
"Epoch 9/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1729 - acc: 0.9394 - val_loss: 0.6648 - val_acc: 0.8156\n",
"Epoch 10/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1750 - acc: 0.9374 - val_loss: 0.6656 - val_acc: 0.8160\n",
"Epoch 11/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1741 - acc: 0.9372 - val_loss: 0.6640 - val_acc: 0.8154\n",
"Epoch 12/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1755 - acc: 0.9380 - val_loss: 0.6643 - val_acc: 0.8162\n",
"Epoch 13/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1727 - acc: 0.9392 - val_loss: 0.6653 - val_acc: 0.8159\n",
"Epoch 14/15\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1726 - acc: 0.9382 - val_loss: 0.6656 - val_acc: 0.8154\n",
"Epoch 15/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1717 - acc: 0.9405 - val_loss: 0.6678 - val_acc: 0.8172\n"
]
}
],
"source": [
"model = cnn.get_cnn()\n",
"metrics_history = [clb.AggregateMetricsOnBatchEnd(), clb.AggregateMetricsOnEpochEnd()]\n",
"\n",
"for lr in [0.001, 0.0005, 0.0001, 0.00001]: \n",
" # max norm was working fine but a little worse than Adam, I have tried std norm.\n",
" #optimizer = TFOptimizer(tf_opt.LmaxNormalizedSGD(lr=lr))\n",
" optimizer = TFOptimizer(tf_opt.AdaptiveNormalizedSGD(\n",
" lr=lr, lr_update=0.0, momentum=0.0, momentum_update=0.00, norm_type='std'\n",
" ))\n",
" model.compile(optimizer, loss='categorical_crossentropy', metrics=['accuracy'])\n",
" model.fit(\n",
" x=x_train, y=y_train, batch_size=batch_size,\n",
" epochs=15,\n",
" validation_data=validation_set, \n",
" callbacks=metrics_history)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fdfc01251d0>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fdfc0125208>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"hist = metrics_history[1].monitor_values['accuracies']\n",
"for k, v in hist.items():\n",
" if len(v) != 0: plt.plot(v, label=k)\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Training with Adam optimizer"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"# Adam was not able to train with lr=0.005"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 50000 samples, validate on 10000 samples\n",
"Epoch 1/15\n",
"50000/50000 [==============================] - 4s 87us/step - loss: 1.5816 - acc: 0.4227 - val_loss: 1.2279 - val_acc: 0.5638\n",
"Epoch 2/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 1.1724 - acc: 0.5811 - val_loss: 1.0127 - val_acc: 0.6429\n",
"Epoch 3/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.9974 - acc: 0.6479 - val_loss: 0.8716 - val_acc: 0.6973\n",
"Epoch 4/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.8884 - acc: 0.6868 - val_loss: 0.8164 - val_acc: 0.7122\n",
"Epoch 5/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.8031 - acc: 0.7183 - val_loss: 0.7611 - val_acc: 0.7342\n",
"Epoch 6/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.7437 - acc: 0.7394 - val_loss: 0.7094 - val_acc: 0.7535\n",
"Epoch 7/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.6972 - acc: 0.7576 - val_loss: 0.7108 - val_acc: 0.7567\n",
"Epoch 8/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.6567 - acc: 0.7696 - val_loss: 0.6475 - val_acc: 0.7761\n",
"Epoch 9/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.6225 - acc: 0.7808 - val_loss: 0.6847 - val_acc: 0.7639\n",
"Epoch 10/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.5865 - acc: 0.7941 - val_loss: 0.6342 - val_acc: 0.7825\n",
"Epoch 11/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.5535 - acc: 0.8055 - val_loss: 0.6415 - val_acc: 0.7841\n",
"Epoch 12/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.5380 - acc: 0.8111 - val_loss: 0.6332 - val_acc: 0.7846\n",
"Epoch 13/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.5151 - acc: 0.8203 - val_loss: 0.6180 - val_acc: 0.7874\n",
"Epoch 14/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.4838 - acc: 0.8290 - val_loss: 0.5976 - val_acc: 0.7991\n",
"Epoch 15/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.4683 - acc: 0.8349 - val_loss: 0.6283 - val_acc: 0.7910\n",
"Train on 50000 samples, validate on 10000 samples\n",
"Epoch 1/15\n",
"50000/50000 [==============================] - 4s 87us/step - loss: 0.4035 - acc: 0.8554 - val_loss: 0.5939 - val_acc: 0.8046\n",
"Epoch 2/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.3794 - acc: 0.8651 - val_loss: 0.6070 - val_acc: 0.8029\n",
"Epoch 3/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.3650 - acc: 0.8696 - val_loss: 0.6117 - val_acc: 0.8045\n",
"Epoch 4/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.3529 - acc: 0.8741 - val_loss: 0.6201 - val_acc: 0.8033\n",
"Epoch 5/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.3407 - acc: 0.8775 - val_loss: 0.5948 - val_acc: 0.8081\n",
"Epoch 6/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.3345 - acc: 0.8796 - val_loss: 0.5962 - val_acc: 0.8080\n",
"Epoch 7/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.3228 - acc: 0.8843 - val_loss: 0.6313 - val_acc: 0.8030\n",
"Epoch 8/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.3180 - acc: 0.8861 - val_loss: 0.6129 - val_acc: 0.8070\n",
"Epoch 9/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.3058 - acc: 0.8904 - val_loss: 0.6055 - val_acc: 0.8106\n",
"Epoch 10/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.3029 - acc: 0.8907 - val_loss: 0.6144 - val_acc: 0.8075\n",
"Epoch 11/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.2863 - acc: 0.8977 - val_loss: 0.6074 - val_acc: 0.8105\n",
"Epoch 12/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.2806 - acc: 0.8999 - val_loss: 0.6134 - val_acc: 0.8100\n",
"Epoch 13/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.2796 - acc: 0.8994 - val_loss: 0.6312 - val_acc: 0.8101\n",
"Epoch 14/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.2714 - acc: 0.9038 - val_loss: 0.6141 - val_acc: 0.8128\n",
"Epoch 15/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.2696 - acc: 0.9035 - val_loss: 0.6407 - val_acc: 0.8063\n",
"Train on 50000 samples, validate on 10000 samples\n",
"Epoch 1/15\n",
"50000/50000 [==============================] - 4s 88us/step - loss: 0.2238 - acc: 0.9202 - val_loss: 0.6268 - val_acc: 0.8128\n",
"Epoch 2/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.2223 - acc: 0.9205 - val_loss: 0.6241 - val_acc: 0.8147\n",
"Epoch 3/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.2134 - acc: 0.9226 - val_loss: 0.6300 - val_acc: 0.8159\n",
"Epoch 4/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.2114 - acc: 0.9242 - val_loss: 0.6217 - val_acc: 0.8161\n",
"Epoch 5/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.2119 - acc: 0.9248 - val_loss: 0.6289 - val_acc: 0.8148\n",
"Epoch 6/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.2055 - acc: 0.9274 - val_loss: 0.6291 - val_acc: 0.8159\n",
"Epoch 7/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.2050 - acc: 0.9272 - val_loss: 0.6286 - val_acc: 0.8163\n",
"Epoch 8/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.2017 - acc: 0.9275 - val_loss: 0.6279 - val_acc: 0.8172\n",
"Epoch 9/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.1994 - acc: 0.9298 - val_loss: 0.6243 - val_acc: 0.8184\n",
"Epoch 10/15\n",
"50000/50000 [==============================] - 4s 74us/step - loss: 0.1988 - acc: 0.9291 - val_loss: 0.6298 - val_acc: 0.8179\n",
"Epoch 11/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.1944 - acc: 0.9290 - val_loss: 0.6320 - val_acc: 0.8172\n",
"Epoch 12/15\n",
"50000/50000 [==============================] - 4s 72us/step - loss: 0.1926 - acc: 0.9314 - val_loss: 0.6318 - val_acc: 0.8192\n",
"Epoch 13/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.1901 - acc: 0.9323 - val_loss: 0.6339 - val_acc: 0.8175\n",
"Epoch 14/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.1873 - acc: 0.9329 - val_loss: 0.6426 - val_acc: 0.8189\n",
"Epoch 15/15\n",
"50000/50000 [==============================] - 4s 73us/step - loss: 0.1858 - acc: 0.9331 - val_loss: 0.6409 - val_acc: 0.8186\n"
]
}
],
"source": [
"from keras.optimizers import Adam, SGD\n",
"\n",
"model = cnn.get_cnn()\n",
"adam_metrics_history = [clb.AggregateMetricsOnBatchEnd(), clb.AggregateMetricsOnEpochEnd()]\n",
"\n",
"for lr in [0.001, 0.0005, 0.0001]: \n",
" optimizer = Adam(lr=lr)\n",
" model.compile(optimizer, loss='categorical_crossentropy', metrics=['accuracy'])\n",
" model.fit(\n",
" x=x_train, y=y_train, batch_size=batch_size,\n",
" epochs=15,\n",
" validation_data=validation_set, \n",
" callbacks=adam_metrics_history)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fdecff6df60>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n8fas+qa/aNEiHnroIRwOB5988gm7d+9m7ty5R/MdPnyY+++/n+XLl3P48OE65zly5Ahdu3Y97vI8\n++yzPPfcc2zevLnON/iCgoKjP+/YsYNevXrRo0ePBs+3Y8cORo8eTUxM+/iiGjY1hOwj1XMQ2seF\nV0oF5+qrr2bfvn18+OGHgK0tVDcnga0xTJ06lYULF3LNNdewZMkS3n33XVauXHm0qaglml8effRR\nbrzxRnr16sXzzz/P22+/zcqVK/nrX//aYu8RamFTQzjgezBOL52UplSHMn36dO666y5efvllJk+e\nzJtvvsmPf/xjevXqBcC3337LN998w+zZs/nDH/5Q49j58+e3WDleeeUVMjIyWLFiRY3mnHfffbdO\n3qFDh7J8+XIOHTrUYC1h6NChbNu2jYqKCqKjQ/+MlvCrIeikNKU6lLS0NM477zyWLl3KokWLKCoq\nOtq3ALbzGWxNwd+mTZtadNip0+lERGq8j8fj4eGH6zbVXXnllQDcfffddWoO/sdfeeWVFBQUMGfO\nnDrnqP152kLY1BAOFrqIjXSSGBvZeGalVLtyzTXX8M9//pM77riDxMREfv7znx/dN2LECEaOHMnc\nuXMpKytj2LBhbN++neeff55Ro0axYcOGFinDpZdeyj333MN5553HxRdfTFFREYsXL64x6qjatGnT\nuOyyy3j55ZfZsWMHF154IUlJSWzfvp333nuPTZs2AXDrrbfy1ltvMWfOHNatW8fUqVOJiYlh8+bN\nfPfdd6xatapFyh6ssAkIOilNqY7rggsuIDk5mfz8fK677roanbBOp5O3336bO++8k4ULF1JaWsqJ\nJ57IwoUL+eabb1osINx1110YY1iwYAG33norPXv25LLLLmPmzJk1hsRWW7x4MWeccQYLFizgwQcf\nxOl0MmDAAKZNm3Y0T1RUFO+//z7z5s1j8eLF3HvvvcTExDBkyBBmzpzZIuVuCglFtaS5xo4da9av\nb9bzeLjo2c+Ji3Ky6LoJLVwqpdrW1q1bGTFiRKiLodqJYP4eRGSDMWZsY+cKmz6EA0dc2qGslFIN\nCIsmI0+Vl8PF+qQ0pVRNlZWV5OfnN5ovLS3taOd1ZxYWAeFQcQVeow/GUUrV9MUXX3DWWWc1mm/X\nrl1kZGS0foFCLCwCwtHnIGgNQSnl5+STT2blypWN5uvZs2cblCb0wiMg+CalpWsNQSnlJykp6eha\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fe0480e7208>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"hist = adam_metrics_history[1].monitor_values['accuracies']\n",
"for k, v in hist.items():\n",
" if len(v) != 0: plt.plot(v, label=k)\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Training with SGD and momentum=0.9"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 50000 samples, validate on 10000 samples\n",
"Epoch 1/15\n",
"50000/50000 [==============================] - 4s 85us/step - loss: 1.9588 - acc: 0.2723 - val_loss: 1.6260 - val_acc: 0.4062\n",
"Epoch 2/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 1.5813 - acc: 0.4238 - val_loss: 1.3901 - val_acc: 0.4986\n",
"Epoch 3/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 1.3970 - acc: 0.4920 - val_loss: 1.2389 - val_acc: 0.5563\n",
"Epoch 4/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 1.2815 - acc: 0.5389 - val_loss: 1.1596 - val_acc: 0.5883\n",
"Epoch 5/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 1.1975 - acc: 0.5739 - val_loss: 1.0699 - val_acc: 0.6189\n",
"Epoch 6/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 1.1147 - acc: 0.6026 - val_loss: 1.0015 - val_acc: 0.6447\n",
"Epoch 7/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 1.0407 - acc: 0.6321 - val_loss: 0.9369 - val_acc: 0.6663\n",
"Epoch 8/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.9827 - acc: 0.6520 - val_loss: 0.9001 - val_acc: 0.6809\n",
"Epoch 9/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 0.9346 - acc: 0.6710 - val_loss: 0.8502 - val_acc: 0.7001\n",
"Epoch 10/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.8906 - acc: 0.6867 - val_loss: 0.8117 - val_acc: 0.7180\n",
"Epoch 11/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.8444 - acc: 0.7015 - val_loss: 0.8099 - val_acc: 0.7191\n",
"Epoch 12/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 0.8027 - acc: 0.7153 - val_loss: 0.7647 - val_acc: 0.7317\n",
"Epoch 13/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 0.7739 - acc: 0.7287 - val_loss: 0.7307 - val_acc: 0.7468\n",
"Epoch 14/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.7366 - acc: 0.7393 - val_loss: 0.7276 - val_acc: 0.7478\n",
"Epoch 15/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 0.7004 - acc: 0.7529 - val_loss: 0.7119 - val_acc: 0.7520\n",
"Train on 50000 samples, validate on 10000 samples\n",
"Epoch 1/15\n",
"50000/50000 [==============================] - 4s 87us/step - loss: 0.6463 - acc: 0.7730 - val_loss: 0.6800 - val_acc: 0.7627\n",
"Epoch 2/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.6204 - acc: 0.7797 - val_loss: 0.6577 - val_acc: 0.7692\n",
"Epoch 3/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 0.6072 - acc: 0.7867 - val_loss: 0.6640 - val_acc: 0.7692\n",
"Epoch 4/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 0.5943 - acc: 0.7899 - val_loss: 0.6387 - val_acc: 0.7760\n",
"Epoch 5/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.5806 - acc: 0.7940 - val_loss: 0.6376 - val_acc: 0.7808\n",
"Epoch 6/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.5629 - acc: 0.8011 - val_loss: 0.6400 - val_acc: 0.7813\n",
"Epoch 7/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.5507 - acc: 0.8041 - val_loss: 0.6344 - val_acc: 0.7782\n",
"Epoch 8/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.5427 - acc: 0.8083 - val_loss: 0.6152 - val_acc: 0.7895\n",
"Epoch 9/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.5263 - acc: 0.8111 - val_loss: 0.6261 - val_acc: 0.7823\n",
"Epoch 10/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.5195 - acc: 0.8127 - val_loss: 0.6390 - val_acc: 0.7839\n",
"Epoch 11/15\n",
"50000/50000 [==============================] - 3s 69us/step - loss: 0.5091 - acc: 0.8200 - val_loss: 0.5994 - val_acc: 0.7964\n",
"Epoch 12/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.4973 - acc: 0.8223 - val_loss: 0.6174 - val_acc: 0.7908\n",
"Epoch 13/15\n",
"50000/50000 [==============================] - 3s 68us/step - loss: 0.4893 - acc: 0.8253 - val_loss: 0.6314 - val_acc: 0.7850\n",
"Epoch 14/15\n",
" 128/50000 [..............................] - ETA: 3s - loss: 0.4478 - acc: 0.8203"
]
}
],
"source": [
"model = cnn.get_cnn()\n",
"momentum_metrics_history = [clb.AggregateMetricsOnBatchEnd(), clb.AggregateMetricsOnEpochEnd()]\n",
"\n",
"for lr in [0.01, 0.005, 0.001]: \n",
" optimizer = SGD(lr=lr, momentum=0.9)\n",
" model.compile(optimizer, loss='categorical_crossentropy', metrics=['accuracy'])\n",
" model.fit(\n",
" x=x_train, y=y_train, batch_size=batch_size,\n",
" epochs=15,\n",
" validation_data=validation_set, \n",
" callbacks=momentum_metrics_history)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fdec7363a90>"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nAABJRU5ErkJggg==\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fdecb1c66d8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"hist = momentum_metrics_history[1].monitor_values['accuracies']\n",
"for k, v in hist.items():\n",
" if len(v) != 0: plt.plot(v, label=k)\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plots for comparison"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"hists = {\n",
" 'NSGD': metrics_history,\n",
" 'Adam': adam_metrics_history,\n",
" 'Momentum': momentum_metrics_history\n",
"} \n",
"\n",
"num_epochs = 45"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0,0.5,'training loss')"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fdec4aa1be0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(15, 3))\n",
"plt.subplot(121)\n",
"for opt, hist in hists.items():\n",
" h = hist[0].monitor_values['accuracies']['acc']\n",
" h = ut.moving_average(h, periods=100)\n",
" step_to_epoch = np.linspace(0, len(h)/(50000/batch_size), len(h))\n",
" plt.plot(step_to_epoch, h, label=opt, alpha=0.8)\n",
"plt.ylim([0, 1])\n",
"plt.xlim([0, num_epochs])\n",
"plt.legend(fontsize=12, loc='lower right')\n",
"plt.xlabel('epoch')\n",
"plt.ylabel('training accuracy')\n",
"\n",
"plt.subplot(122)\n",
"for opt, hist in hists.items():\n",
" h = hist[0].monitor_values['losses']['loss']\n",
" h = ut.moving_average(h, periods=100)\n",
" step_to_epoch = np.linspace(0, len(h)/(50000/batch_size), len(h))\n",
" plt.plot(step_to_epoch, h, label=opt, alpha=0.8)\n",
"plt.legend(fontsize=12, loc='upper right')\n",
"plt.xlim([0, num_epochs])\n",
"plt.xlabel('epoch')\n",
"plt.ylabel('training loss')\n",
"# plt.savefig('../img/cifar10_cnn_training.pdf')\n",
"# plt.savefig('../img/cifar10_cnn_training.png')"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(0, 45)"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7fdecb1c0be0>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(15, 3))\n",
"plt.subplot(121)\n",
"\n",
"for opt, hist in hists.items():\n",
" h = hist[1].monitor_values['accuracies']['val_acc']\n",
" plt.plot(h[:num_epochs], 'o-',label=opt, alpha=0.9, linewidth=2)\n",
"plt.legend(fontsize=12, loc='lower right')\n",
"plt.xlabel('epoch')\n",
"plt.ylabel('validation\\naccuracy')\n",
"plt.xlim([0, num_epochs])\n",
"\n",
"plt.subplot(122)\n",
"for opt, hist in hists.items():\n",
" h = hist[1].monitor_values['losses']['val_loss']\n",
" plt.plot(h[:num_epochs], 'o-', label=opt, alpha=0.9, linewidth=2)\n",
"plt.legend(fontsize=12, loc='upper right')\n",
"plt.xlabel('epoch')\n",
"plt.ylabel('validation\\nloss')\n",
"plt.xlim([0, num_epochs])\n",
"# plt.savefig('../img/cifar10_cnn_validation.pdf')\n",
"# plt.savefig('../img/cifar10_cnn_validation.png')"
]
},
{
"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.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment