TensorFlow中如何设置和区分不同作用域的变量?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1586个文字,预计阅读时间需要7分钟。
例如,在TensorFlow中,变量一般是指模型的参数。当模型复杂时,共享变量会极大地简化复杂性。官方案例中提到,当创建两层卷积的过滤器时,每输入一张图片就会创建一个对应的过滤器变量。
举例说明
TensorFlow中的变量一般就是模型的参数。当模型复杂的时候共享变量会无比复杂。
官网给了一个case,当创建两层卷积的过滤器时,每输入一次图片就会创建一次过滤器对应的变量,但是我们希望所有图片都共享同一过滤器变量,一共有4个变量:conv1_weights,conv1_biases,conv2_weights, and conv2_biases。
通常的做法是将这些变量设置为全局变量。但是存在的问题是打破封装性,这些变量必须文档化被其他代码文件引用,一旦代码变化,调用方也可能需要变化。
还有一种保证封装性的方式是将模型封装成类。
不过TensorFlow提供了Variable Scope 这种独特的机制来共享变量。
本文共计1586个文字,预计阅读时间需要7分钟。
例如,在TensorFlow中,变量一般是指模型的参数。当模型复杂时,共享变量会极大地简化复杂性。官方案例中提到,当创建两层卷积的过滤器时,每输入一张图片就会创建一个对应的过滤器变量。
举例说明
TensorFlow中的变量一般就是模型的参数。当模型复杂的时候共享变量会无比复杂。
官网给了一个case,当创建两层卷积的过滤器时,每输入一次图片就会创建一次过滤器对应的变量,但是我们希望所有图片都共享同一过滤器变量,一共有4个变量:conv1_weights,conv1_biases,conv2_weights, and conv2_biases。
通常的做法是将这些变量设置为全局变量。但是存在的问题是打破封装性,这些变量必须文档化被其他代码文件引用,一旦代码变化,调用方也可能需要变化。
还有一种保证封装性的方式是将模型封装成类。
不过TensorFlow提供了Variable Scope 这种独特的机制来共享变量。

