【问题标题】:Theano TensorType errorTheano TensorType 错误
【发布时间】:2015-08-25 18:33:46
【问题描述】:

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

'名为“/Users/lm/Documents/anaconda/lib/python2.7/site-packages/nolearn/lasagne/base.p‌​y:391”的theano函数的输入参数错误 在索引 1(0-based)', 'TensorType(float32, matrix) 不能存储 dtype int64 的值,而不会有精度损失的风险。如果你不 请注意这种损失,您可以:1)将数据显式转换为float32,或 2) 调用“function”时设置“allow_input_downcast=True”。', 数组([[0, 0, 0, ..., 0, 0, 1],

【问题讨论】:

    标签: python-2.7 theano nolearn


    【解决方案1】:

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

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

    应该工作

    注意:即使您这样做,如果您有一个转换数据的BatchIterator(并且由于疏忽再次使用float64),错误可能仍然存在。解决方法是一样的:在BatchIterator 中,在返回之前将数据转换为float32

    【讨论】:

      【解决方案2】:

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

      [global]
      floatX = float64
      

      到:

      [global]
      floatX = float32
      

      注意最后的 64 被 32 代替了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-08
        • 1970-01-01
        • 1970-01-01
        • 2016-02-03
        • 2018-08-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多