神经网络参数优化更新的步骤——tensorflow实现线性回归

网友投稿 727 2022-05-29

基本思路

本文是简单地体验一下神经网络参数更新的流程,因此不涉及激活函数和Drop_out等知识点。

首先利用高斯分布随机生成2000个点,这2000个点围绕某条已知的直线,再初始化权重参数w和偏移量b,根据w和b计算出预测值,再与真实值比较计算出损失函数(采用均方误差作为指标),使用梯度下降的优化方法更新参数使得损失函数最小化,最后让整个线性回归模型训练500次即可。

代码及流程

本例使用ModelArts进行模型部署,所用的框架是tensorflow。

1.进入ModelArts控制台和创建项目

进入ModelArts控制台(控制台选择华北-北京四,北京四有免费资源)后选择开发环境,点击进入Notebook,点击创建新项目(若进入的是新版的Notebook,请点击回到旧版)

神经网络参数优化更新的步骤——tensorflow实现线性回归

项目名称自拟,工作环境选择第一个(只要包含tensorflow的1.x.x版本即可),类型选择CPU2核8G,资源池选择公共资源池,储存配置选择云硬盘。

创建好Notebook后,新建一个文件(即点击new),选择tensorflow-1.13.1,创建成功后就可以开始写代码啦。

2.代码

import matplotlib.pyplot as plt import numpy as np import tensorflow as tf #随机点的生成 x_set = [] y_set = [] for i in range(2000): x = np.random.normal(0.0,0.5) x_set.append(x) y = 0.03*x+0.05+np.random.normal(0.0,0.02) y_set.append(y) plt.scatter(x_set,y_set,c='r') plt.show() #设置权重参数w,由于是点,所以设置为一维 W = tf.Variable(tf.random.normal([1],mean = 0,stddev = 0.01),name = "W") #设置偏移量b b = tf.Variable(tf.zeros([1],tf.float32)) #预测值 y_p = W*x_set+b #计算损失函数(均方误差) loss = tf.reduce_mean(tf.square(y_set-y_p)) #梯度下降优化参数 optimizer = tf.train.GradientDescentOptimizer(0.1)#0.1是学习率 train = optimizer.minimize(loss) #初始化变量 init = tf.compat.v1.global_variables_initializer() sess = tf.compat.v1.Session() sess.run(init) print("W=",sess.run(W),"b=",sess.run(b),"loss=",sess.run(loss)) print("Start training\n") #训练500次 for step in range(500): sess.run(train) print("W=",sess.run(W),"b=",sess.run(b),"loss=",sess.run(loss)) print("Training ending\n") print("W=",sess.run(W),"b=",sess.run(b))

随机生成的点:

训练后结果:

训练结果的w和b还是比较接近预设的0.03和0.05的。

TensorFlow 神经网络

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C# 程序文件
下一篇:【Back to base】深入理解计算机系统 读书笔记 第一章 计算机系统漫游
相关文章

 发表评论

暂时没有评论,来抢沙发吧~