2016-12-16 3 views
1

Я хочу написать собственный уровень свертки, такой же, как Convolution2D. Как это работает в Keras? Например, если Convolution2D (64, 3, 3, активация = 'Relu', input_shape = (3226226) Какое уравнение будет для выходных данных?Как точно работает слой Convolution2D в Keras?

+1

Keras построен на вершине Tensorflow и Theano. Что вы подразумеваете под «написать собственную свертку»? Вы хотите реализовать сверточный слой с помощью Tensorflow/Theano или с нуля? –

+0

Я хочу написать собственный cnn lib, но для тестирования используйте предварительно обработанную Keras или Tensorflow модель. Я хочу выяснить, как эти библиотеки используют входные данные и веса в слое свертки для получения выходных данных. – Denzelmon

ответ

3

Поскольку вы ввода формы изображения (266, 266, 3) [tf]/(3, 266, 266) [th], а число фильтров равно 64, а размер ядра - 3x3, и для заполнения я считаю, что заполнение по умолчанию равно 1, а шаг по умолчанию - 1.

Таким образом, выход 266x266x64.

output_width=output_height=(width – filter + 2*padding)/stride + 1 

в вашем коде, ширина = 266, фильтр = 3, дополняющий = 1, и шаг = 1.

Если у вас есть проблемы с пониманием основных понятий, я думаю, вы можете прочитать this cs231n post для получения дополнительной информации.

Чтобы понять процесс конверсии, нажмите here.

Смежные вопросы