当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 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."
我真的不确定什么是outputs_0,因为模型有两个输入,image1和image2,当一个图层返回它的输出时,它的相应输入是什么?
答案 0 :(得分:2)
在喀拉拉邦,如果您有一个模型:。
获取输出;
python -m pip install pytest
答案 1 :(得分:0)
无论模型的输入和输出如何,都没有关于图层中层的行为的规则。模型可能具有许多内部分支并且重用(或不重用)具有不同输入的相同层,从而产生不同的输出。一个图层只有"输出1(或更多)"如果该层被多次使用。
唯一确定的事情是:
(1) - 但是,具有许多输入/输出的模型实际上具有许多"输入/输出层"。每个输出层都有一个输出。如果你检查"模型"输出,你有很多,但如果你检查"层"输出,然后有几个输出层,每个输出层都有一个输出(仅输出0)。这同样适用于模型的输入与输入层。
(2) - 尽管如此,最常见的选择是只使用一次图层,因此只有"输出为0"而没有额外的输出。