任务是获取pretrained cnn inceptionv3模型的每层输出。 例如,我向这个网络提供一个图像,我不仅想得到它的输出,而且想得到每一层(按层)的输出。
为了做到这一点,我必须知道每个层输出的名称。最后一层和前一层很容易做到:
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”)
获取名称的明显方法是绘制模型的图形。但事实并非如此。 还有一个issue与此相关。
我也试过:
所以,也许有人参与了这个预先培训的模型实现&;shipping&;正在阅读stackoverflow。
或者有人已经为这个模型取了层的名字。 请与我和我的社区分享。提前谢谢!
基本问题已经在List of tensor names in graph in Tensorflow中提出(并回答)
用你的方法来回答你的担心(2)-那确实有效(我已经做到了)。如果我不得不猜测,您可能不会使用类似字典的结构来存储节点,因此如果多个节点从同一个节点获取它们的输入(就像在inception模型中经常发生的那样),您可以将该输入节点多次插入到要存储/访问的内容列表中。如果只访问一次每个节点,那么基本上应该立即运行,而不会出现内存问题。
相关问题 更多 >
编程相关推荐