Python 理解theano中的数据类型

Python 理解theano中的数据类型,python,neural-network,theano,Python,Neural Network,Theano,我是新来的theano,我正在尝试在本地机器上重现代码的结果。当我按原样运行代码时,当我运行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,ve

我是新来的theano,我正在尝试在本地机器上重现代码的结果。当我按原样运行代码时,当我运行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.unboadcast(var,axis_to_unboadcast)[,…])函数删除可广播维度。“)

当我换行时:

b_y = numpy.zeros(shape=(10,), dtype="float32")

现在在我的
.theanoc
中,我有
floatX=float32
。我无法理解为什么会发生这种情况

此外,如果我将所有
dtype=theano.config.floatX
更改为
dtype=“float32”
,那么我也会得到相同的错误


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

您的环境似乎有点混乱。如果不深入了解您的环境详细信息,我无法为您提供更好的解决方案;但每当我遇到此类问题时,我总是选择该代码环境的命令行标志。您可以在命令上运行代码时设置No的标志像这样的一行:

THEANO_FLAGS='floatX=float32,device=gpu0'  python <myscript>.py
THEANO_FLAGS='floatX=float32,device=gpu0'python.py
详情如下:


希望这能有所帮助。

您是否验证了您的
.theanoc
是否位于正确的位置并且实际正在加载?它位于我的主目录中。如果我没有弄错,它应该在那里。我正在使用Mac OXI。我不确定如何检查它是否正确加载。如果您打印
theano.config.fl,您会得到什么输出oatX
打印报告(theano.config.floatX)
float32
用于第一个打印命令,而
'float32'
用于第二个打印命令
THEANO_FLAGS='floatX=float32,device=gpu0'  python <myscript>.py