Как расширить вывод встраиваемого слоя в керас

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

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 ответа

Решение

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

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'))

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

Другие вопросы по тегам