如何在预训练的TensorFlow 2模型中访问和可视化权重?

时间:2020-01-12 15:51:22

标签: python neural-network tensorflow2.0 tf.keras resnet

因此,我已使用tf.keras框架在TensorFlow 2中重新训练了预训练的ResNet50 V2模型,并在顶部添加了两个Dense层。现在,我想在基本的ResNet模型中内部中可视化各层的权重。但是,用

重新加载保存的模型
model = tf.keras.models.load_model(path/to/model.hdf5)
model.summary()

结果

enter image description here

如您所见,ResNet模型的层没有单独列出,这意味着调用

model.layers[0].get_weights()[1]

只会导致

[7 7 3 64]

因此,如何在基本的ResNet50 V2模型中访问每个图层内的权重?

1 个答案:

答案 0 :(得分:3)

正确的答案是写

model.layers[0].summary()

代替

model.summary()

然后让我看看预训练模型中的所有层是什么。 因此,编写

model.layers[0].layers[0].get_weights(name='input_1')

将为我提供ResNet基本模型的输入权重。