matlab提供的结果与具有相同参数的自定义神经网络之间的结果不同?

时间:2017-01-09 11:06:20

标签: matlab neural-network

我通过matlab神经网络工具箱训练了一个神经网络。

在保存训练好的神经网络的权重和偏差后,我通过一些自定义的代码计算了神经网络的结果,例如' out = poslin(W1 * input + b1)'。 / p>

然后我计算了神经网络工具箱提供的命令的结果,比如' out = net(输入)'

但是当权重,偏差,传递函数都相同时,结果会有所不同。 matlab的输出是0.0221260335094049 -0.600000000000000&#39 ;;我的网络输出是' 0.998704466284076 -1'。

m文件是:

load net_save;

view(net_save);

input =  [-0.6000;0;0;0;0;0];

%% the result of matlab defined neural network

out_matlab = net_save(input);

% save the weights and bias of the loaded network
b1 = net_save.b{1};
b2 = net_save.b{2};
b3 = net_save.b{3};

w1 = net_save.iw{1};
w2 = net_save.lw{2,1};
w3 = net_save.lw{3,2};


%% the result of own defined neural network

in = input;
in_layer1 = poslin(w1*in + b1);
in_layer2 = poslin(w2*in_layer1+b2);
out = tansig(w3*in_layer2+b3);

神经网络的结构是: two hidden layers with 400 and 300 nodes

可在此处找到经过培训的网络: train network

此外,在培训网络时,我使用了' poslin'两个隐藏层的传递函数和' tansig'输出层的传递函数。

命令是:

net.layers{1}.transferFcn = 'poslin';
net.layers{2}.transferFcn = 'poslin';
net.layers{3}.transferFcn = 'tansig';

提前谢谢!

0 个答案:

没有答案