├── README.md └── DenseNet.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # Implementation of https://arxiv.org/pdf/1608.06993.pdf 2 | 3 | # Developed with Google colab 4 | -------------------------------------------------------------------------------- /DenseNet.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "name": "DenseNet.ipynb", 7 | "version": "0.3.2", 8 | "provenance": [], 9 | "collapsed_sections": [] 10 | }, 11 | "kernelspec": { 12 | "name": "python3", 13 | "display_name": "Python 3" 14 | }, 15 | "accelerator": "GPU" 16 | }, 17 | "cells": [ 18 | { 19 | "metadata": { 20 | "id": "Qieu9PBQJVPx", 21 | "colab_type": "code", 22 | "colab": {} 23 | }, 24 | "cell_type": "code", 25 | "source": [ 26 | "import tensorflow as tf\n", 27 | "from keras import backend as k\n", 28 | "\n", 29 | "# Don't pre-allocate memory; allocate as-needed\n", 30 | "config = tf.ConfigProto()\n", 31 | "config.gpu_options.allow_growth = True\n", 32 | "\n", 33 | "# Create a session with the above options specified.\n", 34 | "k.tensorflow_backend.set_session(tf.Session(config=config))" 35 | ], 36 | "execution_count": 0, 37 | "outputs": [] 38 | }, 39 | { 40 | "metadata": { 41 | "id": "YsRzd0Nkxi05", 42 | "colab_type": "code", 43 | "colab": { 44 | "base_uri": "https://localhost:8080/", 45 | "height": 67 46 | }, 47 | "outputId": "a36546b6-a552-439a-d612-da99bb86ac3a" 48 | }, 49 | "cell_type": "code", 50 | "source": [ 51 | "import keras\n", 52 | "from keras.datasets import cifar10\n", 53 | "k = 12\n", 54 | "L = 20\n", 55 | "batch_size = 128\n", 56 | "num_epochs = 50\n", 57 | "num_classes = 10\n", 58 | "from keras.layers import Input, Dense, BatchNormalization, Activation, AveragePooling2D, Conv2D, Input, Flatten, concatenate\n", 59 | "from keras.models import Model\n", 60 | "(x_train, y_train), (x_test, y_test) = cifar10.load_data()\n", 61 | "y_train = keras.utils.to_categorical(y_train, num_classes)\n", 62 | "y_test = keras.utils.to_categorical(y_test, num_classes)\n", 63 | "print('x_train shape:', x_train.shape)\n", 64 | "print(x_train.shape[0], 'train samples')\n", 65 | "print(x_test.shape[0], 'test samples')" 66 | ], 67 | "execution_count": 95, 68 | "outputs": [ 69 | { 70 | "output_type": "stream", 71 | "text": [ 72 | "x_train shape: (50000, 32, 32, 3)\n", 73 | "50000 train samples\n", 74 | "10000 test samples\n" 75 | ], 76 | "name": "stdout" 77 | } 78 | ] 79 | }, 80 | { 81 | "metadata": { 82 | "id": "b75crlu5yxW2", 83 | "colab_type": "code", 84 | "colab": {} 85 | }, 86 | "cell_type": "code", 87 | "source": [ 88 | "# Convert class vectors to binary class matrices.\n", 89 | "num_classes = 10\n", 90 | "y_train = keras.utils.to_categorical(y_train, num_classes)\n", 91 | "y_test = keras.utils.to_categorical(y_test, num_classes)\n" 92 | ], 93 | "execution_count": 0, 94 | "outputs": [] 95 | }, 96 | { 97 | "metadata": { 98 | "id": "DiNoin2L0bnG", 99 | "colab_type": "code", 100 | "colab": {} 101 | }, 102 | "cell_type": "code", 103 | "source": [ 104 | "# Dense Net Block\n", 105 | "def dense_net_model(inp):\n", 106 | " temp = inp\n", 107 | " for i in range(L):\n", 108 | " bnorm_out = BatchNormalization(axis=1)(temp)\n", 109 | " relu_out = Activation('relu')(bnorm_out)\n", 110 | " conv_out = Conv2D(k, (3, 3), padding='same')(relu_out)\n", 111 | " temp = concatenate([temp, conv_out], axis=-1)\n", 112 | " print(temp.shape) \n", 113 | " return temp\n", 114 | " " 115 | ], 116 | "execution_count": 0, 117 | "outputs": [] 118 | }, 119 | { 120 | "metadata": { 121 | "id": "EBqkkjfc5cLA", 122 | "colab_type": "code", 123 | "colab": {} 124 | }, 125 | "cell_type": "code", 126 | "source": [ 127 | "#Transition Block\n", 128 | "def transition_model(inp, channels):\n", 129 | " bnorm_out = BatchNormalization(axis=1)(inp)\n", 130 | " conv_out = Conv2D(channels, (1, 1), padding='same')(bnorm_out)\n", 131 | " avg_out = AveragePooling2D(pool_size=(2, 2))(conv_out)\n", 132 | " print(avg_out.shape) \n", 133 | " return avg_out" 134 | ], 135 | "execution_count": 0, 136 | "outputs": [] 137 | }, 138 | { 139 | "metadata": { 140 | "id": "RGkTK0dl-gvl", 141 | "colab_type": "code", 142 | "colab": {} 143 | }, 144 | "cell_type": "code", 145 | "source": [ 146 | "def create_full_model(inputShape):\n", 147 | " input_img = Input(shape=inputShape)\n", 148 | " start = Conv2D(16, (7, 7), padding='same')(input_img)\n", 149 | " print(start.shape)\n", 150 | " dense_out = dense_net_model(start)\n", 151 | " trans_out = transition_model(dense_out, 56)\n", 152 | " dense_out = dense_net_model(trans_out)\n", 153 | " trans_out = transition_model(dense_out, 28)\n", 154 | " dense_out = dense_net_model(trans_out)\n", 155 | " bnorm_out = BatchNormalization(axis=1)(dense_out)\n", 156 | " relu_out = Activation('relu')(bnorm_out)\n", 157 | " avg_out = AveragePooling2D(pool_size=(3, 3))(relu_out)\n", 158 | " flatten = Flatten()(avg_out)\n", 159 | " out = Dense(10, activation = 'softmax', name='fc')(flatten)\n", 160 | " return Model(input_img, out)" 161 | ], 162 | "execution_count": 0, 163 | "outputs": [] 164 | }, 165 | { 166 | "metadata": { 167 | "id": "3vuhcddwDYZ1", 168 | "colab_type": "code", 169 | "colab": { 170 | "base_uri": "https://localhost:8080/", 171 | "height": 2937 172 | }, 173 | "outputId": "760a9f5c-fe6d-43dd-e937-9959bafbf1aa" 174 | }, 175 | "cell_type": "code", 176 | "source": [ 177 | "from keras.optimizers import SGD\n", 178 | "model = create_full_model(x_train[0].shape)\n", 179 | "sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)\n", 180 | "model.compile(loss='categorical_crossentropy',\n", 181 | " optimizer=sgd,\n", 182 | " metrics=['accuracy'])\n", 183 | "model.fit(x_train, y_train,\n", 184 | " batch_size=batch_size,\n", 185 | " epochs=num_epochs,\n", 186 | " validation_data=(x_test, y_test),\n", 187 | " shuffle=True)" 188 | ], 189 | "execution_count": 96, 190 | "outputs": [ 191 | { 192 | "output_type": "stream", 193 | "text": [ 194 | "(?, 32, 32, 16)\n", 195 | "(?, 32, 32, 256)\n", 196 | "(?, 16, 16, 56)\n", 197 | "(?, 16, 16, 296)\n", 198 | "(?, 8, 8, 28)\n", 199 | "(?, 8, 8, 268)\n", 200 | "fs (?, ?)\n", 201 | "os (?, 10)\n", 202 | "Train on 50000 samples, validate on 10000 samples\n", 203 | "Epoch 1/50\n", 204 | "50000/50000 [==============================] - 534s 11ms/step - loss: 1.8258 - acc: 0.3350 - val_loss: 1.4841 - val_acc: 0.4736\n", 205 | "Epoch 2/50\n", 206 | "50000/50000 [==============================] - 494s 10ms/step - loss: 1.3654 - acc: 0.5077 - val_loss: 1.2462 - val_acc: 0.5551\n", 207 | "Epoch 3/50\n", 208 | "50000/50000 [==============================] - 494s 10ms/step - loss: 1.1779 - acc: 0.5793 - val_loss: 1.1430 - val_acc: 0.5910\n", 209 | "Epoch 4/50\n", 210 | "50000/50000 [==============================] - 493s 10ms/step - loss: 1.0357 - acc: 0.6339 - val_loss: 1.0200 - val_acc: 0.6352\n", 211 | "Epoch 5/50\n", 212 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.9213 - acc: 0.6761 - val_loss: 0.9187 - val_acc: 0.6755\n", 213 | "Epoch 6/50\n", 214 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.8230 - acc: 0.7115 - val_loss: 0.9515 - val_acc: 0.6697\n", 215 | "Epoch 7/50\n", 216 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.7478 - acc: 0.7358 - val_loss: 0.9177 - val_acc: 0.6886\n", 217 | "Epoch 8/50\n", 218 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.6848 - acc: 0.7609 - val_loss: 0.8290 - val_acc: 0.7224\n", 219 | "Epoch 9/50\n", 220 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.6284 - acc: 0.7823 - val_loss: 0.8103 - val_acc: 0.7225\n", 221 | "Epoch 10/50\n", 222 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.5711 - acc: 0.8008 - val_loss: 0.8859 - val_acc: 0.7109\n", 223 | "Epoch 11/50\n", 224 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.5248 - acc: 0.8152 - val_loss: 0.8396 - val_acc: 0.7234\n", 225 | "Epoch 12/50\n", 226 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.4778 - acc: 0.8313 - val_loss: 0.8369 - val_acc: 0.7251\n", 227 | "Epoch 13/50\n", 228 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.4366 - acc: 0.8456 - val_loss: 0.8131 - val_acc: 0.7345\n", 229 | "Epoch 14/50\n", 230 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.3967 - acc: 0.8607 - val_loss: 0.8285 - val_acc: 0.7455\n", 231 | "Epoch 15/50\n", 232 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.3581 - acc: 0.8744 - val_loss: 0.8156 - val_acc: 0.7501\n", 233 | "Epoch 16/50\n", 234 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.3147 - acc: 0.8904 - val_loss: 0.8392 - val_acc: 0.7496\n", 235 | "Epoch 17/50\n", 236 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.2842 - acc: 0.8998 - val_loss: 0.8866 - val_acc: 0.7477\n", 237 | "Epoch 18/50\n", 238 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.2451 - acc: 0.9128 - val_loss: 0.8821 - val_acc: 0.7426\n", 239 | "Epoch 19/50\n", 240 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.2128 - acc: 0.9258 - val_loss: 0.8895 - val_acc: 0.7564\n", 241 | "Epoch 20/50\n", 242 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.1849 - acc: 0.9361 - val_loss: 0.9521 - val_acc: 0.7521\n", 243 | "Epoch 21/50\n", 244 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.1538 - acc: 0.9471 - val_loss: 0.9730 - val_acc: 0.7510\n", 245 | "Epoch 22/50\n", 246 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.1441 - acc: 0.9495 - val_loss: 1.0822 - val_acc: 0.7420\n", 247 | "Epoch 23/50\n", 248 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.1213 - acc: 0.9578 - val_loss: 1.1271 - val_acc: 0.7430\n", 249 | "Epoch 24/50\n", 250 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.1026 - acc: 0.9652 - val_loss: 1.0972 - val_acc: 0.7520\n", 251 | "Epoch 25/50\n", 252 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.0946 - acc: 0.9669 - val_loss: 1.1373 - val_acc: 0.7539\n", 253 | "Epoch 26/50\n", 254 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.0835 - acc: 0.9718 - val_loss: 1.0965 - val_acc: 0.7560\n", 255 | "Epoch 27/50\n", 256 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.0605 - acc: 0.9800 - val_loss: 1.1833 - val_acc: 0.7579\n", 257 | "Epoch 28/50\n", 258 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.0683 - acc: 0.9767 - val_loss: 1.3123 - val_acc: 0.7376\n", 259 | "Epoch 29/50\n", 260 | "50000/50000 [==============================] - 493s 10ms/step - loss: 0.0693 - acc: 0.9756 - val_loss: 1.2658 - val_acc: 0.7487\n", 261 | "Epoch 30/50\n", 262 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.0552 - acc: 0.9817 - val_loss: 1.2539 - val_acc: 0.7472\n", 263 | "Epoch 31/50\n", 264 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.0441 - acc: 0.9853 - val_loss: 1.3005 - val_acc: 0.7509\n", 265 | "Epoch 32/50\n", 266 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.0392 - acc: 0.9875 - val_loss: 1.2820 - val_acc: 0.7600\n", 267 | "Epoch 33/50\n", 268 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.0210 - acc: 0.9938 - val_loss: 1.3471 - val_acc: 0.7620\n", 269 | "Epoch 34/50\n", 270 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.0187 - acc: 0.9949 - val_loss: 1.3379 - val_acc: 0.7691\n", 271 | "Epoch 35/50\n", 272 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.0163 - acc: 0.9955 - val_loss: 1.3154 - val_acc: 0.7649\n", 273 | "Epoch 36/50\n", 274 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.0113 - acc: 0.9972 - val_loss: 1.3404 - val_acc: 0.7697\n", 275 | "Epoch 37/50\n", 276 | "50000/50000 [==============================] - 494s 10ms/step - loss: 0.0022 - acc: 0.9999 - val_loss: 1.3518 - val_acc: 0.7760\n", 277 | "Epoch 38/50\n", 278 | "50000/50000 [==============================] - 494s 10ms/step - loss: 7.0079e-04 - acc: 1.0000 - val_loss: 1.3706 - val_acc: 0.7754\n", 279 | "Epoch 39/50\n", 280 | "50000/50000 [==============================] - 493s 10ms/step - loss: 4.6181e-04 - acc: 1.0000 - val_loss: 1.3842 - val_acc: 0.7754\n", 281 | "Epoch 40/50\n", 282 | "50000/50000 [==============================] - 493s 10ms/step - loss: 3.8050e-04 - acc: 1.0000 - val_loss: 1.3983 - val_acc: 0.7756\n", 283 | "Epoch 41/50\n", 284 | "50000/50000 [==============================] - 492s 10ms/step - loss: 3.2804e-04 - acc: 1.0000 - val_loss: 1.4062 - val_acc: 0.7753\n", 285 | "Epoch 42/50\n", 286 | "50000/50000 [==============================] - 492s 10ms/step - loss: 2.9843e-04 - acc: 1.0000 - val_loss: 1.4181 - val_acc: 0.7760\n", 287 | "Epoch 43/50\n", 288 | "50000/50000 [==============================] - 492s 10ms/step - loss: 2.7309e-04 - acc: 1.0000 - val_loss: 1.4227 - val_acc: 0.7753\n", 289 | "Epoch 44/50\n", 290 | "50000/50000 [==============================] - 493s 10ms/step - loss: 2.5052e-04 - acc: 1.0000 - val_loss: 1.4321 - val_acc: 0.7770\n", 291 | "Epoch 45/50\n", 292 | "35328/50000 [====================>.........] - ETA: 2:11 - loss: 2.3107e-04 - acc: 1.0000" 293 | ], 294 | "name": "stdout" 295 | }, 296 | { 297 | "output_type": "error", 298 | "ename": "KeyboardInterrupt", 299 | "evalue": "ignored", 300 | "traceback": [ 301 | "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", 302 | "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", 303 | "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 9\u001b[0m \u001b[0mepochs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnum_epochs\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0mvalidation_data\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_test\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_test\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m shuffle=True)\n\u001b[0m", 304 | "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/keras/engine/training.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, x, y, batch_size, epochs, verbose, callbacks, validation_split, validation_data, shuffle, class_weight, sample_weight, initial_epoch, steps_per_epoch, validation_steps, **kwargs)\u001b[0m\n\u001b[1;32m 1703\u001b[0m \u001b[0minitial_epoch\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0minitial_epoch\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1704\u001b[0m \u001b[0msteps_per_epoch\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0msteps_per_epoch\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1705\u001b[0;31m validation_steps=validation_steps)\n\u001b[0m\u001b[1;32m 1706\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1707\u001b[0m def evaluate(self, x=None, y=None,\n", 305 | "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/keras/engine/training.py\u001b[0m in \u001b[0;36m_fit_loop\u001b[0;34m(self, f, ins, out_labels, batch_size, epochs, verbose, callbacks, val_f, val_ins, shuffle, callback_metrics, initial_epoch, steps_per_epoch, validation_steps)\u001b[0m\n\u001b[1;32m 1234\u001b[0m \u001b[0mins_batch\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mins_batch\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mi\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtoarray\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1235\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1236\u001b[0;31m \u001b[0mouts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mins_batch\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1237\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mouts\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1238\u001b[0m \u001b[0mouts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mouts\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 306 | "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m 2480\u001b[0m \u001b[0msession\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_session\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2481\u001b[0m updated = session.run(fetches=fetches, feed_dict=feed_dict,\n\u001b[0;32m-> 2482\u001b[0;31m **self.session_kwargs)\n\u001b[0m\u001b[1;32m 2483\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mupdated\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moutputs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2484\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", 307 | "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(self, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 875\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 876\u001b[0m result = self._run(None, fetches, feed_dict, options_ptr,\n\u001b[0;32m--> 877\u001b[0;31m run_metadata_ptr)\n\u001b[0m\u001b[1;32m 878\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mrun_metadata\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 879\u001b[0m \u001b[0mproto_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf_session\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mTF_GetBuffer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrun_metadata_ptr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 308 | "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_run\u001b[0;34m(self, handle, fetches, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 1098\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfinal_fetches\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mfinal_targets\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mhandle\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mfeed_dict_tensor\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1099\u001b[0m results = self._do_run(handle, final_targets, final_fetches,\n\u001b[0;32m-> 1100\u001b[0;31m feed_dict_tensor, options, run_metadata)\n\u001b[0m\u001b[1;32m 1101\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1102\u001b[0m \u001b[0mresults\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 309 | "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_run\u001b[0;34m(self, handle, target_list, fetch_list, feed_dict, options, run_metadata)\u001b[0m\n\u001b[1;32m 1270\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mhandle\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1271\u001b[0m return self._do_call(_run_fn, feeds, fetches, targets, options,\n\u001b[0;32m-> 1272\u001b[0;31m run_metadata)\n\u001b[0m\u001b[1;32m 1273\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1274\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_do_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_prun_fn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhandle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeeds\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetches\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 310 | "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_do_call\u001b[0;34m(self, fn, *args)\u001b[0m\n\u001b[1;32m 1276\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_do_call\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1277\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1278\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1279\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mOpError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1280\u001b[0m \u001b[0mmessage\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcompat\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_text\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmessage\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 311 | "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_run_fn\u001b[0;34m(feed_dict, fetch_list, target_list, options, run_metadata)\u001b[0m\n\u001b[1;32m 1261\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_extend_graph\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1262\u001b[0m return self._call_tf_sessionrun(\n\u001b[0;32m-> 1263\u001b[0;31m options, feed_dict, fetch_list, target_list, run_metadata)\n\u001b[0m\u001b[1;32m 1264\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1265\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_prun_fn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhandle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 312 | "\u001b[0;32m/usr/local/lib/python3.6/dist-packages/tensorflow/python/client/session.py\u001b[0m in \u001b[0;36m_call_tf_sessionrun\u001b[0;34m(self, options, feed_dict, fetch_list, target_list, run_metadata)\u001b[0m\n\u001b[1;32m 1348\u001b[0m return tf_session.TF_SessionRun_wrapper(\n\u001b[1;32m 1349\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_session\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0moptions\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtarget_list\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1350\u001b[0;31m run_metadata)\n\u001b[0m\u001b[1;32m 1351\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1352\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_call_tf_sessionprun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhandle\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfeed_dict\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfetch_list\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", 313 | "\u001b[0;31mKeyboardInterrupt\u001b[0m: " 314 | ] 315 | } 316 | ] 317 | }, 318 | { 319 | "metadata": { 320 | "id": "6m1kK_fDpXZS", 321 | "colab_type": "code", 322 | "colab": { 323 | "base_uri": "https://localhost:8080/", 324 | "height": 34 325 | }, 326 | "outputId": "02b8df95-f9e3-4120-c331-5e60ebc3c4c1" 327 | }, 328 | "cell_type": "code", 329 | "source": [ 330 | "!ls" 331 | ], 332 | "execution_count": 105, 333 | "outputs": [ 334 | { 335 | "output_type": "stream", 336 | "text": [ 337 | "datalab sample_data\r\n" 338 | ], 339 | "name": "stdout" 340 | } 341 | ] 342 | } 343 | ] 344 | } --------------------------------------------------------------------------------