Skip to content

Instantly share code, notes, and snippets.

@jkotra
Last active December 27, 2018 13:47
Show Gist options
  • Select an option

  • Save jkotra/f6ceaa0fc3c90477bfcd8a62b94d73a7 to your computer and use it in GitHub Desktop.

Select an option

Save jkotra/f6ceaa0fc3c90477bfcd8a62b94d73a7 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
]
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import keras\n",
"from sklearn.model_selection import train_test_split"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"train_data = pd.read_csv(\"~/datasets/fashionmnist/fashion-mnist_train.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"#preprocessing\n",
"\n",
"X = np.array(train_data.iloc[:,1:]) / 255\n",
"\n",
"X = X.reshape(X.shape[0],28,28,1)\n",
"\n",
"y = np.array(train_data.iloc[:,0])"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"X_train,X_val,y_train,y_val = train_test_split(X,y,test_size=0.2)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"image = X_train[0,:].reshape((28,28))\n",
"plt.imshow(image)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"from keras.models import Sequential\n",
"from keras.layers import Dense,Flatten,Conv2D,Dropout,MaxPool2D\n",
"\n",
"model = Sequential()\n",
"\n",
"\n",
"model.add(Conv2D(64,activation='relu',kernel_size=(8,8), input_shape = X_train[0].shape))\n",
"model.add(MaxPool2D((4,4)))\n",
"model.add(Dropout(0.2))\n",
"model.add(Conv2D(32,activation='relu',kernel_size=(4,4)))\n",
"model.add(MaxPool2D((2,2)))\n",
"model.add(Flatten())\n",
"model.add(Dense(128,activation=\"relu\"))\n",
"model.add(Dense(10,activation=\"softmax\"))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"model.compile(loss=\"sparse_categorical_crossentropy\",\n",
" optimizer=\"adam\", metrics=['accuracy'])"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Train on 48000 samples, validate on 12000 samples\n",
"Epoch 1/50\n",
"48000/48000 [==============================] - 14s 297us/step - loss: 0.6563 - acc: 0.7572 - val_loss: 0.4424 - val_acc: 0.8445\n",
"Epoch 2/50\n",
"48000/48000 [==============================] - 6s 130us/step - loss: 0.4292 - acc: 0.8451 - val_loss: 0.3857 - val_acc: 0.8585\n",
"Epoch 3/50\n",
"48000/48000 [==============================] - 5s 113us/step - loss: 0.3835 - acc: 0.8619 - val_loss: 0.3654 - val_acc: 0.8672\n",
"Epoch 4/50\n",
"48000/48000 [==============================] - 6s 125us/step - loss: 0.3528 - acc: 0.8711 - val_loss: 0.3353 - val_acc: 0.8792\n",
"Epoch 5/50\n",
"48000/48000 [==============================] - 6s 128us/step - loss: 0.3321 - acc: 0.8785 - val_loss: 0.3381 - val_acc: 0.8756\n",
"Epoch 6/50\n",
"48000/48000 [==============================] - 6s 124us/step - loss: 0.3192 - acc: 0.8832 - val_loss: 0.3284 - val_acc: 0.8803\n",
"Epoch 7/50\n",
"48000/48000 [==============================] - 5s 110us/step - loss: 0.3073 - acc: 0.8863 - val_loss: 0.3073 - val_acc: 0.8896\n",
"Epoch 8/50\n",
"48000/48000 [==============================] - 5s 109us/step - loss: 0.2956 - acc: 0.8915 - val_loss: 0.3015 - val_acc: 0.8890\n",
"Epoch 9/50\n",
"48000/48000 [==============================] - 5s 103us/step - loss: 0.2836 - acc: 0.8934 - val_loss: 0.2983 - val_acc: 0.8927\n",
"Epoch 10/50\n",
"48000/48000 [==============================] - 5s 95us/step - loss: 0.2742 - acc: 0.8968 - val_loss: 0.2969 - val_acc: 0.8927\n",
"Epoch 11/50\n",
"48000/48000 [==============================] - 5s 104us/step - loss: 0.2666 - acc: 0.9007 - val_loss: 0.2815 - val_acc: 0.8952\n",
"Epoch 12/50\n",
"48000/48000 [==============================] - 5s 114us/step - loss: 0.2606 - acc: 0.9018 - val_loss: 0.2819 - val_acc: 0.8982\n",
"Epoch 13/50\n",
"48000/48000 [==============================] - 5s 98us/step - loss: 0.2547 - acc: 0.9031 - val_loss: 0.2817 - val_acc: 0.8987\n",
"Epoch 14/50\n",
"48000/48000 [==============================] - 5s 114us/step - loss: 0.2495 - acc: 0.9063 - val_loss: 0.2833 - val_acc: 0.8946\n",
"Epoch 15/50\n",
"48000/48000 [==============================] - 6s 119us/step - loss: 0.2460 - acc: 0.9069 - val_loss: 0.2861 - val_acc: 0.8958\n",
"Epoch 16/50\n",
"48000/48000 [==============================] - 5s 113us/step - loss: 0.2373 - acc: 0.9110 - val_loss: 0.2693 - val_acc: 0.9023\n",
"Epoch 17/50\n",
"48000/48000 [==============================] - 6s 123us/step - loss: 0.2306 - acc: 0.9123 - val_loss: 0.2704 - val_acc: 0.9029\n",
"Epoch 18/50\n",
"48000/48000 [==============================] - 7s 137us/step - loss: 0.2283 - acc: 0.9133 - val_loss: 0.2887 - val_acc: 0.8975\n",
"Epoch 19/50\n",
"48000/48000 [==============================] - 5s 104us/step - loss: 0.2262 - acc: 0.9146 - val_loss: 0.2737 - val_acc: 0.9050\n",
"Epoch 20/50\n",
"48000/48000 [==============================] - 5s 113us/step - loss: 0.2209 - acc: 0.9167 - val_loss: 0.2664 - val_acc: 0.9050\n",
"Epoch 21/50\n",
"48000/48000 [==============================] - 6s 128us/step - loss: 0.2184 - acc: 0.9163 - val_loss: 0.2648 - val_acc: 0.9023\n",
"Epoch 22/50\n",
"48000/48000 [==============================] - 6s 119us/step - loss: 0.2130 - acc: 0.9199 - val_loss: 0.2765 - val_acc: 0.9012\n",
"Epoch 23/50\n",
"48000/48000 [==============================] - 5s 110us/step - loss: 0.2135 - acc: 0.9204 - val_loss: 0.2649 - val_acc: 0.9065\n",
"Epoch 24/50\n",
"48000/48000 [==============================] - 5s 107us/step - loss: 0.2081 - acc: 0.9208 - val_loss: 0.2834 - val_acc: 0.8974\n",
"Epoch 25/50\n",
"48000/48000 [==============================] - 5s 98us/step - loss: 0.2033 - acc: 0.9222 - val_loss: 0.2649 - val_acc: 0.9067\n",
"Epoch 26/50\n",
"48000/48000 [==============================] - 6s 121us/step - loss: 0.2006 - acc: 0.9232 - val_loss: 0.2783 - val_acc: 0.9017\n",
"Epoch 27/50\n",
"48000/48000 [==============================] - 6s 128us/step - loss: 0.2011 - acc: 0.9221 - val_loss: 0.2883 - val_acc: 0.8982\n",
"Epoch 28/50\n",
"48000/48000 [==============================] - 6s 118us/step - loss: 0.1981 - acc: 0.9248 - val_loss: 0.2773 - val_acc: 0.9058\n",
"Epoch 29/50\n",
"48000/48000 [==============================] - 5s 113us/step - loss: 0.1934 - acc: 0.9257 - val_loss: 0.2639 - val_acc: 0.9102\n",
"Epoch 30/50\n",
"48000/48000 [==============================] - 5s 113us/step - loss: 0.1924 - acc: 0.9252 - val_loss: 0.2724 - val_acc: 0.9073\n",
"Epoch 31/50\n",
"48000/48000 [==============================] - 5s 97us/step - loss: 0.1910 - acc: 0.9273 - val_loss: 0.2812 - val_acc: 0.9058\n",
"Epoch 32/50\n",
"48000/48000 [==============================] - 5s 110us/step - loss: 0.1885 - acc: 0.9292 - val_loss: 0.2848 - val_acc: 0.9022\n",
"Epoch 33/50\n",
"48000/48000 [==============================] - 5s 98us/step - loss: 0.1858 - acc: 0.9285 - val_loss: 0.2807 - val_acc: 0.9066\n",
"Epoch 34/50\n",
"48000/48000 [==============================] - 6s 128us/step - loss: 0.1828 - acc: 0.9304 - val_loss: 0.2761 - val_acc: 0.9069\n",
"Epoch 35/50\n",
"48000/48000 [==============================] - 6s 122us/step - loss: 0.1813 - acc: 0.9307 - val_loss: 0.2731 - val_acc: 0.9112\n",
"Epoch 36/50\n",
"48000/48000 [==============================] - 5s 96us/step - loss: 0.1784 - acc: 0.9311 - val_loss: 0.2832 - val_acc: 0.9065\n",
"Epoch 37/50\n",
"48000/48000 [==============================] - 5s 114us/step - loss: 0.1782 - acc: 0.9321 - val_loss: 0.2861 - val_acc: 0.9056\n",
"Epoch 38/50\n",
"48000/48000 [==============================] - 5s 108us/step - loss: 0.1763 - acc: 0.9331 - val_loss: 0.2812 - val_acc: 0.9096\n",
"Epoch 39/50\n",
"48000/48000 [==============================] - 5s 110us/step - loss: 0.1768 - acc: 0.9320 - val_loss: 0.2848 - val_acc: 0.9063\n",
"Epoch 40/50\n",
"48000/48000 [==============================] - 5s 97us/step - loss: 0.1738 - acc: 0.9329 - val_loss: 0.2784 - val_acc: 0.9097\n",
"Epoch 41/50\n",
"48000/48000 [==============================] - 5s 101us/step - loss: 0.1727 - acc: 0.9332 - val_loss: 0.2858 - val_acc: 0.9077\n",
"Epoch 42/50\n",
"48000/48000 [==============================] - 5s 109us/step - loss: 0.1719 - acc: 0.9340 - val_loss: 0.2972 - val_acc: 0.9055\n",
"Epoch 43/50\n",
"48000/48000 [==============================] - 5s 102us/step - loss: 0.1686 - acc: 0.9354 - val_loss: 0.2894 - val_acc: 0.9056\n",
"Epoch 44/50\n",
"48000/48000 [==============================] - 5s 101us/step - loss: 0.1677 - acc: 0.9353 - val_loss: 0.3028 - val_acc: 0.9073\n",
"Epoch 45/50\n",
"48000/48000 [==============================] - 5s 103us/step - loss: 0.1696 - acc: 0.9348 - val_loss: 0.2810 - val_acc: 0.9069\n",
"Epoch 46/50\n",
"48000/48000 [==============================] - 5s 106us/step - loss: 0.1673 - acc: 0.9359 - val_loss: 0.2825 - val_acc: 0.9080\n",
"Epoch 47/50\n",
"48000/48000 [==============================] - 5s 108us/step - loss: 0.1640 - acc: 0.9368 - val_loss: 0.2895 - val_acc: 0.9062\n",
"Epoch 48/50\n",
"48000/48000 [==============================] - 5s 99us/step - loss: 0.1635 - acc: 0.9376 - val_loss: 0.3062 - val_acc: 0.9037\n",
"Epoch 49/50\n",
"48000/48000 [==============================] - 5s 96us/step - loss: 0.1633 - acc: 0.9370 - val_loss: 0.2935 - val_acc: 0.9078\n",
"Epoch 50/50\n",
"48000/48000 [==============================] - 5s 112us/step - loss: 0.1578 - acc: 0.9392 - val_loss: 0.2997 - val_acc: 0.9043\n"
]
}
],
"source": [
"history = model.fit(X_train, y_train,\n",
" batch_size=50,\n",
" epochs=50,\n",
" verbose=1,\n",
" validation_data=(X_val, y_val))"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"9 => 9\n",
"5 => 5\n",
"8 => 8\n",
"1 => 1\n",
"4 => 4\n"
]
}
],
"source": [
"predictions = model.predict_classes(X_val)\n",
"\n",
"for i,j in zip(y_val[:5],predictions[:5]):\n",
" print(i,\"=>\",j)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 965 1 31 35 5 0 147 0 10 0]\n",
" [ 3 1220 0 18 0 0 8 0 0 0]\n",
" [ 12 1 1012 13 61 0 60 0 3 0]\n",
" [ 8 8 5 1117 25 0 22 0 0 0]\n",
" [ 1 1 94 49 972 0 78 0 2 0]\n",
" [ 0 0 0 1 0 1199 0 16 4 11]\n",
" [ 106 1 97 41 66 0 860 0 8 0]\n",
" [ 0 0 0 0 0 6 0 1189 0 31]\n",
" [ 4 0 3 2 3 0 7 1 1164 1]\n",
" [ 1 0 0 0 0 5 0 32 0 1154]]\n"
]
}
],
"source": [
"from sklearn.metrics import confusion_matrix as cm\n",
"\n",
"print(cm(y_val,predictions))"
]
},
{
"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.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment