search
HomeDatabaseMysql TutorialBP神经网络算法(2)

// BpNet.h:interfacefortheBpclass. // // E-Mail:zengzhijun369@163.com /**/ ///////////////////////////////////////////////////////////////////// / #include stdafx.h #include BpNet.h #include math.h #ifdef_DEBUG #undef THIS_FILE static char

 

//BpNet.h: interface for the Bp class.
BP神经网络算法(2)
//
BP神经网络算法(2)
//E-Mail:zengzhijun369@163.com
BP神经网络算法(2)BP神经网络算法(2)
/**///////////////////////////////////////////////////////////////////////
BP神经网络算法(2)#include "stdafx.h"
BP神经网络算法(2)#include 
"BpNet.h"
BP神经网络算法(2)#include 
"math.h"
BP神经网络算法(2)
BP神经网络算法(2)#ifdef _DEBUG
BP神经网络算法(2)
#undef THIS_FILE
BP神经网络算法(2)
static char THIS_FILE[]=__FILE__;
BP神经网络算法(2)
#define new DEBUG_NEW
BP神经网络算法(2)
#endif
BP神经网络算法(2)
BP神经网络算法(2)BP神经网络算法(2)
/**///////////////////////////////////////////////////////////////////////
BP神经网络算法(2)// Construction/Destruction
BP神经网络算法(2)BP神经网络算法(2)
/**///////////////////////////////////////////////////////////////////////
BP神经网络算法(2)
BP神经网络算法(2)BpNet::BpNet()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){       
BP神经网络算法(2)    error
=1.0;
BP神经网络算法(2)    e
=0.0;
BP神经网络算法(2)    
BP神经网络算法(2)    rate_w
=0.05;  //权值学习率(输入层--隐含层)
BP神经网络算法(2)
    rate_w1=0.047//权值学习率 (隐含层--输出层)
BP神经网络算法(2)
    rate_b1=0.05//隐含层阀值学习率
BP神经网络算法(2)
    rate_b2=0.047//输出层阀值学习率
BP神经网络算法(2)
    error=1.0;
BP神经网络算法(2)    e
=0.0;
BP神经网络算法(2)    
BP神经网络算法(2)    rate_w
=0.05;  //权值学习率(输入层--隐含层)
BP神经网络算法(2)
    rate_w1=0.047//权值学习率 (隐含层--输出层)
BP神经网络算法(2)
    rate_b1=0.05//隐含层阀值学习率
BP神经网络算法(2)
    rate_b2=0.047//输出层阀值学习率
BP神经网络算法(2)
}

BP神经网络算法(2)
BP神经网络算法(2)BpNet::
~BpNet()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){
BP神经网络算法(2)    
BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
void winit(double w[],int sl)//权值初始化
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){int i;
BP神经网络算法(2)
double randx();
BP神经网络算法(2)BP神经网络算法(2)
for(i=0;isl;i++)BP神经网络算法(2){
BP神经网络算法(2)    
*(w+i)=0.2*randx();
BP神经网络算法(2)}

BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
double randx()//kqy error
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){double d;
BP神经网络算法(2)d
=(double) rand()/32767.0;
BP神经网络算法(2)
return d;
BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
void BpNet::init()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){
BP神经网络算法(2)    winit((
double*)w,innode*hidenode);
BP神经网络算法(2)    winit((
double*)w1,hidenode*outnode);
BP神经网络算法(2)    winit(b1,hidenode);
BP神经网络算法(2)    winit(b2,outnode);
BP神经网络算法(2)}

