奇怪的神经网络输出

时间:2015-06-22 18:58:39

标签: matlab neural-network

我在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)

我得到另一个。我该怎么做才能得到相同的结果?

0 个答案:

没有答案