神经网络算法代码java 神经网络算法代码实现( 七 )


void freeINput()
{
if(pX!=NULL)
{
for(int u=0;uyangbenzushu;u++)
delete []pX[u];
delete []pX;
pX=NULL;
}
if(pY!=NULL)
{
for(int u1=0;u1yangbenzushu;u1++)
delete []pY[u1];
delete []pY;
pY=NULL;
}
}
/***************************************************************/
//输出所有的权值
void wputout()
{
for (int j=0;jSidenum;j++)
{
cout"第["j+1"]层权值为:"endl;
for (int k=0;kpnode[j+1];k++)
{
//if(k==pnode[j+1]-1) coutendl;
for (int t=0;tpnode[j]+1;t++)
{
coutp[j][k][t]' ';
if(t==pnode[j]) coutendl;
}
}
}
}
/**********************************************************/
};
void main()
{
BP bp;
int count=0;//用来统计所用的迭代次数
//FILE *fp;
int inputnodenum,outnodenum,sidenum,yangbenzunum;
double error;
cout"请输入:输入点数,输出点数,隐层数"endl;
cininputnodenumoutnodenumsidenum;
cout"请输入样本组数"endl;
cinyangbenzunum;
//第一步初始化所有的权值
bp.getW(sidenum,inputnodenum,outnodenum,yangbenzunum);
//第二步输入样本组
bp.INPUT(yangbenzunum);
for(;;count++)
{
double sum=0;
double temp=0;
for(int fuzu=0;fuzuyangbenzunum;fuzu++)
{
//第三步计算所有y值
temp=bp.computeYl(fuzu);
//第四步Compute Back-Propagation-Errors
bp.ComputeBackPropagationErrors(fuzu);
//第五步Update the Weights using BP Algorithm
bp.UpdatetheWeightsusingBPAlgorithm();
sum+=temp;
}
//第六步判断是否收敛
error=sum/2*yangbenzunum;
//freopen("debug\\out.txt","w",stdout);
//fp=freopen( "out.txt", "w", stdout) ;
// coutcount' 'errorendl;
// fclose(stdout);//关闭文件
/*if(count==1000)couterrorendl;
if(count==1500)couterrorendl;
if(count==1600)couterrorendl;*/
//if(count==10000)couterrorendl;
if(error1.02)
{
cout"循环收敛""迭代次数为:"countendl;
//bp.freeINput();//释放X Y空间
break;
}
}
cout"权值为:"endl;
bp.wputout();
double XUNLIANER=bp.xunlianErrors();
//cout"训练误差为:"XUNLIANERendl;
bp.freeINput();//释放X Y空间
/*
cout"请输入校验样本: "endl;
int jiaoyannum=0;
cinjiaoyannum;
bp.INPUT(jiaoyannum);
double jiaoyanER=bp.jiaoyanErrors(jiaoyannum);
cout"校验误差为:"jiaoyanERendl;
//fclose( stdout ) ;*/
}
急求BP神经网络算法,用java实现?。。?/h2>见附件,一个基本的用java编写的BP网络代码 。
BP(Back Propagation)神经网络是86年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一 。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程 。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小 。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer) 。
用java写人脸识别算法有哪些?Java中常见的人脸识别算法有:
Eigenface: 这是一种基于主成分分析的人脸识别算法,它将人脸图像映射到一个低维的特征空间 。
Fisherface: 这是一种基于投影的人脸识别算法 , 它利用线性判别分析技术对人脸图像进行分类 。
Local Binary Patterns (LBP): 这是一种基于二进制像素点比较的人脸识别算法,它提取了图像中的纹理特征 。
Haar-like特征: 这是一种基于积分图像的人脸识别算法 , 它检测图像中的边缘特征 。

推荐阅读