• 大小: 2KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-10
  • 语言: C/C++
  • 标签: 神经网络  异或  ANN  

资源简介

用ANN实现的异或,使用了单隐层的BP算法。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#define N_SAMPLES 4
/***************
网络如下: 
o-------
0  \    \
   2o----o3
1  /    /
o-------
****************/
float X[N_SAMPLES][2] = {10011100};           //每个训练的输入 
float d[N_SAMPLES] = {1100};                         //每个训练的标准输出 
float w03w02w13w12w23;
float theta[4];
float delta[4];

float e;
float E_sum;
float E_bar;
float E = 0.000001;

float eta = 0.001;

float v[4];
float y[4];
float abs(float a)
{
      if(a>=0) return a;
      if(a<0) return (0-a);

float sigmoid(float v)             
{
float f;
f=1/(1+exp(-v));
return f;
}
float sigmoid_1(float v)
{
    return sigmoid(v)*(1-sigmoid(v));
}
int init()
{
    srand((unsigned)time(NULL));
    w03 = rand()/32767.0 - 0.5;
    w02 = rand()/32767.0 - 0.5;
    w13 = rand()/32767.0 - 0.5;
    w12 = rand()/32767.0 - 0.5;
    w23 = rand()/32767.0 - 0.5;
    theta[0] = rand()/32767.0 - 0.5;
    theta[1] = rand()/32767.0 - 0.5;
    theta[2] = rand()/32767.0 - 0.5;
    theta[3] = rand()/32767.0 - 0.5;
}
int main()
{
    init();
    do
    {
        E_sum = 0.0;
        int i;
        for (i = 0;

评论

共有 条评论