1

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

训练后,评估是使用测试集完成的t2x2但是,mse 计算是使用mse(net, t2, y2)我认为正确的语句完成的,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
4

1 回答 1

3

mse是网络性能函数。它根据均方误差来衡量网络的性能。

perf = mse(net,t,y,ew)接受这些论点:

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

根据. _ mse所以第一个参数应该neural network类型的结构,NN{i}包含在y2该示例中,因此是输出矩阵。

于 2019-05-13T21:06:04.150 回答