玩轉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逼近。