如何在c++中计算f(net)=tanh(net)的导数

Gun*_*din 0 c++ trigonometry complex-numbers neural-network

我需要使用 Levenberg - Marquardt 算法实现多层感知器。要找到激活函数 (tanh) 的斜率,必须计算 tanhx = sec^2 hx 的导数。c++中是否有任何库函数来计算sec^2 hx。
提前致谢。

Mik*_*our 5

标准库给出了双曲正弦、余弦和正切函数;可以从这些导出其他双曲函数:

#include <cmath>

double sech2(double x) {
    double sh = 1.0 / std::cosh(x);   // sech(x) == 1/cosh(x)
    return sh*sh;                     // sech^2(x)
}
Run Code Online (Sandbox Code Playgroud)