我实际上是在MATLAB上训练一个神经网络来优化一个泵。我有2000个样本作为泵设计的输入和效率的输出。我已经得到了一些好的结果,但现在我想重新训练模型。我想重新排列每个样本的权重,以便效率更高的样本具有比小效率更高的权重。
我如何通过效率来衡量我的样本?
下面是我的一段代码:
Mdl_NN1 = fitnet([6 4],training);
Mdl_NN1.layers{2}.transferFcn = 'purelin';
Mdl_NN1.divideParam.trainRatio = 70/100;
Mdl_NN1.divideParam.valRatio = 15/100;
Mdl_NN1.divideParam.testRatio = 15/100;
Mdl_NN1.trainParam.showWindow = true;
[Mdl_NN1,TR] = train(Mdl_NN1,XtrainSet',YtrainSet(:,2)')Xtrainset表示泵的6个参数的设计,YtrainSet表示泵的效率。
发布于 2020-08-19 14:38:29
这一切都是关于管理你的数据(这特别适用于NNs)。因此,如果你想要给某些样本赋予比其他样本更多的权重,请复制它们以进行训练,并删除其他错误的样本。这比摆弄权重或更改训练/测试/验证的部分要好。
警告一句:如果您复制数据,请确保它只出现在training set中。如果您考虑使用相同的示例进行训练和测试,您将获得不可靠的准确性。因此,您可能需要显式设置训练/测试/验证数据。在文档中查看一下divide data for optimal neural network training。
Mdl_NN1.divideFcn = 'divideind';
Mdl_NN1.divideParam.trainInd = % vector with indices
Mdl_NN1.divideParam.testInd = % vector with indices
Mdl_NN1.divideParam.valInd = % vector with indices或者可以足以设置数据是否被正确排序
Mdl_NN1.divideFcn = 'divideblock';https://stackoverflow.com/questions/63465980
复制相似问题