Я знаю, какое значение имеет шаг, когда это просто целое число (на каком шаге вы должны применить фильтр к изображению). Но как насчет (1, 1)
или даже более размерного шага?
В чем смысл двумерного шага в свертке?
Ответы (1)
Шаг определяет, как фильтр перемещается по входному изображению (тензору). Ничто не мешает вам двигаться по разным осям по-разному, например, stride=[1, 2]
означает перемещение на 1 пиксель за раз по оси 0 и на 2 пикселя за раз по оси 1. Эта конкретная комбинация не распространена, но возможна.
Tensorflow API идет еще дальше и позволяет настраивать шаг для всех осей четырехмерного входного тензора (см. tf.nn.conv2d
). При использовании этого API нередко устанавливается strides=[1, 2, 2, 1]
, что имеет смысл: он должен обрабатывать каждое изображение (первый 1
) и каждый входной канал (последний 1
), но применять 2x2
шаг пространственного измерения. Что касается свертки, операция применима для любого массива strides
, однако не значения одинаково полезны.
Настоятельно рекомендуем это руководство по CS231n для более подробной информации.