C# BP程序Word文件下载.docx

上传人:b****3 文档编号:7960012 上传时间:2023-05-09 格式:DOCX 页数:17 大小:16.61KB
下载 相关 举报
C# BP程序Word文件下载.docx_第1页
第1页 / 共17页
C# BP程序Word文件下载.docx_第2页
第2页 / 共17页
C# BP程序Word文件下载.docx_第3页
第3页 / 共17页
C# BP程序Word文件下载.docx_第4页
第4页 / 共17页
C# BP程序Word文件下载.docx_第5页
第5页 / 共17页
C# BP程序Word文件下载.docx_第6页
第6页 / 共17页
C# BP程序Word文件下载.docx_第7页
第7页 / 共17页
C# BP程序Word文件下载.docx_第8页
第8页 / 共17页
C# BP程序Word文件下载.docx_第9页
第9页 / 共17页
C# BP程序Word文件下载.docx_第10页
第10页 / 共17页
C# BP程序Word文件下载.docx_第11页
第11页 / 共17页
C# BP程序Word文件下载.docx_第12页
第12页 / 共17页
C# BP程序Word文件下载.docx_第13页
第13页 / 共17页
C# BP程序Word文件下载.docx_第14页
第14页 / 共17页
C# BP程序Word文件下载.docx_第15页
第15页 / 共17页
C# BP程序Word文件下载.docx_第16页
第16页 / 共17页
C# BP程序Word文件下载.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C# BP程序Word文件下载.docx

《C# BP程序Word文件下载.docx》由会员分享,可在线阅读,更多相关《C# BP程序Word文件下载.docx(17页珍藏版)》请在冰点文库上搜索。

C# BP程序Word文件下载.docx

deltaW2=newdouble[Nh,No];

betaO=newdouble[k,No];

betaH=newdouble[k,Nh];

Ohidden=newdouble[k,Nh];

Ooutput=newdouble[k,No];

thrH=newdouble[Nh];

thrO=newdouble[No];

deltathrH=newdouble[Nh];

deltathrO=newdouble[No];

//p=newdouble[k];

}

protectedList<

List<

double>

>

m_XExamples;

//输入训练样本

m_YExamples;

//输出训练样本

publicboolXY()

//初始化样本,输入初始化为1,输出初始化为0

m_XExamples=newList<

();

m_YExamples=newList<

for(inti=0;

i<

k;

i++)

List<

row=newList<

for(intj=0;

j<

Ni;

j++)

row.Add(1.0);

m_XExamples.Add(row);

row1=newList<

No;

row1.Add(0.0);

m_YExamples.Add(row1);

returntrue;

publicboolGet_XExamValue(intexamIndex,intindex,refdoublea)

if(examIndex<

1||examIndex>

k)

returnfalse;

if(index<

1||index>

Ni)

a=m_XExamples[examIndex-1][index-1];

//设置输入样本值

publicboolSet_XExamValue(intexamIndex,intindex,doubleexamValue)

m_XExamples[examIndex-1][index-1]=examValue;

//获得输出样本

publicboolGet_YExamValue(intexamIndex,intindex,refdoublea)

No)

a=m_YExamples[examIndex-1][index-1];

//设置输出样本值

publicboolSet_YExamValue(intexamIndex,intindex,doubleexamValue)

m_YExamples[examIndex-1][index-1]=examValue;

m_TXExamples;

//输入测试样本

m_TYExamples;

//输出测试样本

publicboolTXY()

m_TXExamples=newList<

m_TYExamples=newList<

Tk;

m_TXExamples.Add(row);

m_TYExamples.Add(row1);

publicboolGet_TXExamValue(intexamIndex,intindex,refdoublea)

Tk)

a=m_TXExamples[examIndex-1][index-1];

publicboolSet_TXExamValue(intexamIndex,intindex,doubleexamValue)

m_TXExamples[examIndex-1][index-1]=examValue;

publicboolInit()

inti,j;

Randomrd=newRandom();

for(i=0;

for(j=0;

Nh;

W1[i,j]=rd.NextDouble()-0.5;

//%12/10.0-1.2;

W2[i,j]=rd.NextDouble()-0.5;

//%12/10.0-1.2;

i++)thrH[i]=rd.NextDouble()-0.5;

i++)thrO[i]=rd.NextDouble()-0.5;

doublesigmoid(doublex)

return1.0/(1.0+Math.Exp(-a*x));

doublesum1(intk,inth,inti)

doublet=0;

intj;

switch(h)

case1:

t+=W1[j,i]*m_XExamples[k][j];

t-=thrH[i];

break;

case2:

t+=W2[j,i]*Ohidden[k,j];

t-=thrO[i];

default:

returnt;

doublesum2(intk,inth,inti)

