MATLAB文档中给出的用于训练多个神经网络的示例代码中存在错误

MATLAB文档中给出的用于训练多个神经网络的示例代码中存在错误,matlab,machine-learning,neural-network,deep-learning,feed-forward,Matlab,Machine Learning,Neural Network,Deep Learning,Feed Forward,在本课程中,我们正在训练10个不同的神经网络,每个神经网络都用不同的权重和偏差初始化net是构建神经网络的变量,x1是训练数据集,t1是训练中使用的已知标签,x2是测试数据集,t2是测试标签。每个神经网络存储在一个单元变量NN{}中 训练后,使用测试集t2和x2进行评估,然而,mse计算是使用mse(net,t2,y2)进行的,我认为正确的说法应该是mse(NN{I},t2,y2),因为NN{}是经过训练的模型,而不是net,后者只是一个结构。下面是链接中给出的代码 函数调用应该是mse(NN{

在本课程中,我们正在训练10个不同的神经网络,每个神经网络都用不同的权重和偏差初始化
net
是构建神经网络的变量,
x1
是训练数据集,
t1
是训练中使用的已知标签,
x2
是测试数据集,
t2
是测试标签。每个神经网络存储在一个单元变量
NN{}

训练后,使用测试集
t2
x2
进行评估,然而,mse计算是使用
mse(net,t2,y2)
进行的,我认为正确的说法应该是
mse(NN{I},t2,y2)
,因为
NN{}
是经过训练的模型,而不是
net
,后者只是一个结构。下面是链接中给出的代码

函数调用应该是
mse(NN{i},t2,y2)
而不是
mse(net,t2,y2)

mse
是一种网络性能函数。它测量网络的 根据均方误差的性能

perf=mse(net,t,y,ew)
采用以下参数:

  • net
    神经网络
  • t
    目标矩阵或单元阵列
  • y
    输出矩阵或单元数组
  • ew
    错误权重(可选)

按照。因此,第一个参数应该是
神经网络
类型的结构,在该示例中,
NN{i}
包含在
y2
中,因此是输出矩阵。

感谢您的回答。那么Matlab文档中的示例代码是否正确?此代码的目的是选择最小均方误差的NN。不清楚我应该使用哪个变量作为最终的NN模型?我选择模型的方式是在循环结束后,
[miner indx]=min(perfs);bestModel=NN{indx}
如果
net
是模型,则没有可供选择的网络数组。你能告诉我哪个变量是模型吗?
net = feedforwardnet(10);
numNN = 10;
NN = cell(1, numNN);
perfs = zeros(1, numNN);
for i = 1:numNN
  fprintf('Training %d/%d\n', i, numNN);
  NN{i} = train(net, x1, t1);
  y2 = NN{i}(x2);
  perfs(i) = mse(net, t2, y2);
end