tf.variable_scope()和tf.name_scope()的正确用法

tf.variable_scope()

  • 该函数已经被tf2.0弃用,详见博文。tf2.0通过多次调用相同的层,来实现神经网络和变量的复用。
  • tf官网对tf.variable_scope()的说明。
  • tf.variable_scope()和tf.get_variable()是配合使用的,主要用于变量共享。当reuse=False或None,重复创建变量会报错。当reuse=True而变量不存在,也会报错。
  • reuse参数相互之间是怎么传递的?没有设置reuse参数时,会继承上层scope的reuse参数值。
  • scope.reuse_variables()。在同一个scope中,可以通过这个语句重用定义过的变量。

tf.name_scope()

  • tf官网对tf.name_scope()的说明。
  • tf.name_scope()对tf.get_variable()不起作用,tf.get_variable()必须和tf.variable_scope()配合使用。
  • 重复定义时不会报错,会产生不同的变量名。例如f函数在name_scope=“MyOp”下定义了张量a,则第一调用f会产生MyOp/a,第二次调用f会产生MyOp_1/a。

你可能感兴趣的:(小熊tensorflow笔记)