A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.直线的拟合
比如我们现在要用 y = k * x + b (其中 k ,b为参数)通过多次的训练来拟合直线 y = 5 * x + 1 。
根据上述 3 个步骤 ,首先构造线性模型 y = k * x + b ,我们目的就是通过训练 ,使得参数 k ,b 去逼近真实值 5 ,1 。之后定义损失函数 ,这里我们用的是二次代价函数 ;选用梯度下降法进行优化 。最后在会话(tf.Session)中进行反复的优化 。具体代码和注释如下 :


运行结果如下 ,经过 100 轮的训练优化 ,参数的训练值已经很逼近真实值了 。


2.线性回归
回归问题和分类问题不太一样 ,分类是得到结果为 label ,表示类别 ,比如二分类问题等 ,是离散的 ,有限个类别 。回归则是连续的 ,具体看下面例子 。
本例中 ,我们用 y = x*x +noise 随机生成200个散点 ,用神经网络训练 ,拟合出较为理想的回归结果 。
同上述 3 个步骤 ,第一步是定义网络结构和基本信息 ,这部分代码造了一个 10 个节点的中间层 ,之后直接连接一个节点的输出 。输入散点则是利用 numpy 在区间(-0.5,0.5)间生成 200 个散点 ,并在输出中添加了 noise 信息 。具体如下。

这里选用的代价函数为二次代价函数 ,优化算法也是梯度下降法 。之后执行对应的训练 ,并将结果以绘图形式输出 。代码如下 :

运行该代码 ,得到的结果如下 。

本篇两个案例都比较简单 ,主要目的在于用两个简单实例熟悉神将网络训练的基本步骤 。



链接:https://juejin.im/post/5b6173fee51d45346755276c



2 个回复

倒序浏览
奈斯
回复 使用道具 举报
学习,谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马