получить вывод промежуточных слоев, используя керасы в качестве бэкэнда - PullRequest
0 голосов
/ 18 января 2019

Я хочу извлечь четыре промежуточных слоя моей модели.Вот как я настраиваю свою функцию:

K.function([yolo_model.layers[0].input, yolo_model.layers[4].input, K.learning_phase()],
                                 [yolo_model.layers[1].layers[17].output,
                                  yolo_model.layers[1].layers[27].output,
                                  yolo_model.layers[1].layers[43].output,
                                  yolo_model.layers[1].layers[69].output])

Я всегда получал ошибку, что tensorflow.python.framework.errors_impl.InvalidArgumentError: You must feed a value for placeholder tensor 'input_3' with dtype float and shape [?,416,416,3] Кажется, мой вход имеет ошибку измерения или типа, но я использовал этот вход для моей модели train_on_batch или прогнозирования, и это сработало.Я получил ту же ошибку, даже когда я передал np.zeros ((1,416,416,3)) в него.Еще одна проводная вещь - у меня нет input_3, так как моя модель принимает только два входа.Я понятия не имею, откуда взялся тензор input_3.

Заранее спасибо, если кто-нибудь может дать мне несколько советов.

1 Ответ

0 голосов
/ 21 января 2019

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

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