나는 보폭이 단지 정수 일 때 어떤 의미인지를 안다. (어느 단계에 의해 이미지에 필터를 적용해야 하는가?) 그러나 (1, 1)
또는 훨씬 더 차원 보폭은 어떨까요?컨볼 루션에서 2D 스트라이드의 의미는 무엇입니까?
4
A
답변
5
보폭은 필터가 입력 이미지 (텐서)를 따라 어떻게 움직이는지를 정의합니다. 다른 축을 따라 걷는 것을 다른 방법으로 멈추게 할 수는 없습니다. 예를 들어, stride=[1, 2]
은 0 축을 따라 한 번에 1 픽셀을 이동하고 1 축을 따라 한 번에 2 픽셀을 이동하는 것과 같은 의미입니다. 이 특정 조합은 일반적인 것이 아니지만 가능합니다.
Tensorflow API는 더 나아가서 4D 입력 텐서의 모든 축에 대해 사용자 정의 스트라이드를 허용합니다 (tf.nn.conv2d
참조). 이 API를 사용하면 각 이미지 (첫 번째 1
)와 각 입력 채널 (마지막 1
)을 처리해야하지만 2x2
개의 공간 치수를 적용해야한다는 점을 잘 알고있는 strides=[1, 2, 2, 1]
을 설정하는 것이 일반적입니다. 컨볼 루션에 관한 한 조작은 strides
배열에 대해 적용 가능입니다. 그러나 값은 똑같이 유용하지 않습니다.
자세한 내용은 this CS231n tutorial을 적극 권장합니다.