tensorflow(一):线性回归

    技术2025-08-27  12

    一、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]

     

    Processed: 0.011, SQL: 9