TensorFlow的assign賦值用法

2021-08-15 16:27:03 字數 2369 閱讀 4709

tensorflow修改變數值後,需要重新賦值,assign用起來有點小技巧,就是需要需要弄個操作子,執行一下。

下面這麼用是不行的

import tensorflow as tf

import numpy as np

x = tf.variable(0)

init = tf.initialize_all_variables()

sess = tf.interactivesession()

sess.run(init)

print(x.eval())

x.assign(1)

print(x.eval())

正確用法

提供了3種方法

1.

import tensorflow as tf

x = tf.variable(0)

y = tf.assign(x, 1)

with tf.session() as sess:

sess.run(tf.global_variables_initializer())

print sess.run(x)

print sess.run(y)

print sess.run(x)

2.

in [212]: w = tf.variable(12)

in [213]: w_new = w.assign(34)

in [214]: with tf.session() as sess:

...: sess.run(w_new)

...: print(w_new.eval())

# output

34

3.

import tensorflow as tf

x = tf.variable(0)

sess = tf.session()

sess.run(tf.global_variables_initializer())

print(sess.run(x)) # prints 0.

x.load(1, sess)

print(sess.run(x)) # prints 1.

我的方法

import numpy as np #這是python的一種開源的數值計算擴充套件,非常強大

import tensorflow as tf  #匯入tensorflow

##構造資料##

x_data=np.random.rand(100).astype(np.float32) #隨機生成100個型別為float32的值

y_data=x_data*0.1+0.3  #定義方程式y=x_data*a+b

##-------##

##建立tensorflow神經計算結構##

weight=tf.variable(tf.random_uniform([1],-1.0,1.0))

biases=tf.variable(tf.zeros([1]))     

y=weight*x_data+biases

w1=weight*2

loss=tf.reduce_mean(tf.square(y-y_data))  #判斷與正確值的差距

optimizer=tf.train.gradientdescentoptimizer(0.5) #根據差距進行反向傳播修正引數

train=optimizer.minimize(loss) #建立訓練器

init=tf.global_variables_initializer() #初始化tensorflow訓練結構

#sess=tf.session()  #建立tensorflow訓練會話

sess = tf.interactivesession()  

sess.run(init)     #將訓練結構裝載到會話中

print('weight',weight.eval())

for  step in range(400): #迴圈訓練400次

sess.run(train)  #使用訓練器根據訓練結構進行訓練

if  step%20==0:  #每20次列印一次訓練結果

print(step,sess.run(weight),sess.run(biases)) #訓練次數,a值,b值

print(sess.run(loss))        

print('weight new',weight.eval())

#wop=weight.assign([3])

#wop.eval()

weight.load([1],sess)

print('w1',w1.eval())

Tensorflow的基礎用法

tensorflow是乙個深度學習框架,它使用圖 graph 來表示計算任務,使用tensor 張量 表示資料,圖中的節點稱為op,在乙個會話 session 的上下文中執行運算,最終產生tensor。之所以用計算圖來表示計算任務,tensorflow的官網的一張就能很好的說明。tensor在數學中...

TensorFlow的Session工作原理

session是graph和執行者之間的媒介,session.run 實際上將graph fetches feed dict序列化到位元組陣列中,並呼叫tf session.tf run 參見 usr local lib python2.7 site packages tensorflow pyth...

關於tensorflow的學習

import tensorflow as tf import numpy as np x tf.placeholder tf.int32,shape 3,3 y tf.matmul x,x z tf.reduce sum y,1 with tf.session as sess rand array ...