on
[Python 파이썬] 이미지를 학습 시킬때, 텐서플로우로 사용하는 코드
[Python 파이썬] 이미지를 학습 시킬때, 텐서플로우로 사용하는 코드
텐서플로우를 실행한다.
import tensorflow as tf
Fashion MNIST 데이터는 tf.keras datasets API에 들어있다.
mnist = tf.keras.datasets.fashion_mnist
트레이닝과 테스트셋 가져온다.
(X_train, y_train), (X_test, y_test) = mnist.load_data()
학습이 잘 되도록 0과 1사이의 값으로 노멀라이징(normalizing) 한다.
X_train = X_train / 255.0 X_test = X_test / 255.0
이미지의 가로 세로를 전부 일렬로 만드는 작업이 flatten 이다.
모델을 만들어보자.
flatten : 알아서 이미지 사이즈 계산해서 인풋레이어를 만들어줌.
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Flatten model = Sequential()
인풋레이어를 만든다.
model.add( Flatten() )
히든레이어 1개를 만든다.
model.add( Dense(units = 128, activation='relu'))
아웃풋레이어를 만든다.
아웃풋 레이어는 10개로 분류하는 문제이므로, 노드 10개를 셋팅하고,
액티베이션 함수에는 소프트맥스(Softmax)를 설정한다.
model.add( Dense(units = 10 , activation = 'softmax'))
# 컴파일할때, 옵티마이저와 로스를 설정하는데, 2개로 분류할때의 loss는 binary_crossentropy 를 사용했다. # 3개 이상으로 분류하는 경우에 y값이 어떻게 들어있는지 확인한 후, # 1. y 값이 0,1,2,3,... 이런식으로 레이블 인코딩으로 되어있는 경우는 sparse_categorical_crossentropy를 사용하고 # 2. y값이 원핫인코딩으로 들어있는 경우는 categorical_crossentropy를 사용한다.
model.compile(optimizer = 'adam', loss = 'sparse_categorical_crossentropy', metrics = ['accuracy']) model.fit(X_train, y_train, epochs= 5)
from http://coding-gosu.tistory.com/43 by ccl(A) rewrite - 2021-12-02 01:26:49