了解theano中的dtype

时间:2016-03-10 14:47:43

标签: python neural-network theano

我是theano的新手,我正在尝试在我的本地计算机上重现this代码的结果。当我运行代码时,我运行theano函数(在[48])f_trainf_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)

然后运行正常。现在我的.theanorcfloatX = float32。我无法理解为什么会这样。

此外,如果我将所有dtype=theano.config.floatX更改为dtype="float32",那么我也会收到同样的错误。

请帮助我了解这里发生了什么。

1 个答案:

答案 0 :(得分:0)

看起来你的环境有些搞砸了。没有进入你的环境细节,我无法给你一个更好的解决方案;但每当我遇到这样的问题时,我总是会去寻找代码环境的命令行标志。您可以在命令行上运行代码时为Theano设置标志,如下所示:

THEANO_FLAGS='floatX=float32,device=gpu0'  python <myscript>.py

更多信息:http://deeplearning.net/software/theano/library/config.html

希望有所帮助。