tf.get_variable 和tf.variable_scope

来源:互联网 发布:qsv转换flv软件 编辑:程序博客网 时间:2024/05/22 01:33

变量共享主要涉及到两个函数:

tf.get_variable(<name>, <shape>, <initializer>) 和 tf.variable_scope(<scope_name>)。
  • 1
  • 1

先来看第一个函数: tf.get_variable。

tf.get_variable 和tf.Variable不同的一点是,前者拥有一个变量检查机制,会检测已经存在的变量是否设置为共享变量,如果已经存在的变量没有设置为共享变量,TensorFlow 运行到第二个拥有相同名字的变量的时候,就会报错。

为了解决这个问题,TensorFlow 又提出了 tf.variable_scope 函数:它的主要作用是,在一个作用域 scope 内共享一些变量,可以有如下几种用法:

1)

with tf.variable_scope("image_filters") as scope:    result1 = my_image_filter(image1)    scope.reuse_variables() # or     #tf.get_variable_scope().reuse_variables()    result2 = my_image_filter(image2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

需要注意的是:最好不要设置 reuse 标识为 False,只在需要的时候设置 reuse 标识为 True。

2)

with tf.variable_scope("image_filters1") as scope1:    result1 = my_image_filter(image1)with tf.variable_scope(scope1, reuse = True)    result2 = my_image_filter(image2)
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

转载文章: 
http://www.cnblogs.com/Charles-Wan/p/6200446.html

阅读全文
0 0
原创粉丝点击