【问题标题】:TypeError: 'numpy.float64' object is not iterable KerasTypeError:“numpy.float64”对象不可迭代 Keras
【发布时间】:2016-04-11 18:50:46
【问题描述】:

以下代码行在 Keras 中给出了上述错误。 model 是 Keras 中的 Graph 模型。

score, acc = model.evaluate({
    'input1': X_test1,
    'input2': X_test2,
    'output':Y_test}, batch_size=450)

但是当我将其更改为以下时,它运行良好。

predictions = model.predict({
    'input1': X_test1,
    'input2': X_test2}, batch_size=450)['output']

这里的 Y_test 是 <type 'numpy.ndarray'><type 'numpy.ndarray'>。 one-hot 编码向量。

示例Y_test:

[[1.,0.,0.],[1.,0.,0.],[0.,0.,1.]]

【问题讨论】:

    标签: python machine-learning keras neural-network deep-learning


    【解决方案1】:

    如您所见:

    https://github.com/fchollet/keras/blob/master/keras/engine/training.py

    评估方法仅返回测试损失(或损失)。所以将此方法的结果分配给一对会导致错误。

    【讨论】:

    • 感谢您指出这一点。它似乎适用于 Sequential 模型,但现在我猜测它返回两个指标。
    • 实际上,它返回测试损失和请求的任何指标。如果模型拟合请求了准确度指标,则将结果分配给一对 score, acc 会起作用
    • 这是一个相当古老的答案。 Keras 从那时起变化很大。
    【解决方案2】:

    使用 keras 1.0 我能够打印出分数,但是当我尝试获取分数和准确性时会收到此错误。

    我将我的 keras 降级到 0.3.3,并运行完全相同的代码。这样做我能够获得分数和准确性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-27
      • 2018-03-14
      • 1970-01-01
      • 2019-08-03
      • 2020-04-08
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多