Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
人工模拟Matlab神经网络_Matlab_Neural Network - Fatal编程技术网

人工模拟Matlab神经网络

人工模拟Matlab神经网络,matlab,neural-network,Matlab,Neural Network,我试着用10层Matlab工具箱手动模拟训练过的神经网络。根据这一点,我必须将输入缩放到范围[-1,1](将输出规格化为[0,1],还必须从[-1,1]缩小)。我将其与Matlab的sim函数进行比较,结果显示输出有很大的失真,如图所示,上图为手动模拟,下图为Matlab的sim函数。这是我的简单代码 clear all; % x = [0;0;0;0;0;0;0;1;0;0.111;0]; load etp_input; % t = [0.45]; load etp_target; load

我试着用10层Matlab工具箱手动模拟训练过的神经网络。根据这一点,我必须将输入缩放到范围[-1,1](将输出规格化为[0,1],还必须从[-1,1]缩小)。我将其与Matlab的sim函数进行比较,结果显示输出有很大的失真,如图所示,上图为手动模拟,下图为Matlab的sim函数。这是我的简单代码

clear all;
% x = [0;0;0;0;0;0;0;1;0;0.111;0];
load etp_input;
% t = [0.45];
load etp_target;
load ETp01.mat;
iw = ETp01.IW{1,1};
lw1 = ETp01.LW{2,1};
lw2 = ETp01.LW{3,2};
lw3 = ETp01.LW{4,3};
lw4 = ETp01.LW{5,4};
lw5 = ETp01.LW{6,5};
lw6 = ETp01.LW{7,6};
lw7 = ETp01.LW{8,7};
lw8 = ETp01.LW{9,8};
lw9 = ETp01.LW{10,9};
b1 = ETp01.b{1};
b2 = ETp01.b{2};
b3 = ETp01.b{3};
b4 = ETp01.b{4};
b5 = ETp01.b{5};
b6 = ETp01.b{6};
b7 = ETp01.b{7};
b8 = ETp01.b{8};
b9 = ETp01.b{9};
b10 = ETp01.b{10};
for i=1:365
  x = etp_input(:,i+19*365)*2-1;
  xs = etp_input(:,i+19*365);
  y1 = tansig(iw*x + b1);
  y2 = tansig(lw1*y1 + b2);
  y3 = tansig(lw2*y2 + b3);
  y4 = tansig(lw3*y3 + b4);
  y5 = tansig(lw4*y4 + b5);
  y6 = tansig(lw5*y5 + b6);
  y7 = tansig(lw6*y6 + b7);
  y8 = tansig(lw7*y7 + b8);
  y9 = tansig(lw8*y8 + b9);
  y10 = purelin(lw9*y9 + b10);
  outManual(i) = (y10+1)/2;
  outSim(i) = sim(ETp01,xs);
end
subplot(2,1,1);
plot(outManual);
subplot(2,1,2);
plot(outSim);
我有每年的数据集,这就是为什么我做365 for循环。那么,我在这里错过了什么??我有成吨的年度数据集,他们只是随机给出了不同的输出失真(上面的代码使用了第19组数据)。任何帮助都将不胜感激。这是代码的一部分,所以我需要提供任何进一步的信息,请让我知道。谢谢大家。 :D:D:D

编辑:

  • 我使用nntool创建网络并将网络对象保存在mat文件中。上面更新了完整的代码
  • 下面是来自Matlab的示例

    • 我找到了解决办法。我使用的缩放是正确的想法,但我的输入没有相同的范围(最后两个元素位于[0,0.777],而前9个元素位于[0,1])。所以我必须分别缩放它们。(参见Matlab中的mapminmax函数)。谢谢stackoverflow…:D

      我找到了解决方案。我使用的缩放是正确的想法,但我的输入没有相同的范围(最后两个元素位于[0,0.777],而前9个元素位于[0,1])。所以我必须分别缩放它们。(参见Matlab中的mapminmax函数)。谢谢stackoverflow…:D

      你能展示一下如何在MATLAB中创建你的神经网络吗?请尝试发布一篇文章。另外,差别也没那么大。我更新了代码,并在帖子中添加了一张网络图片。谢谢。
      a1、a2、a3、a4…
      不是个好主意。我建议你使用3D矩阵或细胞阵列…谢谢你的建议。我已经在我的Qt项目中移植了这个,这就是为什么我不想使用那些3D矩阵或细胞阵列…你能展示一下如何在MATLAB中创建你的神经网络吗?请尝试发布一个。另外,差别也没那么大。我更新了代码,并在帖子中添加了一张网络图片。谢谢。
      a1、a2、a3、a4…
      不是个好主意。我建议你使用3D矩阵或细胞阵列…谢谢你的建议。我已经在我的Qt项目中移植了这个,这就是为什么我不想使用那些3D矩阵或细胞阵列。。。