首页 文章

了解theano中的dtype

提问于
浏览
0

我是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)

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

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

请帮我理解这里发生了什么 .

1 回答

  • 0

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

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

    更多这里:http://deeplearning.net/software/theano/library/config.html

    希望有所帮助 .

相关问题