Tensorflow 变量命名空间及变量重用
来源:互联网 发布:人工智能技术有哪些 编辑:程序博客网 时间:2024/06/05 11:09
变量命名空间
tf里面的命名空间和C++的命名空间基本上是同一种东西,能够更好的管理模块的变量(特别是将来会重用到的变量)。最简单的用法就是
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
通过这样可以将一层网络的参数放在一起,发生变量重用的时候会很方便。
变量重用
变量重用则是通过get_variable函数 重复创建 同名变量来共享变量值。
举例子,我们要对图片进行特征提取。有两个已有的函数:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
如果直接调用两次函数my_image_filter,第二次调用时tf的get_variable函数会检测是否已经存在已经命名的变量,所以就会报错:
- 1
- 2
- 3
- 1
- 2
- 3
如果想要重用变量,则需要将变量打上重用标签。
被重用的变量需要落在同一个变量空间中,有三种方式来设置变量的重用标签reuse。
第一种:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
第二种:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
第三种:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
命名空间独立性
如果之前已经存在一个命名了的命名空间,在嵌套内层如果开启该命名空间,会自动忽略上层嵌套的命名空间,该命名空间里面的变量名字保持原样。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
但是如果直接用名字”foo”,则会不一样,会开启一个新的不一样的命名空间:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 1
- 2
- 3
- 4
- 5
- 6
- 7
对ops(操作)命名
第一种:
- 1
- 2
- 3
- 1
- 2
- 3
第二种(tf.name_scope仅仅对ops有用,不改变变量命名):
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
Initializer的继承和覆盖
在嵌套命名空间里,Initializer可以继承或覆盖上层嵌套的初始化设置。
点击打开链接阅读全文
0 0
- Tensorflow 变量命名空间及变量重用
- Tensorflow 变量命名空间及变量重用
- TensorFlow 变量共享,命名空间
- 14、TensorFLow 变量命名空间
- 变量-命名空间
- tensorflow09 《TensorFlow实战Google深度学习框架》笔记-05-02变量管理(命名空间)code
- 04 局部变量的空间分配及栈回收重用之汇编分析
- 变量及进程空间
- Matlab变量及命名规则
- Python变量命名及关键词
- 不同命名空间的相同变量
- Flex 组成、变量、函数、命名空间
- Flex 组成、变量、函数、命名空间
- javascript变量、作用域、命名空间
- C语言命名空间与定义变量
- Node.js global 变量 (全局命名空间!)
- javascript 变量、作用域、命名空间、this
- Python 命名空间 及变量搜索规则 属性名称 属性名称 无点号运算的变量名
- Android图片选择器
- 利用页面分析获取json数据
- rabbitmq销毁全部队列
- Python 需要单例模式吗
- jBox的 详细解说与介绍, 好用的jquery对话框插件
- Tensorflow 变量命名空间及变量重用
- 1997-求平均值
- Python使用subprocess更新文件内容
- Eclipse删除记录的Git账号
- 解决:VM虚拟机中MAC系统react native项目再次执行react-native run-ios 报错,no bundle url present
- 网络配置 ——shutdown
- java.lang.ExceptionInInitializerError 错误
- 《Python基础教程》学习笔记——列表
- for、for-each、迭代器