Keras CNN Archeticture - PullRequest
       6

Keras CNN Archeticture

0 голосов
/ 15 мая 2018

Мне нужно понять, как работает свертка в следующем коде и как изменяется форма массива после каждого слоя / шага

в Conv2D (32,3,1, ...) 32 - это числофильтров, но что такое 3 и 1?

, что я думаю, что у меня есть таблица n_rows (количество строк) и n_cols (количество столбцов).эта таблица изменена таким образом, что столбцы переносятся в другое измерение (число измерений было увеличено).

теперь двумерная свертка: каждая строка свернута с 32 фильтрами, какова будет результирующая форма матрицы после этого шага?свертка происходит с каждым сырьем отдельно или смешивает более одной строки?

Xc_train = X_train.reshape((n_rows, 1, n_cols, 1))

cnn = Sequential()
cnn.add(Convolution2D(32, 3, 1,
    border_mode="same",
    activation="relu",
    input_shape=(1, n_cols, 1)))
cnn.add(Convolution2D(32, 3, 1, border_mode="same", activation="relu"))

1 Ответ

0 голосов
/ 15 мая 2018

Это старый код, версия Keras 1.

Он должен быть обновлен до Keras 2 в соответствии с документацией.

  • Эти цифры 3 и 1 имеют размер фильтра 3 x 1 пикселей.
  • Форма входных данных должна быть (n_images, n_rows, n_cols, n_channels)

При padding = 'same' (border_mode в старом коде) размер изображения не изменится.

Единственное измерение, которое изменяется, это измерение каналов.

Все фильтры свертки всегда учитывают все входные каналы, смешивают их и приносят новое количество выходных каналов (это очень очень похоже на то, что делают плотные слои, за исключением того, что вы делаете это для всего изображения, для каждого пикселей).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...