-
-
Save srsani/544adf217c9e3c8aa542a8b10ae6c698 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"Using cuDNN version 5110 on context None\n", | |
"Mapped name None to device cuda: GeForce GTX TITAN X (0000:02:00.0)\n", | |
"Using Theano backend.\n" | |
] | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"current folder: /media/srs/srsb/fast_ai/deeplearning1/nbs\n", | |
"\u001b[0m\u001b[01;32mchar-rnn.ipynb\u001b[0m* \u001b[01;32mlesson3.ipynb\u001b[0m* \u001b[01;32msgd-intro.ipynb\u001b[0m*\r\n", | |
"\u001b[01;32mconvolution-intro.ipynb\u001b[0m* \u001b[01;32mlesson4.ipynb\u001b[0m* \u001b[01;32mstatefarm.ipynb\u001b[0m*\r\n", | |
"\u001b[01;34mdata\u001b[0m/ \u001b[01;32mlesson5.ipynb\u001b[0m* \u001b[01;32mstatefarm-sample.ipynb\u001b[0m*\r\n", | |
"\u001b[01;32mdogscats-ensemble.ipynb\u001b[0m* \u001b[01;32mlesson6.ipynb\u001b[0m* \u001b[01;34mtestfolder\u001b[0m/\r\n", | |
"\u001b[01;32mdogs_cats_redux.ipynb\u001b[0m* \u001b[01;32mlesson7.ipynb\u001b[0m* \u001b[01;32mutils.py\u001b[0m*\r\n", | |
"\u001b[01;32mimagenet_batchnorm.ipynb\u001b[0m* maestroQA.ipynb \u001b[01;32mvgg16bn.py\u001b[0m*\r\n", | |
"\u001b[01;32minit.sh\u001b[0m* \u001b[01;32mmnist.ipynb\u001b[0m* \u001b[01;32mvgg16.py\u001b[0m*\r\n", | |
"leason2_srs.ipynb \u001b[01;34m__pycache__\u001b[0m/ \u001b[01;32mwordvectors.ipynb\u001b[0m*\r\n", | |
"\u001b[01;32mlesson1.ipynb\u001b[0m* \u001b[01;32mresnet50.py\u001b[0m*\r\n", | |
"\u001b[01;32mlesson2.ipynb\u001b[0m* \u001b[01;32mrun.sh\u001b[0m*\r\n" | |
] | |
} | |
], | |
"source": [ | |
"# Rather than importing everything manually, we'll make things easy\n", | |
"# and load them all in utils.py, and just import them from there.\n", | |
"%matplotlib inline\n", | |
"import utils; \n", | |
"\n", | |
"import importlib\n", | |
"importlib.reload(utils)\n", | |
"\n", | |
"from PIL import ImageFile\n", | |
"ImageFile.LOAD_TRUNCATED_IMAGES = True\n", | |
"\n", | |
"def save_array(fname, arr): \n", | |
" c=bcolz.carray(arr, rootdir=fname, mode='w'); c.flush()\n", | |
"def load_array(fname):\n", | |
" return bcolz.open(fname)[:]\n", | |
"\n", | |
"from utils import *\n", | |
"current_dir = os.getcwd()\n", | |
"print ('current folder: ',current_dir)\n", | |
"\n", | |
"%ls" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"from vgg16 import Vgg16\n", | |
"vgg = Vgg16()\n", | |
"model = vgg.model" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Found 2000 images belonging to 2 classes.\n", | |
"Found 23000 images belonging to 2 classes.\n" | |
] | |
} | |
], | |
"source": [ | |
"val_batches = image.ImageDataGenerator().flow_from_directory(current_dir+'/data/dogscats_kaggle/valid', \n", | |
" target_size=(224,224),\n", | |
" class_mode='categorical', \n", | |
" shuffle=False,\n", | |
" batch_size=1)\n", | |
"\n", | |
"batches = image.ImageDataGenerator().flow_from_directory(current_dir+'/data/dogscats_kaggle/train', \n", | |
" target_size=(224,224),\n", | |
" class_mode='categorical', \n", | |
" shuffle=False,\n", | |
" batch_size=1)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"val_classes = val_batches.classes\n", | |
"trn_classes = batches.classes\n", | |
"\n", | |
"val_labels = np.array(OneHotEncoder().fit_transform(val_classes.reshape(-1,1)).todense())\n", | |
"trn_labels = np.array(OneHotEncoder().fit_transform(trn_classes.reshape(-1,1)).todense())" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Found 23000 images belonging to 2 classes.\n" | |
] | |
} | |
], | |
"source": [ | |
"batches = image.ImageDataGenerator().flow_from_directory(current_dir+'/data/dogscats_kaggle/train', \n", | |
" target_size=(224,224),\n", | |
" class_mode=None, \n", | |
" shuffle=False,\n", | |
" batch_size=1)\n", | |
"trn_data = np.concatenate([batches.next() for i in range(batches.nb_sample)])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Found 2000 images belonging to 2 classes.\n" | |
] | |
} | |
], | |
"source": [ | |
"val_batches = image.ImageDataGenerator().flow_from_directory(current_dir+'/data/dogscats_kaggle/valid', \n", | |
" target_size=(224,224),\n", | |
" class_mode=None, \n", | |
" shuffle=False,\n", | |
" batch_size=1)\n", | |
"val_data = np.concatenate([val_batches.next() for i in range(val_batches.nb_sample)])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"save_array(current_dir+'/data/dogscats_kaggle/model/train_data.bc', trn_data)\n", | |
"save_array(current_dir+'/data/dogscats_kaggle/model/valid_data.bc', val_data)\n", | |
"\n", | |
"save_array(current_dir+'/data/dogscats_kaggle/model/trn_labels.bc', trn_labels)\n", | |
"save_array(current_dir+'/data/dogscats_kaggle/model/val_labels.bc', val_labels)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"trn_data = load_array(current_dir+'/data/dogscats_kaggle/model/train_data.bc')\n", | |
"val_data = load_array(current_dir+'/data/dogscats_kaggle/model/valid_data.bc')\n", | |
"\n", | |
"trn_labels = load_array(current_dir+'/data/dogscats_kaggle/model/trn_labels.bc')\n", | |
"val_labels = load_array(current_dir+'/data/dogscats_kaggle/model/val_labels.bc')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Modifying the model:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"____________________________________________________________________________________________________\n", | |
"Layer (type) Output Shape Param # Connected to \n", | |
"====================================================================================================\n", | |
"lambda_1 (Lambda) (None, 3, 224, 224) 0 lambda_input_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_1 (ZeroPadding2D) (None, 3, 226, 226) 0 lambda_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_1 (Convolution2D) (None, 64, 224, 224) 1792 zeropadding2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_2 (ZeroPadding2D) (None, 64, 226, 226) 0 convolution2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_2 (Convolution2D) (None, 64, 224, 224) 36928 zeropadding2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_1 (MaxPooling2D) (None, 64, 112, 112) 0 convolution2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_3 (ZeroPadding2D) (None, 64, 114, 114) 0 maxpooling2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_3 (Convolution2D) (None, 128, 112, 112) 73856 zeropadding2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_4 (ZeroPadding2D) (None, 128, 114, 114) 0 convolution2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_4 (Convolution2D) (None, 128, 112, 112) 147584 zeropadding2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_2 (MaxPooling2D) (None, 128, 56, 56) 0 convolution2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_5 (ZeroPadding2D) (None, 128, 58, 58) 0 maxpooling2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_5 (Convolution2D) (None, 256, 56, 56) 295168 zeropadding2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_6 (ZeroPadding2D) (None, 256, 58, 58) 0 convolution2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_6 (Convolution2D) (None, 256, 56, 56) 590080 zeropadding2d_6[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_7 (ZeroPadding2D) (None, 256, 58, 58) 0 convolution2d_6[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_7 (Convolution2D) (None, 256, 56, 56) 590080 zeropadding2d_7[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_3 (MaxPooling2D) (None, 256, 28, 28) 0 convolution2d_7[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_8 (ZeroPadding2D) (None, 256, 30, 30) 0 maxpooling2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_8 (Convolution2D) (None, 512, 28, 28) 1180160 zeropadding2d_8[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_9 (ZeroPadding2D) (None, 512, 30, 30) 0 convolution2d_8[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_9 (Convolution2D) (None, 512, 28, 28) 2359808 zeropadding2d_9[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_10 (ZeroPadding2D) (None, 512, 30, 30) 0 convolution2d_9[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_10 (Convolution2D) (None, 512, 28, 28) 2359808 zeropadding2d_10[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_4 (MaxPooling2D) (None, 512, 14, 14) 0 convolution2d_10[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_11 (ZeroPadding2D) (None, 512, 16, 16) 0 maxpooling2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_11 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_11[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_12 (ZeroPadding2D) (None, 512, 16, 16) 0 convolution2d_11[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_12 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_12[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_13 (ZeroPadding2D) (None, 512, 16, 16) 0 convolution2d_12[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_13 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_13[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_5 (MaxPooling2D) (None, 512, 7, 7) 0 convolution2d_13[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"flatten_1 (Flatten) (None, 25088) 0 maxpooling2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_1 (Dense) (None, 4096) 102764544 flatten_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dropout_1 (Dropout) (None, 4096) 0 dense_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_2 (Dense) (None, 4096) 16781312 dropout_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dropout_2 (Dropout) (None, 4096) 0 dense_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_3 (Dense) (None, 1000) 4097000 dropout_2[0][0] \n", | |
"====================================================================================================\n", | |
"Total params: 138,357,544\n", | |
"Trainable params: 138,357,544\n", | |
"Non-trainable params: 0\n", | |
"____________________________________________________________________________________________________\n" | |
] | |
} | |
], | |
"source": [ | |
"vgg.model.summary()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"model.pop()\n", | |
"for layer in model.layers: \n", | |
" layer.trainable=False\n", | |
"model.add(Dense(2, activation='softmax'))" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"____________________________________________________________________________________________________\n", | |
"Layer (type) Output Shape Param # Connected to \n", | |
"====================================================================================================\n", | |
"lambda_1 (Lambda) (None, 3, 224, 224) 0 lambda_input_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_1 (ZeroPadding2D) (None, 3, 226, 226) 0 lambda_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_1 (Convolution2D) (None, 64, 224, 224) 1792 zeropadding2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_2 (ZeroPadding2D) (None, 64, 226, 226) 0 convolution2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_2 (Convolution2D) (None, 64, 224, 224) 36928 zeropadding2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_1 (MaxPooling2D) (None, 64, 112, 112) 0 convolution2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_3 (ZeroPadding2D) (None, 64, 114, 114) 0 maxpooling2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_3 (Convolution2D) (None, 128, 112, 112) 73856 zeropadding2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_4 (ZeroPadding2D) (None, 128, 114, 114) 0 convolution2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_4 (Convolution2D) (None, 128, 112, 112) 147584 zeropadding2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_2 (MaxPooling2D) (None, 128, 56, 56) 0 convolution2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_5 (ZeroPadding2D) (None, 128, 58, 58) 0 maxpooling2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_5 (Convolution2D) (None, 256, 56, 56) 295168 zeropadding2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_6 (ZeroPadding2D) (None, 256, 58, 58) 0 convolution2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_6 (Convolution2D) (None, 256, 56, 56) 590080 zeropadding2d_6[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_7 (ZeroPadding2D) (None, 256, 58, 58) 0 convolution2d_6[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_7 (Convolution2D) (None, 256, 56, 56) 590080 zeropadding2d_7[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_3 (MaxPooling2D) (None, 256, 28, 28) 0 convolution2d_7[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_8 (ZeroPadding2D) (None, 256, 30, 30) 0 maxpooling2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_8 (Convolution2D) (None, 512, 28, 28) 1180160 zeropadding2d_8[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_9 (ZeroPadding2D) (None, 512, 30, 30) 0 convolution2d_8[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_9 (Convolution2D) (None, 512, 28, 28) 2359808 zeropadding2d_9[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_10 (ZeroPadding2D) (None, 512, 30, 30) 0 convolution2d_9[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_10 (Convolution2D) (None, 512, 28, 28) 2359808 zeropadding2d_10[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_4 (MaxPooling2D) (None, 512, 14, 14) 0 convolution2d_10[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_11 (ZeroPadding2D) (None, 512, 16, 16) 0 maxpooling2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_11 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_11[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_12 (ZeroPadding2D) (None, 512, 16, 16) 0 convolution2d_11[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_12 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_12[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_13 (ZeroPadding2D) (None, 512, 16, 16) 0 convolution2d_12[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_13 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_13[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_5 (MaxPooling2D) (None, 512, 7, 7) 0 convolution2d_13[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"flatten_1 (Flatten) (None, 25088) 0 maxpooling2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_1 (Dense) (None, 4096) 102764544 flatten_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dropout_1 (Dropout) (None, 4096) 0 dense_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_2 (Dense) (None, 4096) 16781312 dropout_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dropout_2 (Dropout) (None, 4096) 0 dense_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_4 (Dense) (None, 2) 8194 dropout_2[0][0] \n", | |
"====================================================================================================\n", | |
"Total params: 134,268,738\n", | |
"Trainable params: 8,194\n", | |
"Non-trainable params: 134,260,544\n", | |
"____________________________________________________________________________________________________\n" | |
] | |
} | |
], | |
"source": [ | |
"vgg.model.summary()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"batch_size=128\n", | |
"batches = image.ImageDataGenerator().flow(trn_data, trn_labels, batch_size=batch_size, shuffle=True)\n", | |
"val_batches = image.ImageDataGenerator().flow(val_data, val_labels, batch_size=batch_size, shuffle=False)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"____________________________________________________________________________________________________\n", | |
"Layer (type) Output Shape Param # Connected to \n", | |
"====================================================================================================\n", | |
"lambda_1 (Lambda) (None, 3, 224, 224) 0 lambda_input_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_1 (ZeroPadding2D) (None, 3, 226, 226) 0 lambda_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_1 (Convolution2D) (None, 64, 224, 224) 1792 zeropadding2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_2 (ZeroPadding2D) (None, 64, 226, 226) 0 convolution2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_2 (Convolution2D) (None, 64, 224, 224) 36928 zeropadding2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_1 (MaxPooling2D) (None, 64, 112, 112) 0 convolution2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_3 (ZeroPadding2D) (None, 64, 114, 114) 0 maxpooling2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_3 (Convolution2D) (None, 128, 112, 112) 73856 zeropadding2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_4 (ZeroPadding2D) (None, 128, 114, 114) 0 convolution2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_4 (Convolution2D) (None, 128, 112, 112) 147584 zeropadding2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_2 (MaxPooling2D) (None, 128, 56, 56) 0 convolution2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_5 (ZeroPadding2D) (None, 128, 58, 58) 0 maxpooling2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_5 (Convolution2D) (None, 256, 56, 56) 295168 zeropadding2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_6 (ZeroPadding2D) (None, 256, 58, 58) 0 convolution2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_6 (Convolution2D) (None, 256, 56, 56) 590080 zeropadding2d_6[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_7 (ZeroPadding2D) (None, 256, 58, 58) 0 convolution2d_6[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_7 (Convolution2D) (None, 256, 56, 56) 590080 zeropadding2d_7[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_3 (MaxPooling2D) (None, 256, 28, 28) 0 convolution2d_7[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_8 (ZeroPadding2D) (None, 256, 30, 30) 0 maxpooling2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_8 (Convolution2D) (None, 512, 28, 28) 1180160 zeropadding2d_8[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_9 (ZeroPadding2D) (None, 512, 30, 30) 0 convolution2d_8[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_9 (Convolution2D) (None, 512, 28, 28) 2359808 zeropadding2d_9[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_10 (ZeroPadding2D) (None, 512, 30, 30) 0 convolution2d_9[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_10 (Convolution2D) (None, 512, 28, 28) 2359808 zeropadding2d_10[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_4 (MaxPooling2D) (None, 512, 14, 14) 0 convolution2d_10[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_11 (ZeroPadding2D) (None, 512, 16, 16) 0 maxpooling2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_11 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_11[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_12 (ZeroPadding2D) (None, 512, 16, 16) 0 convolution2d_11[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_12 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_12[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_13 (ZeroPadding2D) (None, 512, 16, 16) 0 convolution2d_12[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_13 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_13[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_5 (MaxPooling2D) (None, 512, 7, 7) 0 convolution2d_13[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"flatten_1 (Flatten) (None, 25088) 0 maxpooling2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_1 (Dense) (None, 4096) 102764544 flatten_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dropout_1 (Dropout) (None, 4096) 0 dense_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_2 (Dense) (None, 4096) 16781312 dropout_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dropout_2 (Dropout) (None, 4096) 0 dense_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_4 (Dense) (None, 2) 8194 dropout_2[0][0] \n", | |
"====================================================================================================\n", | |
"Total params: 134,268,738\n", | |
"Trainable params: 8,194\n", | |
"Non-trainable params: 134,260,544\n", | |
"____________________________________________________________________________________________________\n" | |
] | |
} | |
], | |
"source": [ | |
"opt = RMSprop(lr=0.001)\n", | |
"vgg.model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])\n", | |
"vgg.model.summary()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Epoch 1/2\n", | |
"23000/23000 [==============================] - 181s - loss: 0.1248 - acc: 0.9649 - val_loss: 0.0487 - val_acc: 0.9815\n", | |
"Epoch 2/2\n", | |
"23000/23000 [==============================] - 180s - loss: 0.0922 - acc: 0.9760 - val_loss: 0.0413 - val_acc: 0.9850\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"<keras.callbacks.History at 0x7efdb87b1eb8>" | |
] | |
}, | |
"execution_count": 18, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"vgg.model.fit_generator(batches, \n", | |
" nb_epoch = 2, \n", | |
" validation_data = val_batches,\n", | |
" samples_per_epoch=batches.n,\n", | |
" nb_val_samples=val_batches.n)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Training multiple layers in Keras without compiling:\n", | |
"\n", | |
"This is the same approach as the class notebook." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"layers = model.layers\n", | |
"# Get the index of the first dense layer...\n", | |
"first_dense_idx = [index for index,layer in enumerate(layers) if type(layer) is Dense][0]\n", | |
"# ...and set this and all subsequent layers to trainable\n", | |
"for layer in layers[first_dense_idx:]: \n", | |
" layer.trainable=True" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 21, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"____________________________________________________________________________________________________\n", | |
"Layer (type) Output Shape Param # Connected to \n", | |
"====================================================================================================\n", | |
"lambda_1 (Lambda) (None, 3, 224, 224) 0 lambda_input_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_1 (ZeroPadding2D) (None, 3, 226, 226) 0 lambda_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_1 (Convolution2D) (None, 64, 224, 224) 1792 zeropadding2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_2 (ZeroPadding2D) (None, 64, 226, 226) 0 convolution2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_2 (Convolution2D) (None, 64, 224, 224) 36928 zeropadding2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_1 (MaxPooling2D) (None, 64, 112, 112) 0 convolution2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_3 (ZeroPadding2D) (None, 64, 114, 114) 0 maxpooling2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_3 (Convolution2D) (None, 128, 112, 112) 73856 zeropadding2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_4 (ZeroPadding2D) (None, 128, 114, 114) 0 convolution2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_4 (Convolution2D) (None, 128, 112, 112) 147584 zeropadding2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_2 (MaxPooling2D) (None, 128, 56, 56) 0 convolution2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_5 (ZeroPadding2D) (None, 128, 58, 58) 0 maxpooling2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_5 (Convolution2D) (None, 256, 56, 56) 295168 zeropadding2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_6 (ZeroPadding2D) (None, 256, 58, 58) 0 convolution2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_6 (Convolution2D) (None, 256, 56, 56) 590080 zeropadding2d_6[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_7 (ZeroPadding2D) (None, 256, 58, 58) 0 convolution2d_6[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_7 (Convolution2D) (None, 256, 56, 56) 590080 zeropadding2d_7[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_3 (MaxPooling2D) (None, 256, 28, 28) 0 convolution2d_7[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_8 (ZeroPadding2D) (None, 256, 30, 30) 0 maxpooling2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_8 (Convolution2D) (None, 512, 28, 28) 1180160 zeropadding2d_8[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_9 (ZeroPadding2D) (None, 512, 30, 30) 0 convolution2d_8[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_9 (Convolution2D) (None, 512, 28, 28) 2359808 zeropadding2d_9[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_10 (ZeroPadding2D) (None, 512, 30, 30) 0 convolution2d_9[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_10 (Convolution2D) (None, 512, 28, 28) 2359808 zeropadding2d_10[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_4 (MaxPooling2D) (None, 512, 14, 14) 0 convolution2d_10[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_11 (ZeroPadding2D) (None, 512, 16, 16) 0 maxpooling2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_11 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_11[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_12 (ZeroPadding2D) (None, 512, 16, 16) 0 convolution2d_11[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_12 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_12[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_13 (ZeroPadding2D) (None, 512, 16, 16) 0 convolution2d_12[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_13 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_13[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_5 (MaxPooling2D) (None, 512, 7, 7) 0 convolution2d_13[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"flatten_1 (Flatten) (None, 25088) 0 maxpooling2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_1 (Dense) (None, 4096) 102764544 flatten_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dropout_1 (Dropout) (None, 4096) 0 dense_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_2 (Dense) (None, 4096) 16781312 dropout_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dropout_2 (Dropout) (None, 4096) 0 dense_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_4 (Dense) (None, 2) 8194 dropout_2[0][0] \n", | |
"====================================================================================================\n", | |
"Total params: 134,268,738\n", | |
"Trainable params: 119,554,050\n", | |
"Non-trainable params: 14,714,688\n", | |
"____________________________________________________________________________________________________\n" | |
] | |
} | |
], | |
"source": [ | |
"vgg.model.summary()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 22, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Epoch 1/2\n", | |
"23000/23000 [==============================] - 183s - loss: 0.0880 - acc: 0.9779 - val_loss: 0.0420 - val_acc: 0.9855\n", | |
"Epoch 2/2\n", | |
"23000/23000 [==============================] - 181s - loss: 0.0834 - acc: 0.9788 - val_loss: 0.0345 - val_acc: 0.9890\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"<keras.callbacks.History at 0x7efdb898b748>" | |
] | |
}, | |
"execution_count": 22, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"vgg.model.fit_generator(batches, \n", | |
" nb_epoch = 2, \n", | |
" validation_data = val_batches,\n", | |
" samples_per_epoch=batches.n,\n", | |
" nb_val_samples=val_batches.n)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Training multiple layers in Keras WITH compiling:\n", | |
"\n", | |
"So I added a compile to remove the warning and realized that the loss increased dramatically and the model cannot produces a satisfactory result with only few epochs. \n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 23, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"opt = RMSprop(lr=0.001)\n", | |
"vgg.model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy'])" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 24, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"____________________________________________________________________________________________________\n", | |
"Layer (type) Output Shape Param # Connected to \n", | |
"====================================================================================================\n", | |
"lambda_1 (Lambda) (None, 3, 224, 224) 0 lambda_input_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_1 (ZeroPadding2D) (None, 3, 226, 226) 0 lambda_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_1 (Convolution2D) (None, 64, 224, 224) 1792 zeropadding2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_2 (ZeroPadding2D) (None, 64, 226, 226) 0 convolution2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_2 (Convolution2D) (None, 64, 224, 224) 36928 zeropadding2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_1 (MaxPooling2D) (None, 64, 112, 112) 0 convolution2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_3 (ZeroPadding2D) (None, 64, 114, 114) 0 maxpooling2d_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_3 (Convolution2D) (None, 128, 112, 112) 73856 zeropadding2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_4 (ZeroPadding2D) (None, 128, 114, 114) 0 convolution2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_4 (Convolution2D) (None, 128, 112, 112) 147584 zeropadding2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_2 (MaxPooling2D) (None, 128, 56, 56) 0 convolution2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_5 (ZeroPadding2D) (None, 128, 58, 58) 0 maxpooling2d_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_5 (Convolution2D) (None, 256, 56, 56) 295168 zeropadding2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_6 (ZeroPadding2D) (None, 256, 58, 58) 0 convolution2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_6 (Convolution2D) (None, 256, 56, 56) 590080 zeropadding2d_6[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_7 (ZeroPadding2D) (None, 256, 58, 58) 0 convolution2d_6[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_7 (Convolution2D) (None, 256, 56, 56) 590080 zeropadding2d_7[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_3 (MaxPooling2D) (None, 256, 28, 28) 0 convolution2d_7[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_8 (ZeroPadding2D) (None, 256, 30, 30) 0 maxpooling2d_3[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_8 (Convolution2D) (None, 512, 28, 28) 1180160 zeropadding2d_8[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_9 (ZeroPadding2D) (None, 512, 30, 30) 0 convolution2d_8[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_9 (Convolution2D) (None, 512, 28, 28) 2359808 zeropadding2d_9[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_10 (ZeroPadding2D) (None, 512, 30, 30) 0 convolution2d_9[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_10 (Convolution2D) (None, 512, 28, 28) 2359808 zeropadding2d_10[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_4 (MaxPooling2D) (None, 512, 14, 14) 0 convolution2d_10[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_11 (ZeroPadding2D) (None, 512, 16, 16) 0 maxpooling2d_4[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_11 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_11[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_12 (ZeroPadding2D) (None, 512, 16, 16) 0 convolution2d_11[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_12 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_12[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"zeropadding2d_13 (ZeroPadding2D) (None, 512, 16, 16) 0 convolution2d_12[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"convolution2d_13 (Convolution2D) (None, 512, 14, 14) 2359808 zeropadding2d_13[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"maxpooling2d_5 (MaxPooling2D) (None, 512, 7, 7) 0 convolution2d_13[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"flatten_1 (Flatten) (None, 25088) 0 maxpooling2d_5[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_1 (Dense) (None, 4096) 102764544 flatten_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dropout_1 (Dropout) (None, 4096) 0 dense_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_2 (Dense) (None, 4096) 16781312 dropout_1[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dropout_2 (Dropout) (None, 4096) 0 dense_2[0][0] \n", | |
"____________________________________________________________________________________________________\n", | |
"dense_4 (Dense) (None, 2) 8194 dropout_2[0][0] \n", | |
"====================================================================================================\n", | |
"Total params: 134,268,738\n", | |
"Trainable params: 119,554,050\n", | |
"Non-trainable params: 14,714,688\n", | |
"____________________________________________________________________________________________________\n" | |
] | |
} | |
], | |
"source": [ | |
"vgg.model.summary()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 25, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Epoch 1/2\n", | |
"23000/23000 [==============================] - 185s - loss: 8.0069 - acc: 0.5032 - val_loss: 8.0913 - val_acc: 0.4980\n", | |
"Epoch 2/2\n", | |
"23000/23000 [==============================] - 185s - loss: 8.0177 - acc: 0.5026 - val_loss: 8.0913 - val_acc: 0.4980\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/plain": [ | |
"<keras.callbacks.History at 0x7efdb74626d8>" | |
] | |
}, | |
"execution_count": 25, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"vgg.model.fit_generator(batches, \n", | |
" nb_epoch = 2, \n", | |
" validation_data = val_batches,\n", | |
" samples_per_epoch=batches.n,\n", | |
" nb_val_samples=val_batches.n)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python [conda root]", | |
"language": "python", | |
"name": "conda-root-py" | |
}, | |
"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": 1 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment