1. 程式人生 > >對於tensorflow,sess.run()機制的理解

對於tensorflow,sess.run()機制的理解

import tensorflow as tf
import numpy as np

x_data=np.random.rand(100).astype(np.float32)
y_data=x_data*0.1+0.3

weights=tf.Variable(tf.random_uniform([1],-1.0,1.0))
biases=tf.Variable(tf.zeros([1]))

y=weights*x_data+biases

loss=tf.reduce_mean(tf.square(y-y_data))
optimizer=tf.train.GradientDescentOptimizer(0.5)
train=optimizer.minimize(loss)

init=tf.global_variables_initializer()

sess=tf.Session()

sess.run(init)

for step in range(201):
    sess.run(train)
    if step%20==0:
        print(step,sess.run(weights),sess.run(biases))

這段程式碼中,有幾行程式碼需要注意,有兩行是對Variable的賦值(weights,biases),要注意這兩行程式碼,相當於tensorflow裡面流圖的兩個operation,這兩行程式碼並未對weights和biases進行賦值做,而僅僅是定義了 op的作用,而真正的複製初始化操作實在後面的sess.run(init),進行操作的,sess.run()啟用這兩個op。