我从Keras source中看到,例如mae
的损失函数定义为
def mean_absolute_error(y_true, y_pred):
return K.mean(K.abs(y_pred - y_true), axis=-1)
,这将产生一个NHW
张量,假设通道在末尾,则每个像素损失mae
。
从这个问题Why use axis=-1 in Keras metrics function?开始,我了解到K.mean在打印要记录的内容之前被调用。
我对图像使用channel_first
排序,即NCHW
,并且那里没有channel_order
检查条件语句。
这会影响损失向后传播的方式(或者还有什么我需要担心的事情)吗?还是应该使用axis=1
从那里手动创建损失函数?还是根本不包括轴,使损失函数返回单个标量而不是张量,这还可以吗?正确的方法是什么?