2016-05-02 5 views
2

Я читаю учебник Deep MNIST for Experts. В начале раздела Densely Connected Layer говорится, что «[...] размер изображения уменьшен до 7x7».Как изображение уменьшено до 7x7 от TensorFlow?

Кажется, я не могу понять, как они попадают в эту матрицу 7x7. Насколько я понимаю, мы начинаем с 28x28 и имеем два слоя ядер свертки 5x5. 28, деленная на 4, равна 7, но не делится на 5.

ответ

3

5x5 - это «размер окна» для слоя свертки. Он не уменьшает размер изображения: TensorFlow и Caffe, среди прочего, автоматически снабжают пограничную панель. Факел, чтобы назвать один, требует, чтобы вы добавили эту границу (в этом случае по 2 места в каждом направлении).

Каждое ядро ​​(фильтр) рассматривает подмножество 5x5 всего изображения. Например, чтобы вычислить значение для позиции [7, 12] на изображении, процесс свертки рассматривает «окно» [5: 9, 10:14]. Он умножает каждый из этих 25 значений на соответствующий вес и суммирует эти продукты. Эта сумма становится значением в следующем слое для центрального квадрата [7,12].

Этот процесс повторяется для каждой позиции на изображении и для каждого ядра в слое.

Как уже упоминалось, Aenimated1, уменьшение размера происходит от двух пулов 2x по два. Эта операция делит изображение на 2x2 окна, передавая максимальное значение (или другое представление, если пользователь укажет) каждого квадрата 2x2. Это уменьшает изображение 28x28 до 14x14; второй пул уменьшает его до 7x7.

1

Уменьшение «размера изображения» является результатом добавления слоев объединения после каждого сверточного слоя. Каждое объединение 2х2 уменьшает ширину и высоту в 2 раза, таким образом получая матрицу 7x7 после обоих операций объединения.