tf.name_scope tf.variable_scope学习

1. 首先看看比较简单的 tf.name_scope(‘scope_name’).

tf.name_scope 主要结合 tf.Variable() 来使用,方便参数命名管理。

'''
Signature: tf.name_scope(*args, **kwds)
Docstring:
Returns a context manager for use when defining a Python op.
'''
# 也就是说,它的主要目的是为了更加方便地管理参数命名。
# 与 tf.Variable() 结合使用。简化了命名
with tf.name_scope('conv1') as scope:weights1 = tf.Variable([1.0, 2.0], name='weights')bias1 = tf.Variable([0.3], name='bias')# 下面是在另外一个命名空间来定义变量的
with tf.name_scope('conv2') as scope:weights2 = tf.Variable([4.0, 2.0], name='weights')bias2 = tf.Variable([0.33], name='bias')# 所以,实际上weights1 和 weights2 这两个引用名指向了不同的空间,不会冲突
print (weights1.name) 
print (weights2.name)


#输出:
conv1/weights:0
conv2/weights:0

  

# 注意,这里的 with 和 python 中其他的 with 是不一样的
# 执行完 with 里边的语句之后,这个 conv1/ 和 conv2/ 空间还是在内存中的。这时候如果再次执行上面的代码
# 就会再生成其他命名空间
with tf.name_scope('conv1') as scope:weights1 = tf.Variable([1.0, 2.0], name='weights')bias1 = tf.Variable([0.3], name='bias')with tf.name_scope('conv2') as scope:weights2 = tf.Variable([4.0, 2.0], name='weights')bias2 = tf.Variable([0.33], name='bias')print (weights1.name)
print (weights2.name)
#输出
conv1_1/weights:0
conv2_1/weights:0

2.下面来看看 tf.variable_scope(‘scope_name’)

tf.variable_scope() 主要结合 tf.get_variable() 来使用,实现 变量共享。

# 这里是正确的打开方式~~~可以看出,name 参数才是对象的唯一标识
import tensorflow as tf
with tf.variable_scope('v_scope') as scope1:Weights1 = tf.get_variable('Weights', shape=[2,3])bias1 = tf.get_variable('bias', shape=[3])# 下面来共享上面已经定义好的变量
# note: 在下面的 scope 中的变量必须已经定义过了,才能设置 reuse=True,否则会报错
with tf.variable_scope('v_scope', reuse=True) as scope2:Weights2 = tf.get_variable('Weights')print (Weights1.name)
print (Weights2.name)
# 可以看到这两个引用名称指向的是同一个内存对象
#输出
v_scope/Weights:0
v_scope/Weights:0

也可以结合 tf.Variable() 一块使用。

import tensorflow as tf
# 注意, bias1 的定义方式
with tf.variable_scope('v_scope') as scope1:Weights1 = tf.get_variable('Weights', shape=[2,3])
#     bias1 = tf.Variable([0.52], name='bias')# 下面来共享上面已经定义好的变量
# note: 在下面的 scope 中的get_variable()变量必须已经定义过了,才能设置 reuse=True,否则会报错
with tf.variable_scope('v_scope', reuse=True) as scope2:Weights2 = tf.get_variable('Weights')bias2 = tf.Variable([0.52], name='bias')print (Weights1.name)
print (Weights2.name)
print (bias2.name)
#输出:
v_scope/Weights:0 v_scope/Weights:0 v_scope_1/bias:0#新的命名空间

如果 reuse=True 的scope中的变量没有已经定义,会报错!!

import tensorflow as tf
# 注意, bias1 的定义方式
with tf.variable_scope('v_scope') as scope1:Weights1 = tf.get_variable('Weights', shape=[2,3])bias1 = tf.Variable([0.52], name='bias')print (Weights1.name)
print (bias1.name)# 下面来共享上面已经定义好的变量
# note: 在下面的 scope 中的get_variable()变量必须已经定义过了,才能设置 reuse=True,否则会报错
with tf.variable_scope('v_scope', reuse=True) as scope2:Weights2 = tf.get_variable('Weights')bias2 = tf.get_variable('bias', [1])  # ‘bias未定义,所以会报错print (Weights2.name)
print (bias2.name)# 这样子的话就会报错
# Variable v_scope/bias does not exist, or was not created with tf.get_variable()
#输出
v_scope/Weights:0
v_scope/bias:0

本文代码:https://github.com/yongyehuang/Tensorflow-Tutorial

转载https://www.cnblogs.com/adong7639/p/8136273.html

转载于:https://www.cnblogs.com/gaofighting/p/9626584.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413334.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue axios解决post传参数问题

我相信遇到这个问题的兄弟们,不带参数的情况下都是没有问题吧, 如果有问题,百度吧,好解决,答案都比较靠谱 这里主要针对带参数的情况,坑多 另外,我默认你用postman带参测试接口是没问题的 不…

[css] padding会影响到元素的大小,那不想让它影响到元素的宽度应该怎么办?

[css] padding会影响到元素的大小,那不想让它影响到元素的宽度应该怎么办? box-sizing:border-box个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端…

vue路由传参的三种基本方式

