在the documentation中,我们正在训练10个不同的神经网络,每个神经网络都使用不同的权重和偏差进行初始化。 net
是用于构建神经网络的变量,x1
是训练数据集,t1
是训练中使用的已知标签,x2
是测试数据集,t2
是测试标签。每个神经网络都存储在单元变量NN{}
中。
训练后,使用测试集t2
和x2
完成评估,但是,通过mse(net, t2, y2)
完成mse计算。我认为正确的陈述应该是mse(NN{i}, t2, y2)
,因为NN{}
是训练后的模型,不是net
只是结构。下面是链接中给出的代码。
函数调用应该是mse(NN{i}, t2, y2)
而不是mse(net, t2, y2)
吗?
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
最佳答案
mse
是网络性能功能。它衡量了网络的
根据平方误差的均值来确定性能。
perf = mse(net,t,y,ew)
采用以下参数:
net
神经网络
t
目标矩阵或单元格数组
y
输出的矩阵或单元格数组
ew
错误权重(可选)
按照documentation of mse
。因此,第一个参数应该是neural network
类型的结构,在该示例中,NN{i}
包含在y2
中,因此是输出矩阵。
关于matlab - MATLAB文档中提供的用于训练多个NN的示例代码有误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56119750/