基于TensorFlow框架的线性回归代码【多测师】

复制代码
线性回归的代码。具体要求如下:
1)回归函数为:x^2-0.5 + noisy (2)神经网络的层数、节点数目、激活函数自定义。(记录心得) (3)使用tensorboard把计算图显示出来。 (4)使用matplotlib.pyplot把拟合情况画出来。 一、初始数据如下: 线性回归函数:x^2-0.5 + noisy step_num = 400 lr = 0.01 batch_size = 10 二、参数调优过程数据如下: 1、调参数据:step_num = 400,lr = 0.01,batch_size = 10得到的, 得到损失 函数为0.0122,图像显示极度欠拟合。 2、增加神经元层数:把神经元层数从1层改为4层,发现拟合程度变化不明显。 3、增加step_num,值为5000时,曲线拟合效果有明显改变,但底部不光滑,有折 线。 4、增加Batch_size至50,有细微的改变,但是改变不是很明显。 5、改变激活函数,尝试Tanh、relu、sigmoid等,感觉Tanh函数效果较好 6、增加step_num至12000,效果显著,损失函数达到最小值0.0043,曲线基本拟合。 7、改变学习率,效果不是很明显。 8、将激活函数全部改为Tanh,曲线拟合较好,减少神经元层数至1层,曲线拟合也比 较好,损失函数为0.0033 9、将优化函数从GradientDescentOptimizer改为AdamOptimizer,拟合效果很好, 将step_num改为12000-18000,效果非常好,多跑几次损失函数最小值可以达到 0.0024,曲线已经非常拟合了。 三、生成的图如下: 1、运行代码通过matplolib画出来的图如下:
复制代码

 

 

四、获取计算图如下:
1、在terminal终端输入如下内容:
D:\tensorflow> tensorboard logdir D:\AI\work1.py
2、在谷歌浏览器输入:http://127.0.0.1:6006
3、显示如下图:

 

 

复制代码
五、结论
1、把激活函数从relu和sigmoid改为tanh最符合此次模型的拟合
2、发现在参数调优过程当中起重大作用的还是选择了AdamOptimizer这个优化器,
可以快速均匀的进行收敛。
3、增加神经元的层数对此次的数据拟合效果不是特别明显。
4、batch_size的值改到500-800的时候损失函数的会下降会更加的稳定,不会剧烈的
来回震荡,但对最终的拟合作用不是很大。
4、在此次调优过程中step_num从12000往上增加步数,拟合的效果会越来越好,直
到18000损失函数达到 0.0024左右,明显感觉到下降的梯度会越来越慢,所以
step_num参数对线性回归的调优其实作用还是很大的。
复制代码

 

posted @   多测师_树哥  阅读(222)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示