首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >人工神经元程序

人工神经元程序
EN

Stack Overflow用户
提问于 2014-11-06 20:03:46
回答 1查看 313关注 0票数 0

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

我已经读了很多关于这个主题的论文,我也在这个网站上读了一些教程,但没有一篇是用c语言写的。

EN

回答 1

Stack Overflow用户

发布于 2014-11-07 16:29:55

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

代码语言:javascript
复制
#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
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26779035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档