您的健身功能必须返回标量值

时间:2016-04-01 16:39:24

标签: matlab neural-network genetic-algorithm scalar fitness

我尝试使用神经网络和遗传算法进行优化。我训练了一个神经网络,其中输入p(4x72矩阵)目标t(2x72矩阵)。使用遗传算法重新进行优化,我使用神经网络的sim函数作为适应度函数。我用它的代码如下:

objFcn=@(p) sim(net,p');
%'net' is the neural network I created with p as input and t as target
[xOpt,fVal,exitflag,target]=ga(objFcn,4,[],[],[],[],LB,UB,[],options);

我提供的LB和UB分别是下限和上限。 options,我用

尝试了
options = gaoptimset('Vectorized','on');
% even vectorized off doesnt solve the problem

逻辑上,当我在sim命令中使用 p' 时,结果矩阵将 72x2 ,这与GA的总体相同。但出于某种原因,我总是得到错误说“你的健身功能必须返回一个标量值”。

请指导我解决这个问题。

1 个答案:

答案 0 :(得分:0)

“sim”函数返回一个矩阵,其中包含网络的所有输出。您需要从中计算平方误差,以便提供标量值以使GA最小化。