首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Tensorflow --为什么tf.nn和tf.layers / tf.losses / tf.contrib.layers等中有这么多相似甚至重复的函数?

Tensorflow --为什么tf.nn和tf.layers / tf.losses / tf.contrib.layers等中有这么多相似甚至重复的函数?
EN

Stack Overflow用户
提问于 2017-07-18 08:45:54
回答 1查看 3.6K关注 0票数 12

在Tensorflow ( v1.2.1)中,似乎存在(至少)两个并行API来构造计算图。在tf.nn中有一些函数,如conv2d、avg_pool、relu、下拉列表,而在tf.layers、tf.losses和其他地方也有类似的函数,如tf.layers.conv2d、tf.layers.dense、tf.layers.dropout。

从表面上看,这种情况似乎只会造成混淆:例如,tf.nn.dropout使用“保持利率”,而tf.layers.dropout使用“下降率”作为参数。

这种区别对最终用户/开发人员有什么实际意义吗?如果没有,是否有计划清除API?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-18 09:41:38

Tensorflow一方面提出了一个低级API (tf.tf.nn..),另一方面,提出了一个更高级别的API (tf.layers.tf.losses.,.)。

高级API的目标是提供功能,极大地简化最常见的神经网络的设计。较低级别的API是为有特殊需求或希望更好地控制正在发生的事情的人提供的。

但是,情况有点混乱,因为有些函数具有相同或相似的名称,而且也没有明确的方法来一见钟情地区分哪个名称空间对应于API的哪个级别。

现在,让我们来看看conv2dtf.nn.conv2dtf.layers.conv2d之间的一个显著区别是,后者处理了权重和偏差所需的所有变量。一行代码,然后就创建了一个卷积层。使用tf.nn.conv2d时,您必须先声明权重变量,然后再将其传递给函数。至于偏见,嗯,实际上他们甚至没有被处理:你需要在以后自己添加它们。

除了tf.layers.conv2d还建议在同一个函数调用中添加正则化和激活之外,您还可以想象,当一个人的需求被更高级别的API覆盖时,这将如何减少代码大小。

在默认情况下,高层也会做出一些可以被视为最佳做法的决定。例如,默认情况下,tf.losses中的损失会添加到tf.GraphKeys.LOSSES集合中,这使得各种组件的恢复和求和变得容易,并且有些标准化。如果您使用较低级别的API,则需要自己完成所有这些操作。显然,当您开始在那里混合低级和高级API函数时,您需要小心。

此外,高级API也是对其他框架中用于类似高级功能的人的巨大需求的回答。当您考虑构建在tensorflow之上的其他高级API的数量时,这是相当明显的,例如keras 2(现在的官方tensorflow API的一部分)、slim (在tf.contrib.slim中)、tflearn、tensorlayer等等。

最后,如果我可以添加一个建议:如果您以tensorflow开头,并且不喜欢特定的API,那么我个人鼓励您坚持使用tf.keras.* API:

  • 它的API是友好的,至少与构建在低级别tensorflow API之上的其他高级API一样好。
  • 它在tensorflow中有一个明确的命名空间(虽然它可以-有时也应该-与来自其他名称空间(如tf.data)的部分一起使用)
  • 它现在是tensorflow的头等公民(以前在tf.contrib.keras中),并注意使新的tensorflow特性(如eager)与keras兼容。
  • 它的通用实现可以使用其他工具包,如CNTK,因此不会将您锁定到tensorflow。
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45172725

