tensorflow 学习笔记14 scope命名方式
来源:互联网 发布:罗马斗兽场 知乎 编辑:程序博客网 时间:2024/06/05 21:50
tf.get_variable 和tf.Variable不同的一点是,前者拥有一个变量检查机制,会检测已经存在的变量是否设置为共享变量,如果已经存在的变量没有设置为共享变量,TensorFlow 运行到第二个拥有相同名字的变量的时候,就会报错。tf.variable_scope() 返回的只是 variable_scope,不管 name_scope.所以以后我们在使用tf.variable_scope().reuse_variables() 时可以无视name_scopeimport tensorflow as tfwith tf.name_scope("a_name_scope"): initializer = tf.constant_initializer(value=1) #get_variable对name_scope无效使用 #使用tf.get_variable()的时候,tf.name_scope()就不会给 tf.get_variable()创建出来的Variable加前缀 var1 = tf.get_variable(name='var1', shape=[1], dtype=tf.float32, initializer=initializer) #使用tf.Variable()的时候,tf.name_scope()和tf.variable_scope() 都会给 Variable 和 op 的 name属性加上前缀 var2 = tf.Variable(name='var2', initial_value=[2], dtype=tf.float32) var21 = tf.Variable(name='var2', initial_value=[2.1], dtype=tf.float32) var22 = tf.Variable(name='var2', initial_value=[2.2], dtype=tf.float32)with tf.Session() as sess: sess.run(tf.initialize_all_variables()) print(var1.name) # var1:0 print(sess.run(var1)) # [ 1.] print(var2.name) # a_name_scope/var2:0 print(sess.run(var2)) # [ 2.] print(var21.name) # a_name_scope/var2_1:0 print(sess.run(var21)) # [ 2.0999999] print(var22.name) # a_name_scope/var2_2:0 print(sess.run(var22)) # [ 2.20000005]with tf.variable_scope("a_variable_scope") as scope: initializer = tf.constant_initializer(value=3) var3 = tf.get_variable(name='var3', shape=[1], dtype=tf.float32, initializer=initializer) #用Variable方式就可以一直重复利用变量 var4 = tf.Variable(name='var4', initial_value=[4], dtype=tf.float32) var4_reuse = tf.Variable(name='var4', initial_value=[4], dtype=tf.float32) #用get_variable方式,为了能够重复利用变量 name='var3' scope.reuse_variables() #var3 与var3_reuse是同一个variable,共享变量,用reuse_variable比如RNN中train与test结构有所不同但参数都一致 var3_reuse = tf.get_variable(name='var3',)with tf.Session() as sess: init = tf.global_variables_initializer() sess.run(init) print(var3.name) # a_variable_scope/var3:0 print(sess.run(var3)) # [ 3.] print(var4.name) # a_variable_scope/var4:0 print(sess.run(var4)) # [ 4.] print(var4_reuse.name) # a_variable_scope/var4_1:0 print(sess.run(var4_reuse)) # [ 4.] print(var3_reuse.name) # a_variable_scope/var3:0 print(sess.run(var3_reuse)) # [ 3.]运行结果:
阅读全文
0 0
- tensorflow 学习笔记14 scope命名方式
- tensorflow学习笔记: variable scope
- tensorflow学习笔记(十五): variable scope
- tensorflow学习笔记(十七):name&variable scope
- 关于tensorflow中的scope的命名及使用方法
- tensorflow scope命名方法(variable_scope()与name_scope()解析)
- Spring scope 学习笔记
- AngularJs学习笔记--Scope
- Spring Scope 学习笔记
- Spring scope 学习笔记
- AngularJs学习笔记--Scope
- AngularJs学习笔记--Scope
- C++笔记10--命名空间(namespace scope)
- TensorsFlow学习笔记5----TensorFlow Mechanics 101基本运作方式
- #TensorFlow学习笔记#02 Session的两种运行方式
- Tensorflow 学习笔记 (2)官方文档学习 tensorflow运作方式入门
- Yii framwork crud 命名范围NAMED SCOPE 笔记四
- TensorFlow学习笔记(四)——TensorFlow运作方式入门、可视化
- BZOJ 3831 Little Bird
- Maven插件整合protocol buffer
- 使用 ColorMatrix 对图片进行风格处理
- 数据结构学习笔记4
- 贪心与传球
- tensorflow 学习笔记14 scope命名方式
- php实现邮件群发
- java中string, byte和int转换
- Spring Cloud组件完整demo
- 标准C++中String方法总结
- Matrix Gym
- 剑指offer-连续子数组的最大和
- Oracle之数据库安装
- Java进阶之路【代码篇】——《CleanCode》编程规则精编(8) 类