IT's 우

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

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

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

디우 2021. 1. 18. 01:15
728x90

- CNN의 마지막 퍼즐 조각 Max Pooling에 대해 이해하기

- MaxPool2D 레이어의 사용방법과 역할

 

 

 

 

 

Convolution Layer로 출력된 특정맵의 개수 증가

Flatten이후 입력으로 사용할 데이터의 칼럼수가 증가

컴퓨터가 찾아야 하는 가중치 수 증가를 의미

 

 

Pooling

Flatten이후 사용되는 가중치의 수를 작게 유지하기 위해 입력으로 사용할 칼럼 수를 조정하는 목적

 

 

 

 

 

-Convolution Layer이후에 MaxPool Layer를 추가

 

 

 

 

Convolution Layer로 출력된 특징맵 이미지 사이즈가 MaxPool Layer를 거치면서 절반으로 줄어드는 것을 확인할 수 있다. -> MaxPool Layer를 통해 모델을 만들면 Flatten만 이용하여 만든 모델보다 가중치의 수가 줄어들 수 있다.

 

MaxPooling - 가장 큰 숫자를 유지하면서 사이즈를 줄이는 방식

 

 

 

 

-> 큰 값으로 표현된 부분은 Convolution Filter로 찾으려 했던 특징이 나타난 곳을 의미하고 있다. MaxPooling은 유의미한 정보를 남기면서 사이즈를 줄이려는 의도가 담겨있다.

 

 

 

-실습

 

1. Flatten만 사용

 

 

 

2. MaxPooling Layer 사용(특정맵의 이미지 가중치 줄어드는 것 확인!!!!)

 

 

 

 

<전체 소스코드>

 

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

###########################
# 데이터를 준비하고
(독립, 종속), _ = tf.keras.datasets.mnist.load_data()
독립 = 독립.reshape(60000, 28, 28, 1)
종속 = pd.get_dummies(종속)
print(독립.shape, 종속.shape)

###########################
# 모델을 만들고
X = tf.keras.layers.Input(shape=[28, 28, 1])

H = tf.keras.layers.Conv2D(3, kernel_size=5, 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(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/29791

728x90
반응형