我使用nprtool训练了一个带XOR门的神经网络。我想将它导出到我的.net应用程序中。我使用d sim函数来模拟网络,它产生了预期的结果。但是,sim函数在matlab之外不起作用,所以我需要写出权重,以便我可以在我的dotnet应用程序中使用。我写了这个函数并在matlab中测试了它。问题是该函数没有返回与我在matlab中使用sim函数时相同的结果。我需要帮助!!!
function [ Result ] = TrainedXOR_net(input )
load C:\Users\Student\Desktop\my_MatlabFiles\SampleXOR_Net.mat
y1 = tansig(net.IW{1}* input + net.b{1});
Resut = tansig(net.LW{2}* y1 + net.b{2});
end
答案 0 :(得分:1)
我把它分类了。只想发布我的解决方案,以便有同样问题的另一个人可以轻松地对其进行排序事实证明,我需要对输入进行一些预处理并对输出进行后处理。
function [ Result ] = TrainedXOR_net(inputs)
%This is just to load the pre-trained network from the location i saved it.
load C:\Users\Student\Desktop\my_MatlabFiles\SampleXOR_Net.mat
for iii = 1:numel(net.inputs{1}.processFcns)
inputs = feval( net.inputs{1}.processFcns{iii}, 'apply', inputs, net.inputs{1}.processSettings{iii} );
end
y1 = tansig(net.IW{1}* inputs + net.b{1});
Result = tansig(net.LW{2}* y1 + net.b{2});
for iii = 1:numel(net.outputs{2}.processFcns)
Result = feval( net.outputs{2}.processFcns{iii},'reverse', Result, net.outputs{2}.processSettings{iii} );
end
使用此代码,我现在与sim函数具有相同的结果。我希望这有助于某人...