tensorflow changes the value instance of a variable

  • 2020-11-30 08:27:08
  • OfStack

As shown below:


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)

Experimental results:


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

tensorflow USES assign (variable, new_value) to change the value of the variable, but to really work in garph, you have to call gpu or cpu to run the update process.

session.run(update)

tensorflow does not support direct assignment changes to variables


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

Related articles: