我想要多元回归自定义代码

3视图(30天)
jaehong金
jaehong金 2021年2月14日
回答: 沙古普塔 2021年2月25日
嗨~
我正在做一个多元回归。我想进行多元回归使用深度学习低api,如dlfeval dlgradient等等。
这是我的代码,学习6输出不正常工作。我想要一个简单的示例使用深度学习的多元回归低api,如dlfeval和dlgradient以类似的方式。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
输入= '(输入);
输出= '(输出);
层= [
featureInputLayer(2, '名称','在')
fullyConnectedLayer(64年,“名字”,“fc1”)
tanhLayer('名称',' tanh1 ')
fullyConnectedLayer(32岁的“名称”,“取得”)
tanhLayer('名称',' tanh2 ')
fullyConnectedLayer(16,“名字”,“一个fc3的文件)
tanhLayer('名称',' tanh3 ')
fullyConnectedLayer(8, '名称',' fc4 ')
tanhLayer('名称',' tanh4 ')
fullyConnectedLayer(6 '名称',' fc5 ')
];
lgraph = layerGraph(层);
dlnet = dlnetwork (lgraph);
迭代= 1;
averageGrad = [];
averageSqGrad = [];
learnRate = 0.005;
gradDecay = 0.75;
sqGradDecay = 0.95;
输出= [];
dlX = dlarray(输入,“CB”);
为它= 1:50 0
迭代=迭代+ 1;
(损失,NNgrad) = dlfeval (@gradients、dlnet dlX,输出);
[dlnet。可学的,averageGrad averageSqGrad] = adamupdate (dlnet.Learnables、NNgrad averageGrad, averageSqGrad,迭代,learnRate, gradDecay, sqGradDecay);
如果国防部(100)= = 0
disp(它);
结束
结束
函数(损失,NNgrad、grad1 grad2] =梯度(dlnet dlx t)
=前进(dlnet dlx);
loss2 =总和(((1:)- t(1:)) ^ 2) +总和(((2:)- t(2:)) ^ 2) +总和(((3:)- t(3:)) ^ 2) +总和(((4:)- t(4:)) ^ 2) +总和(((5:)- t(5:)) ^ 2) +总和(((6:)- t (6:)) ^ 2);
损失= loss2;
[NNgrad] = dlgradient(损失,dlnet.Learnables);
结束
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
感谢你的阅读我的问题。我希望一个伟大的人可以回答。

答案(1)

沙古普塔
沙古普塔 2021年2月25日
你好,
首先看看代码,我可以提供你一些建议得到工作的模型。第一件事是你提供你的整个输入数据而更新重量。通常它不工作。更好的选择是将输入数据转换成批量和更新通过批次的重量。其次,您可以使用 均方误差 直接当你定义损失函数。它会很快和你制造错误的机会。这是 链接 例如使用自定义训练循环,试图复制它。如果你的网络体系结构定义良好的数据集应该工作。
我希望这可以帮助。
欢呼。

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!