怎么训练一个曲线预测工具
1、首先,根据函数来采样,以便得到训练集:try= Table[x ->Cos[10 x]*Exp[-2 x^2], {x, -2,2, .02}]
2、我们用训练集里面的数据的后面部分,可以近似画出原函数的图像:plot=ListLinePlot[try[[All, 2]], PlotStyle ->Green,Axes->False, Frame -> False]
3、给定一个未初始化的神经网络:wang = NetChain[{10, Ramp, 10, Tanh, 1}, "Input" -> "Scalar", "Output" -> "Scalar"]输入和输出,都是数字(区别于向量和张量)。
4、自定义一个绘图函数:pp[w_, t_] := Show[plot, ListPlot雉搽妤粲Line[w@Range[-2, 2, .02], PlotStyl髫潋啜缅e ->Red,Axes->False, Frame -> False], Epilog -> Text[t, {10, 0.9}, {-1, 0}]]
5、训练神经网络:jiqi = NetTrain[wang,try,MaxTrainingRou艘绒庳焰nds -> Quantit烤恤鹇灭y[10, "Seconds"],TrainingProgressReporting -> {pp[#Net, #AbsoluteBatch] &, "Interval" -> 0.1}]原始神经网络是上面定义的wang;训练集是try;训练持续10秒;每隔0.1秒,就用训练的jiqi来拟合一下图像。
6、训练10秒的jiqi,作图如下。其中红色图就是jiqi出图。jiqi = NetTrain[嘛术铹砾wang,try,MaxTrainingRounds -> Quantity[10, "Seconds"]];pp[jiqi, "10"]
7、下图是训练5秒之后的jiqi的作图能力。jiqi = NetTrain[wang,try,MaxTrainingRounds -> Quantity[5, "Seconds"]];pp[jiqi, "5"]
8、训练2秒的机器作图。
9、训练1秒的机器作图。每次训练,都会得到不同的效果。
10、下图是训练10秒的jiqi,绘制的区间为{-5,5}的函数图形。
11、下图是训练2秒的jiqi,绘制的区间为{-5,5}的函数图形。
12、下图是训练20秒的jiqi,绘制的区间为{-5,5}的函数图形。