如何获得keras层';多输入模型中的输出?
当Keras模型接受多个输入时,其层的行为就像只有一个输入。这可能是一个错误如何获得keras层';多输入模型中的输出?,keras,keras-layer,Keras,Keras Layer,当Keras模型接受多个输入时,其层的行为就像只有一个输入。这可能是一个错误 model = vgg19.VGG19(weights='imagenet', include_top=False, pooling='avg') model(image1) model(image2) model.get_output_at(0) model.get_output_at(1) #no error here outputs_0 = [layer.get_output_at(0) for layer
model = vgg19.VGG19(weights='imagenet', include_top=False, pooling='avg')
model(image1)
model(image2)
model.get_output_at(0)
model.get_output_at(1)
#no error here
outputs_0 = [layer.get_output_at(0) for layer in model.layers]
#no error here
outputs_1 = [layer.get_output_at(1) for layer in model.layers]
#error "Asked to get output at node 1, but the layer has only 1 inbound nodes."
我真的不确定输出是什么,因为模型有两个输入,image1和image2,当一个层返回其输出时,它对应的输入是什么?无论模型的输入和输出如何,都没有关于层在模型内的行为的规则。一个模型可能有许多内部分支,并使用不同的输入重用(或不重用)同一层,从而产生不同的输出。如果一个图层被多次使用,则该图层将仅具有“1(或更多)”输出
唯一确定的事情是:
- 输入层将匹配模型的输入(见1)
- 输出层将匹配模型的输出(请参见1)李>
- 但在这两者之间,任何事情都是可能的(见2)李>
(2) -尽管如此,最常见的选项是层只使用一次,因此只有“0处的输出”,而没有额外的输出 在keras中,如果您有一个模型:
from keras.models import Model
print(<your_model>.summary())
<new_model> = Model(inputs=<your_model>.input, outputs=<your_model>.get_layer('your layer_name').get_output_at(<index_number>))
<your_output> = <new_model>.predict(<your_input>)
来自keras.models导入模型
打印(.summary())
=模型(输入=.input,输出=.get_layer('your layer_name')。get_output_at())
=.predict()