Как расширить вывод встраиваемого слоя в керас - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть следующая сеть:

model = Sequential()
model.add(Embedding(400000, 100, weights=[emb], input_length=12, trainable=False))

model.add(Conv2D(256,(2,2),activation='relu'))

вывод из слоя внедрения имеет форму (batchSize, 12, 100). Слой conv2D требует ввода формы (batchSize, filter, 12, 100), и я получаю следующую ошибку:

 Input 0 is incompatible with layer conv2d_1: expected ndim=4, found ndim=3

Итак, как я могу расширить вывод из слоя внедрения, чтобы он соответствовал слою Conv2D?

Я использую Keras с Tensorflow в качестве задней части.

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Мне удалось добавить другое измерение со следующим фрагментом кода:

model = Sequential()
model.add(Embedding(400000, 100, weights=[emb], input_length=12, trainable=False))
model.add(Lambda(lambda x: expand_dims(x, 3)))
model.add(Conv2D(256,(2,2),activation='relu'))
0 голосов
/ 13 сентября 2018

Добавление измененного слоя должно быть способом перехода https://keras.io/layers/core/#reshape В зависимости от конкретной ситуации Conv1D холодно, хотя работают.

...