TensorFlow簡單學習1

使用TensorFlow 構建簡單的線性模型,模型使用以及使用tensorboard顯示

直接上代碼:

#coding:utf-8
import tensorflow as tf
import numpy as np
from pip._vendor.requests.sessions import session
# create a input placeholder to as a input struct flag
data_x=tf.placeholder(tf.float32,[None])

#define y
data_y=3.1*data_x+2

# create w and b variable
W=tf.Variable(tf.random_uniform([1], 0, 1, tf.float32))
b=tf.Variable(tf.zeros([1], tf.float32))

# opti function
y=W*data_x+b
#loss
loss=tf.reduce_mean(tf.square(y-data_y))
#summary loss summary
tf.summary.scalar("summaryloss", loss)
#Optimizer
optimizer=tf.train.GradientDescentOptimizer(0.5)
train=optimizer.minimize(loss)
#get all variable initer
init=tf.global_variables_initializer()
#get variable saver object to save the final model
saver=tf.train.Saver()
#merge all summary to be saved
summary=tf.summary.merge_all()

#get graph
sess=tf.Session()
#define where to write summary logs and how to write
summarywrite=tf.summary.FileWriter('logs/',sess.graph)
#init all variable
sess.run(init)
#create train data set according data_x struct
data_x_train=np.random.rand(100).astype(np.float32)
for step in range(1000):
    sess.run(train,{data_x:data_x_train}) #start training
    if(step%10==0):
        summary_str=sess.run(summary,{data_x:data_x_train})
        summarywrite.add_summary(summary_str, step)
        summarywrite.flush()
        print step," ",sess.run(W)," ",sess.run(b) #when in this step, get it W and b
    if((step+1)%1000==0):#save the final model to predict 
        saver.save(sess, 'checkpoint/model.chpt')
sess.close()

# use saved model to predict
with tf.Session() as sess:
    #pre data set
    data_x_pre=[1,2,3,4]
    # load saved model
    saver.restore(sess, 'checkpoint/model.chpt')
    #predict  (y is a fetch lag)
    y_out=sess.run(y,feed_dict={data_x:data_x_pre})
    print y_out

打開控制檯,輸入:
tensorboard –logdirs=logs
在瀏覽器中就可打開6006端口查看

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