【问题标题】:Keras - model.predict() returns list instead of numpy arrayKeras - model.predict() 返回列表而不是 numpy 数组
【发布时间】:2019-09-12 01:38:48
【问题描述】:

我在测试张量上使用 model.predict(),它与用于训练的输入大小相同,(N_tr*70,1025,11,3)

该模型通过回归进行训练,具有三个输出作为 ground-truth,每个输出大小为 (N_te*70,1025)。

有关信息,在测试模型时 N_te=180。

根据文档,model.predict() 的输出应该是一个 numpy 张量,而不是我得到一个包含三个元素的列表,每个元素的形状 (N_te*70,1025)。 我担心输出可能会以某种方式被打乱(这可以解释我的意外结果)。

对于获得一个与我用作基本事实的数组兼容的 numpy 数组,您有什么建议吗?如果没有,您知道其他解决方法吗?

编辑:添加神经网络代码

input_img = Input(shape=(1025, 11, 3 ) )
x = ( Flatten())(input_img)

for i in range(0,4):
    x = ( Dense(1024*3))(x)
    x = ( BatchNormalization() )(x)
    x = ( LeakyReLU())(x)
o0 = ( Dense(1025, activation='sigmoid'))(x)
o1 = ( Dense(1025, activation='sigmoid'))(x)
o2 = ( Dense(1025, activation='sigmoid'))(x)

模型预测:

output = model.predict(X_in, batch_size = batch_size, verbose=1)

【问题讨论】:

  • 请包含您的模型的代码,没有它这个问题就没有意义。可能只是您的模型有多个(三个)输出。
  • 嗨,Matias,我的模型有 3 个输出。我现在没有可用的代码,但我明天会包含它。

标签: python keras model


【解决方案1】:

预计在多输出模型中,predict 返回一个 numpy 数组列表,每个元素都是对应的输出。请记住,损失是在每个输出和基本事实之间单独计算的,因此这种格式已经是为此目的的想法。

【讨论】:

  • 嗨,Matias,感谢您的回复。颠簸的列表还行,但是为什么输出形状从(180,1025,70)变成了(180*70,1025)?我不确定输出是按什么顺序重建的,如果数据被某种方式打乱了。
  • @Phys 是的,你需要提供模型的代码。
  • 其实我刚刚找到代码并检查了,现在一切都有意义了,不涉及洗牌,谢谢。
猜你喜欢
  • 2018-07-15
  • 2020-08-22
  • 2018-07-15
  • 1970-01-01
  • 2017-05-24
  • 2019-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多