我在MATLAB中编程,我正在尝试使用神经网络工具箱,但我在计算网络输出方面遇到了麻烦。我将尝试解释我的问题:我已经定义了一个非常简单的ANN,其中包含一个隐藏层和线性激活函数。所以如果我有一个输入x,那么我希望隐藏层的输出是
h = w * x + b
其中w是权重,b是偏差。然后我希望我的输出是
o = w' * h + b'
其中w'是隐藏层和输出之间的权重,b'是偏差。
现在的问题是,如果我这样做
o = net(x)
这不会发生。这是我的代码:
net = feedforwardnet([layer1], 'traincgp');
net = configure(net, Dtrain, Dtrain);
net.trainParam.epochs = 0;
net.IW{1,1} = weights12;
net.LW{2,1} = my_weights;
net.b{1} = bias12;
for ii=1:size(net.layers, 1)
net.layers{ii}.transferFcn = 'purelin';
end;
net = train(net, Dtrain, Dtrain);
正如你所看到的,我正在训练0个时代,因为这只是一个测试,我也在使用Dtrain作为输入和目标,因为我正在训练一个自动编码器。正如我所说,问题是,如果我在得到一个结果之前计算输出,而如果我这样做
output = net(input)
我得到另一个。我该怎么做才能得到相同的结果?