tf.Variable或者tf.get_variable中,trainable只在定义变量的那一瞬间有用,在此后(如reuse)把trainable指定为布尔变量是不起作用的。
- Tensorflow中定义的时,可以通过trainable属性控制这个变量是否可以被优化器更新。
- 但是在以后的使用中,trainable属性是只读的,我们无法动态更改这个只读属性。
如上图所示,通过调试器观察tensor的属性_trainable可以发现,在第一次定义变量时,w= ‘name/weights:0’的_trainable被设置成了False,但在此后reuse时虽然将tensor= ‘name/weights:0’的_trainable被设置成了True,但并没有起作用,_trainable仍然为False。