Theano TensorType错误

时间:2015-08-25 18:33:46

标签: python-2.7 theano nolearn

当我使用nolearn实现多标签分类时,我收到了这个错误:

  

' theano函数的错误输入参数名称为" /Users/lm/Documents/anaconda/lib/python2.7/site-packages/nolearn/lasagne/base.p y:391&# 34;   在索引1(从0开始)',' TensorType(float32,matrix)无法存储   dtype int64的值,不存在精度损失的风险。如果你不   记住这种损失,您可以:1)明确地将您的数据转换为float32,或者   2)设置" allow_input_downcast = True"在呼叫"功能"。'时,   数组([[0,0,0,...,0,0,1],

2 个答案:

答案 0 :(得分:6)

如错误消息中所述,您需要将输入和输出转换为适当的类型(如果您不担心丢失精度)。

input = input.astype(np.float32)
output = output.astype(np.float32)

应该有效

注意:即使您执行此操作,如果您有BatchIterator转换数据(并且无意中再次使用float64),则错误可能仍然存在。解决方案是相同的:在BatchIterator内,在返回数据之前将数据转换为float32

答案 1 :(得分:0)

就我而言,我所做的就是将floatX标志(在[global]下)更改为.theanorc文件:

[global]
floatX = float64

到:

[global]
floatX = float32

请注意,最后的64被32替换。