我想构建一个网络,对于给定的输入,预测一天中的小时。结果应该在0到24范围内。张量流中的循环损失
我试图将其解决为分类问题,但似乎并不正确。我的问题是,我不知道如何建立循环损失函数。例如,在我的情况下,如果网络的输出为1,真实标签为23,我希望距离为2而不是22.是否有可用的图层?
我想构建一个网络,对于给定的输入,预测一天中的小时。结果应该在0到24范围内。张量流中的循环损失
我试图将其解决为分类问题,但似乎并不正确。我的问题是,我不知道如何建立循环损失函数。例如,在我的情况下,如果网络的输出为1,真实标签为23,我希望距离为2而不是22.是否有可用的图层?
据我所知,没有预先写好的循环损失函数。对于周期性损失,你应该写你自己的损失函数是这样的:
import keras.backend as K
def cyclic_loss(y_true, y_pred):
return K.min((y_pred +24 - y_true) % 24, (y_true + 24 - y_pred) % 24)
model.compile(optimizer='sgd', loss=cyclic_loss, metrics=['acc'])
但是如果你定义了你的损失一样,它不是一个分类问题。如果您想要分类问题,您应该使用单热编码对输出进行编码,并使用交叉熵作为丢失函数。那么你有一天的每个小时的可能性,你以最高的概率获得小时。
作为回归任务,您可以使用上述的循环损失函数。
欢迎来到SO!这是一个很好的问题;它不应该被拒绝。但是,总是希望显示一些您所做的工作,理想情况下使用代码或伪代码片段。这会使你的问题不太可能被误解为缺乏研究和努力。 – Praveen