t+=W2[i,j]*Ooutput[k,j]*(1.0-Ooutput[k,j])*betaO[k,j];

voidforward(intk)

doubleerrorsum=0;

Ohidden[k,i]=sigmoid(sum1(k,1,i));

Ooutput[k,i]=sigmoid(sum1(k,2,i));

if(m_YExamples[k][i]!

=0)

P=Math.Abs((m_YExamples[k][i]-Ooutput[k,i])/m_YExamples[k][i]);

errorsum+=P;

else

P=Math.Abs(m_YExamples[k][i]-Ooutput[k,i]);

P=errorsum/No;

voidbackward(intk)

betaO[k,i]=m_YExamples[k][i]-Ooutput[k,i];

betaH[k,i]=sum2(k,1,i);

deltaW2[i,j]=r*Ohidden[k,i]*Ooutput[k,j]*(1-Ooutput[k,j])*betaO[k,j];

deltathrO[i]=-r*Ooutput[k,i]*(1-Ooutput[k,i])*betaO[k,i];

deltaW1[i,j]=r*m_XExamples[k][i]*Ohidden[k,j]*(1-Ohidden[k,j])*betaH[k,j];

deltathrH[i]=-r*Ohidden[k,i]*(1-Ohidden[k,i])*betaH[k,i];

;

W2[i,j]+=deltaW2[i,j];

W1[i,j]+=deltaW1[i,j];

i++)thrO[i]+=deltathrO[i];

i++)thrH[i]+=deltathrH[i];

publicboolTrain()

do

jj++;

forward(i);

backward(i);

while(P>

eps&

&

jj<

time);

publicboolshuchu()

//********************************

//写文本

FileStreamfs=newFileStream("

最后输出节点的值.txt"

FileMode.Create);

StreamWritersw=newStreamWriter(fs);

j++)

sw.WriteLine("

{0,-20}{1,-20}{2,-20}"

i+1,j+1,Ooutput[i,j]);

sw.Close();

fs.Close();

FileStreamfss=newFileStream("

误差值.txt"

StreamWritersww=newStreamWriter(fss);

sww.WriteLine("

{0,-20}{1,-20}"

P,jj);

sww.Close();

fss.Close();

FileStreamfffs=newFileStream("

最终输入节点与隐层节点的权值.txt"

StreamWritersssw=newStreamWriter(fffs);

sssw.WriteLine("

i+1,j+1,W1[i,j]);

sssw.Close();

fffs.Close();

FileStreamffs=newFileStream("

最终隐层节点与输出节点的权值.txt"

StreamWriterssw=newStreamWriter(ffs);

ssw.WriteLine("

i+1,j+1,W2[i,j]);

ssw.Close();

ffs.Close();

FileStreamffss=newFileStream("

最终隐含层阈值.txt"

StreamWriterssww=newStreamWriter(ffss);

ssww.WriteLine("

{0,-20}"

thrH[i]);

ssww.Close();

ffss.Close();

FileStreamff=newFileStream("

最终输出层阈值.txt"

StreamWriterss=newStreamWriter(ff);

ss.WriteLine("

thrO[i]);

ss.Close();

ff.Close();

doublesum12(double[]ti,inth,inti)

t+=W1[j,i]*ti[j];

t+=W2[j,i]*Ohidden[0,j];

publicboolTest()

double[]t=newdouble[Ni];

for(intkk=0;

kk<

kk++)

//double[]O=newdouble[No];

t[0]=m_TXExamples[kk][0];

t[1]=m_TXExamples[kk][1];

t[2]=m_TXExamples[kk][2];

t[3]=m_TXExamples[kk][3];

Ohidden[0,i]=sigmoid(sum12(t,1,i));

Ooutput[0,i]=sigmoid(sum12(t,2,i));

m_TYExamples[kk][i]=Ooutput[0,i];

//O[i]=Ooutput[0,i];

TEST_0ut.txt"

m_TYExamples[j][i]);

}

 

classProgram

staticvoidMain(string[]args)

{

NNnet=newNN();

net.XY();

intkk=100,Tk=30,aa=5,In=4;

StreamReaderT_file=newStreamReader("

test.txt"

);

//读取训练文件的名字

for(inti=1;

=kk;

stringinSample=T_file.ReadLine();

if(inSample!

=null)

string[]str=System.Text.RegularExpressions.Regex.Split(inSample,@"

['

'

]+"

for(intj=1;

=aa;

doubletemp=double.Parse(str[j-1]);

if(j<

=In)

net.Set_XExamValue(i,j,temp);

net.Set_YExamValue(i,j-In,temp);

net.TXY();

StreamReaderTT_file=newStreamReader("

ce.txt"

//读取测试文件的名字

=

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2