sigmoid函数中的无效操作数

问题描述

我在一个神经网络上工作,尝试执行Sigmoid函数时,它显示了一个我不理解的错误:对二进制^无效的操作数(具有'double'和'int')。这是我的代码:

double neuron(const int num_in,const double input[num_in],const double weight[num_in],const double bias) {
    int i;
    int asubj = 0;
    int zsubj;
    for (i = 0; i < num_in; i++)
    {
        asubj = asubj + input[i]*weight[i]+bias;
    }
    zsubj = (1)/(1 - (int)(M_E)^(-asubj)); // When I run the program,it stops here,I don

    return 0;
}

任何帮助将不胜感激。

解决方法

正如其他地方所述,^是C语言中的异或运算符。以下内容可能会做一些您想要的更好的事情:

double neuron(const int num_in,const double input[num_in],const double weight[num_in],const double bias)
  {
  int i;
  double asubj = 0.0;
  double zsubj;

  for (i = 0; i < num_in; i++)
    asubj = asubj + input[i]*weight[i]+bias;

  zsubj = 1.0 / (1.0 - pow(M_E,-asubj));

  return 0;
  }

请注意,上面的代码将return 0;保留在原始功能的末尾。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...