我是theano的新手,我正试图在我的本地机器上重现this代码的结果 . 当我运行代码时,当我运行theano函数(在[48]中) f_train
和 f_test
时,我得到以下错误 .
TypeError:('更新必须与原始共享变量具有相同的类型(shared_var = b_y,shared_var.type = TensorType(float32,vector),update_val = Elemwise {sub,no_inplace} .0,update_val.type = TensorType( float64,vector)) . ','如果差异与广播模式有关,则可以调用tensor.unbroadcast(var,axis_to_unbroadcast [,...])函数来删除可广播的维度 . ')
当我改变这条线时:
b_y = numpy.zeros(shape=(10,), dtype="float32")
至
b_y = numpy.zeros(shape=(10,), dtype=theano.config.floatX)
然后运行正常 . 现在我的 .theanorc
我有 floatX = float32
. 我无法理解为什么会这样 .
此外,如果我将所有 dtype=theano.config.floatX
更改为 dtype="float32"
,那么我也会得到相同的错误 .
请帮我理解这里发生了什么 .
1 回答
看起来你的环境有些搞砸了 . 没有进入你的环境细节,我无法给你一个更好的解决方案;但每当我遇到这样的问题时,我总是会去寻找代码环境的命令行标志 . 您可以在命令行上运行代码时为Theano设置标志,如下所示:
更多这里:http://deeplearning.net/software/theano/library/config.html
希望有所帮助 .