一: getDescribe(id) { // 直接调用$router.push 实现携带参数的跳转this.$router.push({path: /describe/${id},}) 方案一,需要对应路由配置如下: {path: /describe/:id,name: Describe,component: Describe} 很显然,需要在p…

[css] flex布局的缺点有哪些?(除兼容性外)

[css] flex布局的缺点有哪些?(除兼容性外) 无法直接定义列数(要使用百分比的方式实现)个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端…

vue router-link 添加点击事件

在vue学习中遇到给router-link 标签添加事件click 、mouseover等无效的情况 我想要做的是v-for遍历出来的选项卡&#xff0c; 鼠标移上去出现删除标签&#xff0c;移除标签消失的效果 原代码&#xff1a; <router-link v-for"(item, index) in pageMenuList"…

Spring Boot实践——基础和常用配置

借鉴&#xff1a;https://blog.csdn.net/j903829182/article/details/74906948 一、Spring Boot 启动注解说明 SpringBootApplication开启了Spring的组件扫描和Spring Boot的自动配置功能。实际上&#xff0c; SpringBootApplication将三个有用的注解组合在了一起。 Spring的Co…

[css] 你知道什么是面向对象的css(oocss)吗?有没有实践过?

[css] 你知道什么是面向对象的css&#xff08;oocss&#xff09;吗&#xff1f;有没有实践过&#xff1f; oocss(Object Oriented CSS)不是一种技术也不是一种语言&#xff0c;它是一种css的书写方法&#xff0c;其核心是用最简单的方式编写最整洁的css代码&#xff0c;使代码…

vue 实现页面静态化

实现思路 使用 this.$router.push(location) 来修改 url&#xff0c;完成页面路由跳转使用params来隐式传递url的参数&#xff0c;它类似post&#xff0c;url看不出&#xff0c;使用query来传递参数的话&#xff0c;类似get&#xff0c;url一定会被格式化为http://www.xxx.com…

BZOJ1226 SDOI2009学校食堂(状压dp)

由于Bi<7&#xff0c;考虑状压。 如果考虑前i个位置的话&#xff0c;状态里需要压入前7个人后7个人&#xff0c;显然是跑不动的。 那么改成考虑前i个人。于是设f[i][j][k]表示前i个人都已吃完饭&#xff0c;i1后面7个人的吃饭状态为j&#xff0c;最后一个吃饭的人是k的答案。…

vue实现监听滚动条

// 组件挂载后添加监听事件 mounted () {window.addEventListener(scroll, this.handleScroll) }, methods: {// 我这里监听的是侧边的滚动条handleScroll: () > {// 滚动时&#xff0c;距离顶部的距离var scrollTop document.documentElement.scrollTop || document.body.…

[css] 什么是hack?css的hack有哪些?

[css] 什么是hack&#xff1f;css的hack有哪些&#xff1f; 一、总结 1、CSS hack&#xff1a;由于不同厂商的浏览器&#xff0c;比如Internet Explorer,Safari,Mozilla Firefox,Chrome等&#xff0c;或者是同一厂商的浏览器的不同版本&#xff0c;如IE6和IE7&#xff0c;对CS…

Element组件 Drawer 抽屉的关闭问题

场景 我使用的Drawer 抽屉是从上往下开的效果&#xff0c;点击搜索图标&#xff0c;从上往下开没问题&#xff0c;输入关键字搜索&#xff0c;搜索出来的列表放置于搜索栏下面&#xff0c;所以使用了一个子组件 问题就来了 搜出来的列表item&#xff0c;点击任意一条&#x…

First Steps with TensorFlow代码解析

注&#xff1a;本文的内容基本上都摘自tensorflow的官网&#xff0c;只不过官网中的这部分内容在国内访问不了&#xff0c;所以我只是当做一个知识的搬运工&#xff0c;同时梳理了一遍&#xff0c;方便大家查看。本文相关内容地址如下&#xff1a; https://developers.google.c…

[css] 说说你对相对定位、绝对定位、固定定位的理解

[css] 说说你对相对定位、绝对定位、固定定位的理解 position 属性指定了元素的定位类型。position 属性的五个值&#xff1a;static&#xff08;默认值&#xff09; relative&#xff08;相对定位&#xff09; fixed&#xff08;固定定位&#xff09; absolute&#xff08;绝…

宝塔nginx运行vue项目刷新404问题解决

我的项目是webpack构建的&#xff0c;因为我做一切开发都想要希望要从一个标准的构建去编码 所以&#xff0c;我的项目在node下运行&#xff0c;开发&#xff0c;调试是没有一点问题的&#xff0c;npm run build也是完全OK的&#xff0c;vue路由是history模式 把build出来的d…

[css] css中的选择器、属性、属性值区分大小写吗?

[css] css中的选择器、属性、属性值区分大小写吗&#xff1f; 选择器和属性区分大小写&#xff0c;属性值如果是颜色可以不区分大小写吧个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌…

vscode设置中文,设置中文不成功问题

刚安装好的vscode界面显示英文&#xff0c;如何设置中文呢&#xff1f; 在locale.json界面设置”locale":"zh-cn"也未能实现界面为中文&#xff0c;在网上找了参考了&#xff0c;以下教程真实测试有效&#xff01; 首先&#xff1a; 下载插件&#xff1a;Chines…

移动端阻止body左右偏移

如果一直找不到你的CSS问题&#xff0c;就用下面的CSS解决吧 html,body{overflow-x: hidden;} 原生JS function bodyScroll(){e.preventDefault(); } document.addEventListener(touchmove, bodyScroll, false); //阻止 document.removeEventListener(touchmove, bodyScroll,…

[css] img标签是行内元素,为什么却能设置宽高

[css] img标签是行内元素&#xff0c;为什么却能设置宽高 原来CSS中还有一个概念&#xff1a;可替换元素MDN上是这么解释的&#xff1a;在 CSS 中&#xff0c;可替换元素&#xff08;replaced element&#xff09;的展现效果不是由 CSS 来控制的。这些元素是一种外部对象&…

网页Request Headers请求头和Response Headers响应头

Request Headers Accept:告诉服务器&#xff0c;客户机支持的数据类型 Accept-Encoding:告诉服务器&#xff0c;客户机支持的数据压缩格式 Cache-Control&#xff1a;缓存控制&#xff0c;服务器通过控制浏览器要不要缓存数据 Connection:处理完这次请求&#xff0c;是断开…