Каков самый простой способ запустить часть модели?

#tensorflow #keras

#тензорный поток #keras

Вопрос:

Я имею дело с функциональным API Keras. Специально для моих экспериментов я использую модель Keras resnet50, полученную с:

 model = resnet50.ResNet50(weights='imagenet')
  

Очевидно, что для получения конечного вывода сети нам нужно ввести значение в заполнитель input_1 .

Мой вопрос в том, могу ли я как-то начать выводить этот график из relu слоя, который изображен внизу рисунка ниже, при условии, что я добавляю в него значение соответствующих размеров?

Я пытался добиться этого с помощью Keras functions . Что-то вроде:

 self.inp = model.input
self.outputs = [layer.output for layer in model.layers]
self.functor = K.function([self.inp, K.learning_phase()], [self.outputs[6], self.outputs[17]])
  

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

Является ли воссоздание графика с нуля моим лучшим вариантом здесь?

Спасибо

Вход сети - input_1. Интересующий слой Relu находится внизу

Комментарии:

1. просто любопытно, как вы создали, я имею в виду, это изображение графика вычислений?

2. @mujjiga наслаждайтесь отличными инструментами визуализации: D lutzroeder.github.io/netron

Ответ №1:

Если я вас правильно понял, вы можете просто указать входные и выходные узлы

 base_model = tf.keras.applications.ResNet50(weights='imagenet')
inference_model = tf.keras.Model(inputs=base_model.input, outputs=base_model.get_layer('any_layer_name').output)
  

Вы можете задать для вывода любое имя слоя

Комментарии:

1. Это выглядит чрезвычайно многообещающе! Попробую это и отмечу как принятое, если это сработает. Спасибо