首页 DBN代码注释

DBN代码注释

举报
开通vip

DBN代码注释importjava.util.Random;publicclassDBN{publicintN;publicintn_ins;publicint[]hidden_layer_sizes;publicintn_outs;publicintn_layers;publicHiddenLayer[]sigmoid_layers;publicRBM[]rbm_layers;publicLogisticRegressionlog_layer;publicRandomrng;publicstaticdoublesigmoid(...

DBN代码注释
importjava.util.Random;publicclassDBN{publicintN;publicintn_ins;publicint[]hidden_layer_sizes;publicintn_outs;publicintn_layers;publicHiddenLayer[]sigmoid_layers;publicRBM[]rbm_layers;publicLogisticRegressionlog_layer;publicRandomrng;publicstaticdoublesigmoid(doublex){return1。0/(1.0+Math。pow(Math.E,—x));}//DBN的构造函数N为样本的个数,n-ins为特征个数,hidden_layer_sizes为隐藏层的结构,n—outs为输出维数,n—layers为隐藏层个数,rng为随机数实例publicDBN(intN,intn_ins,int[]hidden_layer_sizes,intn_outs,intn_layers,Randomrng){intinput_size;this.N=N;//赋值样本数目this.n_ins=n_ins;//赋值特征个数this.hidden_layer_sizes=hidden_layer_sizes;//赋值隐藏层结构this。n_outs=n_outs;//赋值输出维数this.n_layers=n_layers;//赋值隐藏层数目this。sigmoid_layers=newHiddenLayer[n_layers];//声明两个隐藏层this。rbm_layers=newRBM[n_layers];//声明两个RBM对应每个隐藏层if(rng==null)this。rng=newRandom(1234);//获取一个随机数值elsethis。rng=rng;//constructmulti-layer初始化每个隐藏层for(inti=0;i〈this。n_layers;i++){if(i==0){input_size=this.n_ins;//第一层隐藏层的输入为样本的特征的个数}else{input_size=this.hidden_layer_sizes[i—1];//后面的隐藏层的输入为上一层隐藏层的输出,也就是上一层的隐藏层节点的个数。}//sigmoid层是用来计算的,rbm是用来调整w,b,c的//constructsigmoid_layer初始化每个隐藏层,初始化做的事情就是给W和b赋随机值this.sigmoid_layers[i]=newHiddenLayer(this.N,input_size,this.hidden_layer_sizes[i],null,null,rng);//constructrbm_layer初始化玻尔兹曼机,其实也就是初始化,W,b,c其中,w,b用的是hiddenlayer的this.rbm_layers[i]=newRBM(this。N,input_size,this.hidden_layer_sizes[i],this。sigmoid_layers[i]。W,this。sigmoid_layers[i]。b,null,rng);}//在完成每一层的构建之后,构建一个输出的逻辑回归层//layerforoutputusingLogisticRegression, 参数 转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应 为样本个数N,输入为网络结构最后一层的输出数,输出为DBM网络设置的输出维数this。log_layer=newLogisticRegression(this.N,this.hidden_layer_sizes[this.n_layers-1],this。n_outs);}//对DBN网络进行一个预训练,目的是为每一层先构造更好的W和b,先使得网络更好的拟合样本的分布,类似于先把点放在最后值的附近publicvoidpretrain(int[][]train_X,doublelr,intk,intepochs){//输入训练样本,学习率lr,CD—k=1,epochs=1000int[]layer_input=null;intprev_layer_input_size;int[]prev_layer_input;for(inti=0;i〈n_layers;i++){//layer—wise迭代每一个层for(intepoch=0;epoch〈epochs;epoch++){//trainingepochs每个层都迭代优化epochs次for(intn=0;n〈N;n++){//inputx1..。xN每一层都遍历每个训练样本,这种方式相当于是随机梯度下降//layerinputfor(intl=0;l〈=i;l++){//从前面训练好的每一层开始迭代,假设有3层,i=2,0,1,2迭代3次if(l==0){//l=0的时候只是获取数据的特征layer_input=newint[n_ins];//第一层的输入维度为样本的特征数for(intj=0;j1)return0;intc=0;doubler;for(inti=0;i
本文档为【DBN代码注释】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
大嘴花
本人从事人事管理行业多年 有一定的工作经验
格式:doc
大小:79KB
软件:Word
页数:15
分类:小学语文
上传时间:2021-11-22
浏览量:0