定量定义及复用
- 运行结果
- 结果分析
- 结论
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的情况,后者在有同名变量时会报错
- 注意,