From 7abd64120b221a1cb25c6b63065a0bc545a1de35 Mon Sep 17 00:00:00 2001 From: yhw991228 <yhw991228@ajou.ac.kr> Date: Sun, 26 Jun 2022 22:38:41 +0900 Subject: [PATCH] loss_function_custom --- .idea/.gitignore | 8 + .idea/misc.xml | 7 + .idea/modules.xml | 8 + .idea/opensource.iml | 8 + .idea/vcs.xml | 6 + loss_function copy.ipynb | 332 ++++++++++++++++++++++++++++++++++++++ loss_function.ipynb | 335 +++++++++++++++++---------------------- 7 files changed, 515 insertions(+), 189 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/opensource.iml create mode 100644 .idea/vcs.xml create mode 100644 loss_function copy.ipynb diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..7e26374 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.9 (base) (2)" project-jdk-type="Python SDK" /> + <component name="PyCharmDSProjectLayout"> + <option name="id" value="JupyterRightHiddenStructureLayout" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..32009a5 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/opensource.iml" filepath="$PROJECT_DIR$/.idea/opensource.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/.idea/opensource.iml b/.idea/opensource.iml new file mode 100644 index 0000000..d0876a7 --- /dev/null +++ b/.idea/opensource.iml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="PYTHON_MODULE" version="4"> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$" /> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + </component> +</module> \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/loss_function copy.ipynb b/loss_function copy.ipynb new file mode 100644 index 0000000..d637d68 --- /dev/null +++ b/loss_function copy.ipynb @@ -0,0 +1,332 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "import tensorflow as tf\n", + "import keras\n", + "from keras.models import Sequential\n", + "from keras.layers import Dense, Dropout, Flatten\n", + "from keras.layers.convolutional import Conv2D, MaxPooling2D\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n", + "11493376/11490434 [==============================] - 2s 0us/step\n", + "11501568/11490434 [==============================] - 2s 0us/step\n" + ] + } + ], + "source": [ + "(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "x_train shape: (60000, 28, 28, 1)\n", + "60000 train samples\n", + "10000 test samples\n" + ] + } + ], + "source": [ + "img_rows = 28\n", + "img_cols = 28\n", + "\n", + "x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1)\n", + "x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1)\n", + "\n", + "x_train = x_train.astype('float32') / 255.\n", + "x_test = x_test.astype('float32') / 255.\n", + "\n", + "print('x_train shape:', x_train.shape)\n", + "print(x_train.shape[0], 'train samples')\n", + "print(x_test.shape[0], 'test samples')\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def ccee(predict, label):\n", + " delta = 1e-7\n", + " log_pred = np.log(predict + delta)\n", + "\n", + " return -(np.sum(np.sum(label * log_pred, axis = 1)))/label.shape[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "ename": "AttributeError", + "evalue": "module 'keras.utils' has no attribute 'to_categorical'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m/Users/yongheewon/Documents/opensource/loss_function.ipynb Cell 4'\u001b[0m in \u001b[0;36m<cell line: 2>\u001b[0;34m()\u001b[0m\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000006?line=0'>1</a>\u001b[0m num_classes \u001b[39m=\u001b[39m \u001b[39m10\u001b[39m\n\u001b[0;32m----> <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000006?line=1'>2</a>\u001b[0m y_train \u001b[39m=\u001b[39m keras\u001b[39m.\u001b[39;49mutils\u001b[39m.\u001b[39;49mto_categorical(y_train, num_classes)\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000006?line=2'>3</a>\u001b[0m y_test \u001b[39m=\u001b[39m keras\u001b[39m.\u001b[39mutils\u001b[39m.\u001b[39mto_categorical(y_test, num_classes)\n", + "\u001b[0;31mAttributeError\u001b[0m: module 'keras.utils' has no attribute 'to_categorical'" + ] + } + ], + "source": [ + "num_classes = 10\n", + "y_train = keras.utils.to_categorical(y_train, num_classes)\n", + "y_test = keras.utils.to_categorical(y_test, num_classes)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'matplotlib'", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m/Users/yongheewon/Documents/opensource/loss_function.ipynb Cell 4'\u001b[0m in \u001b[0;36m<cell line: 2>\u001b[0;34m()\u001b[0m\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000003?line=0'>1</a>\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mrandom\u001b[39;00m\n\u001b[0;32m----> <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000003?line=1'>2</a>\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mmatplotlib\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpyplot\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mplt\u001b[39;00m\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000003?line=3'>4</a>\u001b[0m predicted_result \u001b[39m=\u001b[39m model\u001b[39m.\u001b[39mpredict(x_test)\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000003?line=4'>5</a>\u001b[0m predicted_labels \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39margmax(predicted_result, axis\u001b[39m=\u001b[39m\u001b[39m1\u001b[39m)\n", + "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'matplotlib'" + ] + } + ], + "source": [ + "import random\n", + "import matplotlib.pyplot as plt\n", + "\n", + "predicted_result = model.predict(x_test)\n", + "predicted_labels = np.argmax(predicted_result, axis=1)\n", + "\n", + "test_labels = np.argmax(y_test, axis=1)\n", + "\n", + "count = 0\n", + "\n", + "plt.figure(figsize=(12,8))\n", + "for n in range(16):\n", + " count += 1\n", + " plt.subplot(4, 4, count)\n", + " plt.imshow(x_test[n].reshape(28, 28), cmap='Greys', interpolation='nearest')\n", + " tmp = \"Label:\" + str(test_labels[n]) + \", Prediction:\" + str(predicted_labels[n])\n", + " plt.title(tmp)\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model: \"as3s6g-confscore-center\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " input_1 (InputLayer) [(None, 75, 3)] 0 \n", + " \n", + " c1 (Conv1D) (None, 75, 64) 1024 \n", + " \n", + " c2 (Conv1D) (None, 75, 64) 20544 \n", + " \n", + " conv1d (Conv1D) (None, 75, 64) 20544 \n", + " \n", + " c3 (Conv1D) (None, 75, 128) 41088 \n", + " \n", + " c4 (Conv1D) (None, 75, 128) 82048 \n", + " \n", + " c6 (Conv1D) (None, 75, 256) 164096 \n", + " \n", + " c7 (Conv1D) (None, 75, 256) 327936 \n", + " \n", + " c9 (Conv1D) (None, 75, 512) 655872 \n", + " \n", + " c10 (Conv1D) (None, 75, 512) 1311232 \n", + " \n", + " conv1d_1 (Conv1D) (None, 75, 256) 655616 \n", + " \n", + " conv1d_2 (Conv1D) (None, 75, 256) 65792 \n", + " \n", + " conv1d_3 (Conv1D) (None, 75, 128) 32896 \n", + " \n", + " conv1d_4 (Conv1D) (None, 75, 128) 16512 \n", + " \n", + " flatten (Flatten) (None, 9600) 0 \n", + " \n", + " fc3 (Dense) (None, 128) 1228928 \n", + " \n", + " dropout (Dropout) (None, 128) 0 \n", + " \n", + " fc4 (Dense) (None, 64) 8256 \n", + " \n", + " dropout_1 (Dropout) (None, 64) 0 \n", + " \n", + " dense (Dense) (None, 32) 2080 \n", + " \n", + " dropout_2 (Dropout) (None, 32) 0 \n", + " \n", + " dense_1 (Dense) (None, 16) 528 \n", + " \n", + " dropout_3 (Dropout) (None, 16) 0 \n", + " \n", + " fc5 (Dense) (None, 12) 204 \n", + " \n", + " reshape (Reshape) (None, 6, 2) 0 \n", + " \n", + "=================================================================\n", + "Total params: 4,635,196\n", + "Trainable params: 4,635,196\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n", + "Model: \"as3s6g-confscore-center\"\n", + "_________________________________________________________________\n", + " Layer (type) Output Shape Param # \n", + "=================================================================\n", + " input_1 (InputLayer) [(None, 75, 3)] 0 \n", + " \n", + " c1 (Conv1D) (None, 75, 64) 1024 \n", + " \n", + " c2 (Conv1D) (None, 75, 64) 20544 \n", + " \n", + " conv1d (Conv1D) (None, 75, 64) 20544 \n", + " \n", + " c3 (Conv1D) (None, 75, 128) 41088 \n", + " \n", + " c4 (Conv1D) (None, 75, 128) 82048 \n", + " \n", + " c6 (Conv1D) (None, 75, 256) 164096 \n", + " \n", + " c7 (Conv1D) (None, 75, 256) 327936 \n", + " \n", + " c9 (Conv1D) (None, 75, 512) 655872 \n", + " \n", + " c10 (Conv1D) (None, 75, 512) 1311232 \n", + " \n", + " conv1d_1 (Conv1D) (None, 75, 256) 655616 \n", + " \n", + " conv1d_2 (Conv1D) (None, 75, 256) 65792 \n", + " \n", + " conv1d_3 (Conv1D) (None, 75, 128) 32896 \n", + " \n", + " conv1d_4 (Conv1D) (None, 75, 128) 16512 \n", + " \n", + " flatten (Flatten) (None, 9600) 0 \n", + " \n", + " fc3 (Dense) (None, 128) 1228928 \n", + " \n", + " dropout (Dropout) (None, 128) 0 \n", + " \n", + " fc4 (Dense) (None, 64) 8256 \n", + " \n", + " dropout_1 (Dropout) (None, 64) 0 \n", + " \n", + " dense (Dense) (None, 32) 2080 \n", + " \n", + " dropout_2 (Dropout) (None, 32) 0 \n", + " \n", + " dense_1 (Dense) (None, 16) 528 \n", + " \n", + " dropout_3 (Dropout) (None, 16) 0 \n", + " \n", + " fc5 (Dense) (None, 12) 204 \n", + " \n", + " reshape (Reshape) (None, 6, 2) 0 \n", + " \n", + "=================================================================\n", + "Total params: 4,635,196\n", + "Trainable params: 4,635,196\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n" + ] + } + ], + "source": [ + "def create_model( img_rows,img_cols, num_classes):\n", + " inputs = tf.keras.Input(shape=(img_rows, img_cols, 1))\n", + " x = tf.keras.layers.Conv2D(32, kernel_size = (5,5), name='c1', padding='same',\n", + " activation='relu')(inputs)\n", + " x = tf.keras.layers.MaxPool2D(pool_size = (2,2),strides = (2,2))(x)\n", + " \n", + " x = tf.keras.layers.Conv2D(64, kernel_size = (2,2), name='c1', padding='same',\n", + " activation='relu')(x)\n", + " x = tf.keras.layers.MaxPool2D(pool_size = (2,2))(x)\n", + " \n", + " x = tf.keras.layers.Dropout(0.25)(x)\n", + " x = tf.keras.layers.Flatten(name='flatten')(x) \n", + " x = tf.keras.layers.Dense(1000, name='fc3', activation='leaky_relu')(x)\n", + " x = tf.keras.layers.Dropout(0.5)(x)\n", + " x = tf.keras.layers.Dense(num_classes, activation='softmax')(x)\n", + " model.summary()\n", + " return model\n", + "\n", + "\n", + "\n", + "model = create_model(img_cols, img_rows, num_classes)\n", + "model.summary()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "interpreter": { + "hash": "ba2ba9c7e88b3c3c34efc930d9feb99cd3d5cee985ed7c06ee80b594abe75eb7" + }, + "kernelspec": { + "display_name": "Python 3.8.13 ('foss')", + "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.8.13" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/loss_function.ipynb b/loss_function.ipynb index d637d68..58d9b54 100644 --- a/loss_function.ipynb +++ b/loss_function.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 3, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -12,31 +12,29 @@ "from keras.models import Sequential\n", "from keras.layers import Dense, Dropout, Flatten\n", "from keras.layers.convolutional import Conv2D, MaxPooling2D\n", + "from keras.utils import np_utils\n", "import numpy as np" ] }, + { + "cell_type": "markdown", + "source": [], + "metadata": { + "collapsed": false + } + }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/mnist.npz\n", - "11493376/11490434 [==============================] - 2s 0us/step\n", - "11501568/11490434 [==============================] - 2s 0us/step\n" - ] - } - ], + "outputs": [], "source": [ "(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()" ] }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -61,241 +59,200 @@ "\n", "print('x_train shape:', x_train.shape)\n", "print(x_train.shape[0], 'train samples')\n", - "print(x_test.shape[0], 'test samples')\n", - "\n" + "print(x_test.shape[0], 'test samples')\n" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ - "def ccee(predict, label):\n", + "def ccee(y_true, y_pred):\n", " delta = 1e-7\n", - " log_pred = np.log(predict + delta)\n", + " log_pred = tf.math.log(y_pred + delta)\n", "\n", - " return -(np.sum(np.sum(label * log_pred, axis = 1)))/label.shape[0]" + " return -(tf.reduce_sum(tf.reduce_sum(y_true * log_pred, axis = 1)))/y_true.shape[0]" ] }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 5, "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "module 'keras.utils' has no attribute 'to_categorical'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m/Users/yongheewon/Documents/opensource/loss_function.ipynb Cell 4'\u001b[0m in \u001b[0;36m<cell line: 2>\u001b[0;34m()\u001b[0m\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000006?line=0'>1</a>\u001b[0m num_classes \u001b[39m=\u001b[39m \u001b[39m10\u001b[39m\n\u001b[0;32m----> <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000006?line=1'>2</a>\u001b[0m y_train \u001b[39m=\u001b[39m keras\u001b[39m.\u001b[39;49mutils\u001b[39m.\u001b[39;49mto_categorical(y_train, num_classes)\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000006?line=2'>3</a>\u001b[0m y_test \u001b[39m=\u001b[39m keras\u001b[39m.\u001b[39mutils\u001b[39m.\u001b[39mto_categorical(y_test, num_classes)\n", - "\u001b[0;31mAttributeError\u001b[0m: module 'keras.utils' has no attribute 'to_categorical'" - ] - } - ], + "outputs": [], "source": [ "num_classes = 10\n", - "y_train = keras.utils.to_categorical(y_train, num_classes)\n", - "y_test = keras.utils.to_categorical(y_test, num_classes)" + "y_train = keras.utils.np_utils.to_categorical(y_train, num_classes)\n", + "y_test = keras.utils.np_utils.to_categorical(y_test, num_classes)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'matplotlib'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m/Users/yongheewon/Documents/opensource/loss_function.ipynb Cell 4'\u001b[0m in \u001b[0;36m<cell line: 2>\u001b[0;34m()\u001b[0m\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000003?line=0'>1</a>\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mrandom\u001b[39;00m\n\u001b[0;32m----> <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000003?line=1'>2</a>\u001b[0m \u001b[39mimport\u001b[39;00m \u001b[39mmatplotlib\u001b[39;00m\u001b[39m.\u001b[39;00m\u001b[39mpyplot\u001b[39;00m \u001b[39mas\u001b[39;00m \u001b[39mplt\u001b[39;00m\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000003?line=3'>4</a>\u001b[0m predicted_result \u001b[39m=\u001b[39m model\u001b[39m.\u001b[39mpredict(x_test)\n\u001b[1;32m <a href='vscode-notebook-cell:/Users/yongheewon/Documents/opensource/loss_function.ipynb#ch0000003?line=4'>5</a>\u001b[0m predicted_labels \u001b[39m=\u001b[39m np\u001b[39m.\u001b[39margmax(predicted_result, axis\u001b[39m=\u001b[39m\u001b[39m1\u001b[39m)\n", - "\u001b[0;31mModuleNotFoundError\u001b[0m: No module named 'matplotlib'" - ] - } - ], - "source": [ - "import random\n", - "import matplotlib.pyplot as plt\n", - "\n", - "predicted_result = model.predict(x_test)\n", - "predicted_labels = np.argmax(predicted_result, axis=1)\n", - "\n", - "test_labels = np.argmax(y_test, axis=1)\n", - "\n", - "count = 0\n", - "\n", - "plt.figure(figsize=(12,8))\n", - "for n in range(16):\n", - " count += 1\n", - " plt.subplot(4, 4, count)\n", - " plt.imshow(x_test[n].reshape(28, 28), cmap='Greys', interpolation='nearest')\n", - " tmp = \"Label:\" + str(test_labels[n]) + \", Prediction:\" + str(predicted_labels[n])\n", - " plt.title(tmp)\n", - "\n", - "plt.tight_layout()\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Model: \"as3s6g-confscore-center\"\n", + "28 28\n", + "Model: \"image_class\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", - " input_1 (InputLayer) [(None, 75, 3)] 0 \n", - " \n", - " c1 (Conv1D) (None, 75, 64) 1024 \n", - " \n", - " c2 (Conv1D) (None, 75, 64) 20544 \n", - " \n", - " conv1d (Conv1D) (None, 75, 64) 20544 \n", - " \n", - " c3 (Conv1D) (None, 75, 128) 41088 \n", - " \n", - " c4 (Conv1D) (None, 75, 128) 82048 \n", - " \n", - " c6 (Conv1D) (None, 75, 256) 164096 \n", - " \n", - " c7 (Conv1D) (None, 75, 256) 327936 \n", - " \n", - " c9 (Conv1D) (None, 75, 512) 655872 \n", - " \n", - " c10 (Conv1D) (None, 75, 512) 1311232 \n", - " \n", - " conv1d_1 (Conv1D) (None, 75, 256) 655616 \n", - " \n", - " conv1d_2 (Conv1D) (None, 75, 256) 65792 \n", - " \n", - " conv1d_3 (Conv1D) (None, 75, 128) 32896 \n", - " \n", - " conv1d_4 (Conv1D) (None, 75, 128) 16512 \n", - " \n", - " flatten (Flatten) (None, 9600) 0 \n", - " \n", - " fc3 (Dense) (None, 128) 1228928 \n", + " input_1 (InputLayer) [(None, 28, 28, 1)] 0 \n", " \n", - " dropout (Dropout) (None, 128) 0 \n", + " conv2d (Conv2D) (None, 28, 28, 32) 832 \n", " \n", - " fc4 (Dense) (None, 64) 8256 \n", + " max_pooling2d (MaxPooling2D (None, 14, 14, 32) 0 \n", + " ) \n", " \n", - " dropout_1 (Dropout) (None, 64) 0 \n", + " conv2d_1 (Conv2D) (None, 14, 14, 64) 8256 \n", " \n", - " dense (Dense) (None, 32) 2080 \n", + " max_pooling2d_1 (MaxPooling (None, 7, 7, 64) 0 \n", + " 2D) \n", " \n", - " dropout_2 (Dropout) (None, 32) 0 \n", + " dropout (Dropout) (None, 7, 7, 64) 0 \n", " \n", - " dense_1 (Dense) (None, 16) 528 \n", + " flatten (Flatten) (None, 3136) 0 \n", " \n", - " dropout_3 (Dropout) (None, 16) 0 \n", + " dense (Dense) (None, 1000) 3137000 \n", " \n", - " fc5 (Dense) (None, 12) 204 \n", + " dropout_1 (Dropout) (None, 1000) 0 \n", " \n", - " reshape (Reshape) (None, 6, 2) 0 \n", + " dense_1 (Dense) (None, 10) 10010 \n", " \n", "=================================================================\n", - "Total params: 4,635,196\n", - "Trainable params: 4,635,196\n", - "Non-trainable params: 0\n", - "_________________________________________________________________\n", - "Model: \"as3s6g-confscore-center\"\n", - "_________________________________________________________________\n", - " Layer (type) Output Shape Param # \n", - "=================================================================\n", - " input_1 (InputLayer) [(None, 75, 3)] 0 \n", - " \n", - " c1 (Conv1D) (None, 75, 64) 1024 \n", - " \n", - " c2 (Conv1D) (None, 75, 64) 20544 \n", - " \n", - " conv1d (Conv1D) (None, 75, 64) 20544 \n", - " \n", - " c3 (Conv1D) (None, 75, 128) 41088 \n", - " \n", - " c4 (Conv1D) (None, 75, 128) 82048 \n", - " \n", - " c6 (Conv1D) (None, 75, 256) 164096 \n", - " \n", - " c7 (Conv1D) (None, 75, 256) 327936 \n", - " \n", - " c9 (Conv1D) (None, 75, 512) 655872 \n", - " \n", - " c10 (Conv1D) (None, 75, 512) 1311232 \n", - " \n", - " conv1d_1 (Conv1D) (None, 75, 256) 655616 \n", - " \n", - " conv1d_2 (Conv1D) (None, 75, 256) 65792 \n", - " \n", - " conv1d_3 (Conv1D) (None, 75, 128) 32896 \n", - " \n", - " conv1d_4 (Conv1D) (None, 75, 128) 16512 \n", - " \n", - " flatten (Flatten) (None, 9600) 0 \n", - " \n", - " fc3 (Dense) (None, 128) 1228928 \n", - " \n", - " dropout (Dropout) (None, 128) 0 \n", - " \n", - " fc4 (Dense) (None, 64) 8256 \n", - " \n", - " dropout_1 (Dropout) (None, 64) 0 \n", - " \n", - " dense (Dense) (None, 32) 2080 \n", - " \n", - " dropout_2 (Dropout) (None, 32) 0 \n", - " \n", - " dense_1 (Dense) (None, 16) 528 \n", - " \n", - " dropout_3 (Dropout) (None, 16) 0 \n", - " \n", - " fc5 (Dense) (None, 12) 204 \n", - " \n", - " reshape (Reshape) (None, 6, 2) 0 \n", - " \n", - "=================================================================\n", - "Total params: 4,635,196\n", - "Trainable params: 4,635,196\n", + "Total params: 3,156,098\n", + "Trainable params: 3,156,098\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ - "def create_model( img_rows,img_cols, num_classes):\n", - " inputs = tf.keras.Input(shape=(img_rows, img_cols, 1))\n", - " x = tf.keras.layers.Conv2D(32, kernel_size = (5,5), name='c1', padding='same',\n", + "def create_model_( img_rows,img_cols, num_classes):\n", + " inputs = tf.keras.Input(shape=(28, 28, 1))\n", + " x = tf.keras.layers.Conv2D(32, kernel_size = (5,5), padding='same',\n", " activation='relu')(inputs)\n", " x = tf.keras.layers.MaxPool2D(pool_size = (2,2),strides = (2,2))(x)\n", " \n", - " x = tf.keras.layers.Conv2D(64, kernel_size = (2,2), name='c1', padding='same',\n", + " x = tf.keras.layers.Conv2D(64, kernel_size = (2,2),padding='same',\n", " activation='relu')(x)\n", " x = tf.keras.layers.MaxPool2D(pool_size = (2,2))(x)\n", " \n", " x = tf.keras.layers.Dropout(0.25)(x)\n", - " x = tf.keras.layers.Flatten(name='flatten')(x) \n", - " x = tf.keras.layers.Dense(1000, name='fc3', activation='leaky_relu')(x)\n", + " x = tf.keras.layers.Flatten()(x) \n", + " x = tf.keras.layers.Dense(1000, activation='leaky_relu')(x)\n", " x = tf.keras.layers.Dropout(0.5)(x)\n", - " x = tf.keras.layers.Dense(num_classes, activation='softmax')(x)\n", - " model.summary()\n", + " outputs = tf.keras.layers.Dense(num_classes, activation='softmax')(x)\n", + " \n", + " model = keras.Model(inputs, outputs, name='image_class')\n", " return model\n", "\n", "\n", - "\n", - "model = create_model(img_cols, img_rows, num_classes)\n", + "print(img_cols, img_rows)\n", + "model = create_model_(img_rows,img_cols, num_classes)\n", "model.summary()" ] }, + { + "cell_type": "code", + "execution_count": null, + "outputs": [], + "source": [], + "metadata": { + "collapsed": false, + "pycharm": { + "name": "#%%\n" + } + } + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Epoch 1/10\n", + " 1/6000 [..............................] - ETA: 17:42 - loss: 2.2814 - accuracy: 0.2000" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2022-06-26 11:32:02.208949: W tensorflow/core/platform/profile_utils/cpu_utils.cc:128] Failed to get CPU frequency: 0 Hz\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6000/6000 [==============================] - 96s 16ms/step - loss: 0.1236 - accuracy: 0.9616 - val_loss: 0.0493 - val_accuracy: 0.9853\n", + "Epoch 2/10\n", + "6000/6000 [==============================] - 150s 25ms/step - loss: 0.0680 - accuracy: 0.9796 - val_loss: 0.0501 - val_accuracy: 0.9845\n", + "Epoch 3/10\n", + "6000/6000 [==============================] - 186s 31ms/step - loss: 0.0557 - accuracy: 0.9835 - val_loss: 0.0439 - val_accuracy: 0.9856\n", + "Epoch 4/10\n", + "6000/6000 [==============================] - 206s 34ms/step - loss: 0.0517 - accuracy: 0.9848 - val_loss: 0.0337 - val_accuracy: 0.9890\n", + "Epoch 5/10\n", + "6000/6000 [==============================] - 180s 30ms/step - loss: 0.0480 - accuracy: 0.9861 - val_loss: 0.0295 - val_accuracy: 0.9912\n", + "Epoch 6/10\n", + "6000/6000 [==============================] - 159s 26ms/step - loss: 0.0436 - accuracy: 0.9869 - val_loss: 0.0415 - val_accuracy: 0.9880\n", + "Epoch 7/10\n", + "6000/6000 [==============================] - 162s 27ms/step - loss: 0.0492 - accuracy: 0.9863 - val_loss: 0.0433 - val_accuracy: 0.9876\n", + "Epoch 8/10\n", + "6000/6000 [==============================] - 139s 23ms/step - loss: 0.0454 - accuracy: 0.9875 - val_loss: 0.0372 - val_accuracy: 0.9901\n", + "Epoch 9/10\n", + "6000/6000 [==============================] - 138s 23ms/step - loss: 0.0424 - accuracy: 0.9883 - val_loss: 0.0314 - val_accuracy: 0.9905\n", + "Epoch 10/10\n", + "6000/6000 [==============================] - 133s 22ms/step - loss: 0.0421 - accuracy: 0.9885 - val_loss: 0.0401 - val_accuracy: 0.9893\n" + ] + } + ], + "source": [ + "model.compile( loss = ccee,optimizer='adam', metrics= ['accuracy'] )\n", + "hist = model.fit(x_train, y_train, batch_size=10, epochs= 10, verbose=1, validation_data=(x_test, y_test))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "<keras.callbacks.History at 0x16bb95e80>" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hist" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, @@ -329,4 +286,4 @@ }, "nbformat": 4, "nbformat_minor": 2 -} +} \ No newline at end of file -- GitLab