tensorflow更改變數的值
阿新 • • 發佈:2019-01-03
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