TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable

目录

输出结果

代码设计


输出结果

代码设计

# tensorflow中的两种定义scope(命名变量)的方式tf.get_variable和tf.Variable。Tensorflow当中有两种途径生成变量 variableimport tensorflow as tf#T1法  tf.name_scope()
with tf.name_scope("a_name_scope"):initializer = tf.constant_initializer(value=1)  #定义常量var1 = tf.get_variable(name='var1', shape=[1], dtype=tf.float32, initializer=initializer)  #创建变量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.global_variables_initializer())#以下打印出每一种Variable的名字及其值print(var1.name)        # var1:0print(sess.run(var1))   # [ 1.]print(var2.name)        # a_name_scope/var2:0print(sess.run(var2))   # [ 2.]print(var21.name)       # a_name_scope/var2_1:0print(sess.run(var21))  # [ 2.0999999]print(var22.name)       # a_name_scope/var2_2:0print(sess.run(var22))  # [ 2.20000005]
#使用 tf.Variable()定义的时候, 虽然 name都一样, 但是为了不重复变量名, Tensorflow输出的变量名并不是一样的.
#所以, 本质上 var2, var21, var22 并不是一样的变量.
#而另一方面, 使用tf.get_variable()定义的变量不会被tf.name_scope()当中的名字所影响.
print('以下输出的是T2第二种方法')
#T2法  tf.variable_scope()
#如果想要达到重复利用变量的效果, 我们就要使用 tf.variable_scope(), 并搭配 tf.get_variable() 这种方式产生和提取变量.
#不像 tf.Variable() 每次都会产生新的变量, tf.get_variable() 如果遇到了同样名字的变量时,
#它会单纯的提取这个同样名字的变量(避免产生新变量). 而在重复使用的时候, 一定要在代码中强调 scope.reuse_variables(),
#否则系统将会报错, 以为你只是单纯的不小心重复使用到了一个变量.
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)scope.reuse_variables()var3_reuse = tf.get_variable(name='var3',)var4 = tf.Variable(name='var4', initial_value=[4], dtype=tf.float32)var4_reuse = tf.Variable(name='var4', initial_value=[4], dtype=tf.float32)
with tf.Session() as sess:sess.run(tf.global_variables_initializer())print(var3.name)            # a_variable_scope/var3:0print(sess.run(var3))       # [ 3.]print(var3_reuse.name)      # a_variable_scope/var3:0print(sess.run(var3_reuse)) # [ 3.]print(var4.name)            # a_variable_scope/var4:0print(sess.run(var4))       # [ 4.]print(var4_reuse.name)      # a_variable_scope/var4_1:0print(sess.run(var4_reuse)) # [ 4.]

TF之RNN:TF的RNN中的常用的两种定义scope的方式get_variable和Variable相关推荐

  1. 【NLP-NER】命名实体识别中最常用的两种深度学习模型

    命名实体识别(Named Entity Recognition,NER)是NLP中一项非常基础的任务.NER是信息提取.问答系统.句法分析.机器翻译等众多NLP任务的重要基础工具. 上一期我们介绍了N ...

  2. 在Vue-cli脚手架中引入图片最常用的两种方法

    CommonJS API定义了很多普通应用程序(主要指非浏览器的应用)使用的API,require就说其中之一,我们通常需要在组件中引入图片时,可以在Data里使用这个方法require(" ...

  3. 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    贺邦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数 ...

  4. JDOM是JAVA中最常用的一种解析XML的工具

    JDOM是JAVA中最常用的一种解析XML的工具,我们可以从JDOM的官方网站www.jdom.org 下载JDOM1.0.ZIP压缩包,将其解压,将JDOM.JAR文件配置到classpath当中去 ...

  5. Hibernate中两种获取Session的方式

    转自:https://www.jb51.net/article/130309.htm Session:是应用程序与数据库之间的一个会话,是hibernate运作的中心,持久层操作的基础.对象的生命周期 ...

  6. html怎么样取jsp中的路径,jsp中获得路径的两种方法和获得url路径的方法(推荐)

    是解决相对路径的问题,可返回站点的根路径. //这样获得的是绝对路径 //这样获得的是相对路径 能够更有效的防治连接的失效. request.getContextPath()得到的是项目的名字,如果项 ...

  7. python自带的shell是什么-python中执行shell的两种方法总结

    一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...

  8. HTML5中aside标签的两种使用方法

    aside元素在网站制作中主要有以下两种使用方法 1)被包含在article元素中作为主要内容的附属信息部分,其中的内容可以是与当前文章有关的相关资料.名次解释,等等. <article> ...

  9. Java并发基础01. 传统线程技术中创建线程的两种方式

    传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...

最新文章

  1. 【c++】13.必须用指针取值的情况.md
  2. 移动web端页面设置的特殊样式列举
  3. CDATA和转义字符
  4. JVM运行时对它所管理的内存划分区域(为面试准备)
  5. treeview自动从表中添加标题和列值做目录的方法2
  6. Bladex生成Swagger的方法
  7. 08-图9 关键活动 (30 分
  8. 解决layui隐藏域:不显示问题(含案例、代码、截图)
  9. sql server 内存_SQL Server内存性能指标–第3部分– SQL Server Buffer Manager指标和内存计数器
  10. Python 狠甩 Java,Rust 持续称王!揭晓Stack Overflow 2019 开发者报告
  11. Python+OpenCV:直方图反向投影(Histogram Backprojection)
  12. 正确下载谷歌浏览器Chrome本地安装包 ,能离线安装
  13. 毛伟:重塑网络根基——国际形势使然,技术升级必然
  14. ISO/IEC 27701:2019(隐私信息安全管理扩展要求和指南)解读(二)
  15. 联想S3机子密码设置
  16. QCC305x系列开发教程(入门篇)之1.3-烧录方式使用USB时的驱动安装及其出现“未知设备”的解决方法
  17. 用python画一个机器猫歌词_用Python语言模型和LSTM做一个Drake饶舌歌词生成器!自己蒙了!...
  18. 我学会了学计算机,我学会了电脑打字
  19. 【Python魔术方法】py复习
  20. 手把手教你抄写URP——3——自发光材质

热门文章

  1. 一个具有20位地址和32位字长的存储器_存储器层次结构(三):高速缓存
  2. 常见linux网络参数
  3. [MySQL实践] 实践记录
  4. 安装windows系统时遇到的大坑——鼠标键盘没反应
  5. 同一个电脑安装两个jdk版本
  6. flash加载flv,本地测试正常,上传至空间则失败解决办法
  7. 不为人知的AI简史:“人机共生 ”梦想家 , 却意外促成互联网的出现
  8. Java虚拟机的Heap监狱
  9. 站在吃货的角度来解释那些和微服务有关的名词
  10. Redis: 跳跃表