在文献资料中,我们训练了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)?
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发布于 2019-05-13 21:06:04
mse是一种网络性能功能。它根据平方误差的平均值来衡量网络的性能。perf = mse(net,t,y,ew)采用以下论点:
net神经网络t矩阵或单元阵目标y矩阵或单元格数组ew错误权重(可选)按照mse的说法。因此,第一个参数应该是neural network类型的结构,在该示例中,NN{i}包含在y2中,因此是输出矩阵。
https://stackoverflow.com/questions/56119750
复制相似问题