Skip to content

Instantly share code, notes, and snippets.

@ingbeeedd
Created March 23, 2021 15:10
Show Gist options
  • Save ingbeeedd/a25e725d7303250ebbf7f93f97b8718b to your computer and use it in GitHub Desktop.
Save ingbeeedd/a25e725d7303250ebbf7f93f97b8718b to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "municipal-jamaica",
"metadata": {},
"outputs": [],
"source": [
"from keras import models, layers\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "referenced-explosion",
"metadata": {},
"outputs": [],
"source": [
"def ANN_seq_func(Nin, Nh, Nout):\n",
" model = models.Sequential()\n",
" model.add(layers.Dense(Nh, activation='relu', input_shape=(Nin, )))\n",
" model.add(layers.Dense(Nout, activation='softmax'))\n",
" model.compile(loss='categorical_crossentropy',\n",
" optimizer='adam',\n",
" metrics=['accuracy'])\n",
" return model"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "altered-format",
"metadata": {},
"outputs": [],
"source": [
"from keras import datasets\n",
"from keras.utils import np_utils"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "prompt-setting",
"metadata": {},
"outputs": [],
"source": [
"def Data_func():\n",
" (x_train, y_train), (x_test, y_test) = datasets.mnist.load_data()\n",
" \n",
" y_train = np_utils.to_categorical(y_train)\n",
" y_test = np_utils.to_categorical(y_test)\n",
" \n",
" n, h, w = x_train.shape\n",
" x_train = x_train.reshape(-1, h * w)\n",
" x_test = x_test.reshape(-1, h * w)\n",
" \n",
" x_train = x_train / 255.0\n",
" x_test = x_test / 255.0\n",
" \n",
" return (x_train, y_train), (x_test, y_test)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "compliant-playlist",
"metadata": {},
"outputs": [],
"source": [
"def plot_loss(history):\n",
" plt.plot(history.history['loss'])\n",
" plt.plot(history.history['val_loss'])\n",
" plt.title('model loss')\n",
" plt.xlabel('epoch')\n",
" plt.ylabel('loss')\n",
" plt.legend(['train', 'validation'], loc=0) # loc 범례의 위치 지정 "
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "frozen-sight",
"metadata": {},
"outputs": [],
"source": [
"def plot_acc(history):\n",
" plt.plot(history.history['accuracy'])\n",
" plt.plot(history.history['val_accuracy'])\n",
" plt.title('model acc')\n",
" plt.xlabel('epoch')\n",
" plt.ylabel('acc')\n",
" plt.legend(['train', 'test'], loc=0) # loc 범례의 위치 지정 "
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "proved-interface",
"metadata": {},
"outputs": [],
"source": [
"def main():\n",
" Nin = 784\n",
" Nh = 100\n",
" number_of_class = 10\n",
" Nout = number_of_class\n",
" \n",
" model = ANN_seq_func(Nin, Nh, Nout)\n",
" (x_train, y_train), (x_test, y_test) = Data_func()\n",
" \n",
" history = model.fit(x_train, y_train, epochs = 20, batch_size = 100, validation_split = 0.2)\n",
" performance_test = model.evaluate(x_test, y_test, batch_size = 100)\n",
" \n",
" print('Test Loss and Acc: ', performance_test)\n",
" \n",
" plot_loss(history)\n",
" plt.show()\n",
" plot_acc(history)\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "local-sheep",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch 1/20\n",
"480/480 [==============================] - 3s 4ms/step - loss: 0.6571 - accuracy: 0.8170 - val_loss: 0.2217 - val_accuracy: 0.9369\n",
"Epoch 2/20\n",
"480/480 [==============================] - 2s 4ms/step - loss: 0.2016 - accuracy: 0.9434 - val_loss: 0.1585 - val_accuracy: 0.9551\n",
"Epoch 3/20\n",
"480/480 [==============================] - 1s 3ms/step - loss: 0.1416 - accuracy: 0.9599 - val_loss: 0.1313 - val_accuracy: 0.9630\n",
"Epoch 4/20\n",
"480/480 [==============================] - 1s 3ms/step - loss: 0.1114 - accuracy: 0.9676 - val_loss: 0.1147 - val_accuracy: 0.9662\n",
"Epoch 5/20\n",
"480/480 [==============================] - 2s 4ms/step - loss: 0.0894 - accuracy: 0.9746 - val_loss: 0.1070 - val_accuracy: 0.9679\n",
"Epoch 6/20\n",
"480/480 [==============================] - 2s 3ms/step - loss: 0.0734 - accuracy: 0.9786 - val_loss: 0.1046 - val_accuracy: 0.9677\n",
"Epoch 7/20\n",
"480/480 [==============================] - 1s 2ms/step - loss: 0.0618 - accuracy: 0.9836 - val_loss: 0.0973 - val_accuracy: 0.9706\n",
"Epoch 8/20\n",
"480/480 [==============================] - 1s 3ms/step - loss: 0.0513 - accuracy: 0.9864 - val_loss: 0.0911 - val_accuracy: 0.9730\n",
"Epoch 9/20\n",
"480/480 [==============================] - 2s 3ms/step - loss: 0.0419 - accuracy: 0.9876 - val_loss: 0.0893 - val_accuracy: 0.9729\n",
"Epoch 10/20\n",
"480/480 [==============================] - 2s 3ms/step - loss: 0.0362 - accuracy: 0.9909 - val_loss: 0.0924 - val_accuracy: 0.9725\n",
"Epoch 11/20\n",
"480/480 [==============================] - 2s 3ms/step - loss: 0.0308 - accuracy: 0.9922 - val_loss: 0.0864 - val_accuracy: 0.9751\n",
"Epoch 12/20\n",
"480/480 [==============================] - 1s 2ms/step - loss: 0.0253 - accuracy: 0.9941 - val_loss: 0.0897 - val_accuracy: 0.9743\n",
"Epoch 13/20\n",
"480/480 [==============================] - 2s 3ms/step - loss: 0.0231 - accuracy: 0.9942 - val_loss: 0.0876 - val_accuracy: 0.9750\n",
"Epoch 14/20\n",
"480/480 [==============================] - 1s 3ms/step - loss: 0.0205 - accuracy: 0.9952 - val_loss: 0.0897 - val_accuracy: 0.9749\n",
"Epoch 15/20\n",
"480/480 [==============================] - 2s 3ms/step - loss: 0.0176 - accuracy: 0.9962 - val_loss: 0.0884 - val_accuracy: 0.9751\n",
"Epoch 16/20\n",
"480/480 [==============================] - 2s 4ms/step - loss: 0.0155 - accuracy: 0.9965 - val_loss: 0.0950 - val_accuracy: 0.9735\n",
"Epoch 17/20\n",
"480/480 [==============================] - 2s 4ms/step - loss: 0.0125 - accuracy: 0.9977 - val_loss: 0.0952 - val_accuracy: 0.9743\n",
"Epoch 18/20\n",
"480/480 [==============================] - 2s 3ms/step - loss: 0.0105 - accuracy: 0.9984 - val_loss: 0.0902 - val_accuracy: 0.9753\n",
"Epoch 19/20\n",
"480/480 [==============================] - 2s 4ms/step - loss: 0.0086 - accuracy: 0.9990 - val_loss: 0.0967 - val_accuracy: 0.9743\n",
"Epoch 20/20\n",
"480/480 [==============================] - 2s 4ms/step - loss: 0.0102 - accuracy: 0.9980 - val_loss: 0.0941 - val_accuracy: 0.9749\n",
"100/100 [==============================] - 0s 2ms/step - loss: 0.0865 - accuracy: 0.9783\n",
"Test Loss and Acc: [0.08646100759506226, 0.9782999753952026]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"if __name__ == '__main__':\n",
" main()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "strange-chamber",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.7.9"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment