如何解决训练ANN时称量样品
我实际上是在MATLAB上训练ANN以优化泵。我有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
只是效率。
解决方法
这全都与整理您的数据有关(这尤其适用于NN)。因此,如果您想对某些样本进行加权,则可以将它们复制以进行训练,然后删除其他样本,这是对/错误的。这比摆弄权重或更改训练/测试/验证的部分要好。
一个警告:如果您重复数据,请确保它仅出现在训练集中。如果您考虑相同的示例进行培训和测试,则将获得不可靠的准确性。因此,您可能需要显式设置培训/测试/验证数据。看看文档中的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';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。