import tensorflow as tf
import numpy as np
# create data
#TF中大部分的數(shù)據(jù)都是np.float32的形式,所以astype設(shè)置數(shù)據(jù)類型為float32
x_data = np.random.rand(100).astype(np.float32)
#構(gòu)造y=kx+b 的線性函數(shù)weight=0.1 biases = 0.3
y_data = x_data*0.1 + 0.3
### create tensorflow structure start ###
"""
構(gòu)建一個y_data = Weights*x_data+biases的函數(shù),在TF神經(jīng)網(wǎng)絡(luò)中會一步步學(xué)習(xí)
使得初始值很接近于weight 或者很接近于biases
"""
#tf.Variable 定義TF中的變量形式
#tf.random_uniform 生成隨機數(shù)列生成方式,結(jié)構(gòu)是[1]維的結(jié)構(gòu) 范圍是-1:1
Weights = tf.Variable(tf.random_uniform([1], -1.0, 1.0))
biases = tf.Variable(tf.zeros([1])) #定義一個初始值為0的變量
y = Weights*x_data + biases #定義函數(shù)
loss = tf.reduce_mean(tf.square(y-y_data)) #計算殘差的平均數(shù)
#優(yōu)化器 optimizer ,使用GradientDescent進行優(yōu)化,每一步為0.5
optimizer = tf.train.GradientDescentOptimizer(0.5)
train = optimizer.minimize(loss)
#把神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)做好之后init 初始化所有參數(shù)
init = tf.initialize_all_variables()
### create tensorflow structure end ###
sess = tf.Session()
#run 激活初始化 run的指針指向那個對像才會激活
sess.run(init) # Very important
for step in range(201):
sess.run(train)
if step % 20 == 0:
print(step, sess.run(Weights), sess.run(biases))
本代碼出自 莫凡老師的教程,加上我自己的一些備注
http://study.163.com/course/courseMain.htm?courseId=1003209007