📝딥러닝 CNN 텐서플로우 이미지를 분류하는 딥러닝 해보기
기존에 DNN으로 해봤던 이미지 분류를 CNN을 이용해 분류해봤다
(https://coding-jisu.tistory.com/158)
import tensorflow as tf
from keras.models import Sequential
from keras.layers import Dense, Flatten
# 데이터 가져와서 학습용과 테스트용으로 분리
fashion_mnist = tf.keras.datasets.fashion_mnist
(X_train, y_train), (X_test, y_test) = fashion_mnist.load_data()
# CNN을 이용할것이기 때문에 4차원으로 변경(학습용과 테스트용 둘 다 변경)
X_train.shape # 결과값은 (60000, 28, 28, 1)
X_train = X_train.reshape(60000, 28, 28, 1)
X_test.shape # 결과값은 (10000, 28, 28)
X_test = X_test.reshape(10000, 28, 28, 1)
모델링후 학습/테스트
from keras.layers import Conv2D, MaxPooling2D
# 모델링
def build_model() :
model = Sequential()
model.add( Conv2D( filters= 64, kernel_size= (3,3), activation='relu', input_shape= (28, 28, 1) ) )
model.add( MaxPooling2D( pool_size= (2, 2), strides= 2 ) ) # 2칸씩 이동해야 겹치지 않기때문에 스트라이드 2로 설정
model.add( Conv2D( filters= 32, kernel_size= (2,2), activation='relu' ) )
model.add( MaxPooling2D( pool_size= (2, 2), strides= 2 ) )
model.add( Flatten() )
model.add( Dense( units= 128, activation='relu' ) )
model.add( Dense( units= 10, activation='softmax' ) )
# loss= y의 값을 확인하여 작성
model.compile( optimizer= 'adam', loss= 'sparse_categorical_crossentropy', metrics= [ 'accuracy' ])
return model
# 학습/테스트
epoch_history = model.fit(X_train, y_train, epochs= 5, validation_split= 0.2)
model.evaluate(X_test, y_test)
model.summary() 해서 확인해보면 CNN 파라미터는 필터 행렬 안에 들어가는 숫자이다
'인공지능 > Deep Learning' 카테고리의 다른 글
[Deep Learning] 원본 파일을 train / test 파일로 분리하기 (0) | 2023.01.02 |
---|---|
[Deep Learning] CNN 개와 고양이 사진을 분류하는 딥러닝 해보기 (0) | 2023.01.02 |
[Deep Learning] 이미지 파일 학습 데이터로 만들기(+이미지 증강) ImageDataGenerator (0) | 2022.12.30 |
[Deep Learning] 파이썬으로 압축 파일 풀기 zipfile (0) | 2022.12.30 |
[Deep Learning] CNN Pooling (0) | 2022.12.30 |
댓글