| { | |
| "nbformat": 4, | |
| "nbformat_minor": 0, | |
| "metadata": { | |
| "colab": { | |
| "provenance": [] | |
| }, | |
| "kernelspec": { | |
| "name": "python3", | |
| "display_name": "Python 3" | |
| }, | |
| "language_info": { | |
| "name": "python" | |
| } | |
| }, | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "execution_count": 1, | |
| "metadata": { | |
| "id": "kLutYXp-ecSf", | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "outputId": "dd3f2061-b234-4c54-9a85-91ac3fadf6e5" | |
| }, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n", | |
| "11490434/11490434 [==============================] - 1s 0us/step\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "import numpy as np\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "from tensorflow.keras.datasets import mnist\n", | |
| "from tensorflow import keras\n", | |
| "import keras.backend as K\n", | |
| "from tensorflow.keras.layers import Dense, Flatten, Reshape, Input, Lambda, BatchNormalization, Dropout\n", | |
| "\n", | |
| "(x_train, y_train), (x_test, y_test) = mnist.load_data()\n", | |
| "\n", | |
| "x_train = x_train / 255\n", | |
| "x_test = x_test/ 255\n", | |
| "\n", | |
| "y_train = y_train % 2\n", | |
| "y_train = keras.utils.to_categorical(y_train, 10)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "input_img = Input((28, 28))\n", | |
| "x = Flatten()(input_img)\n", | |
| "x = Dense(128, activation = 'relu')(x)\n", | |
| "x = Dense(256, activation = 'relu')(x)\n", | |
| "x = Dense(64, activation = 'relu')(x)\n", | |
| "classif = Dense(10, activation = 'softmax')(x)" | |
| ], | |
| "metadata": { | |
| "id": "Ffd2RsvUedfQ" | |
| }, | |
| "execution_count": 2, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "model = keras.Model(input_img, classif)" | |
| ], | |
| "metadata": { | |
| "id": "5aVLXHYNe5R_" | |
| }, | |
| "execution_count": 3, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "model.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])" | |
| ], | |
| "metadata": { | |
| "id": "tG0HHttBVuxs" | |
| }, | |
| "execution_count": 4, | |
| "outputs": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "model.fit(x_train, y_train, epochs = 10, batch_size = 30, shuffle = True)" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "L6tEkyZdWIZy", | |
| "outputId": "ab46112c-85ee-4d43-eeb3-4657296ef823" | |
| }, | |
| "execution_count": 5, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "Epoch 1/10\n", | |
| "2000/2000 [==============================] - 12s 5ms/step - loss: 0.1117 - accuracy: 0.9597\n", | |
| "Epoch 2/10\n", | |
| "2000/2000 [==============================] - 11s 5ms/step - loss: 0.0523 - accuracy: 0.9825\n", | |
| "Epoch 3/10\n", | |
| "2000/2000 [==============================] - 10s 5ms/step - loss: 0.0389 - accuracy: 0.9862\n", | |
| "Epoch 4/10\n", | |
| "2000/2000 [==============================] - 9s 5ms/step - loss: 0.0304 - accuracy: 0.9895\n", | |
| "Epoch 5/10\n", | |
| "2000/2000 [==============================] - 10s 5ms/step - loss: 0.0250 - accuracy: 0.9915\n", | |
| "Epoch 6/10\n", | |
| "2000/2000 [==============================] - 10s 5ms/step - loss: 0.0203 - accuracy: 0.9929\n", | |
| "Epoch 7/10\n", | |
| "2000/2000 [==============================] - 9s 4ms/step - loss: 0.0162 - accuracy: 0.9945\n", | |
| "Epoch 8/10\n", | |
| "2000/2000 [==============================] - 11s 5ms/step - loss: 0.0148 - accuracy: 0.9947\n", | |
| "Epoch 9/10\n", | |
| "2000/2000 [==============================] - 11s 5ms/step - loss: 0.0117 - accuracy: 0.9961\n", | |
| "Epoch 10/10\n", | |
| "2000/2000 [==============================] - 9s 4ms/step - loss: 0.0114 - accuracy: 0.9960\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": [ | |
| "<keras.callbacks.History at 0x7fb0108d3a90>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "execution_count": 5 | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "tf.keras.utils.plot_model(model, show_shapes= True, show_layer_names= True, show_layer_activations= True)\n" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 518 | |
| }, | |
| "id": "WGei66Vbdtzk", | |
| "outputId": "1d66ceeb-7a58-489a-ec83-6a46a3b507fa" | |
| }, | |
| "execution_count": 7, | |
| "outputs": [ | |
| { | |
| "output_type": "error", | |
| "ename": "NameError", | |
| "evalue": "ignored", | |
| "traceback": [ | |
| "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
| "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", | |
| "\u001b[0;32m<ipython-input-7-668ba8cae1eb>\u001b[0m in \u001b[0;36m<cell line: 1>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mkeras\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mutils\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot_model\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshow_shapes\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshow_layer_names\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mshow_layer_activations\u001b[0m\u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", | |
| "\u001b[0;31mNameError\u001b[0m: name 'tf' is not defined" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "model.save('drive/MyDrive/my_model')" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "YkhzAnVeePCm", | |
| "outputId": "88492cf4-5d9d-4a4e-ca91-690740e40961" | |
| }, | |
| "execution_count": 8, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stderr", | |
| "text": [ | |
| "WARNING:absl:Found untraced functions such as _update_step_xla while saving (showing 1 of 1). These functions will not be directly callable after loading.\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "model.summary()" | |
| ], | |
| "metadata": { | |
| "id": "H4_sMVCpvNUG" | |
| }, | |
| "execution_count": null, | |
| "outputs": [] | |
| } | |
| ] | |
| } |