最近在學習tensorflow,在這裏強烈推薦莫煩的教程,可以在B站觀看視頻教程,本篇博客主要是復現他所寫的代碼,不過由於版本不同,對他的代碼進行了更改,話不多說,直接上代碼。
# coding=utf-8
import numpy as np
import tensorflow as tf
# 第一個tensorflow小程序
# create data 創建訓練數據集
x_data = np.random.random(100).astype(np.float32)
y_data = x_data * 0.5 + 1.5
# tensorflow structure start 確定tensorflow結構
Weights = tf.Variable(tf.random_uniform([1], -1, 1)) # 權重,random_uniform([1], -1, 1)表示產生均勻分佈隨機數,維度1,範圍[-1, 1]
Bias = tf.Variable(tf.zeros([1])) # 偏置
y = Weights * x_data +Bias
# 定義損失函數
loss = tf.reduce_mean(tf.square(y - y_data))
# 定義優化器
optimizer = tf.train.GradientDescentOptimizer(0.5) # 0.5是學習效率,通常小於1, GradientDescentOptimizer()是梯度下降法的優化器
train = optimizer.minimize(loss)
# 初始化(tf.initialize_all_variables()新版本中已經不能使用,用tf.global_variables_initializer()代替)
init = tf.global_variables_initializer()
sess = tf.Session() # Session()是會話控制
sess.run(init) # 這一步至關重要
# 訓練500次,每20次輸出權重和偏置
for step in range(500):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(Weights), sess.run(Bias))
注意:原來的tf.initialize_all_variables()在新版本中已經不能使用了,用tf.global_variables_initializer() 代替,(我的版本是Tensorflow 1.4.0版本)