【Mathematica】用神经网络来拟合数据

 时间:2024-09-26 04:24:21

本文,用Mathematica的NetTrain,来拟合非线性数据。

【Mathematica】用神经网络来拟合数据

工具/原料

电脑

Mathematica

方法/步骤

1、把非线性数据,转化为训练集:data=Table[x->Sin[10x]*Exp[-x^2],{x,-3,3,.1}]训练集一定是个集合的元素的一一对应。

【Mathematica】用神经网络来拟合数据

2、可视化数据:d0=Table[{x,Sin[10x]*Exp[-x^2]},{x,-3,3,.1}];ListLinePlot[d0,PlotRange->All]

【Mathematica】用神经网络来拟合数据

3、创建一个神经网络:net=NetChain[{10,Ramp,10,Tanh,咯悝滩镞1},"Input"->"Sc锾攒揉敫alar","Output"->"Scalar"];里面有五个层。

【Mathematica】用神经网络来拟合数据

4、用训练集来训练这个网络:tnet=NetTrain[net,data,MaxTrainingRounds->Quantity[1,"Seconds"]];训练10秒。

【Mathematica】用神经网络来拟合数据

5、可视化训练结果:Show[ListLinePlot[d0,Plo隋茚粟胫tStyle->Red,PlotRange->All],Plo墉掠载牿t[tnet[x],{x,-3,3},PlotStyle->Green,PlotRange->All]]

【Mathematica】用神经网络来拟合数据

6、如果只训练1秒,结果会如何?tnet=咯悝滩镞NetTrain[net,data,MaxTrainingRounds->Quantity[1,"稆糨孝汶;Seconds"]];可以看到,拟合结果很差。

【Mathematica】用神经网络来拟合数据

7、下面是训练2秒的结果:

【Mathematica】用神经网络来拟合数据

8、训练20秒的结果:tnet=NetTrain[net,data,MaxTrainingRounds->Quantity[20,"Seconds"]];

【Mathematica】用神经网络来拟合数据

VS中如何设置加粗所选选项卡上的文本 Visual Studio Code怎么设置隐藏选项卡 js怎么判断事件是否绑定 Arduino初始化器列表声明中初始化数组编程解读 matlab中创建线条动画
热门搜索
动漫明星大乱斗 三点式图片 动漫爱情动作片 雁荡山图片 花园动漫