定量定义及复用
- 示例代码
- 运行结果
- 结果分析
- 结论
trainable = None
与trainable = True
等价,也是trainable
参数的默认值,会被添加到训练变量中- 只有当
trainable = False
时不会被添加到训练变量中
- 只有当
reuse
参数取值为True
,None
,tf.AUTO_REUSE
,False
(说明文档没明确列出False
,但尝试可以用)True
: 表示读取一个旧的同名变量,如没有则抛出异常None
: 表示继承父scope的情况,若没有父scope,则默认为创建新变量,此时有同名变量则会抛出异常tf.AUTO_REUSE
: 表示使用自动模式,没有同名变量,则创建一个,否则返回同名变量False
特殊:- 经测试,当reuse参数在
variable_scope
或者layer
中使用时,False
等价于None
,会继承父scope的情况
- 经测试,当reuse参数在
- 注意,reuse参数在
variable_scope
或者layer
中使用时- 父:
tf.AUTO_REUSE
,子None
,False
=> 最终tf.AUTO_REUSE
- 父:
tf.AUTO_REUSE
,子True
=> 最终True
- 父:
True
,子None
,False
=> 最终True
- 父:
True
,子tf.AUTO_REUSE
=> 最终tf.AUTO_REUSE
- 父:
None
,False
, 子 xxx => 最终 xxx - 对于多层的级联架构中,依然满足上面的规律,举例来说,中途任意一层有一个
- 父:
reuse
参数只在variable_scope
或者layer
中可以使用,tf.get_variable
,name_scope
,tf.Variable
中都不可用tf.Variable
一定会新建变量,而且会在重名时自动修改变量名称- 注意,
tf.Variable
不等价于tf.get_variable
中reuse=False
的情况,后者在有同名变量时会报错
- 注意,