2024-06-01 07:00:21 发布
网友
我试图用标记数据训练一个深层神经网络(DNN)。标签的编码方式使其仅包含值0和1。编码标签的形状为5 x 5 x 232。标签中约95% 个值为0,其余值为1。目前,我正在使用binary_crossentroy损失函数来训练网络
0
1
5 x 5 x 232
95%
binary_crossentroy
在这种情况下,培训DNN的最佳技术是什么?是binary_crossentroy的选择 在这种情况下,损失函数是否合适?任何改进模型性能的建议
sklearn.utils.class_weight
您可以使用其他两种替代损失函数代替二进制交叉熵
对于二元分类问题,交叉熵的一种替代方法是铰链损失函数,该函数主要用于支持向量机(SVM)模型。 它用于目标值在集合{-1,1}中的二进制分类
有关损失函数的更多详细信息,请参见示例。click here
希望有帮助,学习愉快
您可以尝试MSE损失。如果你想坚持二进制交叉熵(用于二进制分类),考虑使用标签平滑。
binary_crossentroy
因为损失是可以接受的0
的形式预测每一件事,并且仍然会获得95%的准确性。改为使用F1分数(或精度或召回率)如何计算班级权重
sklearn.utils.class_weight
计算标签的重量。检查此answer您可以使用其他两种替代损失函数代替二进制交叉熵
对于二元分类问题,交叉熵的一种替代方法是铰链损失函数,该函数主要用于支持向量机(SVM)模型。 它用于目标值在集合{-1,1}中的二进制分类
有关损失函数的更多详细信息,请参见示例。click here
希望有帮助,学习愉快
您可以尝试MSE损失。如果你想坚持二进制交叉熵(用于二进制分类),考虑使用标签平滑。
相关问题 更多 >
编程相关推荐