gpt4 book ai didi

c++ - Caffe 中的交叉熵实现

转载 作者:行者123 更新时间:2023-11-30 05:12:30 24 4
gpt4 key购买 nike

查看sigmoid_cross_entropy_loss_layer.cpp中的源码,这是caffe中Cross-Entropy损失函数的源码,发现实际误差值的代码是

  for (int i = 0; i < count; ++i) {
loss -= input_data[i] * (target[i] - (input_data[i] >= 0)) -
log(1 + exp(input_data[i] - 2 * input_data[i] * (input_data[i] >= 0)));
}

这似乎与我在此处找到的 Caffe 或 C++ 实现文档中的 CE 损失函数有很大不同:

https://visualstudiomagazine.com/Articles/2014/04/01/Neural-Network-Cross-Entropy-Error.aspx?Page=2

或者实际上是 CE 损失函数的定义。

这是某种近似值吗?我一开始以为是 log⁡(1−x) 的泰勒级数展开,但完全不是这样。

最佳答案

这一层实现的损失不只是交叉熵。该层实现了 Sigmoid 激活,然后是交叉熵损失。这允许在数值上更稳定地实现损失。

参见 this thread了解更多信息。还有 this thread .

关于c++ - Caffe 中的交叉熵实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44497768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com