CNN은 이미지 전체를 작은 단위로 쪼개어 각 부분을 분석하는 것이 핵심입니다.
CNN은 이미지를 인식하기 위해 패턴을 찾는 데 유용합니다. 데이터를 통해 특징을 스스로 학습하고, 패턴을 사용하여 이미지를 분류하고 특징을 수동으로 추출할 필요가 없습니다. 또한 기존 네트워크를 바탕으로 새로운 인식 작업을 위해 CNN을 재학습하여 사용하는 것이 가능합니다.
그림과 같이 convolution kernel로 합성곱을 통해 feature Map을 만든다.
pooling은 특징은 가지되, 컴퓨팅 효율을 높게 해준다.
그림과 같이 2 * 2 의 사이즈로 2 칸씩 띄어서 Pooling을 해주면 크기가 줄어든다.
아래는 코드 예시다.
model = tf.keras.models.Sequential([
tf.keras.layers.Conv2D(32, (3,3), activation='relu', input_shape=(28, 28, 1)),
tf.keras.layers.MaxPooling2D(2, 2)])
'인공지능 > 텐서플로우' 카테고리의 다른 글
구글 코랩에서, 인터넷에 있는 파일을 다운로드 하는 방법 (0) | 2022.06.15 |
---|---|
이미지가 주어졌을 때, 컨볼루션한 결과로 나오는, feature map의 사이즈를 구하는 공식 (0) | 2022.06.14 |
분류의 문제에서 loss 함수를 categorical_crossentropy로 설정할 상황 (0) | 2022.06.14 |
레이블링된 y값을 to_categorical 함수 이용해서 원핫인코딩으로 바꾸기 (0) | 2022.06.14 |
텐서플로우의 모델 중, 네트워크와 웨이트를 따로 저장하고 불러오는 방법 (0) | 2022.06.14 |