TensorFlow——热身运动:简单的线性回归
Posted DianeSoHungry
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = np.random.rand(100).astype("float32") 7 y_data = x_data*0.1+0.3 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——热身运动:简单的线性回归的主要内容,如果未能解决你的问题,请参考以下文章
tensorflow 实现逻辑回归——原以为TensorFlow不擅长做线性回归或者逻辑回归,原来是这么简单哇!