繁体   English   中英

如何获取SLIM vgg16网络中某一层的输出?

[英]How to get the output of a certain layer in the SLIM vgg16 net?

我想在苗条的vgg16网络中获取fc6层的输出,有什么好方法吗?

实际上,我已经找到了一种可能的解决方案,请帮助我确认其正确性。

fc6层的输出实际上是Relu op的结果,即激活函数。 通过执行tf.get_default_graph().get_operations() ,我发现它的名称是vgg_16/fc6/Relu 因此,也许我想要的是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']

希望这可以帮助!

暂无
暂无

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

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