250x250
vg-rlo
vg-rlo
vg-rlo
전체 방문자
오늘
어제
  • CATEGORY (114)
    • 일상과 기록 (12)
    • REVIEW (11)
    • DATA (20)
      • ML and DL (6)
      • NLP (2)
      • Growth hacking (2)
      • Note (10)
    • CODE (46)
      • Algorithm and Data Structur.. (2)
      • Coding Test (34)
      • DB (2)
      • Python (6)
      • Linux (2)
      • Github (0)
    • Portfolio (6)
      • Pratice and Tutorials (2)
      • Toy Projects (2)
      • Competitions (2)
      • Data Analysis (0)
    • ISSUE (17)
    • 🛠... (0)

블로그 메뉴

  • Github

인기 글

티스토리

hELLO · Designed By 정상우.
vg-rlo

vg-rlo

DATA/ML and DL

[Tensorflow] mnist 코드

2020. 12. 30. 10:24

사용 라이브러리

  • tensorflow: 프레임워크 
  • keras: 프레임워크
  • numpy: array 연산 
  • matplotlib: 시각화 
import tensorflow as tf
from tensorflow import keras
import numpy as np
import matplotlib.pyplot as plt

 

모델 구현 코드

  • keras.models.Sequential
  • keras.layers.Conv2D
  • keras.layers.MaxPool2D
  • keras.layers.Flatten
  • keras.layers.Dense
mnist = keras.datasets.mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()   
x_train_norm, x_test_norm = x_train / 255.0, x_test / 255.0
x_train_reshaped=x_train_norm.reshape( -1, 28, 28, 1)  
x_test_reshaped=x_test_norm.reshape( -1, 28, 28, 1)

model=keras.models.Sequential()
model.add(keras.layers.Conv2D(16, (3,3), activation='relu', input_shape=(28,28,1)))
model.add(keras.layers.MaxPool2D(2,2))
model.add(keras.layers.Conv2D(32, (3,3), activation='relu'))
model.add(keras.layers.MaxPooling2D((2,2)))
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(32, activation='relu'))
model.add(keras.layers.Dense(10, activation='softmax'))

model.compile(optimizer='adam',
             loss='sparse_categorical_crossentropy',
             metrics=['accuracy'])

 

모델 구조 

model.summary()

Model: "sequential_1"
_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
conv2d_2 (Conv2D)            (None, 26, 26, 16)        160       
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 13, 13, 16)        0         
_________________________________________________________________
conv2d_3 (Conv2D)            (None, 11, 11, 32)        4640      
_________________________________________________________________
max_pooling2d_3 (MaxPooling2 (None, 5, 5, 32)          0         
_________________________________________________________________
flatten_1 (Flatten)          (None, 800)               0         
_________________________________________________________________
dense_2 (Dense)              (None, 32)                25632     
_________________________________________________________________
dense_3 (Dense)              (None, 10)                330       
=================================================================
Total params: 30,762
Trainable params: 30,762
Non-trainable params: 0
_________________________________________________________________

 

모델 학습 

# 모델 훈련
model.fit(x_train_reshaped, y_train, epochs=10)

Epoch 1/10
1875/1875 [==============================] - 9s 5ms/step - loss: 0.1916 - accuracy: 0.9408
Epoch 2/10
1875/1875 [==============================] - 9s 5ms/step - loss: 0.0647 - accuracy: 0.9803
Epoch 3/10
1875/1875 [==============================] - 9s 5ms/step - loss: 0.0472 - accuracy: 0.9850
Epoch 4/10
1875/1875 [==============================] - 9s 5ms/step - loss: 0.0376 - accuracy: 0.9885
Epoch 5/10
1875/1875 [==============================] - 9s 5ms/step - loss: 0.0295 - accuracy: 0.9908
Epoch 6/10
1875/1875 [==============================] - 9s 5ms/step - loss: 0.0256 - accuracy: 0.9916
Epoch 7/10
1875/1875 [==============================] - 9s 5ms/step - loss: 0.0203 - accuracy: 0.9935
Epoch 8/10
1875/1875 [==============================] - 9s 5ms/step - loss: 0.0174 - accuracy: 0.9945
Epoch 9/10
1875/1875 [==============================] - 9s 5ms/step - loss: 0.0145 - accuracy: 0.9954
Epoch 10/10
1875/1875 [==============================] - 9s 5ms/step - loss: 0.0124 - accuracy: 0.9961

<tensorflow.python.keras.callbacks.History at 0x7f66a544e310>
    'DATA/ML and DL' 카테고리의 다른 글
    • [Scikit-learn]Linear Regression(선형 회귀)
    • 딥러닝과 신경망
    • 텍스트 다루기
    • 검증용 데이터(validation set) 사용하는 이유
    vg-rlo
    vg-rlo
    🛠블로그 공사중.. Keep going! 🤔 (Profile - Dinotaeng®)

    티스토리툴바