https://opentutorials.org/module/5268/29791
9강 MaxPool2D
- dense(Dense) 레이어에서는 84개의 수식이 만들어지고 각 수식마다 2400개의 가중치와 1개의 bias가 필요하므로 총 필요한 가중치의 개수는 84 * (2400 + 1) = 201684
- Convolution layer에서 아웃풋인 칼럼이 커질수록 필요한 가중치의 개수도 많아짐
Pooling
Flatten 이후에 사용되는 가중치 개수를 작게 유지하기 위해 입력으로 사용할 칼럼수를 조정하는 것이 목적
가로세로 2,2의 영역에서 가장 큰 수를 남기는 것. -> MaxPooling
10강 MaxPool2D (실습)
실습 코드는 드라이브에 업로드
# 데이터를 준비하고
(독립, 종속), _ = 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()
'스터디📖 > ML, DL' 카테고리의 다른 글
Tensorflow 이미지 분류(CNN) - 5, 6강 다섯번째 딥러닝 1 - Flatten (0) | 2021.10.03 |
---|---|
Tensorflow 이미지 분류(CNN) - 1, 2, 3, 4강 데이터와 차원 & 이미지 데이터 이해 (0) | 2021.09.28 |
Tensorflow (python) - 21강 부록2: 모델을 위한 팁 (0) | 2021.09.28 |
Tensorflow (python) - 20강 부록1: 데이터를 위한 팁 (0) | 2021.09.28 |
Tensorflow (python) - 18, 19강 네번째 딥러닝 - 신경망의 완성:히든레이어 (0) | 2021.09.28 |