ConvLSTM2D для сети один-ко-многим - PullRequest
0 голосов
/ 03 декабря 2018

Я хочу использовать слой ConvLSTM2D для регрессионной модели с несколькими выходами.Одно изображение должно быть входным, и в зависимости от изображения определенное количество значений должно быть выходом, дополненным нулями.Мой вопрос: какую функцию использовать для того же изображения, что и для ввода?

Если я использую

import keras.backend as K
K.tile(input, number_timesteps)

Я получаю сообщение об ошибке: AttributeError: объект Tensor имеетнет атрибута '_keras_history'.Есть ли другой способ решить эту проблему или мне нужно вводить одно и то же изображение несколько раз?

1 Ответ

0 голосов
/ 03 декабря 2018

Все теразы керас в модели должны быть получены с помощью Layer.
Когда вы используете бэкэнд-функции, вы не используете слои.

Вы можете использовать Lambda слои для переноса пользовательскихи бэкэнд-функции:

tiledOutputs = Lambda(lambda x: K.tile(x, number_timesteps))(imageInputs)   

Или добавить слой в последовательную модель:

model.add(Lambda(lambda x: K.tile(x, number_timesteps)))

Но вы, вероятно, ищете K.stack([x]*number_timesteps, axis=1).

...