2016-06-08 106 views
0

我想分配/修改变量的值,我希望通过名称来调用它们。Tensorflow:按名称分配变量

对于为例:

vars = tf.trainable_variables() 
print(vars[1].name) 

'矩阵1:0'

upt = vars['matrix1:0'].assign_add(tf.constant(1)) 
sess.run(upt) 

这样做的原因是,对变量指标是不可靠的,因为它们都依赖何时他们在代码中运行。通过添加一个新变量,所有索引都需要移位,这是不方便的。使用名字会让我的生活变得更容易。

+1

怎么样'瓦尔在= {v.name:v当V tf.trainable_variables()}' –

+0

现在,你如何通过调用它们的名字来给变量赋新值? – PhABC

+1

然后你可以做'vars ['matrix1:0']。assign_add(tf.constant(1))' –

回答

3

您可以使用Python生成器表达式来构建这样

vars={v.name:v for v in tf.trainable_variables()} 

一本字典,然后修改变量

vars['matrix1:0'].assign_add(tf.constant(1))