我想在slim vgg16 net中得到fc6层的输出,有什么好办法吗?
其实我已经想出了一种可能的解决方案,请帮我确认它的正确性。
fc6层的输出其实就是Relu
op的结果,即激活函数。我发现它的名字是vgg_16/fc6/Relu
通过执行tf.get_default_graph().get_operations()
. 那么,也许结果tf.get_default_graph().get_tensor_by_name('vgg_16/fc6/Relu:0')
就是我想要的?
从我从用于图像分割的 Tensorflow 代码(链接)中提取的内容中,您可以如何在预定义的 TF-Slim 模型的一层提取输出:
from tensorflow.contrib.slim import nets
last_layer_logits, end_points = nets.vgg.vgg_16(img_batch, num_classes=num_classes)
# examples
pool4_features = end_points['vgg_16/pool4']
fc8_features = end_points['vgg_16/fc8']
如果你在实际的 vgg_16 模型之上使用另一个 argscope,你应该在 vgg_16 argscope 之前添加它:
fc8_features = end_points['my_great_model_argscope/' + 'vgg_16/fc8']
希望这可以帮助!
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句