复制
相关文章
OAuth2 服务器Keycloak中的Realm
Realm翻译成中文为领域。用来逻辑隔离一些特定空间,有点多租户的感觉,不同的Realm之间互相隔离,有各自的特色配置,互不影响。
码农小胖哥
2021/09/09
1.8K0
在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证
API Server 作为 Kubernetes 的网关,是用户访问和管理资源对象的入口。对于每个访问请求, API Server 都需要对访问者的合法性进行检查,包括身份验证、权限验证等等。Kubernetes 支持多种身份验证的方式,本文将对 OpenID Connect 认证进行介绍。
Se7en258
2022/04/18
6.8K0
在 Kubernetes 中使用 Keycloak OIDC Provider 对用户进行身份验证
keycloak_keycloak 同步用户表
第一步:下载keycloak安装包 https://www.keycloak.org/downloads
全栈程序员站长
2022/09/19
1.5K0
强大而灵活的身份验证和授权服务
这篇文章介绍了几个优秀的开源项目,它们都有一些共同点。首先,这些项目都是关于身份验证和授权的解决方案,可以帮助应用程序提供安全可靠的用户认证功能。其次,这些项目都支持单点登录 (SSO) 功能,使用户能够在多个系统之间无缝切换。最后,这些项目注重安全性,并提供了各种安全技术来保护数据和通信链路。总体而言,这些开源项目具有丰富的功能、易于集成和使用,并且拥有强大的社区支持。
小柒
2023/09/02
6490
强大而灵活的身份验证和授权服务
keycloak集群化的思考
单体服务如果想要突破到高并发服务就需要升级为集群服务。同时集群化也为高可用打下了坚实的基础。纵观现在比较流行的服务或者中间件,不管是RabbitMQ还是redis都提供了集群的功能。
用户2323866
2021/06/22
1.3K0
keycloak集群化的思考
单体服务如果想要突破到高并发服务就需要升级为集群服务。同时集群化也为高可用打下了坚实的基础。纵观现在比较流行的服务或者中间件,不管是RabbitMQ还是redis都提供了集群的功能。
程序那些事
2021/01/13
1.4K0
Keycloak Spring Security适配器的常用配置
在Spring Security集成Keycloak 适配器时需要引入一些额外的配置属性。一般我们会把它配置到Spring Boot的配置文件中。
码农小胖哥
2021/08/13
2.6K0
Spring Security 中使用Keycloak作为认证授权服务器
Keycloak对流行的Java应用提供了适配器。在系列文章的上一篇我们演示了针对Spring Boot的安全保护,用的就是适配器的一种。Keycloak同样提供Spring Security的适配器,后续的几篇文章我们就来共同学习Spring Security适配器的使用。 ❝ Keycloak的安装可参考前面的系列教程。 适配器集成 在Spring 应用中我们集成keycloak-spring-security-adapter: <dependency>     <groupId>org.keycloa
程序猿DD
2023/04/04
2.4K0
Spring Security 中使用Keycloak作为认证授权服务器
Windows 身份验证中的凭据管理
Windows 凭据管理是操作系统从服务或用户接收凭据并保护该信息以供将来向身份验证目标呈现的过程。对于加入域的计算机,身份验证目标是域控制器。身份验证中使用的凭据是将用户身份与某种形式的真实性证明(例如证书、密码或 PIN)相关联的数字文档。
黑白天安全
2021/07/16
6.2K0
Apache NiFi中的JWT身份验证
JSON Web Tokens为众多Web应用程序和框架提供了灵活的身份验证和授权标准。RFC 7519概述了JWT的基本要素,枚举了符合公共声明属性的所需编码,格式和已注册的声明属性名称(payload里属性称为声明)。RFC 7515中的JSON Web签名和RFC 7518中的JSON Web算法描述了JWT的支持标准,其他的比如OAuth 2.0框架的安全标准构建在这些支持标准上,就可以在各种服务中启用授权。
@阿诚
2022/03/04
4.1K0
Spring Boot 3.1 中如何整合Spring Security和Keycloak
在今年2月14日的时候,Keycloak 团队宣布他们正在弃用大多数 Keycloak 适配器。其中包括Spring Security和Spring Boot的适配器,这意味着今后Keycloak团队将不再提供针对Spring Security和Spring Boot的集成方案。
程序猿DD
2023/08/09
1.1K0
Spring Boot 3.1 中如何整合Spring Security和Keycloak
SQLServer 中的身份验证及登录问题
SQL Server 支持两种身份验证模式,即Windows 身份验证模式和混合模式。
授客
2019/09/12
4.4K0
SQLServer 中的身份验证及登录问题
这个安全平台结合Spring Security逆天了,我准备研究一下
最近想要打通几个应用程序的用户关系,搞一个集中式的用户管理系统来统一管理应用的用户体系。经过一番调研选中了红帽开源的Keycloak,这是一款非常强大的统一认证授权管理平台。之所以选中了Keycloak是基于以下几个原因。
程序猿DD
2021/07/13
1.7K0
这个安全平台结合Spring Security逆天了,我准备研究一下
基于Keycloak的Grafana SSO身份认证过程剖析
Keycloak是一款主流的IAM(Identity and Access Management 的缩写,即“身份识别与访问管理”)开源实现,它具有单点登录、强大的认证管理、基于策略的集中式授权和审计、动态授权、企业可管理性等功能。
qugeppl
2021/09/16
7.5K1
通过管理API管理OAuth2 认证授权服务器Keycloak
我们在Keycloak Admin Console中的所有操作都有特定的Restful API,被统称为Keycloak Admin REST API。而 Keycloak Admin Client正是对Keycloak Admin REST API的Java HTTP客户端封装。我们只需要引入下面的依赖就可以集成了:
码农小胖哥
2021/09/09
2.9K0
SQL Server 远程连接出错~~~~~无法访问服务器
异常处理汇总 ~ 修正果带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4599258.html 代理开一下 tcp/ip协议开一下 收工
逸鹏
2018/04/09
8.4K0
SQL Server 远程连接出错~~~~~无法访问服务器
Kerberos 身份验证在 ChunJun 中的落地实践
Kerberos,在古希腊神话故事中,指的是一只三头犬守护在地狱之门外,禁止任何人类闯入地狱之中。
袋鼠云数栈
2022/12/16
1.6K0
Keycloak单点登录平台|技术雷达
Keycloak首次在ThoughtWorks技术雷达第16期中以“评估”的状态出现。 技术雷达15期正式提出“安全是每一个人的问题”,同时也对Docker和微服务进行了强调。 在微服务盛行的时代,
ThoughtWorks
2018/04/17
5.2K0
Keycloak单点登录平台|技术雷达
关于python中phantomjs无法访问网页的处理
笔者使用的系统是linux ubuntu,最近在学习爬虫的过程中遇到了一个抓狂的问题,我尝试使用selenium加phantomjs来登陆网页的时候,Pythony一直提示selenium无法找到元素,不管我怎样修改定位的方法,永远出现No such elements的错误,让我几乎抓狂。再确认了测试了好几遍编写的代码后,我将程序出现的错误定位在了其中这几行代码里面
周小董
2019/03/25
1.4K0
IIS服务中五种身份验证
转载:http://os.51cto.com/art/201005/202380.htm
跟着阿笨一起玩NET
2018/09/20
4.2K0

相似问题

Meteor :订阅集合子集&集合总数

21

确定所有值都相同的子集

21

所有子集的集合

20

相乘的每一个子集的加法

24

子集总数

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文