2016-06-08 154 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))