Skip to content

Instantly share code, notes, and snippets.

@juntaki
Last active July 3, 2016 14:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juntaki/e50200c82d6f3a5143e7b206a0ab2451 to your computer and use it in GitHub Desktop.
Save juntaki/e50200c82d6f3a5143e7b206a0ab2451 to your computer and use it in GitHub Desktop.
keras-cifar10 dropout
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# Keras CIFAR10をCNNで分類\n\nこの論文のAll-CNN-Cをやってみた\nhttp://arxiv.org/pdf/1412.6806.pdf"
},
{
"metadata": {
"scrolled": true,
"trusted": false,
"collapsed": false
},
"cell_type": "code",
"source": "import numpy as np\nimport seaborn as sns\nimport matplotlib.pyplot as plt\n%matplotlib inline\nfrom keras.utils import np_utils\nfrom keras.datasets import cifar10\nfrom keras.preprocessing.image import ImageDataGenerator\nfrom keras.models import Sequential\nfrom keras.layers import Dense, Dropout, Activation, Flatten\nfrom keras.layers import Convolution2D, MaxPooling2D, AveragePooling2D\nfrom keras.optimizers import Adam\nfrom sklearn import datasets, preprocessing",
"execution_count": 18,
"outputs": []
},
{
"metadata": {
"trusted": false,
"collapsed": false
},
"cell_type": "code",
"source": "batch_size = 32\nnb_classes = 10\nnb_epoch = 10\ndata_augmentation = True\n\n# input image dimensions\nimg_rows, img_cols = 32, 32\n# the CIFAR10 images are RGB\nimg_channels = 3\n\n# the data, shuffled and split between train and test sets\n(X_train, y_train), (X_test, y_test) = cifar10.load_data()\nprint('X_train shape:', X_train.shape)\nprint(X_train.shape[0], 'train samples')\nprint(X_test.shape[0], 'test samples')\n\n# convert class vectors to binary class matrices\nY_train = np_utils.to_categorical(y_train, nb_classes)\nY_test = np_utils.to_categorical(y_test, nb_classes) ",
"execution_count": 19,
"outputs": [
{
"name": "stdout",
"text": "X_train shape: (50000, 3, 32, 32)\n50000 train samples\n10000 test samples\n",
"output_type": "stream"
}
]
},
{
"metadata": {
"collapsed": false
},
"cell_type": "markdown",
"source": "データを可視化してみる、これは多分飛行機"
},
{
"metadata": {
"trusted": false,
"collapsed": false
},
"cell_type": "code",
"source": "number = 404\nimg = X_train[number].reshape(3,32,32)\nimg1 = np.rollaxis(img, 0 ,3)\nimg1.shape\nplt.imshow(img1, interpolation='none')\nY_train[number]",
"execution_count": 20,
"outputs": [
{
"data": {
"text/plain": "array([ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.])"
},
"metadata": {},
"output_type": "execute_result",
"execution_count": 20
},
{
"data": {
"text/plain": "<matplotlib.figure.Figure at 0x7fe7880d4978>",
"image/png": "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\n"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"scrolled": false,
"trusted": false,
"collapsed": false
},
"cell_type": "code",
"source": "model = Sequential()\nmodel.add(Convolution2D(96, 3, 3, border_mode=\"same\", input_shape=(3, 32, 32) ))\nmodel.add(Activation('relu'))\nmodel.add(Convolution2D(96, 3, 3, border_mode=\"same\"))\nmodel.add(Activation('relu'))\nmodel.add(Convolution2D(96, 3, 3, border_mode=\"same\", subsample=(2,2)))\nmodel.add(Activation('relu'))\nmodel.add(Dropout(0.5))\nmodel.add(Convolution2D(192, 3, 3, border_mode=\"same\"))\nmodel.add(Activation('relu'))\nmodel.add(Convolution2D(192, 3, 3, border_mode=\"same\"))\nmodel.add(Activation('relu'))\nmodel.add(Convolution2D(192, 3, 3, border_mode=\"same\", subsample=(2,2)))\nmodel.add(Activation('relu'))\nmodel.add(Dropout(0.5))\nmodel.add(Convolution2D(192, 3, 3, border_mode=\"same\"))\nmodel.add(Activation('relu'))\nmodel.add(Convolution2D(192, 1, 1, border_mode=\"same\"))\nmodel.add(Activation('relu'))\nmodel.add(Convolution2D(10, 1, 1, border_mode=\"same\"))\nmodel.add(Activation('relu'))\nmodel.add(AveragePooling2D(pool_size=(6, 6), border_mode='valid'))\nmodel.add(Flatten())\nmodel.add(Activation(\"softmax\"))\n\nmodel.compile(loss='categorical_crossentropy', optimizer=\"adadelta\", metrics=['accuracy'])\n#model.summary()",
"execution_count": 23,
"outputs": []
},
{
"metadata": {
"trusted": false,
"collapsed": false
},
"cell_type": "code",
"source": "datagen = ImageDataGenerator(\n featurewise_center=False, # set input mean to 0 over the dataset\n samplewise_center=False, # set each sample mean to 0\n featurewise_std_normalization=False, # divide inputs by std of the dataset\n samplewise_std_normalization=False, # divide each input by its std\n zca_whitening=False, # apply ZCA whitening\n rotation_range=0, # randomly rotate images in the range (degrees, 0 to 180)\n width_shift_range=0.1, # randomly shift images horizontally (fraction of total width)\n height_shift_range=0.1, # randomly shift images vertically (fraction of total height)\n horizontal_flip=True, # randomly flip images\n vertical_flip=False) # randomly flip images\n\ndatagen.fit(X_train)\n\nmodel.fit_generator(datagen.flow(X_train, Y_train,\n batch_size=batch_size),\n samples_per_epoch=X_train.shape[0],\n nb_epoch=nb_epoch,\n validation_data=(X_test, Y_test))",
"execution_count": 24,
"outputs": [
{
"name": "stdout",
"text": "Epoch 1/10\n50000/50000 [==============================] - 275s - loss: 2.2356 - acc: 0.1405 - val_loss: 2.0150 - val_acc: 0.2597\nEpoch 2/10\n50000/50000 [==============================] - 275s - loss: 1.7671 - acc: 0.3722 - val_loss: 1.6346 - val_acc: 0.4088\nEpoch 3/10\n50000/50000 [==============================] - 275s - loss: 1.4464 - acc: 0.4970 - val_loss: 1.2685 - val_acc: 0.5603\nEpoch 4/10\n50000/50000 [==============================] - 275s - loss: 1.2000 - acc: 0.5867 - val_loss: 0.9969 - val_acc: 0.6586\nEpoch 5/10\n50000/50000 [==============================] - 275s - loss: 0.9620 - acc: 0.6647 - val_loss: 0.8393 - val_acc: 0.7132\nEpoch 6/10\n50000/50000 [==============================] - 275s - loss: 0.8582 - acc: 0.7034 - val_loss: 0.7509 - val_acc: 0.7520\nEpoch 7/10\n50000/50000 [==============================] - 275s - loss: 0.7810 - acc: 0.7311 - val_loss: 0.7390 - val_acc: 0.7491\nEpoch 8/10\n50000/50000 [==============================] - 275s - loss: 0.7274 - acc: 0.7497 - val_loss: 0.7076 - val_acc: 0.7695\nEpoch 9/10\n50000/50000 [==============================] - 275s - loss: 0.6851 - acc: 0.7693 - val_loss: 0.7362 - val_acc: 0.7514\nEpoch 10/10\n50000/50000 [==============================] - 276s - loss: 0.6427 - acc: 0.7801 - val_loss: 0.6245 - val_acc: 0.7955\n",
"output_type": "stream"
},
{
"data": {
"text/plain": "<keras.callbacks.History at 0x7fe76ee45518>"
},
"metadata": {},
"output_type": "execute_result",
"execution_count": 24
}
]
},
{
"metadata": {
"trusted": false,
"collapsed": false
},
"cell_type": "code",
"source": "model.fit_generator(datagen.flow(X_train, Y_train,\n batch_size=batch_size),\n samples_per_epoch=X_train.shape[0],\n nb_epoch=nb_epoch,\n validation_data=(X_test, Y_test))",
"execution_count": 26,
"outputs": [
{
"name": "stdout",
"text": "Epoch 1/10\n50000/50000 [==============================] - 274s - loss: 0.6128 - acc: 0.7925 - val_loss: 0.5417 - val_acc: 0.8153\nEpoch 2/10\n50000/50000 [==============================] - 274s - loss: 0.5887 - acc: 0.8012 - val_loss: 0.6352 - val_acc: 0.7956\nEpoch 3/10\n50000/50000 [==============================] - 273s - loss: 0.5639 - acc: 0.8093 - val_loss: 0.5646 - val_acc: 0.8186\nEpoch 4/10\n50000/50000 [==============================] - 273s - loss: 0.5474 - acc: 0.8151 - val_loss: 0.5392 - val_acc: 0.8241\nEpoch 5/10\n50000/50000 [==============================] - 273s - loss: 0.5203 - acc: 0.8251 - val_loss: 0.5017 - val_acc: 0.8352\nEpoch 6/10\n50000/50000 [==============================] - 274s - loss: 0.5089 - acc: 0.8283 - val_loss: 0.5039 - val_acc: 0.8339\nEpoch 7/10\n50000/50000 [==============================] - 274s - loss: 0.4957 - acc: 0.8318 - val_loss: 0.4857 - val_acc: 0.8407\nEpoch 8/10\n50000/50000 [==============================] - 273s - loss: 0.4782 - acc: 0.8373 - val_loss: 0.4767 - val_acc: 0.8466\nEpoch 9/10\n50000/50000 [==============================] - 274s - loss: 0.4653 - acc: 0.8410 - val_loss: 0.4618 - val_acc: 0.8575\nEpoch 10/10\n50000/50000 [==============================] - 274s - loss: 0.4576 - acc: 0.8452 - val_loss: 0.4886 - val_acc: 0.8357\n",
"output_type": "stream"
},
{
"data": {
"text/plain": "<keras.callbacks.History at 0x7fe76193feb8>"
},
"metadata": {},
"output_type": "execute_result",
"execution_count": 26
}
]
},
{
"metadata": {
"trusted": false,
"collapsed": false
},
"cell_type": "code",
"source": "model.fit_generator(datagen.flow(X_train, Y_train,\n batch_size=batch_size),\n samples_per_epoch=X_train.shape[0],\n nb_epoch=100,\n validation_data=(X_test, Y_test))",
"execution_count": null,
"outputs": [
{
"name": "stdout",
"text": "Epoch 1/100\n50000/50000 [==============================] - 274s - loss: 0.4443 - acc: 0.8491 - val_loss: 0.4338 - val_acc: 0.8607\nEpoch 2/100\n50000/50000 [==============================] - 273s - loss: 0.4367 - acc: 0.8521 - val_loss: 0.4327 - val_acc: 0.8634\nEpoch 3/100\n50000/50000 [==============================] - 273s - loss: 0.4264 - acc: 0.8558 - val_loss: 0.4330 - val_acc: 0.8534\nEpoch 4/100\n50000/50000 [==============================] - 273s - loss: 0.4190 - acc: 0.8585 - val_loss: 0.4638 - val_acc: 0.8538\nEpoch 5/100\n50000/50000 [==============================] - 273s - loss: 0.4070 - acc: 0.8598 - val_loss: 0.4546 - val_acc: 0.8572\nEpoch 6/100\n50000/50000 [==============================] - 273s - loss: 0.3995 - acc: 0.8640 - val_loss: 0.4128 - val_acc: 0.8696\nEpoch 7/100\n50000/50000 [==============================] - 273s - loss: 0.3956 - acc: 0.8650 - val_loss: 0.4302 - val_acc: 0.8619\nEpoch 8/100\n50000/50000 [==============================] - 273s - loss: 0.3874 - acc: 0.8691 - val_loss: 0.4454 - val_acc: 0.8512\nEpoch 9/100\n50000/50000 [==============================] - 273s - loss: 0.3869 - acc: 0.8693 - val_loss: 0.4075 - val_acc: 0.8671\nEpoch 10/100\n50000/50000 [==============================] - 274s - loss: 0.3799 - acc: 0.8727 - val_loss: 0.3924 - val_acc: 0.8727\nEpoch 11/100\n27584/50000 [===============>..............] - ETA: 115s - loss: 0.3683 - acc: 0.8767",
"output_type": "stream"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Dropoutを追加して、30epochで87%の精度が得られた。まだもう少し上がる余地はありそうだが、時間の都合でここまで。"
},
{
"metadata": {
"trusted": false,
"collapsed": false
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": false,
"collapsed": false
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": false,
"collapsed": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": false,
"collapsed": false
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
},
{
"metadata": {
"trusted": false,
"collapsed": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"gist": {
"id": "e50200c82d6f3a5143e7b206a0ab2451",
"data": {
"description": "keras-cifar10 dropout",
"public": false
}
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"language_info": {
"version": "3.5.1",
"mimetype": "text/x-python",
"codemirror_mode": {
"version": 3,
"name": "ipython"
},
"name": "python",
"file_extension": ".py",
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python"
},
"_draft": {
"nbviewer_url": "https://gist.github.com/e50200c82d6f3a5143e7b206a0ab2451"
}
},
"nbformat": 4,
"nbformat_minor": 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment