sigmoid和softmax函数的C++实现

来源:互联网 发布:爱另类软件 编辑:程序博客网 时间:2024/05/18 10:05
float sigmoid(float x){    return (1 / (1 + exp(-x)));}
float sigmoid_dy_dz(float x){    return (x * (1.0 - x));}
float tanh_dy_dz(float x){    return (1.0 - x*x);}
//对每一行进行softmaxvoid softmax(float *x, int row, int column){    for (int j = 0; j < row; ++j)    {        float max = 0.0;        float sum = 0.0;        for (int k = 0; k < column; ++k)            if (max < x[k + j*column])                max = x[k + j*column];        for (int k = 0; k < column; ++k)        {            x[k + j*column] = exp(x[k + j*column] - max);    // prevent data overflow            sum += x[k + j*column];        }        for (int k = 0; k < column; ++k) x[k + j*column] /= sum;    }}   //row*column
0 0
原创粉丝点击