一、深度学习变量的创建方法有两种tf.Variable()和tf.get_variable(),但两种是有区别的
1、tf.Variable()每次调用都是一个新的变量,没指定名称时,会默认加上名字,指定了名字,且连续调了两次,会自动给后面创建的变量的名字后面加后缀
2、tf.get_variables()创建变量时必须指定名字,如果连续两次调用,则会报变量已存在错误
二、创建变量时可以指定变量范围,由tf.name_scope()和tf.variable_scope()指定,在创建的变量名前加前缀,这两者也是由区别的
1、tf.name_scope()只对tf.Variable()有效,对tf.variable_scope()无效
2、tf.variable_scope()对tf.Variable()和tf.get_variable()均有效
三、变量共享
1、如果在一个方法中有tf.get_variable()创建的变量,如果连续调用,第二次会报变量已存在错误,为了共享变量名,需要在方法外加tf.variable_scope()指定变量范围
2、如果在一个方法内有重复的变量名,且是tf.get_variables()创建的变量,需要分别指定tf.variable_scope()变量范围
3、用tf.Variable()创建的变量可以用tf.name_scope()指定,也可以不指定,因为tf.Variable()对于重复的变量会自动加后缀