【问题标题】:How to get intermediate data between the layers in TensorFlow or keras?如何在 TensorFlow 或 keras 中的层之间获取中间数据?
【发布时间】:2025-11-26 19:10:01
【问题描述】:

我想查看层之间的中间数据。 如何获取层之间的中间输出数据?

【问题讨论】:

  • 了解您所询问的模型以及查看您尝试过但不适合您的一些代码会很有帮助。
  • 你可以做sess.run("someintermediateopname")。您可以在tf.get_default_graph().as_graph_def() 中看到所有中间操作名称

标签: neural-network tensorflow deep-learning keras


【解决方案1】:

可以使用tf.keras Models得到中间层的输出,

model.get_layer(layer_name).outputsmodel.layer[layer_index].output

此外,您可以访问intermediate layers ("nodes" in the graph) 的激活并在其他地方重复使用它们——这对于特征提取等非常有用。

import tensorflow as tf
vgg19 = tf.keras.applications.VGG19()
features_list = [layer.output for layer in vgg19.layers]
feat_extraction_model = keras.Model(inputs=vgg19.input, outputs=features_list)

img = np.random.random((1, 224, 224, 3)).astype("float32")
extracted_features = feat_extraction_model(img)

【讨论】: