Skip to content

Instantly share code, notes, and snippets.

@agrhn
Created January 20, 2021 10:30
Show Gist options
  • Select an option

  • Save agrhn/1ede265ebc8cd1260904d47692f74d39 to your computer and use it in GitHub Desktop.

Select an option

Save agrhn/1ede265ebc8cd1260904d47692f74d39 to your computer and use it in GitHub Desktop.
VGGNet_TensorFlow.ipynb
Display the source blob
Display the rendered blob
Raw
{
"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