tensorflow变量管理
来源:互联网 发布:互联网大数据论文题目 编辑:程序博客网 时间:2024/06/06 00:24
1、tensorflow提供了通过变量名称来创建或获取一个变量的机制。通过这个机制,在不同的函数中可以直接使用变量的名称来使用变量,而不需要将变量通过参数的形式到处传递。
2、tensorflow中获取变量主要是通过tf.get_variable和tf.variable_scope函数实现的。
#下面这两个定义是等价的v = tf.get_variable("v", shape=[1], initializer=tf.constant_initializer(1.0))v = tf.Variable(tf.constant(1.0,shape=[1], name="v")
**tf.get_variable函数和tf.Variable函数最大的区别在于指定变量名称的参数,对于tf.Variable函数,变量名称是一个可选的参数,通常以name=”v”的形式给出。但对于tf.get_variable函数,变量名称是一个必填的参数。tf.get_variable函数会根据这个名字去创建或者获取变量。
3、如果需要通过tf.get_variable获取一个已经创建的变量,需要通过tf.variable_scope函数来生成一个上下文管理器,并明确指定在这个上下文管理中,tf.get_variable将直接获取已经生成的变量。
#在名字为"foo"的命名空间里创建名字为“v”的变量with tf.variable_scope("foo"): v = get_variable("v", [1], initializer=tf.constant_initializer(1.0))#因为在命名空间里已经存在名字为“v”的变量所以以下代码会报错with tf.variable_scope("foo"): v = get_variable("v", [1])#在生成的上下文管理器时,将参数reuse设置为True。这样tf.get_variable函数将直接获取已经生明的变量with tf.variable_scope("foo", reuse=True): v = get_variable("v", [1]) print v==v1 #输出true,代表v, v1是相同的tensorflow中的变量#将参数reuse设置为true时,tf.variable_scope将只能获取已经创建过的变量,因为在命名空间bar中还没有创建变量v,所以下面代码将会报错with tf.variable_scope("bar", reuse=True): v = tf.get_variable("v", [1])
4、Tensorflow中的tf.variable_scope函数是可以嵌套的,当新建一个嵌套的上下文管理器但不指定reuse,这时reuse的取值会和外面一层保持一致。
5、tf.variable_scope函数生成的上下文管理器也会创建一个tensorflow中的命名空间,在这个命名空间内创建的变量名称都会带上这个命名空间名作为前缀。所以tf.variable_scope函数除了可以控制tf.get_variable执行的功能之外,也提供了一个管理变量命名空间的方式。
v1 = tf.get_variable("v", [1])print v1.name #输出v:0. "v"为变量的名称,“:0”表示这个变量是生成变量这个运算的第一个结果with tf.variable_scope("foo"): v2 = tf.get_variable("v", [1]) print v2.name #输出foo/v:0. 其中/用来分隔命名空间和变量的名称with tf.variable_scope("foo"): with tf.variable_scope("bar"): v3 = get_variable("v", [1]) print v3.name #输出 foo/bar/v . 命名空间可以嵌套#创建一个空的命名空间,并设置reuse=truewith tf.variable_scope("",reuse=True): v5 = get_variable("foo/bar/v", [1]) print v5 == v3 #输出True
阅读全文
0 0
- TensorFlow 变量管理
- TensorFlow变量管理
- Tensorflow 的变量管理
- TensorFlow 变量管理
- TensorFlow变量管理
- tensorflow--变量管理
- Tensorflow基础:变量管理
- Tensorflow的变量管理
- tensorflow变量管理
- TensorFlow笔记之变量管理
- 83、Tensorflow中的变量管理
- Tensorflow学习笔记-变量管理
- Tensorflow深度学习之十四:Tensorflow变量管理
- Tensorflow 变量
- 罗斯基白话:TensorFlow+实战系列(四)变量管理
- tensorflow 变量生成 变量管理 tf.Variable & tf.get_variable & tf.variable_scope
- tensorflow 共享变量
- Tensorflow共享变量
- freemaker对于页面的内容的展示,对特殊字符的转义
- 文件时间对于CP命令的影响
- vtk3———System Overview
- 可视化工具–D3–基础图表的绘制(line)
- java中的二维数组
- tensorflow变量管理
- 多线程使用集合
- muscial.ly-实习小结2
- []==false为什么为true分析,扩展null==0是什么结果
- HDU-2665 Kth number (主席树 不带修改区间第k大)
- 关于activiti的springMVC + myBatis项目pom.xml文件的简单配置
- java反射机制
- 第七周 项目6
- Apache Apollo 安装使用