繁体   English   中英

从 VGG16 架构微调 model 中的展平层获取值

[英]Get the values from the flatten layer in a VGG16 architecture fine-tuned model

在使用此方法“flatten=model.layers[18].output”使用图像数据集对其进行微调后,我试图获取 flatten 层的值。 这将返回一个符号张量,无法使用 .eval() 方法访问它并返回此错误:

[ValueError:无法使用给定的 session 来评估张量:张量的图表与会话的图表不同。]

您能否告诉我是否有一种方法可以提取网络特定层的值,以便将其用作 numpy 数组来实现不同的技术?

我使用 Keras 来构建 model。

谢谢你。

可以使用 keras 函数获取中间层的 output

import tensorflow as tf

vgg16 = tf.keras.applications.VGG16()
flatten_output = tf.keras.backend.function(vgg16.input, vgg16.get_layer('flatten').output)

image = tf.random.uniform([1, 224, 224, 3])
result = flatten_output(image)

print('Flatten layer outputs:', result)
print('Shape:', result.shape)

output:

Flatten layer outputs: [[0.00208812 0.00597608 0.00412651 ... 0.00086833 0.         0.00281419]]
Shape: (1, 25088)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM