我試圖模擬repeat-until循環中Theano暗紋循環錯誤:在Theano
def method_a(arguments):
...
return result, theano.scan.until(t.eq(a,b))
我遇到了以下奇怪的行爲。讓b
是一個常數。每當a
是一個常數,一切工作正常。然而,當a
是標量,我得到涉及優化的錯誤:
ERROR (theano.gof.opt): SeqOptimizer apply <theano.gof.opt.EquilibriumOptimizer object at 0x110d0d8d0>
ERROR (theano.gof.opt): Traceback:
ERROR (theano.gof.opt): Traceback (most recent call last):
File "[...]/lib/python2.7/site-packages/theano/gof/opt.py", line 196, in apply
sub_prof = optimizer.optimize(fgraph)
File "[...]/python2.7/site-packages/theano/gof/opt.py", line 82, in optimize
ret = self.apply(fgraph, *args, **kwargs)
File "[...]/python2.7/site-packages/theano/gof/opt.py", line 1665, in apply
gopt.apply(fgraph)
File "[...]/python2.7/site-packages/theano/scan_module/scan_opt.py", line 1300, in apply
if self.belongs_to_set(nd, subset):
File "[...]/python2.7/site-packages/theano/scan_module/scan_opt.py", line 1286, in belongs_to_set
rep.op.inputs)
File "[...]/python2.7/site-packages/theano/scan_module/scan_utils.py", line 452, in equal_computations
dx.type.dtype == dy.type.dtype and
AttributeError: 'NoneTypeT' object has no attribute 'dtype'
我會很感激,如果有人可以幫助我理解錯誤。我假設AttributeError
不是指a
或b
,因爲我可以打印他們的dtype
,並看到他們確實有一個。除此之外,我無法理解它。
[編輯]這不是一個致命的錯誤。代碼正常運行,並且進程以退出代碼0結束。它看起來像Theano試圖優化圖形並且不能這樣做,這並不影響程序。
你能提供完整的追溯? – nouiz
我編輯了問題,以便它包含完整的回溯。 –