人工神经元计划

时间:2014-11-06 12:03:46

标签: c++ c

我一直试图编写人工神经元的代码,其中10个输入介于-1和1之间,10个随机权重也介于-1和1之间,所有值都正确到2个小数位。加上50%的随机权重需要为负数。输出需要是输入*权重的总和。代码需要使用Dev-C ++

在c编程中编写

我已经阅读了很多与该主题相关的论文,而且我已经阅读了本网站上的一些教程,但没有一篇是用c语言编写的。

1 个答案:

答案 0 :(得分:1)

给定权重向量,以下函数构造输入和权重的标量积,添加偏差项并将结果传递给sigmoid函数(未经测试):

#include<vector>
#include<algorithm>
#include<functional>

std::vector<double> weights;  //initialize randomly between [-1,1], last entry contains bias
auto sigmoid=[](double x){return 1.0/(1.0-std::exp(x));};

auto neuron_output(std::vector<double> const& input)
{
     double ret = std::inner_product(input.begin(), input.end(), weights.begin(), 0.0); 
     ret += weights.back(); //add bias
     return sigmoid(ret);   //apply sigmoid
}