tensorflow(一):线性回归

一、jupyter设置python环境

在python的虚拟环境下安装了tensorflow,但是用jupyter notebook的时候发现无法找到tensorflow模块.

(1)   conda install nb_conda_kernels

(2)  conda install -n env_name ipykernel

(3)python -m ipykernel install --name XXXX

二、线性回归代码 

import tensorflow as tf
import numpy as np
 
#使用numpy生成100个随机点
x_data=np.random.rand(100)
y_data=x_data*0.1+0.2   #这里我们设定已知直线的k为0.1 b为0.2得到y_data
 
#构造一个线性模型
b=tf.Variable(0.)
k=tf.Variable(0.)
y=k*x_data+b
 
#二次代价函数(白话:两数之差平方后取 平均值)
loss=tf.reduce_mean(tf.square(y_data-y))
#定义一个梯度下降法来进行训练的优化器(其实就是按梯度下降的方法改变线性模型k和b的值,
#注意这里的k和b一开始初始化都为0.0,后来慢慢向0.1、0.2靠近)
optimizer=tf.train.GradientDescentOptimizer(0.2)   
 #这里的0.2是梯度下降的系数也可以是0.3...
#最小化代价函数(训练的方式就是使loss值最小,
#loss值可能是随机初始化100个点与模型拟合出的100个点差的平方相加...等方法)
train=optimizer.minimize(loss)
 
#初始化变量
init=tf.global_variables_initializer()
 
with tf.Session() as sess:
    sess.run(init)
    for step in range(201):
        sess.run(train)
        if step%20==0:
            print(step,sess.run([k,b])) 
#这里使用fetch的方式只是打印k、b的值,每20次打印一下,改变k、b的值是梯度下降优化器的工作

 三、结果

0 [0.048981495, 0.09850588]
20 [0.099740386, 0.20012888]
40 [0.09985204, 0.20007354]
60 [0.099915646, 0.20004193]
80 [0.099951915, 0.2000239]
100 [0.0999726, 0.20001362]
120 [0.09998439, 0.20000775]
140 [0.09999109, 0.20000443]
160 [0.09999492, 0.20000252]
180 [0.09999709, 0.20000145]
200 [0.099998325, 0.20000084]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章