任务是获取pretrained cnn inceptionv3模型的每层输出。 例如,我向这个网络提供一个图像,我不仅要获得它的输出,还要获得每个图层的输出(逐层)。预训练初始v3模型(tensorflow)的图层名称
为了做到这一点,我必须知道每个图层输出的名称。这是很容易为去年和前最后一层做:
sess.graph.get_tensor_by_name('pool_3:0')
sess.graph.get_tensor_by_name('softmax:0')
(名称pool_3:0和SOFTMAX:0在相关模型的来源列出)
但是如果我想要得到的输出不仅是最后一层还是最后一层,还有前置前置,前置前置前置等,这个模型的任何层的输出?
然后我必须知道图层名称。类似的问题has been asked 在stackoverflow上,但只有名称为pre-last和last层,它们也可以在源代码中注释('pool_3:0','softmax:0')
显而易见的方法获取名称是绘制模型的图形。但情况并非如此because graph-drawing tool simply crashes。 也有一个issue与此相关。
我也试过:
- 要打印所有图节点名称和构建图形只能用从节点名称的信息。但节点名称相当隐秘。另外节点之间的连接并不是那么明显,因为inception v3 architecture所以不知道节点之间的连接,这种方法就好像打破了谜团的代码:)
- 然后我试图用自己写的工具绘制这个模型的图(获得给定节点的所有输入(比如'pool_3:0'),然后得到每个'pool_3:0'输入的所有输入等等。这种方法适用于简单模型,但是当我尝试将它用于inceptionv3从图像识别教程的实现,我已经有16 GB的RAM使用,然后10 GB的交换,然后我只是停下来看看引擎盖下。也许有一些周期图(但如果网络是如何前馈?)
所以,也许有人参加了这个预训练的m odel实现&'shipping'正在读取计算器。
或者也许有人已经得到了这个模型的图层名称。 请与我和ml社区分享。提前致谢!
实际上,tensorflow附带的pretrained inceptionv3模型缺少了model.txt文件。所以我已经问过我可以在哪里下载model.txt文件,并将其发布到您提到的问题的评论中。至于(2) - 是的!我真的忘了重复条目的可能性。你的回答帮了我很多! –