如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
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. ]
[ 1. 2. ]]
|
tensorflow使用assign(variable,new_value)来更改变量的值,但是真正作用在garph中,必须要调用gpu或者cpu运行这个更新过程。
session.run(update)
tensorflow不支持直接对变量进行赋值更改
1
2
3
4
5
6
7
8
9
10
11
12
|
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:
1
2
3
4
5
6
7
8
9
|
"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
|
以上这篇tensorflow更改变量的值实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/baidu_15113429/article/details/78078153