欢迎来到天天文库
浏览记录
ID:1584816
大小:92.50 KB
页数:9页
时间:2017-11-12
《人工智能 java 坦克机器人系列神经网络机器人代码》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、importjava.io.*;publicclassNeuralNetwork{publicstaticfinaldoublelearningRate=0.001;privateintnumInputs;privateintnumOutputs;privatedoubleinputs[];privatedoubleoutputs[];privatedoubleweights[][];publicNeuralNetwork(intnumInputs,intnumOutputs){this.numInputs=numInputs+1;this.numInputs=numInputs;this.n
2、umOutputs=numOutputs;initialize();}privatevoidinitialize(){inputs=newdouble[numInputs];outputs=newdouble[numOutputs];weights=newdouble[numOutputs][numInputs];for(inti=0;i3、ghts[i][j]=0;}//初始化输入,输出,权重都为0,权重的行为输出数组的个数,列位输入数组的个数//publicvoidactivate(double[]values){activateInputs(values);activateOutputs();}//我理解为动态更改一个数组。。不太明白做什么用的//这个动态改数组方法有两个函数,一个赋值给inputs数组(用传进来的values数组)//另一个函数就是将weights的一行与inputs加,赋值给outputs数组的对应单元//行号,与outputs单元号对应,inputs则是整个想加到weights对应的行publicvoi4、dactivateInputs(double[]values){inputs[numInputs-1]=0.1;for(inti=0;i5、ghts二维数组的i行与inputs数组的值都加都sum上然后返回privatedoublesummation(double[]weights,double[]inputs){doublesum=0.0;for(inti=0;i6、Output(){doublemaximum=Double.NEGATIVE_INFINITY;doubleoutput;for(inti=0;imaximum)maximum=output;}returnmaximum;}//应该是得到outputs数组中的最倒置publicintgetMaximumOutputIndex(){doublemaximum=Double.NEGATIVE_INFINITY;doubleoutput;intoutputIndex=0;for(inti=0;i7、uts;i++){output=outputs[i];if(output>maximum){maximum=output;outputIndex=i;}}returnoutputIndex;}//得到outputs数组中最大元素的下标publicvoidupdate(intoutputIndex,double[]inputs,doubletarget){activate(inputs);//用这个
3、ghts[i][j]=0;}//初始化输入,输出,权重都为0,权重的行为输出数组的个数,列位输入数组的个数//publicvoidactivate(double[]values){activateInputs(values);activateOutputs();}//我理解为动态更改一个数组。。不太明白做什么用的//这个动态改数组方法有两个函数,一个赋值给inputs数组(用传进来的values数组)//另一个函数就是将weights的一行与inputs加,赋值给outputs数组的对应单元//行号,与outputs单元号对应,inputs则是整个想加到weights对应的行publicvoi
4、dactivateInputs(double[]values){inputs[numInputs-1]=0.1;for(inti=0;i5、ghts二维数组的i行与inputs数组的值都加都sum上然后返回privatedoublesummation(double[]weights,double[]inputs){doublesum=0.0;for(inti=0;i6、Output(){doublemaximum=Double.NEGATIVE_INFINITY;doubleoutput;for(inti=0;imaximum)maximum=output;}returnmaximum;}//应该是得到outputs数组中的最倒置publicintgetMaximumOutputIndex(){doublemaximum=Double.NEGATIVE_INFINITY;doubleoutput;intoutputIndex=0;for(inti=0;i7、uts;i++){output=outputs[i];if(output>maximum){maximum=output;outputIndex=i;}}returnoutputIndex;}//得到outputs数组中最大元素的下标publicvoidupdate(intoutputIndex,double[]inputs,doubletarget){activate(inputs);//用这个
5、ghts二维数组的i行与inputs数组的值都加都sum上然后返回privatedoublesummation(double[]weights,double[]inputs){doublesum=0.0;for(inti=0;i6、Output(){doublemaximum=Double.NEGATIVE_INFINITY;doubleoutput;for(inti=0;imaximum)maximum=output;}returnmaximum;}//应该是得到outputs数组中的最倒置publicintgetMaximumOutputIndex(){doublemaximum=Double.NEGATIVE_INFINITY;doubleoutput;intoutputIndex=0;for(inti=0;i7、uts;i++){output=outputs[i];if(output>maximum){maximum=output;outputIndex=i;}}returnoutputIndex;}//得到outputs数组中最大元素的下标publicvoidupdate(intoutputIndex,double[]inputs,doubletarget){activate(inputs);//用这个
6、Output(){doublemaximum=Double.NEGATIVE_INFINITY;doubleoutput;for(inti=0;imaximum)maximum=output;}returnmaximum;}//应该是得到outputs数组中的最倒置publicintgetMaximumOutputIndex(){doublemaximum=Double.NEGATIVE_INFINITY;doubleoutput;intoutputIndex=0;for(inti=0;i7、uts;i++){output=outputs[i];if(output>maximum){maximum=output;outputIndex=i;}}returnoutputIndex;}//得到outputs数组中最大元素的下标publicvoidupdate(intoutputIndex,double[]inputs,doubletarget){activate(inputs);//用这个
7、uts;i++){output=outputs[i];if(output>maximum){maximum=output;outputIndex=i;}}returnoutputIndex;}//得到outputs数组中最大元素的下标publicvoidupdate(intoutputIndex,double[]inputs,doubletarget){activate(inputs);//用这个
此文档下载收益归作者所有