theano报一种float类型错误的处理办法

Posted 十点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了theano报一种float类型错误的处理办法相关的知识,希望对你有一定的参考价值。

  我实际用的环境是Keras,查错误时查到是Theano的配置问题,所以在标题里就写成Theano的问题了,

  是这样的,从Github上下载的别人的代码,准备复现别人的实验,结果在机器上部署好环境之后跑代码时报错为:

  TypeError: (‘An update must have the same type as the original shared variable (shared_var=weight_1,
shared_var.type=TensorType(float32, matrix), update_val=Elemwise{sub,no_inplace}.0,
update_val.type=TensorType(float64, matrix)).‘, ‘If the difference is related to the broadcast pattern, you
can call the tensor.unbroadcast(var, axis_to_unbroadcast[, ...]) function to remove broadcastable
dimensions.‘)

  意思就是代码里float的位数不对,以前的Keras版本都是float32的,现在的新版Keras默认是float64的,具体两者有什么区别还不太清楚,但是表现在执行的时候就是报上面的错,之后程序停止,

  解决方案:在代码中,import语句的下面添加下面一行代码,

   theano.config.floatX= ‘float32

  之后运行就行了,此时就是显式设置相关编译信息,

 

  (初来乍到,有错误之处还望指正,其实个人刚开始使用Keras和Theano,有很多也不太了解,)

以上是关于theano报一种float类型错误的处理办法的主要内容,如果未能解决你的问题,请参考以下文章

由于 Theano 和 NumPy 变量类型导致的错误

RuntimeError:预期的标量类型为 Double 的对象,但在调用 _th_max 时为参数 #2 'other' 获得了标量类型 Float

错误恢复 PL/SQL oracle 中的下一种错误处理类型

theano使用

Theano 的 GPU 上是不是可以进行 int 操作?

shared_x = theano.shared(numpy.asarray(data_x, dtype=theano.config.floatX))这句话啥意思?