케라스에서 컨볼루션 층을 추가하는 함수는 Conv2D()입니다. 다음과 같이 컨볼루션 층을 적용해 MNIST 손글씨 인식률을 높여 봅시다.
model.add(Conv2D(32, =(3,3), =(28,28,1), ='relu'))
여기에 입력된 네 가지 인자는 다음과 같습니다.
1 | 첫 번째 인자: 커널을 몇 개 적용할지 정합니다. 여기서는 32개의 커널을 적용했습니다.
2 | kernel_size: 커널의 크기를 정합니다. kernel_size=(행, 열) 형식으로 정하며, 여기서는 3×3 크기의 커널을 사용하게끔 정했습니다.
3 | input_shape: Dense 층과 마찬가지로 맨 처음 층에는 입력되는 값을 알려 주어야 합니다. input_shape=(행, 열, 색상 또는 흑백) 형식으로 정합니다. 만약 입력 이미지가 색상이면 3, 흑백이면 1을 지정합니다. 여기서는 28×28 크기의 흑백 이미지를 사용하도록 정했습니다.
4 | activation: 사용할 활성화 함수를 정의합니다.
이어서 컨볼루션 층을 하나 더 추가해 보겠습니다. 다음과 같이 커널의 수는 64개, 커널의 크기는 3×3으로 지정하고 활성화 함수로 렐루를 사용하는 컨볼루션 층을 추가합니다.
model.add(Conv2D(64, (3, 3), ='relu'))