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]

 

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