name_scope()命名空间对get_variable()创建的变量没有影响,不会附加到变量名头部。
但是variable_scope()对Variable有影响,将会附加到头部。
同样name_scope()也不会指向已经创建的变量空间,即使同名也会自动添加后缀,使其不同。
variable_scope(name),会先寻找是否存在该空间,如果存在就指向该空间,否则创建该空间。
Variable不会重新使用已创建的变量,如果创建了同名的变量,自动添加后缀,使其不同。这种策略保证了每次变量创建都能成功。
get_variable()可以创建同名变量,他们指向同一个图节点,但是在重新创建时必须让variable_scope()的reuse属性设为True,否则会报已存在不能分配的错误。
一个典型的使用案例时RNN网络。
几个问题,用name_scope()创建的namespace能否使用variable_scope来指向。
第二个问题,为什么name_scope对get_variable无效,如何创建多级嵌套的变量名。