Многоканальная сверточная нейронная сеть - ошибка размера отрицательного измерения - PullRequest
0 голосов
/ 06 февраля 2020

Я хочу создать многоканальный CNN.

Я получил сообщение об ошибке на первом шаге Conv2d. (на рисунке первый слой ко второму слою)

Мой код как сильфон

_concat_embeded = keras.layers.concatenate([_embeding1, _embeding2], axis= -1)
_biCH_embeded = keras.layers.Reshape((2, self.lexicalMaxLength, charWeights.shape[1]))(_concat_embeded)
_1stConv = keras.layers.Conv2D(filters=512, kernel_size=(5, charWeights.shape[1]),
                               activation=tf.nn.relu)(_biCH_embeded)

Форма в _biCH_embeded равна [? 2, 131, 131] (мои вложения имеют 131 размерность = charWeights.shape [1])

Я хочу создать 512 фильтров, имеющих форму (5, 131).

Тогда, У меня есть сообщение: «Отрицательный размерный размер, вызванный вычитанием 5 из 2 для 'conv2d_1 / convolution' (op: 'Conv2D') с входными формами: [?, 2,33,131], [5,131,131,512]"

Где проблема?

Multi channel CNN for Text classification by Y. Kim

1 Ответ

0 голосов
/ 06 февраля 2020

Я нахожу проблему.

Я изменил свой тензор с помощью правила "channel_first" (2, 133, 133)

Но моя конфигурация Keras установлена ​​с помощью "channel_last"

Я изменяю правило изменения формы на "channel_last" (133,133,2) и обучение уже началось.

(Если вы хотите изменить конфигурацию Keras, посмотрите на "~ / .keras / keras. json")

...