728x90
CNN
CNN이란 Convoulutional Neural Networks이다.
Convolution
컨볼루션 계층은 이미지 features를 학습하는 계층이므로 CNN에서 가장 중요한 부분이다.
Image features란, Edges,Colors 그리고 Patterns/Shapes와 같은 것들을 말한다.
Stride
커널을 이동할 때 몇 칸 이동할 것이냐를 정해주는 것이 Stride=number이다.
위 사진은 Stride=1
위사진은 Stride=2이다.
Padding
5X5의 이미지를, 3X3의 feature로 컨볼루션 하면 결과는 3X3의 featuremap이 된다.
이렇게 되면 이미지의 사이즈가 줄어드므로, 사이즈를 조절하기 위해서 패딩을 사용한다
그림으로 표현하면 아래 사진과 같다.
Pooling
특징은 그대로 가지되, 컴퓨팅 효율을 높인다.
보통 MaxPooling과 AveragePooling을 많이 사용한다.
위 사진과 같이 Flattening하기 전에 사이즈를 줄이는 방법이다.
feature map의 사이즈를 구하는 공식
컨볼루션 결과로 나오는 행렬 사이즈를 계산하는 방법은 다음과 같다.
( I - K + 2P ) / S + 1
위 식에대한 설명은 아래 사진과 같다.
'인공지능 > 딥러닝' 카테고리의 다른 글
딥러닝 : 이미지 데이터 증강 / Image Augmentation (0) | 2022.12.30 |
---|---|
딥러닝 : CNN 말과 사람 분류하기 / CNN모델링 방법 , 이미지파일을 학습 데이터로 만드는 방법(ImageDataGenerator) (0) | 2022.12.30 |
딥러닝 : 레이블링된 y값을 원핫 인코딩으로 바꾸기 tf.keras.utils.to_categorical() / Mnist 손글씨 숫자 예측 (0) | 2022.12.29 |
딥러닝 : Tensorflow의 모델을 저장하고 불러오는 방법 (0) | 2022.12.29 |
딥러닝 : Flatten()라이브러리 없이 이미지를 평탄화 하는 방법과 Validation_data= 파라미터 사용법 (0) | 2022.12.29 |