IT's 우

생활코딩 머신러닝야학_Tensorflow 102 - 이미지 분류(CNN)/ 다섯번째 딥러닝 완성 - LeNet 본문

생활코딩/머신러닝(텐서플로우(python))

생활코딩 머신러닝야학_Tensorflow 102 - 이미지 분류(CNN)/ 다섯번째 딥러닝 완성 - LeNet

디우 2021. 1. 19. 23:10
728x90

Lenet - 5 모델을 완성하고, CIFAR10 이미지 학습 진행

 

- LeNet

밑의 그림은 CNN모델 중에서 손글씨 이미지를 학습한 Yann LeCun교수의 Lenet - 5이다.

 

- LeNet 구성코드

 

# 1. 과거의 데이터를 준비합니다.

(독립, 종속), _ = tf.keras.datasets.mnist.load_data()

독립 = 독립.reshape(60000, 28, 28, 1)

종속 = pd.get_dummies(종속)

print(독립.shape, 종속.shape)

 

# 2. 모델의 구조를 만듭니다.

X = tf.keras.layers.Input(shape=[28, 28, 1])

#padding='same' : Convolution의 결과인 특징맵의 사이즈가 입력 이미지와 동일하게 출력이 된다.

H = tf.keras.layers.Conv2D(6, kernel_size=5, padding='same', activation='swish')(X)

H = tf.keras.layers.MaxPool2D()(H)

H = tf.keras.layers.Conv2D(6, kernel_size=5, activation='swish')(H)

H = tf.keras.layers.MaxPool2D()(H)

 

H=tf.keras.layers.Flatten()(H)

H = tf.keras.layers.Dense(120, activation='swish')(H)

H = tf.keras.layers.Dense(84, activation='swish')(H)

Y = tf.keras.layers.Dense(10, activation='softmax')(H)

model = tf.keras.models.Model(X, Y)

model.compile(loss='scategorical_crossentropy', metrics='accuracy')

 

 

 

 

 

 

-실습 ( LeNet - 5 모델을 만들어보고, 모델에 Cifar10 이미지 학습시켜보기 )

 

 

1. Mnist로 LeNet 구성하기

 

-LeNet모델에 Cifar 10 학습시켜보기

 

 

 

 

 

 

 

-실습 전체 소스코드(Cifar 10)

 

###########################
# 라이브러리 사용
import tensorflow as tf
import pandas as pd

###########################
# 데이터를 준비합니다.
(독립, 종속), _ = tf.keras.datasets.cifar10.load_data()
종속 = pd.get_dummies(종속.reshape(50000))
print(독립.shape, 종속.shape)

###########################
# 모델을 완성합니다.
X = tf.keras.layers.Input(shape=[32, 32, 3])

H = tf.keras.layers.Conv2D(6, kernel_size=5, activation='swish')(X)
H = tf.keras.layers.MaxPool2D()(H)

H = tf.keras.layers.Conv2D(16, kernel_size=5, activation='swish')(H)
H = tf.keras.layers.MaxPool2D()(H)

H = tf.keras.layers.Flatten()(H)
H = tf.keras.layers.Dense(120, activation='swish')(H)
H = tf.keras.layers.Dense(84, activation='swish')(H)
Y = tf.keras.layers.Dense(10, activation='softmax')(H)

model = tf.keras.models.Model(X, Y)
model.compile(loss='categorical_crossentropy', metrics='accuracy')

###########################
# 모델을 학습하고
model.fit(독립, 종속, epochs=10)

###########################
# 모델을 이용합니다.
pred = model.predict(독립[0:5])
pd.DataFrame(pred).round(2)

# 정답 확인
종속[0:5]

# 모델 확인
model.summary()

 

 

 

 

 

출처 : 생활코딩 www.opentutorials.org/module/5268/29792

728x90
반응형