Keras损失的周期边界条件

Keras损失的周期边界条件,keras,neural-network,regression,cnn,boundary,Keras,Neural Network,Regression,Cnn,Boundary,我尝试预测0-63之间的值。我的指标是梅。如果我使用通常的MAE作为损失,CNN混合了0和63这样的值作为边缘 我尝试使用我的自定义损失: def cyclic_loss(y_true, y_pred): loss = K.mean(K.square((y_true +image_height/2 - y_pred) % image_height-image_height/2)) return loss 但是要得到像这样的MAE图: 我如何表示CNN“如果你得到的值=64,

我尝试预测0-63之间的值。我的指标是梅。如果我使用通常的MAE作为损失,CNN混合了0和63这样的值作为边缘

我尝试使用我的自定义损失:

def cyclic_loss(y_true, y_pred): 
    loss = K.mean(K.square((y_true +image_height/2 - y_pred) % image_height-image_height/2))
    return loss
但是要得到像这样的MAE图:


我如何表示CNN“如果你得到的值=64,它意味着1,而不是64”

你是说你的y_pred可以有从0到无穷大的值,但是你想要像64映射到1,70映射到7,255映射到0这样的东西吗?@fedor petrov是的,对,只是好奇,应用程序是什么?这些值是float还是int?如果int,为什么不使用一个具有64个输出神经元的分类器,并根据得分最高的神经元选择该值?但无论如何,你可以尝试在你的损失函数中用
y_pred%64
替换
y_pred
。这是图像数据集的回归预测,我有图像数据集和对象的一个坐标,但CNN在检测图像边缘的对象时遇到问题,当对象有坐标0或63时,CNN会混淆这些值