0

我正在尝试使用 pycaffe 创建 resnet 的 train.protxt ,但出现此错误:

文件“/data/hjy1312/Downloads/caffe-master/python/caffe/net_spec.py”,第 140 行,在 _to_proto
inp._to_proto(layers, names, autonames)
文件“/data/hjy1312/Downloads/caffe-master/ python/caffe/net_spec.py”,第 97 行,在 _to_proto
返回 self.fn._to_proto(layers, names, autonames)
文件“/data/hjy1312/Downloads/caffe-master/python/caffe/net_spec.py”,行162,在_to_proto中
assign_proto(layer, k, v)
文件“/data/hjy1312/Downloads/caffe-master/python/caffe/net_spec.py”,第64行,在assign_proto中
is_repeated_field = hasattr(getattr(proto, name), 'extend')
AttributeError: 'LayerParameter' 对象没有属性 'num_output'

设置断点并运行我的代码后,我发现我的代码错误是这一行:

from caffe import layers as L, params as P, to_proto  
return to_proto(acc, loss)

但是我不知道to_proto有什么问题,有人可以帮助我吗?

非常感谢!

4

1 回答 1

0

正如您所指出的,执行to_protot()函数时会出现错误,但错误不在函数本身,而是在提供的输入中。
看看你收到的错误信息

AttributeError: 'LayerParameter' object has no attribute 'num_output'

从错误消息中可以理解,您提供的网络规范有一个图层(可能不止一个),num_output该图层具有图层本身的属性(而不是图层参数的属性)。

为了修复此错误,您需要检查定义图层的代码,并查看num_output分配给图层参数而不是直接分配给图层的代码。

于 2017-09-17T06:00:40.110 回答