對於tensorflow,sess.run()機制的理解
阿新 • • 發佈:2018-11-14
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。