F.binary_cross_entropy_with_logits函数与F.binary_cross_entropy函数的关系(单标签二分类问题)
假设 1个图像样本由神经网络处理后的输出是 size 10×4 的tensor,随机生成一个tensor,
使用Sigmoid对该tensor进行概率变换,tensor的每个数值的变换都是相互独立的,下面得出预测的概率分布,
我们在这里随机生成一个真值的概率分布y,
自己定义一下BCELoss,需要输入预测的概率分布和真值的概率分布,
手动计算一下,结果一致,
使用F.binary_cross_entropy 验证一下,同样需要输入预测的概率分布和真值的概率分布,
再使用F.binary_cross_entropy_with_logits验证一下,直接输入神经网络的输出和真值的概率分布,
BCELoss与BCEWithLogitsLoss的关联:BCEWithLogitsLoss = Sigmoid + BCELoss,
nn接口 Function接口
nn.BCELoss( ) F.binary_cross_entropy( )
nn.BCEWithLogitsLoss( ) F.binary_cross_entropy_with_logits( )
Enjoy it!