输入第一个隐藏层
for(int j=0;j<hiddenNeuronInLayer;j++)
{
for(int k=0;k<inputNeuron;k++)
{
netInput[j]+=input[k]*weight[count];
count++;
}
netInput[j]+=bais[0];
hiddenOutput[0][j]=(1/(1+Math.exp(-netInput[j])));
}
for Encoder
for(int j=1;j<hiddenLayer;j++)
{
for(int k=0;k<hiddenNeuronInLayer;k++)
{
for(int p=0;p<hiddenNeuronInLayer;p++)
{
netInput[k]+=hiddenOutput[j-1][p]*weight[count++];
//System.out.println(count);
}
netInput[k]+=bais[j];
hiddenOutput[j][k]=(1/(1+Math.exp(-netInput[k])));
}
}
for Decoder
int layer=hiddenLayer-1;
while(layer>0)
{
for(int k=0;k<hiddenNeuronInLayer;k++)
{
for(int p=0;p<hiddenNeuronInLayer;p++)
{
netInput[k]+=hiddenOutput[layer][p]*weight[count++];
//System.out.println(count);
}
netInput[k]+=bais[layer-1];
hiddenOutput[layer-1][k]=(1/(1+Math.exp(-netInput[k])));
}
layer--;
}
用于输出图层
for(int j=0;j<outputNeuron;j++)
{
for(int k=0;k<hiddenNeuronInLayer;k++)
{
output[j]+=hiddenOutput[layer][k]*weight[count++];
//System.out.println(count);
}
output[j]+=bais[layer];
output[j]=(1/(1+Math.exp(-output[j])));
}
我正在编写autoencoder的这段代码。在前馈网络后,我无法使用反向传播算法。