diff --git a/test.ipynb b/test.ipynb
deleted file mode 100644
index 94c9c0a..0000000
--- a/test.ipynb
+++ /dev/null
@@ -1,874 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# 첫 번째 신경망 훈련하기: 기초적인 분류 문제\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 25,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "2.3.0\n"
- ]
- }
- ],
- "source": [
- "from __future__ import absolute_import, division, print_function, unicode_literals, unicode_literals\n",
- "\n",
- "# tensorflow와 tf.keras를 임포트합니다\n",
- "import tensorflow as tf\n",
- "from tensorflow import keras\n",
- "\n",
- "# 헬퍼(helper) 라이브러리를 임포트합니다\n",
- "import numpy as np\n",
- "import matplotlib.pyplot as plt\n",
- "\n",
- "print(tf.__version__)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## 패션 MNIST 데이터셋 임포트하기\n",
- "\n",
- "10개의 범주(category)와 70,000개의 흑백 이미지로 구성된 패션 MNIST 데이터셋을 사용하겠습니다. 이미지는 해상도(28x28 픽셀)가 낮고 다음처럼 개별 옷 품목을 나타냅니다:\n",
- "\n",
- "Fashion MNIST sprite\n",
- "그림 1. 패션-MNIST 샘플 (Zalando, MIT License).\n",
- "\n",
- "
\n",
- " \n",
- "패션 MNIST는 컴퓨터 비전 분야의 \"Hello, World\" 프로그램격인 고전 MNIST 데이터셋을 대신해서 자주 사용됩니다. MNIST 데이터셋은 손글씨 숫자(0, 1, 2 등)의 이미지로 이루어져 있습니다. 여기서 사용하려는 옷 이미지와 동일한 포맷입니다.\n",
- "\n",
- "패션 MNIST는 일반적인 MNIST 보다 조금 더 어려운 문제이고 다양한 예제를 만들기 위해 선택했습니다. 두 데이터셋은 비교적 작기 때문에 알고리즘의 작동 여부를 확인하기 위해 사용되곤 합니다. 코드를 테스트하고 디버깅하는 용도로 좋습니다.\n",
- "\n",
- "네트워크를 훈련하는데 60,000개의 이미지를 사용합니다. 그다음 네트워크가 얼마나 정확하게 이미지를 분류하는지 10,000개의 이미지로 평가하겠습니다. 패션 MNIST 데이터셋은 텐서플로에서 바로 임포트하여 적재할 수 있습니다:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 26,
- "metadata": {},
- "outputs": [],
- "source": [
- "fashion_mnist = keras.datasets.fashion_mnist\n",
- "(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "load_data() 함수를 호출하면 네 개의 넘파이(NumPy) 배열이 반환됩니다:\n",
- "\n",
- "train_images와 train_labels 배열은 모델 학습에 사용되는 훈련 세트입니다.\n",
- "test_images와 test_labels 배열은 모델 테스트에 사용되는 테스트 세트입니다.\n",
- "이미지는 28x28 크기의 넘파이 배열이고 픽셀 값은 0과 255 사이입니다. 레이블(label)은 0에서 9까지의 정수 배열입니다. \n",
- "이 값은 이미지에 있는 옷의 클래스(class)를 나타냅니다:\n",
- "\n",
- "|레이블|클래스|\n",
- "|---|:---|\n",
- "|0|T-shirt/top\n",
- "|1|Trouser \n",
- "|2|Pullover \n",
- "|3|Dress \n",
- "|4|Coat \n",
- "|5|Sandal \n",
- "|6|Shirt \n",
- "|7|Sneaker \n",
- "|8|Bag \n",
- "|9|Ankle boot \n",
- "\n",
- "각 이미지는 하나의 레이블에 매핑되어 있습니다. 데이터셋에 클래스 이름이 들어있지 않기 때문에 나중에 이미지를 출력할 때 사용하기 위해 \n",
- "별도의 변수를 만들어 저장합니다:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 27,
- "metadata": {},
- "outputs": [],
- "source": [
- "class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',\n",
- " 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## 데이터 탐색\n",
- "\n",
- "모델을 훈련하기 전에 데이터셋 구조를 살펴보죠. 다음 코드는 훈련 세트에 60,000개의 이미지가 있다는 것을 보여줍니다. 각 이미지는 28x28 픽셀로 표현됩니다:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 28,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(60000, 28, 28)"
- ]
- },
- "execution_count": 28,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "train_images.shape"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "비슷하게 훈련 세트에는 60,000개의 레이블이 있습니다"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 29,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "60000"
- ]
- },
- "execution_count": 29,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "len(train_labels)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "각 레이블은 0과 9사이의 정수입니다:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 30,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "array([9, 0, 0, ..., 3, 0, 5], dtype=uint8)"
- ]
- },
- "execution_count": 30,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "train_labels"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "테스트 세트에는 10,000개의 이미지가 있습니다. 이 이미지도 28x28 픽셀로 표현됩니다:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 31,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "(10000, 28, 28)"
- ]
- },
- "execution_count": 31,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "test_images.shape"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "테스트 세트는 10,000개의 이미지에 대한 레이블을 가지고 있습니다:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 32,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "10000"
- ]
- },
- "execution_count": 32,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "len(test_labels)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## 데이터 전처리\n",
- "\n",
- "네트워크를 훈련하기 전에 데이터를 전처리해야 합니다. 훈련 세트에 있는 첫 번째 이미지를 보면 픽셀 값의 범위가 0~255 사이라는 것을 알 수\n",
- "있습니다:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 33,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {
- "needs_background": "light"
- },
- "output_type": "display_data"
- }
- ],
- "source": [
- "# matplotlib에서 .figure( )함수는 Figure객체를 생성해준다. Figure객체란 한 개 이상의 축(Axes)을 포함한 객체이다.\n",
- "plt.figure()\n",
- "# .imshow( )함수는 픽셀 데이터를 이미지로 출력해주는 함수이다. train_images 중 첫 번째 데이터를 이미지화 한다.\n",
- "plt.imshow(train_images[0])\n",
- "# colorbar는 특정 휘도값과 색도값을 나타내는 수직형 컬러 막대이다. train_images[0]의 픽셀을 colorbar값으로 표현한다.(0~255)\n",
- "plt.colorbar()\n",
- "plt.grid(False) # grid는 그래프를 그릴 시 값 표시선이다. \n",
- "plt.show() # .show( )는 생성된 모든 Figure 객체를 보여준다."
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "신경망 모델에 주입하기 전에 이 값의 범위를 0~1 사이로 조정하겠습니다. 이렇게 하려면 255로 나누어야 합니다. 훈련 세트와 테스트 세트를 동일한 방식으로 전처리하는 것이 중요합니다:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 34,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "train_images.shape: (60000, 28, 28, 1), of float64\n",
- "test_images.shape: (10000, 28, 28, 1), of float64\n"
- ]
- }
- ],
- "source": [
- "train_images = train_images / 255.0\n",
- "test_images = test_images / 255.0\n",
- "\n",
- "# reshape for feeding into the model\n",
- "train_images = train_images.reshape(train_images.shape[0], 28, 28, 1)\n",
- "test_images = test_images.reshape(test_images.shape[0], 28, 28, 1)\n",
- "\n",
- "print('\\ntrain_images.shape: {}, of {}'.format(train_images.shape, train_images.dtype))\n",
- "print('test_images.shape: {}, of {}'.format(test_images.shape, test_images.dtype))"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "훈련 세트에서 처음 25개 이미지와 그 아래 클래스 이름을 출력해 보죠. 데이터 포맷이 올바른지 확인하고 네트워크 구성과 훈련할 준비를 마칩니다."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 35,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj0AAAI8CAYAAAAazRqkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAACnNklEQVR4nO2dd7hcVdXG30VReiAFCCmE0EkICQm9FxGQIgICSpNPsSKon4gofooFERFEBRRUBIxSo4CUACH0lkBIIRAgBUIIISSU0KTs74+Zu/PulTk7c29umXvP+3uePFlnzp4zZ84+e8+5611rbQshQAghhBCiq7NcR5+AEEIIIUR7oIceIYQQQpQCPfQIIYQQohTooUcIIYQQpUAPPUIIIYQoBXroEUIIIUQpWKE5jXv27BkGDBjQRqciajFz5kzMnz/fWvu4jdKX7777brSff/75aK+11lpJu1VWWSXaZlbT9sdbuHBhtD/+8Y8n7dZdd91oL7/88s097RYzfvz4+SGEXq193I7qzw8++CDZnj9/frR79OgR7RVXXHGZP+vtt9+ONvczkN4v/p5oK7rC2HzvvfeivWjRomTfa6+9Fm0eI9yvQDo2i8YfALz55pvRXm65xX9vd+/ePWnXq1erD4+6aIux2SjzbFvy/vvvR7s1xnlrkOvLZj30DBgwAOPGjWudsxJ1MWLEiDY5bmv0Jdd4aukPzdSpU6P9jW98I9qf/exnk3bDhg2L9sc+9rFor7BCegtPmTIl2qNGjYr2wIEDk3annnpqtNdcc81mnnXLMbNZbXHcjhqb8+bNS7Yvu+yyaB977LHR5ofMljJhwoRoP/XUU8m+Qw89NNrtNfE28tislxkzZkT77rvvTvb9+9//jjY/mBxzzDFJu6233jra3C/XXXdd0u6OO+6I9qqrrhrto48+Oml34okn1nXurU1bjM0y/GbOmTMn2uutt14Hnslicn0peUsIIYQQpaBZnh5RPnLenCLvzuOPP55sX3XVVdH2f/2x25zd66effnrSbsGCBXWe8WI22WSTaD/xxBPJvrPOOiva7IX45Cc/mbT7zne+E+0tt9yy2efQFeF+uuGGG5J9l19+ebT/+c9/RttLFuytY8+Ml1hYfnnhhRei/elPfzppx/fR4Ycfnj3/snHLLbdE+7zzzkv2rbzyytH+73//m+xbaaWVoj1z5sxoH3nkkUm7l19+Odos5XgvbO/evaPdrVu3aF977bVJu/PPPz/ae++9d7QvuOACiGL23HPPaHtpsWfPntG+5JJLol2v9MbeHADYY489ov3OO+9Eu3///km72267Ldrs3etI5OkRQgghRCnQQ48QQgghSoEeeoQQQghRChTTI7LksrLeeOONaHOmjo+f4big1VZbLdnHMQWcduzTyDk1+vXXX482p8v69+XOfdttt402p9k+8MADSbuxY8dGe+edd072XXnllYXH78pwH3JsBgD88pe/jPbPf/7zaPtsK44D4bgdn0m3+uqrR5vjO/bff/+knY8FKjvPPfdctEeOHBltH5fG8RgfffRRso/Tyvv16xftNdZYo/Bzecz5Mczv4zguH/uzww47RHv27NnR5vg6ADj33HMLz6OMcP9x6QgAePHFF6PN94Cfjw877LBo8/z24YcfJu043ovHLJclABonjoeRp0cIIYQQpUAPPUIIIYQoBV1K3mIZBSiWN7wL7r777ov2fvvtV9fx2d3n3bP14s+Xaa+qssvCIYccEm2uprzOOusk7fi7eDdpUTVk346vFVeE9e2K3pODJTZ22wLpud97773JPi6suPnmm9f1WV0NlqaA1NX99a9/Pdq/+93vknZcITsnbw0fPjzaX/jCF6LNKdRAx1XxbVRY+sldG5ZEfJVrHps8x22wwQZJO5Y4+Rh+DvP3Sq1jA2mFX06pnjx5ctLupptuivYBBxxQ89hlggtIctFJIJ0zufzH3Llzk3Y8TjlMYeLEiUk7DkXg/vLVuhsReXqEEEIIUQr00COEEEKIUtCl5C2ffcDu2WeffTbal156adKO5Q2ONvdSB2f85CQtllX8OfG+3DFysk1HMX78+GSbJS2u+OkXoWQ4WwRIswpymSR8rfjacIaJhyvM+vWYOCuob9++NT/H4z+L76OyZpLwdQTSrJH1118/2v76cL+/8sor0fYVYvm+4mP7e6xeKbMsHH/88dHmKsxe6mIp2sv+RWuYcTVtIO0/xmd5+UzLIvj4vOgpj1NAkpZnww03jPZDDz2U7OPfQr/4chE8Fr20z2ts8bzNiwI3KvL0CCGEEKIU6KFHCCGEEKVADz1CCCGEKAVdKqYnlw49ZsyYaN9+++1JO642ymmVXp8cPXp0tL/0pS9FO5eiXZSSDaRVZH28SL36d3ty1113Jdt8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oj179uxk3/rrrx9t7j8/f3If8Vzosy856YTjfXzQdlsF+y8L8vQIIYQQohTooUcIIYQQpUDylmhXOF0SSOvlcFq6l8F4e+211452ruggSyDe3c3vu+eee6IteavC8ccfH20viXAqq5etWGZhiciXFmBZk0sQ7LXXXkm7NdZYI9pvvPFGtFdbbbWkXZE0dfPNNyftbrjhhmg/8MADyb7OIGkxubTs6dOnR5vLQnjZmOUN//35mH369Kn5HiCVma655pposzQFpDIW9+uHH35Y+LlssyQGAJMmTSo8BssxvM/LNF0JlplYpgLScgR9+/aN9hVXXJG0GzVqVLT333//aO+9995Ju80337zmZ/lSIFy2oFGKGMrTI4QQQohSoIceIYQQQpQCyVuiXWEpA0glqFxWEGcCsbvay1Z8DHbXe5c8y1tevikrl1xySbS5Gq/PruHrn8sa4r7xa/fwumjs9vayJvdbTqbg7ZVWWinavXqly++wRHbdddcl+7jCb2cgt5THnXfeGW3uI77uQHqtcmva8Tjt3bt3so8l6htvvDHavjovy9cse/h7iNd1YgnPj3W+p+69995k3+677174vs4MXw+WMIH0+vISPEAqa7JU+eyzzybteO1CzuabM2dO0o6lYZY3OYMMSKW0o446qubr7Y08PUIIIYQoBXroEUIIIUQp0EOPEEIIIUpBaWJ6OJXy4osvTvYNGjQo2pwye/DBB7f9iZUMH6vD8QGs7fMqzEAad8NxCJ4i/d6nz3I7/1ll5cILL4w2Xx+fDsxw/IV/H5Orfsz4OBX+bI438O04JZdjU/zq4xz749N1O1tMTw6+p/la+5gpvqb+WjF83XzlZr72XEog147jcXxMD49vni+40jaQ3lOclg+kMT252KfOBsfxcCwNkM5xG220UbKPV1Pfdttto73uuusm7TjlnOOk+D0A8Mgjj0Sb44X23HPPpB3fN/fff3+0N9lkk6TdsGHD0F7I0yOEEEKIUqCHHiGEEEKUgq7j91sKDz30ULT9YoWPPvpotH/3u99F++STT07anX/++c3+XO9O/tnPfhZtTgv+4x//mLTzskFnhtOOOWUYSKVFdrV7OYSrjb744ovR5jRNIK30yu5en3bNVUT9AooilTq8TMH9mZMNc+ns3L9FVZyBVJrgfT69ms+X5RFfBZbb+eqxnJbrq/92Njh1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vXW0fRzItGnTos191rdv36QdjxGO2+Cq3J5+/fpFe/bs2ck+jhvj7+HH8DPPPBNtjvtoJJZbbrkYl3TLLbck+wYNGhRtrmT86quvJu14m6/byJEjk3ac9j5r1qxkH8e7bLjhhtE+5phjknbXX399tDn2g+8TIF2NnWOreF4F0nuDv8ewYcOSdrzPH2O//faL9l//+tdo+xTtXJxJR+HjrnhezFU4zqWE8zjguFUf31p0Pfzx+Dry+fHcDKTxWVw6wB8vV8qktZGnRwghhBClQA89QgghhCgFDbPgqE+JY3fcn//852Qfu+Q4pdUvusfHYNun7HGqH8tbvprr97///WhffPHFNY8tloT7K7dIHt8bXn5iFypLKj61nT+LZQ6fyp47D5HKBV5yYve7TzFnqYrTnKdPn560Yzc6lw/wC0ByujzLIz4Vnfv9qaeeirYfm7zwaaPKW++++26shuwlIv4+Tz75ZLR50U8gvd/vv//+aA8ZMiRpx9V5eRFQAOjfv3+0r7zyymhzpWYgTUXnfrnvvvuSdjyGhw4dGm0vUXPFb56P//Of/yTtNtlkk2h/61vfSvaxzMr3hv/98TJpI+BLROSqITNFMhhQPC/68VFvaAb/hvKxfdkYlsFyoS1ceqat0a+1EEIIIUqBHnqEEEIIUQoaZsW9nFvtzjvvTLaLKih72LXG0eFe6mBpjW2u7Aq076JoXQnuIy9jssuTXa1efuKsAJZNcjJYLjOjqHKzqMDXlTN8AGCfffaJNlf+BdJ+44wtlqGBVCJ79tlno+2za7jaL1d49lI2zx+8qKTPasotQNoorLTSSth4440BLPk9+d7nCsW86CeQXoPNN9882j/72c+SdjvssEO0/bW5+eabo82Si69+zJIWLwr797//PWl38MEH1/wsX42XJbeXXnop2gcddFDSju+1UaNGJfu22267aDdVtwaWrHDNElmj4DPRuM8ZnynF7erNUvPzMf+25n6TeR8fw8/b2267bbS5irqft33F9rZEnh4hhBBClAI99AghhBCiFOihRwghhBCloFPE9PgKldyW40V8KjrrmKwh+iqyfLycpulXri2CNU6ls6f4a8jXmK+VT0nu06dPtHmlaa8N8zHeeuutwvOoNw20rFx33XXR9inrfM39NX744YejzdWEfTuOC+FSEFdddVXSjtOZOabOp7juvffe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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# 차트 그림(figure)의 기본 크기 지정\n",
- "plt.figure(figsize=(10,10))\n",
- "\n",
- "for i in range(25): # 0~24, 총 25개의 이미지와 클래스 출력 반복문\n",
- " # subplot()함수는 한 화면에 여러 개의 figure 객체를 그리기위한 함수이다.\n",
- " plt.subplot(5,5,i+1) # 5, 5 사이즈로 25개의 figure 객체 생성\n",
- " plt.xticks([]) # x축의 틱을 표현, plt.xticks([])이므로 표현하지 않음\n",
- " plt.yticks([]) # y축의 틱을 표현, plt.xticks([])이므로 표현하지 않음\n",
- " plt.grid(False) # figure의 grid를 보여주지 않는다.\n",
- " plt.imshow(train_images[i], cmap=plt.cm.binary) # i에 해당하는 픽셀 데이터를 흑백 칼라맵 이미지로 출력\n",
- " plt.xlabel(class_names[train_labels[i]]) # i에 해당하는 클래스명을 x축 라벨로 출력\n",
- "\n",
- "plt.show() # 생성된 모든 figure 객체 반환"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## 모델 구성\n",
- "\n",
- "신경망 모델을 만들려면 모델의 층을 구성한 다음 모델을 컴파일합니다.\n",
- "\n",
- "### 층 설정\n",
- "신경망의 기본 구성 요소는 층(layer)입니다. 층은 주입된 데이터에서 표현을 추출합니다. 아마도 문제를 해결하는데 더 의미있는 표현이 추출될 것입니다.\n",
- "\n",
- "대부분 딥러닝은 간단한 층을 연결하여 구성됩니다. tf.keras.layers.Dense와 같은 층들의 가중치(parameter)는 훈련하는 동안 학습됩니다."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 36,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Model: \"sequential_1\"\n",
- "_________________________________________________________________\n",
- "Layer (type) Output Shape Param # \n",
- "=================================================================\n",
- "Conv1 (Conv2D) (None, 13, 13, 8) 80 \n",
- "_________________________________________________________________\n",
- "flatten_1 (Flatten) (None, 1352) 0 \n",
- "_________________________________________________________________\n",
- "Softmax (Dense) (None, 10) 13530 \n",
- "=================================================================\n",
- "Total params: 13,610\n",
- "Trainable params: 13,610\n",
- "Non-trainable params: 0\n",
- "_________________________________________________________________\n"
- ]
- }
- ],
- "source": [
- "#model = keras.Sequential([ # Sequential 모델은 레이어를 선형으로 연결하여 구성.\n",
- "# keras.layers.Flatten(input_shape=(28, 28)), # 2차원 배열(28 x 28 픽셀)의 이미지 포맷을 28 * 28 = 784 픽셀의 1차원 배열로 변환\n",
- "# keras.layers.Dense(128, activation='relu'), # 덴스(dense)레이어는 이전 레이어의 모든 뉴런과 결합된 형태의 레이어이다.\n",
- "# keras.layers.Dense(10, activation='softmax') # 소프트맥스 함수는 다중 클래스분류 문제에서 출력층에 주로 사용됨\n",
- "#])\n",
- "\n",
- "model = keras.Sequential([\n",
- " keras.layers.Conv2D(input_shape=(28,28,1), filters=8, kernel_size=3, \n",
- " strides=2, activation='relu', name='Conv1'),\n",
- " keras.layers.Flatten(),\n",
- " keras.layers.Dense(10, activation=tf.nn.softmax, name='Softmax')\n",
- "])\n",
- "model.summary()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "이 네트워크의 첫 번째 층인 tf.keras.layers.Flatten은 2차원 배열(28 x 28 픽셀)의 이미지 포맷을 28 * 28 = 784 픽셀의 1차원 배열로 변환합니다. 이 층은 이미지에 있는 픽셀의 행을 펼쳐서 일렬로 늘립니다. 이 층에는 학습되는 가중치가 없고 데이터를 변환하기만 합니다.\n",
- "\n",
- "픽셀을 펼친 후에는 두 개의 tf.keras.layers.Dense 층이 연속되어 연결됩니다. 이 층을 밀집 연결(densely-connected) 또는 완전 연결(fully-connected) 층이라고 부릅니다. 첫 번째 Dense 층은 128개의 노드(또는 뉴런)를 가집니다. 두 번째 (마지막) 층은 10개의 노드의 소프트맥스(softmax) 층입니다. 이 층은 10개의 확률을 반환하고 반환된 값의 전체 합은 1입니다. 각 노드는 현재 이미지가 10개 클래스 중 하나에 속할 확률을 출력합니다.\n",
- "\n",
- "### 모델 컴파일\n",
- "\n",
- "모델을 훈련하기 전에 필요한 몇 가지 설정이 모델 컴파일 단계에서 추가됩니다:\n",
- "\n",
- "**손실 함수(Loss function)** 훈련 하는 동안 모델의 오차를 측정합니다. 모델의 학습이 올바른 방향으로 향하도록 이 함수를 최소화해야 합니다.\n",
- "\n",
- "**옵티마이저(Optimizer)** 데이터와 손실 함수를 바탕으로 모델의 업데이트 방법을 결정합니다.\n",
- "\n",
- "**지표(Metrics)** 훈련 단계와 테스트 단계를 모니터링하기 위해 사용합니다. 다음 예에서는 올바르게 분류된 이미지의 비율인 정확도를 사용합니다."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 37,
- "metadata": {},
- "outputs": [],
- "source": [
- "model.compile(optimizer='adam', # 최적화 옵티마이저로 Adam 사용\n",
- " # 라벨이 정수 형태(ex.0, 1, 2 ...)로 제공되며,분류해야할 클래스가 3개 이상인 경우의 멀티 클래스 분류를 위한 손실함수이다.\n",
- " loss='sparse_categorical_crossentropy',\n",
- " metrics=['accuracy']) # 정확도(accuracy)를 모니터링을 위한 지표로 사용"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "## 모델 훈련\n",
- "\n",
- "신경망 모델을 훈련하는 단계는 다음과 같습니다:\n",
- "\n",
- "1. 훈련 데이터를 모델에 주입합니다-이 예에서는 train_images와 train_labels 배열입니다.\n",
- "2. 모델이 이미지와 레이블을 매핑하는 방법을 배웁니다.\n",
- "3. 테스트 세트에 대한 모델의 예측을 만듭니다-이 예에서는 test_images 배열입니다. 이 예측이 test_labels 배열의 레이블과 맞는지 확인합니다.\n",
- "\n",
- "훈련을 시작하기 위해 model.fit 메서드를 호출하면 모델이 훈련 데이터를 학습합니다:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 38,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Epoch 1/5\n",
- "1875/1875 [==============================] - 5s 3ms/step - loss: 0.5270 - accuracy: 0.8172\n",
- "Epoch 2/5\n",
- "1875/1875 [==============================] - 5s 3ms/step - loss: 0.3763 - accuracy: 0.8665\n",
- "Epoch 3/5\n",
- "1875/1875 [==============================] - 5s 3ms/step - loss: 0.3468 - accuracy: 0.8756\n",
- "Epoch 4/5\n",
- "1875/1875 [==============================] - 5s 3ms/step - loss: 0.3299 - accuracy: 0.8818\n",
- "Epoch 5/5\n",
- "1875/1875 [==============================] - 5s 3ms/step - loss: 0.3180 - accuracy: 0.8858\n"
- ]
- }
- ],
- "source": [
- "# model.fit(훈련 데이터셋, 훈련 라벨, 전체 데이터 5번 사용해서 학습)\n",
- "tf_history = model.fit(train_images, train_labels, epochs=5)\n"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "모델이 훈련되면서 손실과 정확도 지표가 출력됩니다. 이 모델은 훈련 세트에서 약 0.88(88%) 정도의 정확도를 달성합니다.\n",
- "\n",
- "### 정확도 평가\n",
- "\n",
- "그다음 테스트 세트에서 모델의 성능을 비교합니다:\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 39,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "313/313 - 1s - loss: 0.3549 - accuracy: 0.8688\n",
- "\n",
- "테스트 정확도: 0.8687999844551086\n"
- ]
- }
- ],
- "source": [
- "# model.evaluate() 함수는 모델 평가에 사용되는 함수이다.\n",
- "# verbose는 학습 중 출력되는 문구를 설정한다.\n",
- "# verbose = 0 : 아무 것도 출력하지 않는다.\n",
- "# verbose = 1 : 훈련의 진행도를 보여주는 진행 막대(progress bar)를 보여준다.\n",
- "# verbose = 2 : 미니 배치마다 손실 정보를 출력한다.\n",
- "test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2) \n",
- "\n",
- "print('\\n테스트 정확도:', test_acc)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "테스트 세트의 정확도가 훈련 세트의 정확도보다 조금 낮습니다. 훈련 세트의 정확도와 테스트 세트의 정확도 사이의 차이는 과대적합(overfitting) 때문입니다. 과대적합은 머신러닝 모델이 훈련 데이터보다 새로운 데이터에서 성능이 낮아지는 현상을 말합니다.\n",
- "\n",
- "### 예측 만들기\n",
- "\n",
- "훈련된 모델을 사용하여 이미지에 대한 예측을 만들 수 있습니다."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 40,
- "metadata": {},
- "outputs": [],
- "source": [
- "# model.predict(input)는 input에 대한 결과값 예측을 생성한다.\n",
- "predictions = model.predict(test_images)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "여기서는 테스트 세트에 있는 각 이미지의 레이블을 예측했습니다. 첫 번째 예측을 확인해 보죠:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 41,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "array([8.9522564e-07, 9.8666506e-09, 2.3707030e-07, 5.5535114e-09,\n",
- " 1.4181666e-07, 6.9674235e-03, 2.5005265e-06, 1.4614542e-01,\n",
- " 7.0823421e-04, 8.4617513e-01], dtype=float32)"
- ]
- },
- "execution_count": 41,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# predictions에는 해당 데이터의 모든 레이블값의 확률을 출력한다.\n",
- "predictions[0]"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "이 예측은 10개의 숫자 배열로 나타납니다. 이 값은 10개의 옷 품목에 상응하는 모델의 신뢰도(confidence)를 나타냅니다. 가장 높은 신뢰도를 가진 레이블을 찾아보죠:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 42,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "9"
- ]
- },
- "execution_count": 42,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "# argmax는 다차원 배열의 경우 차원에 따라 가장 큰 값의 인덱스를 반환해준다.\n",
- "np.argmax(predictions[0])"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "모델은 이 이미지가 앵클 부츠(class_name[9])라고 가장 확신하고 있습니다. 이 값이 맞는지 테스트 레이블을 확인해 보죠:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 19,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "9"
- ]
- },
- "execution_count": 19,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "test_labels[0]"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "10개 클래스에 대한 예측을 모두 그래프로 표현해 보겠습니다:"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 20,
- "metadata": {},
- "outputs": [],
- "source": [
- "# i번째 이미지 데이터에 대해 예측값 배열을 얻어와 예측값을 도출하고, 정답 레이블과 비교하여 이미지로 출력하는 함수\n",
- "def plot_image(i, predictions_array, true_label, img): \n",
- " predictions_array, true_label, img = predictions_array[i], true_label[i], img[i]\n",
- " plt.grid(False) # 그리드는 표시하지 않음\n",
- " plt.xticks([]) # x축 틱은 표시하지 않음\n",
- " plt.yticks([]) # y축 틱은 표시하지 않음\n",
- "\n",
- " plt.imshow(img, cmap=plt.cm.binary) # img의 픽셀 데이터를 흑백 칼라맵 이미지로 출력\n",
- "\n",
- " predicted_label = np.argmax(predictions_array) # 10가지 예측값 중 가장 정확도가 높은 값을 뽑음\n",
- " if predicted_label == true_label: # 만약 모델의 예측값과 정답 레이블이 같다면 파랑\n",
- " color = 'blue'\n",
- " else: # 만약 모델의 예측값과 정답 레이블이 다르다면 빨강\n",
- " color = 'red'\n",
- "\n",
- " # \"{} {:2.0f}% ({})\" 에서 왼쪽부터 class_names[predicted_label], \n",
- " # {:2.0f}%에는 100*np.max(predictions_array) %, ({})에는 class_names[true_label])이 들어간다.\n",
- " # color는 위에서처럼 예측이 맞으면 파랑, 틀리면 빨강으로 설정된다.\n",
- " plt.xlabel(\"{} {:2.0f}% ({})\".format(class_names[predicted_label],\n",
- " 100*np.max(predictions_array),\n",
- " class_names[true_label]),\n",
- " color=color)\n",
- "\n",
- "\n",
- "# i번째 이미지 데이터에 대해 예측값 배열을 얻어와 예측값을 도출하고, 정답 레이블과 비교하여 그래프로 출력하는 함수\n",
- "def plot_value_array(i, predictions_array, true_label):\n",
- " predictions_array, true_label = predictions_array[i], true_label[i]\n",
- " plt.grid(False)\n",
- " plt.xticks([])\n",
- " plt.yticks([])\n",
- " thisplot = plt.bar(range(10), predictions_array, color=\"#777777\") # 10가지의 예측값에 대해 막대그래프로 표현, #777777은 회색이다.\n",
- " plt.ylim([0, 1]) # 그림의 범위 중, y축의 최소값과 최대값을 수동으로 지정한다.\n",
- " predicted_label = np.argmax(predictions_array)\n",
- "\n",
- " thisplot[predicted_label].set_color('red') # 예측값에 대한 색은 파랑으로 설정\n",
- " thisplot[true_label].set_color('blue') # 정답 레이블에 대한 색은 빨강으로 설정"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "0번째 원소의 이미지, 예측, 신뢰도 점수 배열을 확인해 보겠습니다."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 21,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWAAAAC6CAYAAACQs5exAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAO/UlEQVR4nO3df5Bd5V3H8feTHyQhCZCE34RmR5uUaQVDiXEQrLQwtKGA4FAVqy3TmarFDrZOFRwtMp2polY7jqNNpwVpVSg1DQO20hBGoIQfKUkbSCBCRtnEEiDZAPlFCD/y+Mc5wd0937PcS3bzwO77NZPJvd/73HOeczb57Lnnec65KeeMJOngG1e6A5I0VhnAklSIASxJhRjAklSIASxJhRjAklTIhNIdkEo78sgjc09PT+luaJRavXp1X875qOg1A1hjXk9PD6tWrSrdDY1SKaWNba95CkKSCjGAJakQA1iSCjGAJamQrgbhHC3WSOrt7aWvry+V7od0sHQVwI4WayQtWLCgdBekg8pTEJJUiAEsSYUYwJJUiAEsSYUYwJJUiAEsSYUYwJJUiAEsSYUYwJJUiAEsSYUYwJJUiAEsSYUYwJJUiAEsSYUYwJJUiAEsSYFjj4WUOv9z7LHdr8MAlqTAs8+ObHswgCWpGANYkgoxgCWpEANYkgoxgCWpEANYkgoxgCWpEANYkgoxgCWpEANYkgoxgCWpEANYkgoxgCWpEANYkgoxgCWpEANYkgoxgCWpEANYkgqZULoDGj6vvfZaozZuXPw7NqXU8XL37t3bqE2aNClsu2HDhkZt7ty5Ha9LGks8ApakQgxgSSrEAJakQgxgSSrEAJakQpwFMUxyzh3VIJ6Z8NRTT4VtH3jggUZt0aJFYdupU6cO1cU3rW3GQ2Tp0qWN2pVXXjmc3ZFGDY+AJakQA1iSCjGAJakQA1iSCnEQbgS1XQYcuffee8P6ypUrG7XNmzeHba+44oqO19eNLVu2NGrLli0L206fPn1E+iCNRh4BS1IhBrAkFWIAS1IhBrAkFWIAS1IhzoIYJtHN0CdMiHfvQw891KitX78+bHvMMcc0atFNzwEuvvjiRm3GjBlh25deeqlRmzNnTth227ZtjdqOHTvCtieccEJYl9TkEbAkFWIAS1IhBrAkFWIAS1IhDsK9Cfv27WvUogG33bt3h+9fsmRJo9Z2z91osGznzp1h227uSRzVH3300bDt7NmzG7W2wb1oMFJSzCNgSSrEAJakQgxgSSrEAJakQgxgSSrkbTcLIhq9TymFbaPZCm1to3rbiP748eOH6uLrFi9eHNajy4snT54ctt24cWOjFs2MaFvuq6++GraNtrftW5WjGRrbt28P2+7du7dRa5sNMlLf4iy9XXgELEmFGMCSVIgBLEmFGMCSVMhbYhCum4G1tnqkm28ljgbcOh1sA7jpppsatWeeeSZse+qppzZqbYNlL7zwQqM2c+bMsO2sWbMatb6+vrDtrl27Ou5DpO0S5xdffLFRa7t/8fz58ztenzQaeQQsSYUYwJJUiAEsSYUYwJJUyFtiEK6bgbXo6raoBvEgWtu6uhlwu/766xu1J554olE78cQTw/dHX3LZNqi1Z8+eRq3tiy+j+wS3be+hhx7aqLVdYdfNIGlk2bJlYd1BOI11HgFLUiEGsCQVYgBLUiEGsCQVYgBLUiEjNguibWZCJBpRb5sVEF1e3M0lx202b97cqC1dujRsG81MmDt3bqMWXe4L8T1zo5kRABMnTmzU2mYgRJcBt4n2Wds3M0dt2+7lG/Xtvvvu67hf0ljiEbAkFWIAS1IhBrAkFWIAS1IhXQ/CDb5vbtslvAc6MNbNpa5bt24N6729vY3a448/HrZ9+umnG7VDDjkkbHvYYYc1atF9e3fs2BG+/5VXXmnUooE5iPdvtF0Q38/3iCOOCNtG29b2JaTRgOiUKVPCttEypk2bFrZdt27dgOfR4KY0mnkELEmFGMCSVIgBLEmFGMCSVIgBLEmFdD0LotMblz/77LON2saNG8O2u3fv7qgG8Uj5k08+GbaNLs2dMCHe5OnTpzdqbZdTb9++vaN+ta0r6lfbrILo8uCXX345bHvcccc1am0zMaI+zJgxI2wbXVL93HPPhW2jGQ9t3w49eBltszCk0cojYEkqxACWpEIMYEkqxACWpEIO+H7Ad955Z1iP7q/bNigVXUrcNiATDQJ2M7DWdo/eaKCo7Z7E0WXD0QBW2yBe1Ie27Y3uu9t2aW902XHbZdrdiLat7VLzaDCybdCw7ecmjRUeAUtSIQawJBViAEtSIQawJBViAEtSIV0NQ+/YsYM77rhjQO26664L25500kmNWnSpLHR3GfCB3kg8WhfEI/VtI/07d+7saF1tNxiPbjbftg3R7IzoMm+Axx57rFFrm4HQzWW/0ayLtkvFJ0+e3NH7AY4++ugBz6NvgJZGM4+AJakQA1iSCjGAJakQA1iSCulqEG7q1KksXLhwQO3BBx8M265du7ZRW7FiRcfrahuQiQbRZs6cGbaN6ocffnjYNhqsarsUedu2bY1a9G3L0T13Ib5Hb9u3QD/88MON2imnnBK27enpadSWL18eto0up+7mm6zbLiM+/vjjG7XoW6ShOZjp/YA11ngELEmFGMCSVIgBLEmFGMCSVIgBLEmFdDULYvz48Y2bfl999dUdv7/tZugrV65s1KJZBQD3339/o9bb2xu2feSRRxq1tktooxkPbTMTotkC0YyLk08+OXz/Oeec06idd955Ydvo0t5uXHjhhWF906ZNjdqsWbPCttEshrZLuqPZEdE3OwPMmzdvwPMD3Vbp7cYjYEkqxACWpEIMYEkqxACWpEIO6tfStt0X9uyzz+6oBnD55ZcPa59Gu9tuu610FzrWzaXQ0mjgv3hJKsQAlqRCDGBJKsQAlqRCDGBJKsQAlqRCDGBJKsQAlqRCDGBJKsQAlqRCDGBJKsQAlqRCDGBJKsQAlqRCDGBJKsQAlqRCDGBJKsQAlqRCDGBJKsQAlqRCDGBJKsQAlqRCDurX0kvSm3XVVVd13Pbaa68dwZ4MH4+AJakQA1iSCjGAJakQA1iSCjGAJakQA1iSCjGAJakQ5wFLelNG47zcg80jYEkqpKsj4NWrV/ellDaOVGc05s0p3QHpYOoqgHPOR41URyRprPEUhCQVYgBLUiHDFsApcVFK5JQ4qcP2vSlxZFDf1eV6u2o/xHIuS4njW16bnxIPpsSalFiVEgv7vXZWXX80Je6pa0elxIqUWJcSF/Vre2vbOurXP5MSH+v3fEJKbE2JjoaQU+KalPhcUL8hJS7pZBlvpv0Qy5mfEuf1e35+SnzhQJcrjRYp5zw8C0rcDBwP/GfO/FkH7XuBBTnTN6i+K2emdbHertoPsZy7gc/lzKrgtTuAL+fM7XWg/FHOnJUSRwD3Ax/KmU0pcXTObEmJK4DngKXAf9RtLwBOy5lrWtY/AfgR8N6cebWuLQL+FDgWeGfODPnDSolrgF0586VB9RuA7+bMkg73RVfth1jOZVQ/40/XzxPVNp6RMy8eyLKHU0ppK+DgskbKnLbxs2GZB5wS04AzgfcD/w5VAKfEWcA1QB/wM8Bq4Df7B0lKTKEKqqU587VBy/1D4FeBScAtbcGeEl8GzgWeAX49Z7amxHxgMXAo8N/AJ3Lm+agOnA0sAP41JfYAp+fMnn6ryMBh9ePDgc3149+o+70JIGe21PVX6uVPAl6rw/UzwAXte5EPAD/aH761S4G/Az4FnE4V9vt/eX2jXt5E4CM581+D9skngV+p//Svnwb8LTCN6udyWc48HfTnnJS4qt7uP8iZ76bEZOArVPvq1bp+V1QH7gO+AExJiTOBv8iZm+tfdOcD3x5iXxxUDi6rlOE6BfHLwPdz5glgW/2ffL9TqcLn3cBPAWf0e20aVWDfFITvucBcYCEwHzgtJd4XrHsqsCpn3gPcA6+H9DeBK3PmFGDtUPX6SG8V8NGcmT8ofKn7/9cp8b/Al4A/ruvzgBkpcXdKrO53+uDGep8sB/4cuBz45zc46juD6hfU/u2fDJyzf/9QhXF/fTnzXqrgG3DaISU+TRVyF/XflpSYCPw9cEnOnAZcD3yxpT89VPv+w8Diuj+/B+ScObnuzzfa6lT/tq4Gbq736c31clcBvzjEfpDGjOEK4EuBb9WPv8XAsPhhzvwkZ/YBa6j+Y+93K/BPOfPNYJnn1n9+TPWx9SSqQB5sH7z+n/tfgDNT4nDgiJyrc7JUgfC+tnoH2/cp4LM5cyLwWeC6uj4BOI0qpD4IfD4l5uXM9pz5cM4sqPt+AbAkJb6WEktS4vRgHccBW/s9Px+4qw7Q7wAXpcT4fq8vrf9ezcB9+jFgEVXI7h20jndRfRJZnhJrqE5vzG7Z5m/nzL6c2QD8D9X+P5NqH1MfcW+k+iXUVo9sgfbz4NJYcsCnIFJiJtXH55NTIgPjgVyfPgAGhMBrg9Z5H/ChlLgxOL+ZqD62frXLLg3PSe2BPg78fv3434Cv149/AmzLmd3A7pT4AfCzwBP93vt5qqPMS4EVwBKq8PzgoHXsASb3e34p1S+T3vr5LKr9vLx+vn+/Dt6na6k+McwGnhy0jgQ8mnP4C2CwwftxuPbrZGh8wpDGpOE4Ar6E6uP1nJzpqY8Sn6Szj5lXA88D/xC8tgz4RH1+mZQ4ISWODtqNq/sA1TnZFTmzHXg+pdf78FvAPW31+vFOYHpLPzcDv1Q//gCwoX58K1VITkiJQ4GfB9bvf1NKzAVm58zdVOeE91EF2ZRgHeuBd9bvO4xq/72j3qc9VB/zB5+GiPwY+B3gtmDGxePAUfuPwFNiYkq8p2U5H0mJcSnx01Snjh4H7gU+Wr93HvCON6hH+3QesK6D7ZBGveEI4EuBWwbVvkNnYQHVkeWUlPir/sWcuYPqXOoDKbGW6sgxCsjdwMKUWEcVjvunOX2c6rztI1RHhG9Uv4HqXOeaemCwv08Cf5MSD1Od0/3tuo/rge8DjwA/BL6e84Bw+SLwJ/Xjm6hOZTxENbA22O38/+mQi6lmk/T/9HArcEFKTAreO0DOrKA6L/y9/lP9cuZlql9Wf1lvyxrgF1oWs6neptuB382Zl4B/BMbVP4+bqQbw9g5Rvwt4d71Pf61e7vuB773RNkhjwbBNQ9OBS4lbqKa4bXjDxm9DKXEMcGPOnF26L9JbgQH8FpIS7wKOyZkflO7LSEiJnwNeyZk1pfsivRUYwJJUiPeCkKRCDGBJKsQAlqRCDGBJKsQAlqRCDGBJKuT/AOs/C5801O1xAAAAAElFTkSuQmCC\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# test 데이터셋에서 첫 번째 데이터에 대한 figure 생성\n",
- "i = 0\n",
- "plt.figure(figsize=(6,3))\n",
- "\n",
- "# subplot()함수는 한 화면에 여러 개의 figure 객체를 그리기위한 함수이다.\n",
- "plt.subplot(1,2,1) # plt.subplot(행의 수, 열의 수, 순서)이다.\n",
- "plot_image(i, predictions, test_labels, test_images)\n",
- "\n",
- "plt.subplot(1,2,2)\n",
- "plot_value_array(i, predictions, test_labels)\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 22,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# test 데이터셋에서 열세 번째 데이터에 대한 figure 생성\n",
- "i = 12\n",
- "plt.figure(figsize=(6,3))\n",
- "\n",
- "# subplot()함수는 한 화면에 여러 개의 figure 객체를 그리기위한 함수이다.\n",
- "plt.subplot(1,2,1) # plt.subplot(행의 수, 열의 수, 순서)이다.\n",
- "plot_image(i, predictions, test_labels, test_images)\n",
- "\n",
- "plt.subplot(1,2,2)\n",
- "plot_value_array(i, predictions, test_labels)\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "몇 개의 이미지의 예측을 출력해 보죠. 올바르게 예측된 레이블은 파란색이고 잘못 예측된 레이블은 빨강색입니다. 숫자는 예측 레이블의 신뢰도 퍼센트(100점 만점)입니다. 신뢰도 점수가 높을 때도 잘못 예측할 수 있습니다."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 23,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "image/png": "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REREpG4pTSK67777Ujxz5swU52kSf//73ys+f6eddiot+67W3//+9yneZZddSuV23333tT9YkRbApxblKQ5+JIfXX389xfnn388q5btcoZxq4FMjli1bVirnZ6Dzx5F3s/pj8ulK+ax4fpSI5557LsXDhg0rlXvooYcqbhvKXb/56xJp6XwdyOuHT/vx5fJzo0+TqJUC1b9//xT7ESPmzJlTdb9+tBqRpqArwyIiIiJSt9QYFhEREZG6pcawiIiIiNStus0Zzod68UMt+ZxhP8waVM9VynOifJ6kH2Ytn6lLpLUaN25civOcWb+8YMGCFOdDkD3xxBMp9rm/UM759XE+21vHjh1T7OtXXs4v+yHYfAzlujxx4sQU9+zZs1TOD92Wv34/e5Z/jUcffTQirUk+NKD/rPvzoT/PrSs//OHYsWNL6/x9A3l9E1lfujIsIiIiInVLjWERERERqVt1myaRzzq1fPnyFPsumLwLtRr/fCh36fiUiXz2LJHWys/O5rs3AV588cUU+9mi8qHVfBpC7969S+t8qoGXpzj5odZ8KoQf9gnKs9351Iq8nP9umD17doqPOOKIUrn/+q//SvEnP/nJ0jqf8jF48ODVX4RIK7HvvvuWli+77LIU9+3bN8W+Tq2roUOHpvi1114rratWz0Wagq4Mi4iIiEjdUmNYREREROpW3aZJ5HwXj58xyncF15LP0uPvSPepEYMGDVrXQxRpUU466aSq6/wd6M8++2yK81ncrr322hTnI034bfgZ4/J0ioULF6bYpyvlqRt+pAkf5zPVbbrppil+5JFHUnzKKaeUyvnZ83wKBmiGLGk7Tj311NLy1VdfnWJfdxYtWlQq5+v9Ntts06h99ejRI8U+vQrK3wH5d4XI+tKVYRERERGpW2oMi4iIiEjdUmNYREREROqWcoYjP5uUzzVsbO5fPqyMH/7J5zo1xfAzIi2dz6EdNWpUivM8wFdeeSXFfpgmqJ5rnw+55rfh611e13x+ox+mqVad9PuaMGFCad1hhx1W9XkibcWQIUNKyz5n3+f158OL+hnpGpszXG02SSjX2XxfIutLV4ZFREREpG6pMSwiIiIidUtpEtH8+fNT7Ge38SkOteRDK/kuWb89n44h0lbks8L5euNneHvwwQdL5fwQhDk/i5vf3syZM0vlqnXB+jqdb8OnQuXDJ/o66ruI77///lI5nyaRv/58hkuR1sR/nvPP8sEHH5zia665JsV5utENN9yQ4mOPPbZR+/Xn0blz51Y9psael0UaS41hEZE6cNZZZ1Vdd955523EIxERaVmUJiEiIiIidUuNYRERERGpW0qTiAYOHJjil156KcU+37GWfHrIasM4+aleRdqKPK+wWr2ZMWNGadkP0+TrCZTzif3ztt5661I5n/P74osvVt2ezzNcunRpivN8X5/76OM8B9nLX3+tnEuRlq5azj+Uc+X91Mz5/TAvvPDCWu+3V69eKc6HT/Pn2FdffXWtty1Si64Mi4iIiEjdUmNYREREROqW0iSiD33oQyl+4oknUtzYNIkePXqUln13jx/GaauttlrXQxRpNfxwgr4OzZkzp1TOpzKMGDGitM4/b+TIkSnOZ6p78sknU+xTEvwMdlBOu/D11ddVKHfP+uPLZ77z6zp16lRapzQJac18ml/uve99b4r90IOLFi0qlfNpRRMnTkzxLrvsUnXbPXv2THFe3zp06JBin14l0hR0ZVhERERE6pauDIuISKNpvGIRaWvUGI46d+6cYp/W0Ng0iZy/W91392y++ebrtD2R1qRaasBPfvKT0vIvfvGLFN96662ldb7b1Y8gkc9a5+uaH63ltddeK5V74403Kq7LR4nwXbD9+/dP8amnnloql6dGeLW6mUVausam9my55ZYpnjBhQmmdT2u44447UlwrTWLx4sUp9vU6t2DBgkYdn0hj6RtbREREROqWGsMiIiIiUrfUGBYRERGRuqWc4eiEE05I8YMPPphiP+Ta2jjiiCMqPr7zzjuv0/ZEWpNqObP5LFXnnntu1W0899xzKfbDp+X5gj4X2M+clfM5jD72eY8A++67b4q7d+9edXuyfnQjXut39tlnp3jQoEGldb6O7b///o3a3jHHHJNiPysslHP5P/CBD6zNYYqska4Mi4iIiEjd0pVhERFpUrrqKyKtifmZkprlAMxeBuassaA0pa1CCAOaamN6D5ud3s+2Qe9j26L3s/Vr0vcQ9D42s6rvZ7M3hkVEREREmotyhkVERESkbqkxLCIiIiJ1S41hEREREalbG6QxbEY/MybEf/PNeNEtd9wQ+1zL4/uEGVPNeNeMMdm6/2fGTDNmmHGoe/yD8bGZZpzlHv+HGZPM+Il77BwzPlpj/7ua8WczTnJ/l+VmTI5x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PUTaCM1A1zwupJyH2GLErqZfqSEsbV0IXEfRvbwxLKK44UlEavsJq6c1tRRbAmepIdz26MqwiIiIiNQtXRkWERERkbqlxrCIiIiI1C01hkVERESkbjXn0GoA9O/fPwwdOrS5D6Nk5cpVY463a9eutG7ZslX3vb3zzqocenNT1+TLXbpUG6O/ecyePZuFCxfamks2Tkt8D+vJ2LFjF4YQBjTV9lr6+/nKK6+UlpcsWTUmvr8HIq+7nTuvmmOjf//+G+jo1l29vY9tnd7P1q+pz5Wg97E51aqTzd4YHjp0KE888cRG2Zc/UeaNV++111YNpNCnT5/SumeeeSbFCxcuTHF+4u3UqVOKd95557U/2A1ozJgxTbq9jfkeyurMbH0mh1jNxnw/33333RTnN/PmdarB3/72t9Lyww8/nGL/AzWvuyNHjkzxySefXPWYGvs9Ue05a/O87Dmt9n2U1en9bP2a+lwJrf99HDQIFiyovG7gQJjfgkdSr1UnlSYhIiIiImtUrSG8pnUtXbNfGd6QfLoDlK805Vdy/JXcFStWpDhPcVi6dNWU5L179674HIAOHTqk+POf/3yKf/7znzfm0EXqwiabNO73+KRJk1L82c9+trRu7733rrg9XwcBfv3rX1fcRn4F2l/VbexV4nW5EiwiIi2DrgyLiIiISN1SY1javEGDwKzyv0GDmvvoREREpDmpMSxtXlvNcRIREZH116ZzhqvdjQ5wxRVXlJbPPffcFPv8xKuuuqpU7pvf/GaKx48fn+I777yzVO6ggw5K8Ze//OUU+7vdAdq3X/UWrMtd7CJtxfTp00vLC9wvlU033TTFjz76aKncd7/73RS//vrrKc7z/S+++OIU33///Sl+8MEHS+XOPPPMFHfs2LFRxy4iIq2XrgyLiIiISN1SY1hERERE6labTpOoxacnAGy22WYpPuecc1J82GGHlcr9+9//TvGsWbOqbv+CCy5IcWNnm1FqhLR1Y8eOLS1ff/31KZ47d25p3b777pviRYsWpbhv376lctttt12KX3rppRTnaRK77LJLipcvX57inj17lsr54Q/333//FG+//falci1xFjsREVl7ujIsIiIiInVLjWERERERqVutMk0inz3Opxf47s9x48aVyvmu1rfffru0bubMmSmeMmVKim+55ZZSOT/r3ODBg1P81FNPVT3eGTNmpHjZsmWldT49w89iN3DgwFK5xs7UJdLS+NEZPvCBD5TW+VQDn+4AsNNOO6V49uzZKf773/9eKrf77runeMSIESnO69qNN96Y4kMPPTTFefrDI488kmI/Sox/HOCjH/1oiocPH46IiLROamGJiIiISN1SY1hERERE6pYawyIiIiJSt1plznCtIciefPLJFD/++OOldT4n0ecWAowePTrFL774YorffPPNUjk/FNSuu+6a4oULF5bKLV26NMXdunVL8SuvvFIq9/TTT6fYz3bVoUOHUjkN4yStyeTJk1Psc3V/9rOflcr5YQfz4Q632WabiuVee+21UrmTTjopxc8++2yK33rrrVK5CRMmpHjPPfesWs7n8Q8ZMqTi8wF+9atfpfjCCy9ERERaJ10ZFhEREZG6pcawiIiIiNStVpkmUYvvQt12221L63zKw4ABA0rr3njjjRT369cvxXl6whNPPJHixx57LMV+GCiAl19+OcWLFy9OcZ8+fUrl/L788Gk+zUKktfEzzflZGy+55JJSuRtuuCHFvi5Aeciz6dOnp/imm24qlfN11w/BtmDBglI5n5Lkhy70Qx9COdXCz3a3ww47lMp9+MMfRkREWj9dGRYRERGRuqXGsIiItFqDBoFZ5X+DBjX30YlIa9Am0iR8+oNPSfAzxEH5rvadd965tC6fka5B9+7dS8t+hjufypCP/rBy5coU+9EvunbtWirnl/1d7fkd7iKtyd13353irbfeOsV+1BaAXr16pTivaz71aM6cOSnO6/X73//+FD/zzDMp9jM6QnmEC5/+lKdT+BSKfBveCy+8kOJ8NBmN/rLxZG9fo9eJiDTQlWERERERqVtqDIuIiIhI3VJjWERERETqVpvIGV60aFGKly1bluJB2d0TPjfQD30G5Vni2rVrl+LOnTuXyvXs2TPFPk84hFAq54eJ8nmR7777bqmcX/b5yHmuon9dnTp1QqQl88OdPf/88ykeM2ZMqZzP/83z9nv37p1iP2Rinp8/fPjwFL/++uspzvPz/RBq/t4Cvx8o1/n9998/xddcc02pnB+qLZ9ZUjnDIiKth64Mi4iIiEjdUmNYREREROpWm0uT6NixY4rz7k8/+5tPO8jX+ZQHPysclLtyu3TpkuI8ncKX80Ow5V23PnXjnXfeqXrsvts5nz1PpKWpluJwyy23lMr5z3I+66JP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2Q9xNnPmzBR37dq1VO62225Lcf6Z93Vq/vz5Kd5hhx2qHoff/s4771xa54d/8zPabbrppqVyfsg0/73gh0GE8tCN+evPv6NERKTlUgtLREQ2urPOOqvquvPOO28jHomI1DulSYiIiIhI3VJjWERERETqVqtMk8jzc6tN/Zrn7fkhlPLpmDt27FhxG36YJSjnDfopmPOhlXwO4SabrPrNkR+TH/5p0KBBKfY5l1CexrZWDrJIc8jzc/faa68UP/XUUynu0KFDqdwbb7yRYl8HoZxD//DDD6e4f//+pXJ33nlniv1wZ9tss02p3KOPPprigw8+OMV5XfP3GowYMSLF+++/f6nck08+meKePXuW1g0bNgwREWkddGVYREREROqWGsMiIiIiUrdaZZqEnwUuX547d26K85najj766A17YE6/fv0aVc6nbvgu3rvvvrtUzndD5ykZIs1tyy23LC3fddddKfZDkPmUIYBJkyaleLPNNiut87Mw+tSFvn37Vj0On0KVzwLnl30aUz7bo0+b8OlUfpZKKA/BNmTIkNK6fEhGERFpuXRlWERERETqlhrDIiIiIlK3WmWaxJw5c0rL/q7zRYsWpfg73/nOxjqkJvG1r30txVtvvXVpnZ+By49iAeqSleaXjybxu9/9LsWPPfZY1eedcMIJKX7kkUdK6/zMkj6FKE9BeuaZZ1LsR6vI0x/8sk/XyNOpfH0aOXJkin1KR748dOjQ0ro8lUtERFouXRkWERERkbqlxrCIiIiI1C01hkVERESkbrXKnGE/CxyUZ2TzM0EdcMABjd6mH0KpufL9Pv7xj6c4n43Lz4onzeOss86quu68887biEfS8rRvX/4q+djHPpZiP7NibqeddqoY504++eQU77777qV1vv774dnyPN7BgweneIcddqha7vDDD694DPl+fd7xFltsUVrXlnOGG1MPVFdEpDVplY1hqR86qYqIiMiGpMawtGpqLIuIiLQ9G/P8bj49oDmY2cvAnDUWlKa0VQhhQFNtTO9hs9P72TbofWxb9H62fk36HoLex2ZW9f1s9sawiIiIiEhz0WgSIiIiIlK31BgWERERkbrVohvDZgwy43IznjFjrBm3mDFiHbbT24wv11j/NTOmmDHVjNPd498z40UzJsR/h8XH9zVjkhlPmDHc7eN2s+p/UzOuNmObGHc34w/utd1r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cUf5PcC+a5k3uS77uhY4K6y681dEMmYcRZFSVSmnuKn3dQbwRgj8eUPvS6Q1s2LUi2+FwNPNfSwNYvrV10Pg+OY+FtkwWuyV4bYmBJZS5BUP2ZD7id1V16shLFJbCFwHzN5Iu1tEMWaqiNR2FpRSFFuC/hTpV9JG6cqwiIiIiNQtXRkWERERkbqlxrCIiIiI1C01hkVERESkbqkxLCIiIiJ1a43j821o/fv3D0OHDm3uw6grs2fPZuHChbbmko2j97B5jR07dmEIYUBTba8lvp/PP/98ipcuLU8C1bdv3xS/++67KTYrf8Rfe+21FA8cuGrG9F69ejXZca6Pengf64nez9avqc+VoPexOdWqk83eGB46dChPPPFEcx9GXRkzZkyTbk/v4SqDBsGC1SYJLgwcCPM3wJQLZrY+M6WtpiW+n1/72qpx/CdPnlxad/zxq4b+fPPNN1Pcvn356+3aa1fN0+G395GPfKRRx+Ab2gCbbNK0HWv18D7WE72frV9TnytB72NzqlUnm70xLNKWVGsIr2mdwL333ltavuCCC1LcqVOnFL/66qulcqeddlqK27Vrl+KuXcszMO+116oZzK+88soU33jjjaVy5513Xor9VeembvyKiEjLoG93EREREalbagyLiIiISN1SY1hERERE6pZyhkVko5kxY0Zp+Wc/+1mKn3rqqdK6UaNGpXjatGkp7tKlS6lc//79U7xw4cIU77TTTqVyfjQJf3Odz0cGOP3001O87bbbpviLX/xiqdymm26KiIi0froyLCIiIiJ1S41hEREREVmjQYPArPK/QYOa++jWndIkRGS9rVy5srTshzi78MILU/zII4+UynXr1i3Fe+yxR2ld9+7dU/z222+nePr06aVyPm3Cpy7kx/T444+n+L/+679S3KdPn1K5N954I8Xz5s1L8SmnnFIqd9FFF6XYT+IB5TGJNSSbiLQVbXX4UH1Li4iIiEjdUmNYREREROqW0iREZL35tIicnz55UJZU5p+XT5/sR3844ogjUvzkk0+WyvlUhl/+8pcp/sEPflAqd8ghh1Tcr0/BgPLMdT179kxxPh3zZZddluIzzjijtE6pESIirYe+sUVERESkbqkxLCIiIiJ1S41hEREREalbyhkWkSbn8319Tu6AAQOqlnvnnXdK63r06JHil19+OcUHHHBAqdwCN57PlVde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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "# 처음 X 개의 테스트 이미지와 예측 레이블, 진짜 레이블을 출력한다\n",
- "# 올바른 예측은 파랑색으로 잘못된 예측은 빨강색으로 나타낸다\n",
- "num_rows = 5\n",
- "num_cols = 3\n",
- "num_images = num_rows*num_cols\n",
- "\n",
- "plt.figure(figsize=(2*2*num_cols, 2*num_rows)) # figsize는 (12, 10)\n",
- "\n",
- "for i in range(num_images):\n",
- " plt.subplot(num_rows, 2*num_cols, 2*i+1)\n",
- " plot_image(i, predictions, test_labels, test_images)\n",
- "\n",
- " plt.subplot(num_rows, 2*num_cols, 2*i+2)\n",
- " plot_value_array(i, predictions, test_labels)\n",
- "\n",
- "plt.show()"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# Cheetah model로 업로드\n",
- "\n",
- "이제 훈련된 텐서플로우 모델을 Cheetah의 모델로 등록합니다. 모델 등록 시에는 Cheetah에서 제공되는 Python 라이브러리를 사용합니다."
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 24,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Starting model update to cheetah\n",
- "_USER_HOME = /home/jovyan\n",
- "Creating a model repository to: /home/jovyan/.cheetah_model/fashion_mnist\n",
- "version directory is: /home/jovyan/.cheetah_model/fashion_mnist/1/1/model.savedmodel\n",
- "WARNING:tensorflow:From /home/jovyan/.venv/tf2.3.0-keras2.4.0-py3.7-cuda10.1/lib/python3.7/site-packages/tensorflow/python/training/tracking/tracking.py:111: Model.state_updates (from tensorflow.python.keras.engine.training) is deprecated and will be removed in a future version.\n",
- "Instructions for updating:\n",
- "This property should not be used in TensorFlow 2.0, as updates are applied automatically.\n",
- "WARNING:tensorflow:From /home/jovyan/.venv/tf2.3.0-keras2.4.0-py3.7-cuda10.1/lib/python3.7/site-packages/tensorflow/python/training/tracking/tracking.py:111: Layer.updates (from tensorflow.python.keras.engine.base_layer) is deprecated and will be removed in a future version.\n",
- "Instructions for updating:\n",
- "This property should not be used in TensorFlow 2.0, as updates are applied automatically.\n",
- "INFO:tensorflow:Assets written to: /home/jovyan/.cheetah_model/fashion_mnist/1/1/model.savedmodel/assets\n",
- "TENSORFLOW model exported.\n",
- "Compress model to: /home/jovyan/.cheetah_model/fashion_mnist/1.zip\n",
- "Model compressed\n",
- "Saving notebook\n",
- "Notebook copied at: /home/jovyan/.cheetah_model/fashion_mnist/fashion_mnist.ipynb\n",
- "Create multipart encoder\n",
- "This model has a valid dictionary of tenorflow model history\n",
- "Decide to create a new model.\n",
- "328795\n",
- "Upload model file: 2%|▏ | 8.00k/321k [00:00<00:04, 73.3kB/s]\n",
- "Cheetah-model creation has been completed successfully. 201 \n"
- ]
- }
- ],
- "source": [
- "import cheetah.model.model as cheetah_model\n",
- "\n",
- "cheetah_model.upload_model(\n",
- " model_name='Fashion MNIST model',\n",
- " model_repository_name='fashion_mnist',\n",
- " model_type='tensorflow',\n",
- " model_description='Fashion MNIST model',\n",
- " share_type='private',\n",
- " tf_model=model,\n",
- " tf_history=tf_history\n",
- ")\n",
- "\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "tf2.3.0-keras2.4.0-py3.7-cuda10.1",
- "language": "python",
- "name": "tf2.3.0-keras2.4.0-py3.7-cuda10.1"
- },
- "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.5"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 4
-}