我试图用Nervana Neon做fprop,然而,当我去运行模型fprop时,我得到以下错误:
AttributeError:' NoneType'对象没有属性' sizeI'
我非常关注fprop的例子。我使用他们的ImageLoader
训练了模型,现在我想在系统中使用结果。我尝试使用model.get_outputs(ArrayIterator(myData))
但仍然有问题。有什么想法吗?
xdev = np.zeros((3 * 224 * 224, batch_size), dtype=np.float32)
xbuf = np.zeros((3 * 224 * 224, batch_size), dtype=np.float32)
img = to_neon(new_img) # function to flatten image to (3 * 224 * 224, )
xbuf[:,0] = img[:, 0]
model = model.load_params("/path/to/params.p")
out = model.fprop(xdev)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-35-fc650f5dcbc4> in <module>()
----> 1 out = model.fprop(xdev)
/root/neon/neon/models/model.pyc in fprop(self, x, inference)
213 Tensor: the output of the final layer in the model
214 """
--> 215 return self.layers.fprop(x, inference)
216
217 def bprop(self, delta):
/root/neon/neon/layers/container.pyc in fprop(self, inputs, inference, beta)
248 x = l.fprop(x, inference, beta=beta)
249 else:
--> 250 x = l.fprop(x, inference)
251
252 if inference:
/root/neon/neon/layers/layer.pyc in fprop(self, inputs, inference, beta)
787 self.inputs = inputs
788 self.be.fprop_conv(self.nglayer, inputs, self.W, self.outputs, beta=beta,
--> 789 bsum=self.batch_sum)
790 return self.outputs
791
/root/neon/neon/backends/nervanagpu.pyc in fprop_conv(self, layer, I, F, O, X, bias, bsum, alpha, beta, relu, brelu, slope, repeat)
1936 repeat: used in benchmarking
1937 """
-> 1938 assert layer.sizeI == I.size
1939 assert layer.sizeF == F.size
1940 assert layer.sizeO == O.size
AttributeError: 'NoneType' object has no attribute 'sizeI'
答案 0 :(得分:0)
在堆栈跟踪上向后工作......
问题来自于sizeI
为layer
时尝试取消引用layer
对象的None
属性:
-> 1938 assert layer.sizeI == I.size
我称之为霓虹灯库中的一个错误(backends/nervanagpu.py
) - 它应该高于1938行,如:
assert isinstance(layer, TheExpectedLayerClass)
在第788行之前,layers/layer.py
中可能已经添加了类似的检查:
assert isinstance(self.nglayer, TheExpectedLayerClass)
但是经常在第三方库中遇到这样的错误只是表明该库未按照预期的方式使用。这些错误只是通过不进行适当的检查来简单地模糊真正的原因,也许它清楚了解了什么。
因此,请查看文档/教程,也许您错过了某些初始化/设置步骤,某些其他参数,等等。或者,如果您对霓虹灯更熟悉,请继续在堆栈跟踪上向后你会发现缺少的东西。