2024-05-01 21:46:45 发布
网友
我有一个回归任务:y=f(x), y中的大部分值为零,因此,如果以均方误差(mse)作为损失函数,则模型将给出所有预测y的极小值 所以,我想给y中的非零值赋予更大的权重 我该怎么办? 我想尝试的一个解决方案是定义一个新的损失函数:
loss = e * mse(y, y_pred)[y!=0] + (1-e) * mse(y, y_pred)[y==0]
e是权重参数,它能工作吗?如何在tensorflow中实现
如果你想在y张量中得到更大的值,你可以用一个标量变量乘以y张量
y=tf.math.multiply(y,10)
在某些情况下,用mse训练的模型可以预测非常平滑的输出,如果你想要更清晰的输出,你可以使用平均成对误差
loss=tf.losses.mean_pairwise_squared_error(y_pred,y,weights=e)
如果你想在y张量中得到更大的值,你可以用一个标量变量乘以y张量
在某些情况下,用mse训练的模型可以预测非常平滑的输出,如果你想要更清晰的输出,你可以使用平均成对误差
相关问题 更多 >
编程相关推荐