Использование вывода внутреннего слоя, чтобы соответствовать модели Keras? - PullRequest
0 голосов
/ 18 февраля 2019

У меня есть модель M, которая имеет два входа: x_train1, x_train2.После прохождения тяжелых преобразований эти входные данные объединяются в один массив x1_x2.Позже он подключается к автоэнкодеру, где вывод должен быть x1_x2.Но когда я пытаюсь соответствовать модели, я получаю следующую ошибку:

ValueError: При подаче символьных тензоров в модель мы ожидаем, что у тензоров будет статический размер пакета.Получил тензор с формой: (Нет, 2080)

Я знаю, что проблема заключается в том, как я указываю ожидаемый результат.Я смог запустить код, используя фиктивный массив, такой как np.zeros ((96, 2080)), но не установив вывод внутреннего слоя.

Я делаю следующее, чтобы соответствовать модели:

autoencoder.fit([x_train1, x_train2], 
                autoencoder.layers[-7].output,
                epochs=50,
                batch_size=8,
                shuffle=True,
                validation_split=0.2)

Как я могу заставить Keras понять, что ожидаемый результат должен быть выходом внутреннего слоя с формой (number_of_input_images, 2080)?

1 Ответ

0 голосов
/ 18 февраля 2019

Я бы сделал следующее: Импортируйте класс Model из Keras и создайте дополнительную модель.

from tensorflow.python.keras.models import Model

# model = your existing model

new_model = Model(
  inputs = model.input,
  outputs = model.get_layer(name_of_desired_output_layer).output
)

Вот и все, теперь вы можете использовать новую модель и обучать ее вместо этого.

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