如何在 Keras - Tensorflow 2.0 中的预训练 InceptionResNetV2 模型的不同层中找到激活的形状

How to find the shapes of activations in the different layers of a pretrained InceptionResNetV2 model in Keras - Tensorflow 2.0

我已经加载了 inceptionResNetV2 Keras 模型

base_model = tf.keras.applications.inception_resnet_v2.InceptionResNetV2(include_top=False, weights='imagenet')

我想找出不同层输出的激活的形状——假设标准输入大小为 (299x299)。

我的最终目标是就预训练模型的哪一部分保留未训练(也使用其他标准)做出明智的决定。

我试过了:

base_model.summary()

哪个returns:

同样当我尝试时:

换句话说,我得到的是激活张量的深度(过滤器的数量),而不是 Width/Height。

将 (299x299) 图像输入到网络后,我应该怎么做才能找到激活的形状?

你可以把input_shape放在函数里

base_model = tf.keras.applications.inception_resnet_v2.InceptionResNetV2(include_top=False, weights='imagenet', input_shape=(299, 299, 3))

但如果输入图像不是 299*299,这将引发错误,因此最好仅在您想知道形状时才使用它。