首页 > 代码库 > TensorFlow——热身运动:简单的线性回归
TensorFlow——热身运动:简单的线性回归
过程:
先用numpy建立100个数据点,再用梯度下滑工具来拟合,得到完美的回归线。
1 # _*_coding:utf-8_*_ 2 import tensorflow as tf 3 import numpy as np 4 5 # 用numpy建立100个数据点,y=x*0.1+0.3 6 x_data = http://www.mamicode.com/np.random.rand(100).astype("float32") 7 y_data = http://www.mamicode.com/x_data*0.1+0.3"color: #008080"> 8 9 # 建立权值变量W和偏移量变量b 10 W = tf.Variable(tf.random_uniform([1],-1.0,1.0)) 11 b = tf.Variable(tf.zeros([1])) 12 y = W * x_data + b 13 14 # 最小化均方差 15 loss = tf.reduce_mean(tf.square(y - y_data)) 16 optimizer = tf.train.GradientDescentOptimizer(0.5) #train里面有最优化函数 17 train = optimizer.minimize(loss) #gradient descent 作用的是代价函数 18 19 # 变量使用前要初始化 20 init = tf.initialize_all_variables() 21 22 # 载入图(在一个session被建立并且run()函数被运行前,TensorFlow不会进行任何实质的计算) 23 sess = tf.Session() # 会话将图的 op 分发到如 CPU 或 GPU 之类的 设备 (Devices()) 上, 同时提供 执行 op 的方法 24 sess.run(init) 25 26 # 调整线 27 for step in xrange(201): 28 sess.run(train) 29 if step % 20 == 0: 30 print (step, sess.run(W), sess.run(b))
运行结果:
(0, array([ 0.32897317], dtype=float32), array([ 0.2412499], dtype=float32)) (20, array([ 0.15775403], dtype=float32), array([ 0.26956022], dtype=float32)) (40, array([ 0.11639664], dtype=float32), array([ 0.29135802], dtype=float32)) (60, array([ 0.1046551], dtype=float32), array([ 0.29754651], dtype=float32)) (80, array([ 0.10132162], dtype=float32), array([ 0.29930344], dtype=float32)) (100, array([ 0.10037522], dtype=float32), array([ 0.29980224], dtype=float32)) (120, array([ 0.10010655], dtype=float32), array([ 0.29994386], dtype=float32)) (140, array([ 0.10003026], dtype=float32), array([ 0.29998407], dtype=float32)) (160, array([ 0.10000858], dtype=float32), array([ 0.29999548], dtype=float32)) (180, array([ 0.10000245], dtype=float32), array([ 0.29999873], dtype=float32))
符合:y=x*0.1+0.3
TensorFlow——热身运动:简单的线性回归
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。