BP神经网络算法(2)
BP神经网络算法(2)
BP神经网络算法(2)
void BpNet::train(double p[trainsample][innode],double t[trainsample][outnode])
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){
BP神经网络算法(2)    
double pp[hidenode];//隐含结点的校正误差
BP神经网络算法(2)
    double qq[outnode];//希望输出值与实际输出值的偏差
BP神经网络算法(2)
    double yd[outnode];//希望输出值
BP神经网络算法(2)
    
BP神经网络算法(2)    
double x[innode]; //输入向量
BP神经网络算法(2)
    double x1[hidenode];//隐含结点状态值
BP神经网络算法(2)
    double x2[outnode];//输出结点状态值
BP神经网络算法(2)
    double o1[hidenode];//隐含层激活值
BP神经网络算法(2)
    double o2[hidenode];//输出层激活值
BP神经网络算法(2)
    for(int isamp=0;isamptrainsample;isamp++)//循环训练一次样品
BP神经网络算法(2)BP神经网络算法(2)
    BP神经网络算法(2)
BP神经网络算法(2)        
for(int i=0;iinnode;i++)
BP神经网络算法(2)            x[i]
=p[isamp][i];
BP神经网络算法(2)        
for(i=0;ioutnode;i++)
BP神经网络算法(2)            yd[i]
=t[isamp][i];
BP神经网络算法(2)        
BP神经网络算法(2)        
//构造每个样品的输入和输出标准
BP神经网络算法(2)
        for(int j=0;jhidenode;j++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            o1[j]
=0.0;
BP神经网络算法(2)            
BP神经网络算法(2)            
for(i=0;iinnode;i++)
BP神经网络算法(2)                o1[j]
=o1[j]+w[i][j]*x[i];//隐含层各单元输入激活值
BP神经网络算法(2)
            x1[j]=1.0/(1+exp(-o1[j]-b1[j]));//隐含层各单元的输出kqy1
BP神经网络算法(2)            
//    if(o1[j]+b1[j]>0) x1[j]=1;
BP神经网络算法(2)            
//else x1[j]=0;
BP神经网络算法(2)
        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(int k=0;koutnode;k++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            o2[k]
=0.0;
BP神经网络算法(2)            
BP神经网络算法(2)            
for(j=0;jhidenode;j++)
BP神经网络算法(2)                o2[k]
=o2[k]+w1[j][k]*x1[j];//输出层各单元输入激活值
BP神经网络算法(2)
            x2[k]=1.0/(1.0+exp(-o2[k]-b2[k]));//输出层各单元输出
BP神经网络算法(2)            
//    if(o2[k]+b2[k]>0) x2[k]=1;
BP神经网络算法(2)            
//    else x2[k]=0;
BP神经网络算法(2)
        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(k=0;koutnode;k++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            e
=0.0;
BP神经网络算法(2)            qq[k]
=(yd[k]-x2[k])*x2[k]*(1.-x2[k]);//希望输出与实际输出的偏差
BP神经网络算法(2)
            e+=fabs(yd[k]-x2[k])*fabs(yd[k]-x2[k]);//计算均方差
BP神经网络算法(2)
            
BP神经网络算法(2)            
for(j=0;jhidenode;j++)
BP神经网络算法(2)                w1[j][k]
=w1[j][k]+rate_w1*qq[k]*x1[j];//下一次的隐含层和输出层之间的新连接权
BP神经网络算法(2)
            e=sqrt(e);
BP神经网络算法(2)            error
=e;
BP神经网络算法(2)        
BP神经网络算法(2)        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(j=0;jhidenode;j++)
BP神经网络算法(2)BP神经网络算法(2)        
BP神经网络算法(2){
BP神经网络算法(2)            pp[j]
=0.0;
BP神经网络算法(2)            
for(k=0;koutnode;k++)
BP神经网络算法(2)                pp[j]
=pp[j]+qq[k]*w1[j][k];
BP神经网络算法(2)            pp[j]
=pp[j]*x1[j]*(1-x1[j]);//隐含层的校正误差
BP神经网络算法(2)
            
BP神经网络算法(2)            
for(i=0;iinnode;i++)
BP神经网络算法(2)                w[i][j]
=w[i][j]+rate_w*pp[j]*x[i];//下一次的输入层和隐含层之间的新连接权
BP神经网络算法(2)
        }

BP神经网络算法(2)        
BP神经网络算法(2)        
for(k=0;koutnode;k++)
BP神经网络算法(2)            b2[k]
=b2[k]+rate_b2*qq[k];//下一次的隐含层和输出层之间的新阈值
BP神经网络算法(2)
        for(j=0;jhidenode;j++)
BP神经网络算法(2)            b1[j]
=b1[j]+rate_b1*pp[j];//下一次的输入层和隐含层之间的新阈值
BP神经网络算法(2)
        
BP神经网络算法(2)    }
//end isamp样品循环
BP神经网络算法(2)
    
BP神经网络算法(2)}

BP神经网络算法(2)BP神经网络算法(2)
/**////////////////////////////end train/////////////////////////////
BP神经网络算法(2)
BP神经网络算法(2)
/////////////////////////////////////////////////////////////////

BP神经网络算法(2)
BP神经网络算法(2)
double *BpNet::recognize(double *p)
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){   
BP神经网络算法(2)    
double x[innode]; //输入向量
BP神经网络算法(2)
    double x1[hidenode];//隐含结点状态值
BP神经网络算法(2)
    double x2[outnode];//输出结点状态值
BP神经网络算法(2)
    double o1[hidenode];//隐含层激活值
BP神经网络算法(2)
    double o2[hidenode];//输出层激活值
BP神经网络算法(2)

BP神经网络算法(2)    
for(int i=0;iinnode;i++)
BP神经网络算法(2)        x[i]
=p[i];
BP神经网络算法(2)    
for(int j=0;jhidenode;j++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        o1[j]
=0.0;
BP神经网络算法(2)        
BP神经网络算法(2)        
for(int i=0;iinnode;i++)
BP神经网络算法(2)            o1[j]
=o1[j]+w[i][j]*x[i];//隐含层各单元激活值
BP神经网络算法(2)
        x1[j]=1.0/(1.0+exp(-o1[j]-b1[j]));//隐含层各单元输出
BP神经网络算法(2)        
//if(o1[j]+b1[j]>0) x1[j]=1;
BP神经网络算法(2)        
//    else x1[j]=0;
BP神经网络算法(2)
    }

BP神经网络算法(2)    
BP神经网络算法(2)    
for(int k=0;koutnode;k++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        o2[k]
=0.0;
BP神经网络算法(2)        
for(int j=0;jhidenode;j++)
BP神经网络算法(2)            o2[k]
=o2[k]+w1[j][k]*x1[j];//输出层各单元激活值
BP神经网络算法(2)
        x2[k]=1.0/(1.0+exp(-o2[k]-b2[k]));//输出层各单元输出
BP神经网络算法(2)        
//if(o2[k]+b2[k]>0) x2[k]=1;
BP神经网络算法(2)        
//else x2[k]=0;
BP神经网络算法(2)
    }
 
BP神经网络算法(2)    
BP神经网络算法(2)    
for(k=0;koutnode;k++)
BP神经网络算法(2)BP神经网络算法(2)    
BP神经网络算法(2){
BP神经网络算法(2)        shuchu[k]
=x2[k];
BP神经网络算法(2)    }
 
BP神经网络算法(2)    
return shuchu;
BP神经网络算法(2)BP神经网络算法(2)}
/**/////////////////////////////end sim///////////////////////////
BP神经网络算法(2)
BP神经网络算法(2)
void BpNet::writetrain()
BP神经网络算法(2)BP神经网络算法(2)
BP神经网络算法(2){//曾志军 for 2006.7
BP神经网络算法(2)
    AfxMessageBox("你还没有训练呢,训练后再写吧!请不要乱写,除非你认为这次训练是最好的,否则会覆盖我训练好的权值,那样你又要花时间训练!");
BP神经网络算法(2)    AfxMessageBox(
"你认为这次训练结果是最好的,就存下来,下次就不要花时间训练了!",MB_YESNO,NULL);
BP神经网络算法(2)    FILE 
*stream0;
BP神经网络算法(2)    FILE 
*stream1;
BP神经网络算法(2)    FILE 
*stream2;
BP神经网络算法(2)    FILE 
*stream3;
BP神经网络算法(2)

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
GNN的基础、前沿和应用GNN的基础、前沿和应用Apr 11, 2023 pm 11:40 PM

近年来,图神经网络(GNN)取得了快速、令人难以置信的进展。图神经网络又称为图深度学习、图表征学习(图表示学习)或几何深度学习,是机器学习特别是深度学习领域增长最快的研究课题。本次分享的题目为《GNN的基础、前沿和应用》,主要介绍由吴凌飞、崔鹏、裴健、赵亮几位学者牵头编撰的综合性书籍《图神经网络基础、前沿与应用》中的大致内容。一、图神经网络的介绍1、为什么要研究图?图是一种描述和建模复杂系统的通用语言。图本身并不复杂,它主要由边和结点构成。我们可以用结点表示任何我们想要建模的物体,可以用边表示两

一文通览自动驾驶三大主流芯片架构一文通览自动驾驶三大主流芯片架构Apr 12, 2023 pm 12:07 PM

当前主流的AI芯片主要分为三类,GPU、FPGA、ASIC。GPU、FPGA均是前期较为成熟的芯片架构,属于通用型芯片。ASIC属于为AI特定场景定制的芯片。行业内已经确认CPU不适用于AI计算,但是在AI应用领域也是必不可少。 GPU方案GPU与CPU的架构对比CPU遵循的是冯·诺依曼架构,其核心是存储程序/数据、串行顺序执行。因此CPU的架构中需要大量的空间去放置存储单元(Cache)和控制单元(Control),相比之下计算单元(ALU)只占据了很小的一部分,所以CPU在进行大规模并行计算

"B站UP主成功打造全球首个基于红石的神经网络在社交媒体引起轰动,得到Yann LeCun的点赞赞赏""B站UP主成功打造全球首个基于红石的神经网络在社交媒体引起轰动,得到Yann LeCun的点赞赞赏"May 07, 2023 pm 10:58 PM

在我的世界(Minecraft)中,红石是一种非常重要的物品。它是游戏中的一种独特材料,开关、红石火把和红石块等能对导线或物体提供类似电流的能量。红石电路可以为你建造用于控制或激活其他机械的结构,其本身既可以被设计为用于响应玩家的手动激活,也可以反复输出信号或者响应非玩家引发的变化,如生物移动、物品掉落、植物生长、日夜更替等等。因此,在我的世界中,红石能够控制的机械类别极其多,小到简单机械如自动门、光开关和频闪电源,大到占地巨大的电梯、自动农场、小游戏平台甚至游戏内建的计算机。近日,B站UP主@

扛住强风的无人机?加州理工用12分钟飞行数据教会无人机御风飞行扛住强风的无人机?加州理工用12分钟飞行数据教会无人机御风飞行Apr 09, 2023 pm 11:51 PM

当风大到可以把伞吹坏的程度,无人机却稳稳当当,就像这样:御风飞行是空中飞行的一部分,从大的层面来讲,当飞行员驾驶飞机着陆时,风速可能会给他们带来挑战;从小的层面来讲,阵风也会影响无人机的飞行。目前来看,无人机要么在受控条件下飞行,无风;要么由人类使用遥控器操作。无人机被研究者控制在开阔的天空中编队飞行,但这些飞行通常是在理想的条件和环境下进行的。然而,要想让无人机自主执行必要但日常的任务,例如运送包裹,无人机必须能够实时适应风况。为了让无人机在风中飞行时具有更好的机动性,来自加州理工学院的一组工

对比学习算法在转转的实践对比学习算法在转转的实践Apr 11, 2023 pm 09:25 PM

1 什么是对比学习1.1 对比学习的定义1.2 对比学习的原理1.3 经典对比学习算法系列2 对比学习的应用3 对比学习在转转的实践3.1 CL在推荐召回的实践3.2 CL在转转的未来规划1 什么是对比学习1.1 对比学习的定义对比学习(Contrastive Learning, CL)是近年来 AI 领域的热门研究方向,吸引了众多研究学者的关注,其所属的自监督学习方式,更是在 ICLR 2020 被 Bengio 和 LeCun 等大佬点名称为 AI 的未来,后陆续登陆 NIPS, ACL,

Michael Bronstein从代数拓扑学取经,提出了一种新的图神经网络计算结构!Michael Bronstein从代数拓扑学取经,提出了一种新的图神经网络计算结构!Apr 09, 2023 pm 10:11 PM

本文由Cristian Bodnar 和Fabrizio Frasca 合著,以 C. Bodnar 、F. Frasca 等人发表于2021 ICML《Weisfeiler and Lehman Go Topological: 信息传递简单网络》和2021 NeurIPS 《Weisfeiler and Lehman Go Cellular: CW 网络》论文为参考。本文仅是通过微分几何学和代数拓扑学的视角讨论图神经网络系列的部分内容。从计算机网络到大型强子对撞机中的粒子相互作用,图可以用来模

微软提出自动化神经网络训练剪枝框架OTO,一站式获得高性能轻量化模型微软提出自动化神经网络训练剪枝框架OTO,一站式获得高性能轻量化模型Apr 04, 2023 pm 12:50 PM

OTO 是业内首个自动化、一站式、用户友好且通用的神经网络训练与结构压缩框架。 在人工智能时代,如何部署和维护神经网络是产品化的关键问题考虑到节省运算成本,同时尽可能小地损失模型性能,压缩神经网络成为了 DNN 产品化的关键之一。DNN 压缩通常来说有三种方式,剪枝,知识蒸馏和量化。剪枝旨在识别并去除冗余结构,给 DNN 瘦身的同时尽可能地保持模型性能,是最为通用且有效的压缩方法。三种方法通常来讲可以相辅相成,共同作用来达到最佳的压缩效果。然而现存的剪枝方法大都只针对特定模型,特定任务,且需要很

用AI寻找大屠杀后失散的亲人!谷歌工程师研发人脸识别程序,可识别超70万张二战时期老照片用AI寻找大屠杀后失散的亲人!谷歌工程师研发人脸识别程序,可识别超70万张二战时期老照片Apr 08, 2023 pm 04:21 PM

​AI面部识别领域又开辟新业务了?这次,是鉴别二战时期老照片里的人脸图像。近日,来自谷歌的一名软件工程师Daniel Patt 研发了一项名为N2N(Numbers to Names)的 AI人脸识别技术,它可识别二战前欧洲和大屠杀时期的照片,并将他们与现代的人们联系起来。用AI寻找失散多年的亲人2016年,帕特在参观华沙波兰裔犹太人纪念馆时,萌生了一个想法。这一张张陌生的脸庞,会不会与自己存在血缘的联系?他的祖父母/外祖父母中有三位是来自波兰的大屠杀幸存者,他想帮助祖母找到被纳粹杀害的家人的照

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.