Created
January 20, 2021 10:30
-
-
Save agrhn/1ede265ebc8cd1260904d47692f74d39 to your computer and use it in GitHub Desktop.
VGGNet_TensorFlow.ipynb
This file contains hidden or 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
| { | |
| "nbformat": 4, | |
| "nbformat_minor": 0, | |
| "metadata": { | |
| "colab": { | |
| "name": "VGGNet_TensorFlow.ipynb", | |
| "provenance": [], | |
| "collapsed_sections": [], | |
| "authorship_tag": "ABX9TyOmkKTYmYtW0hcUwqDWc/be", | |
| "include_colab_link": true | |
| }, | |
| "kernelspec": { | |
| "name": "python3", | |
| "display_name": "Python 3" | |
| }, | |
| "accelerator": "GPU" | |
| }, | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "view-in-github", | |
| "colab_type": "text" | |
| }, | |
| "source": [ | |
| "<a href=\"https://colab.research.google.com/gist/mrgrhn/1ede265ebc8cd1260904d47692f74d39/vggnet_tensorflow.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "vk5qZTNi7CnP" | |
| }, | |
| "source": [ | |
| "import tensorflow as tf\r\n", | |
| "import matplotlib.pyplot as plt\r\n", | |
| "from tensorflow.keras import datasets, layers, models, losses" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "Wfojd2Md7TF9" | |
| }, | |
| "source": [ | |
| "(x_train, y_train), (x_test, y_test)=tf.keras.datasets.mnist.load_data()\r\n", | |
| "x_train = tf.pad(x_train, [[0, 0], [2,2], [2,2]])/255\r\n", | |
| "x_test = tf.pad(x_test, [[0, 0], [2,2], [2,2]])/255\r\n", | |
| "x_train = tf.expand_dims(x_train, axis=3, name=None)\r\n", | |
| "x_test = tf.expand_dims(x_test, axis=3, name=None)\r\n", | |
| "x_train = tf.repeat(x_train, 3, axis=3)\r\n", | |
| "x_test = tf.repeat(x_test, 3, axis=3)\r\n", | |
| "x_val = x_train[-2000:,:,:,:]\r\n", | |
| "y_val = y_train[-2000:]\r\n", | |
| "x_train = x_train[:-2000,:,:,:]\r\n", | |
| "y_train = y_train[:-2000]" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "e6TRNiwH7VAf", | |
| "outputId": "c412299f-af62-4739-afc3-c3548c8d2a78" | |
| }, | |
| "source": [ | |
| "model = models.Sequential()\r\n", | |
| "\r\n", | |
| "model.add(layers.experimental.preprocessing.Resizing(224, 224, interpolation=\"bilinear\", input_shape=x_train.shape[1:]))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(64, 3, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(64, 3, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "model.add(layers.MaxPooling2D(2, strides=2))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(128, 3, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(128, 3, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "model.add(layers.MaxPooling2D(2, strides=2))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(256, 3, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(256, 3, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(256, 1, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "model.add(layers.MaxPooling2D(2, strides=2))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(512, 3, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(512, 3, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(512, 1, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "model.add(layers.MaxPooling2D(2, strides=2))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(512, 3, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(512, 3, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "\r\n", | |
| "model.add(layers.Conv2D(512, 1, strides=1, padding='same'))\r\n", | |
| "model.add(layers.Activation('relu'))\r\n", | |
| "model.add(layers.MaxPooling2D(2, strides=2))\r\n", | |
| "\r\n", | |
| "model.add(layers.Flatten())\r\n", | |
| "model.add(layers.Dense(4096, activation='relu'))\r\n", | |
| "model.add(layers.Dropout(0.5))\r\n", | |
| "\r\n", | |
| "model.add(layers.Dense(4096, activation='relu'))\r\n", | |
| "model.add(layers.Dropout(0.5))\r\n", | |
| "\r\n", | |
| "model.add(layers.Dense(10, activation='softmax'))\r\n", | |
| "model.summary()" | |
| ], | |
| "execution_count": null, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "text": [ | |
| "Model: \"sequential\"\n", | |
| "_________________________________________________________________\n", | |
| "Layer (type) Output Shape Param # \n", | |
| "=================================================================\n", | |
| "resizing (Resizing) (None, 224, 224, 3) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d (Conv2D) (None, 224, 224, 64) 1792 \n", | |
| "_________________________________________________________________\n", | |
| "activation (Activation) (None, 224, 224, 64) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_1 (Conv2D) (None, 224, 224, 64) 36928 \n", | |
| "_________________________________________________________________\n", | |
| "activation_1 (Activation) (None, 224, 224, 64) 0 \n", | |
| "_________________________________________________________________\n", | |
| "max_pooling2d (MaxPooling2D) (None, 112, 112, 64) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_2 (Conv2D) (None, 112, 112, 128) 73856 \n", | |
| "_________________________________________________________________\n", | |
| "activation_2 (Activation) (None, 112, 112, 128) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_3 (Conv2D) (None, 112, 112, 128) 147584 \n", | |
| "_________________________________________________________________\n", | |
| "activation_3 (Activation) (None, 112, 112, 128) 0 \n", | |
| "_________________________________________________________________\n", | |
| "max_pooling2d_1 (MaxPooling2 (None, 56, 56, 128) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_4 (Conv2D) (None, 56, 56, 256) 295168 \n", | |
| "_________________________________________________________________\n", | |
| "activation_4 (Activation) (None, 56, 56, 256) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_5 (Conv2D) (None, 56, 56, 256) 590080 \n", | |
| "_________________________________________________________________\n", | |
| "activation_5 (Activation) (None, 56, 56, 256) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_6 (Conv2D) (None, 56, 56, 256) 65792 \n", | |
| "_________________________________________________________________\n", | |
| "activation_6 (Activation) (None, 56, 56, 256) 0 \n", | |
| "_________________________________________________________________\n", | |
| "max_pooling2d_2 (MaxPooling2 (None, 28, 28, 256) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_7 (Conv2D) (None, 28, 28, 512) 1180160 \n", | |
| "_________________________________________________________________\n", | |
| "activation_7 (Activation) (None, 28, 28, 512) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_8 (Conv2D) (None, 28, 28, 512) 2359808 \n", | |
| "_________________________________________________________________\n", | |
| "activation_8 (Activation) (None, 28, 28, 512) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_9 (Conv2D) (None, 28, 28, 512) 262656 \n", | |
| "_________________________________________________________________\n", | |
| "activation_9 (Activation) (None, 28, 28, 512) 0 \n", | |
| "_________________________________________________________________\n", | |
| "max_pooling2d_3 (MaxPooling2 (None, 14, 14, 512) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_10 (Conv2D) (None, 14, 14, 512) 2359808 \n", | |
| "_________________________________________________________________\n", | |
| "activation_10 (Activation) (None, 14, 14, 512) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_11 (Conv2D) (None, 14, 14, 512) 2359808 \n", | |
| "_________________________________________________________________\n", | |
| "activation_11 (Activation) (None, 14, 14, 512) 0 \n", | |
| "_________________________________________________________________\n", | |
| "conv2d_12 (Conv2D) (None, 14, 14, 512) 262656 \n", | |
| "_________________________________________________________________\n", | |
| "activation_12 (Activation) (None, 14, 14, 512) 0 \n", | |
| "_________________________________________________________________\n", | |
| "max_pooling2d_4 (MaxPooling2 (None, 7, 7, 512) 0 \n", | |
| "_________________________________________________________________\n", | |
| "flatten (Flatten) (None, 25088) 0 \n", | |
| "_________________________________________________________________\n", | |
| "dense (Dense) (None, 4096) 102764544 \n", | |
| "_________________________________________________________________\n", | |
| "dropout (Dropout) (None, 4096) 0 \n", | |
| "_________________________________________________________________\n", | |
| "dense_1 (Dense) (None, 4096) 16781312 \n", | |
| "_________________________________________________________________\n", | |
| "dropout_1 (Dropout) (None, 4096) 0 \n", | |
| "_________________________________________________________________\n", | |
| "dense_2 (Dense) (None, 10) 40970 \n", | |
| "=================================================================\n", | |
| "Total params: 129,582,922\n", | |
| "Trainable params: 129,582,922\n", | |
| "Non-trainable params: 0\n", | |
| "_________________________________________________________________\n" | |
| ], | |
| "name": "stdout" | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "id": "oXzxKj3iJqYG" | |
| }, | |
| "source": [ | |
| "model.compile(optimizer='adam', loss=losses.sparse_categorical_crossentropy, metrics=['accuracy'])" | |
| ], | |
| "execution_count": null, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "U4gbubGpKf9K", | |
| "outputId": "bd379bc1-2f38-47c5-ec36-2d59218a1e91" | |
| }, | |
| "source": [ | |
| "model.fit(x_train, y_train, batch_size=64, epochs=40, validation_data=(x_val, y_val))" | |
| ], | |
| "execution_count": null, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "text": [ | |
| "Epoch 1/40\n", | |
| "907/907 [==============================] - 628s 682ms/step - loss: 2.3029 - accuracy: 0.1094 - val_loss: 2.3019 - val_accuracy: 0.1070\n", | |
| "Epoch 2/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3012 - accuracy: 0.1135 - val_loss: 2.3016 - val_accuracy: 0.1070\n", | |
| "Epoch 3/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3012 - accuracy: 0.1132 - val_loss: 2.3017 - val_accuracy: 0.1070\n", | |
| "Epoch 4/40\n", | |
| "907/907 [==============================] - 614s 677ms/step - loss: 2.3010 - accuracy: 0.1156 - val_loss: 2.3016 - val_accuracy: 0.1070\n", | |
| "Epoch 5/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3016 - accuracy: 0.1117 - val_loss: 2.3017 - val_accuracy: 0.1070\n", | |
| "Epoch 6/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3006 - accuracy: 0.1146 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 7/40\n", | |
| "907/907 [==============================] - 614s 677ms/step - loss: 2.3014 - accuracy: 0.1106 - val_loss: 2.3019 - val_accuracy: 0.1070\n", | |
| "Epoch 8/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3010 - accuracy: 0.1142 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 9/40\n", | |
| "907/907 [==============================] - 612s 675ms/step - loss: 2.3013 - accuracy: 0.1141 - val_loss: 2.3017 - val_accuracy: 0.1070\n", | |
| "Epoch 10/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3010 - accuracy: 0.1130 - val_loss: 2.3017 - val_accuracy: 0.1070\n", | |
| "Epoch 11/40\n", | |
| "907/907 [==============================] - 614s 677ms/step - loss: 2.3013 - accuracy: 0.1127 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 12/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3011 - accuracy: 0.1145 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 13/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3010 - accuracy: 0.1140 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 14/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3012 - accuracy: 0.1113 - val_loss: 2.3017 - val_accuracy: 0.1070\n", | |
| "Epoch 15/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3012 - accuracy: 0.1122 - val_loss: 2.3017 - val_accuracy: 0.1070\n", | |
| "Epoch 16/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3008 - accuracy: 0.1158 - val_loss: 2.3017 - val_accuracy: 0.1070\n", | |
| "Epoch 17/40\n", | |
| "907/907 [==============================] - 614s 677ms/step - loss: 2.3014 - accuracy: 0.1110 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 18/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3012 - accuracy: 0.1131 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 19/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3010 - accuracy: 0.1133 - val_loss: 2.3019 - val_accuracy: 0.1070\n", | |
| "Epoch 20/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3012 - accuracy: 0.1114 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 21/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3016 - accuracy: 0.1097 - val_loss: 2.3019 - val_accuracy: 0.1070\n", | |
| "Epoch 22/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3012 - accuracy: 0.1131 - val_loss: 2.3017 - val_accuracy: 0.1070\n", | |
| "Epoch 23/40\n", | |
| "907/907 [==============================] - 614s 677ms/step - loss: 2.3014 - accuracy: 0.1127 - val_loss: 2.3017 - val_accuracy: 0.1070\n", | |
| "Epoch 24/40\n", | |
| "907/907 [==============================] - 614s 677ms/step - loss: 2.3007 - accuracy: 0.1131 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 25/40\n", | |
| "907/907 [==============================] - 614s 677ms/step - loss: 2.3011 - accuracy: 0.1149 - val_loss: 2.3017 - val_accuracy: 0.1070\n", | |
| "Epoch 26/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3013 - accuracy: 0.1119 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 27/40\n", | |
| "907/907 [==============================] - 614s 677ms/step - loss: 2.3010 - accuracy: 0.1126 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 28/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3012 - accuracy: 0.1135 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 29/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3013 - accuracy: 0.1113 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 30/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3010 - accuracy: 0.1147 - val_loss: 2.3019 - val_accuracy: 0.1070\n", | |
| "Epoch 31/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3012 - accuracy: 0.1135 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 32/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3013 - accuracy: 0.1116 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 33/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3009 - accuracy: 0.1141 - val_loss: 2.3017 - val_accuracy: 0.1070\n", | |
| "Epoch 34/40\n", | |
| "907/907 [==============================] - 614s 676ms/step - loss: 2.3011 - accuracy: 0.1135 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 35/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3014 - accuracy: 0.1120 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 36/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3012 - accuracy: 0.1132 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 37/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3019 - accuracy: 0.1087 - val_loss: 2.3019 - val_accuracy: 0.1070\n", | |
| "Epoch 38/40\n", | |
| "907/907 [==============================] - 614s 677ms/step - loss: 2.3012 - accuracy: 0.1134 - val_loss: 2.3018 - val_accuracy: 0.1070\n", | |
| "Epoch 39/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3008 - accuracy: 0.1121 - val_loss: 2.3019 - val_accuracy: 0.1070\n", | |
| "Epoch 40/40\n", | |
| "907/907 [==============================] - 613s 676ms/step - loss: 2.3011 - accuracy: 0.1147 - val_loss: 2.3017 - val_accuracy: 0.1070\n" | |
| ], | |
| "name": "stdout" | |
| } | |
| ] | |
| } | |
| ] | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment