【发布时间】:2018-12-26 12:27:32
【问题描述】:
我的情况是使用 FCN 进行逐像素预测,我有 7 个类,所以我提供图像 512*512,然后提供 512*512*7 供模型预测,我想根据以下方面重塑它(heightwidthchannels) 来保存最终结果。
由于我最后使用通道,所以输入形状对我来说很有意义。但是我相信 Keras 拆分出来的输出形状的形式是:
(channels*height *width).
我的尝试是使用“重塑”功能,它可以工作...... 真的让我很困惑,在我的实验中,当我使用 reshape 功能时,图像会完全混乱,在这种情况下,结果非常好(在 Keras 中使用 reshape 功能)。
pr = m.predict( np.array([X]))[0]
#reshape to channel last and take the largest index in 7 predictions for each piexl
pr = pr.reshape(( output_height , output_width , n_classes ) ).argmax(axis=-1)
我期望应该可以正常工作的方式应该是像 np moveaxis 或 numpy.rollaxis 这样的东西。 提前致谢!
【问题讨论】:
-
Keras 默认已经是最后一个频道了。检查
model.summary()中的形状 -
@DanielMöller 好吧,我忽略了轴 = 0,是的,其中一层输出形状(无、512、512、7)。在我的代码中,重塑函数与频道的位置,谢谢。