【问题标题】:Access blob by index in Pycaffe在 Pycaffe 中按索引访问 blob
【发布时间】:2017-07-29 03:37:01
【问题描述】:

我可以使用名称访问网络中的 blob。 例如:

net.blobs['data'].data.shape  

返回上一层的形状。
有没有办法通过它的索引访问图层?我尝试了以下方法:

net.blobs[1].data.shape  

但我得到了一个无意义的 python 异常

KeyError: 1

我需要以上述方式访问它,因为在运行时,我没有想要访问的层的名称。
有谁知道这样做的方法吗?

【问题讨论】:

    标签: python machine-learning neural-network deep-learning caffe


    【解决方案1】:

    net.blobs 是一个Ordered Dictionary 对象,因此您不能通过数字索引访问其项目,您需要使用字符串键。

    您可以通过net.blobs.keys() 获取可用密钥的列表,您可以使用以下方式访问 blob:

    net.blobs[net.blobs.keys()[1]].data.shape
    

    但是你应该小心这样做:caffe 可能会在你的模型中引入辅助 blob(具体来说,split 层,当一个 "top" 被作为 "bottom" 馈送到多个层时)。

    【讨论】:

    • 另一种选择是使用net.blobs.keys() 而不是net._blob_names
    • @dorverbin 确实,这两个列表是相同的
    • @Shai 和 dorverbin 谢谢你们的回答!
    猜你喜欢
    • 1970-01-01
    • 2011-12-10
    • 2023-03-12
    • 2013-09-04
    • 1970-01-01
    • 2021-02-07
    • 2018-11-26
    相关资源
    最近更新 更多