ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

建立网络

2022-06-14 18:04:00  阅读:142  来源: 互联网

标签:建立 int double 网络 public delta net ceng


package net;
import java.io.Serializable;
import java.util.Random;

import tool.gongju;
public class newnet implements Serializable{
private net[] net;
private double[][] in;
private double[][][] jieguo;
public newnet() {
net=new net[29];
for(int i=0;i<29;i++) {
net[i]=new net();
}
}
public void setin(double[][] x) {
in=new double[x.length][x[0].length];
for(int i=0;i<x.length;i++)
for(int j=0;j<x[0].length;j++)
in[i][j]=x[i][j];

}
public void setjieguo(double[][][] x) {
jieguo=new double[x.length][x[0].length][x[0][0].length];
for(int i=0;i<x.length;i++)
for(int j=0;j<x[0].length;j++)
for(int k=0;k<x[0][0].length;k++)
jieguo[i][j][k]=x[i][j][k];

}
public int output(){
int z=-1;
double max=0;
for(int i=0;i<29;i++) {
double out=net[i].output(in)[0][0];
if(out>max) {
max=out;
z=i;
}
}
return z;
}
public void bp() {
bp(0);
}
public void bp(int ii) {
for(int i=0;i<29;i++) {
net[i].bp(in, jieguo[i], ii);
}
if(ii==1)
System.out.println();
}
}

package net;
import java.io.Serializable;
import java.util.Random;

import tool.gongju;
public class net implements Serializable{
private ceng[] ceng;
public net() {
ceng=new ceng[5];
ceng[0]=new ceng(784,392);
ceng[1]=new ceng(392,196);
ceng[2]=new ceng(196,98);
ceng[3]=new ceng(98,49);
ceng[4]=new ceng(49,1);
}
public double[][] output(double[][] x){
double[][] z;
ceng[0].setL(x);
z=ceng[0].getShuchu0();
ceng[1].setL(z);
z=ceng[1].getShuchu0();
ceng[2].setL(z);
z=ceng[2].getShuchu0();
ceng[3].setL(z);
z=ceng[3].getShuchu0();
ceng[4].setL(z);
z=ceng[4].getShuchu0();
return z;
}
public void bp(double[][]x,double[][] y) {
bp(x,y,0);
}
public void bp(double[][]x,double[][] y,int i) {
double[][] z=gongju.fushu(output(x));
double[][] l4_error=gongju.juzhenjianfa(y,z);
if(i==1)
gongju.show(l4_error[0]);
double[][] l3_delta=ceng[4].getdelta(l4_error);
ceng[4].back(l4_error);
double[][] l2_delta=ceng[3].getdelta(l3_delta);
ceng[3].back(l3_delta);
double[][] l1_delta=ceng[2].getdelta(l2_delta);
ceng[2].back(l2_delta);
double[][] l0_delta=ceng[1].getdelta(l1_delta);
ceng[1].back(l1_delta);
ceng[0].back(l0_delta);
}
}

标签:建立,int,double,网络,public,delta,net,ceng
来源: https://www.cnblogs.com/jidezan/p/16375714.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有