1. 程式人生 > >tensorflow更改變數的值

tensorflow更改變數的值

from __future__ import print_function,division
import tensorflow as tf

#create a Variable
w=tf.Variable(initial_value=[[1,2],[3,4]],dtype=tf.float32)
x=tf.Variable(initial_value=[[1,1],[1,1]],dtype=tf.float32,validate_shape=False)

init_op=tf.global_variables_initializer()
update=tf.assign(x,[[1,2],[1,2]]
) with tf.Session() as session: session.run(init_op) session.run(update) x=session.run(x) print(x)

實驗結果:

[[ 1.  2.]
 [ 1.  2.]]

tensorflow使用assign(variable,new_value)來更改變數的值,但是真正作用在garph中,必須要呼叫gpu或者cpu執行這個更新過程。
session.run(update)
tensorflow不支援直接對變數進行賦值更改

from __future__ import print_function,division
import tensorflow as tf

#create a Variable
x=tf.Variable(initial_value=[[1,1],[1,1]]
,dtype=tf.float32,validate_shape=False) x=[[1,3],[2,4]] init_op=tf.global_variables_initializer() update=tf.assign(x,[[1,2],[1,2]]) with tf.Session() as session: session.run(init_op) session.run(update) print(session.run(x))

error:

"C:\Program Files\Anaconda3\python.exe" D:/pycharmprogram/tensorflow_learn/assign_learn/assign_learn.py
Traceback (most recent call last):
  File "D:/pycharmprogram/tensorflow_learn/assign_learn/assign_learn.py"
, line 8, in <module> update=tf.assign(x,[[1,2],[1,2]]) File "C:\Program Files\Anaconda3\lib\site-packages\tensorflow\python\ops\state_ops.py", line 271, in assign if ref.dtype._is_ref_dtype: AttributeError: 'list' object has no attribute 'dtype' Process finished with exit code 1