tf.Variable()与tf.get_variable()与不同之处
来源:互联网 发布:趣分期走淘宝套现 编辑:程序博客网 时间:2024/05/22 04:41
tf.Variable()可以定义名字相同的变量,
tf.Variable函数会返回一个variable,如果给出的name已经存在,会自动修改name,生成个新的
比如:下面定义两个名字同为a1的变量,但是,系统为自动给重新分配变量名
import tensorflow as tfa1 = tf.Variable(1, name='a1') # 定义a1变量a2 = tf.Variable(1, name='a1') # 定义a2变量print a1.name # 输出变量名:a1:0print a2.name # 输出变量名:a1_1:0init = tf.global_variables_initializer() #输出数据时必须要全局初始化 with tf.Session() as sess: sess.run(init) print sess.run(a1) # 输出值:1 print sess.run(a2) # 输出值:1
tf.get_variable()不可以定义名字相同的变量,
tf.get_variable函数拥有一个变量检查机制,会检测已经存在的变量是否设置为共享变量,如果已经存在的变量没有设置为共享变量,TensorFlow 运行到第二个拥有相同名字的变量的时候,就会报错。
不同的变量之间不能有相同的名字,除非你定义了variable_scope,这样才可以有相同的名字。
a3 = tf.get_variable(name='a3', initializer=2) a4 = tf.get_variable(name='a3', initializer=2) print a3.name print a4.name init = tf.global_variables_initializer() #输出数据时必须要全局初始化 with tf.Session() as sess: sess.run(init) print sess.run(a3) print sess.run(a4)报错信息如下:
ValueError: Variable a3 already exists, disallowed. Did you mean to set reuse=True in VarScope? Originally defined at:
a3 = tf.get_variable(name='a3', initializer=2)
tf.get_variable一般和tf.variable_scope配合使用,用于在同一个的变量域中共享同一个变量,
with tf.variable_scope('scope1') as scope1: a1 = tf.Variable(1, name='w1') print(a1.name) # a1变量的名字:scope1/w1:0 a2 = tf.get_variable(name='a3', initializer=1.0) print(a2.name) # a2变量的名字:scope1/a3:0 tf.get_variable_scope().reuse_variables() # 或用 scope1.reuse_variables() a3 = tf.get_variable(name='a3', initializer=2.0) print(a3.name) # a3变量的名字:scope1/a3:0 init = tf.global_variables_initializer() #输出数据时必须要全局初始化 with tf.Session() as sess: sess.run(init) print sess.run(a1) # a1变量的值:1 print sess.run(a2) # a2变量的值:1.0 print sess.run(a3) # a3变量的值:1.0 a3使用a2的值
或在不同变量域中使用同名变量。
with tf.variable_scope("scope2") as scope1: a2 = tf.get_variable(name='a3', initializer=1.0)with tf.variable_scope(scope1, reuse = True): a3 = tf.get_variable(name='a3', initializer=2.0)print(a2.name) # scope2/a3:0print(a3.name) # scope2/a3:0 init = tf.global_variables_initializer() with tf.Session() as sess: sess.run(init) print sess.run(a2) # a2变量的值:1.0 print sess.run(a3) # a3变量的值:1.0 a3使用scope2中的a2值
tf.Variable()
tf.get_variable() 不受tf.name_scope约束
import tensorflow as tfwith tf.name_scope("my_scope"): v1 = tf.get_variable("a", [1], dtype=tf.float32) v2 = tf.Variable(1, name="b", dtype=tf.float32) mysum = tf.add(v1, v2)print(v1.name) # a:0print(v2.name) # my_scope/b:0print(mysum.name) # my_scope/Add:0
tf.Variable()
tf.get_variable() 都 受tf.variable_scope约束with tf.variable_scope("my_scope"): v1 = tf.get_variable("a", [1], dtype=tf.float32) v2 = tf.Variable(1, name="b", dtype=tf.float32) mysum = tf.add(v1, v2)print(v1.name) # my_scope/a:0print(v2.name) # my_scope/b:0print(mysum.name) # my_scope/Add:0
阅读全文
0 0
- tf.Variable()与tf.get_variable()与不同之处
- tf.Variable()与tf.get_variable()对比
- TensorFlow tf.Variable()与tf.get_variable()的简单介绍
- tensorflow的共享变量,tf.Variable(),tf.get_variable(),tf.Variable_scope(),tf.name_scope()联系与区别:
- tensorflow的共享变量,tf.Variable(),tf.get_variable(),tf.Variable_scope(),tf.name_scope()联系与区别
- tensorflow的共享变量,tf.Variable(),tf.get_variable(),tf.Variable_scope(),tf.name_scope()联系与区别
- tf.get_variable() vs tf.Variable(),tf.name_scope() vs tf.variable_scope()
- tf.get_variable() vs tf.Variable(),tf.name_scope() vs tf.variable_scope()
- tf.variable_scope与tf.name_scope不同之处
- TensorFlow 插曲-- tf.placeholder 与 tf.Variable
- tf.get_variable()
- tf.Variable()和tf.get_variable()的使用方法和相同点
- 【tensorflow 学习】tf.get_variable()和tf.Variable()的区别
- TensorFlow 学习(一)—— tf.get_variable() vs tf.Variable(),tf.name_scope() vs tf.variable_scope()
- 彻底弄懂tf.Variable、tf.get_variable、tf.variable_scope以及tf.name_scope异同
- TensorFlow 辨异 —— tf.placeholder 与 tf.Variable
- TensorFlow 辨异 —— tf.placeholder 与 tf.Variable
- TensorFlow 辨异 —— tf.placeholder 与 tf.Variable
- AngualrJs 最新 文件图片上传教程6:Server-config
- Android中使用Opencv自带JavaCameraView实现高帧率竖屏显示
- 使用某个用户登录命令:kinit adminad
- PopupWindow使用
- ReentrantLock的实现,加上Condition
- tf.Variable()与tf.get_variable()与不同之处
- Android跳转-ARouter详细使用教程
- 多线程以及线程同步
- js各种小功能大合集
- Unity 防止屏保问题
- Mac下安装SecureCRT客户端
- LeetCode
- VLOOKUP 函数
- listview 和 recyclerview 的比较