玩轉TensorFlow那些事之第一段代碼

玩轉TensorFlow那些事之第一段代碼
代碼介紹:
         下面的代碼是學習TensorFlow的第一個實例代碼,該代碼中定義了一個函數y_data = X_data*0.1+0.3,然後又預設了一個函數y = Weights*X_data +biases,將這個函數和原來確定的函數都讓X_data從(0-100)中隨機取數,將計算結果做差,創建優化器,設定學習效率,然後進行訓練讓兩個函數的差值最小,代碼的最後讓這個優化器訓練201次,並每隔20步將需練中的Weights和biases的值顯示出來。
#-*-coding:utf-8-*-
'''
Created on 2017年6月20日

@author: Administrator
'''
import tensorflow as tf
import numpy as np
#creat data
x_data = np.random.rand(100).astype(np.float32)
y_data = x_data*0.1 + 0.3

###creat tensorflow structure start###
Weights = tf.Variable(tf.random_uniform([1], -1.0,1.0))#一維的(-1,1)的隨機值
biases = tf.Variable(tf.zeros([1]))#初始值是一維的0

y = Weights*x_data +biases#預測的y,提升準確度

loss = tf.reduce_mean(tf.square(y-y_data))#計算預測的y和實際y的差別
optimizer = tf.train.GradientDescentOptimizer(0.5)#建立優化器。0.5是學習效率,一般是0-1的數
train = optimizer.minimize(loss)#使用優化器去減少誤差。

init = tf.initialize_all_variables()#初始化網絡
###craet tensorflow structure end###

sess = tf.Session() #
sess.run(init)      #Session像是一個指針指到要激活的地方,通過這個指針來激活整個網絡

for step in range(201):
    sess.run(train) #開始訓練
    if step%20 == 0:#每隔20步來打印一下
        #輸出當前是第幾步,還有Weight,biases
        print(step,sess.run(Weights),sess.run(biases))
運行結果:


又實驗結果可以看出來,Weights的值和biases的值在分向着設定的函數中的0.1和0.3逼近。

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