当我使用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],
答案 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替换。