TensorFlow Hub介绍:TensorFlow中可重用的机器学习模块库

摘要: 本文对TensorFlow Hub库的介绍,并举例说明其用法。

在软件开发中,最常见的失误就是容易忽视共享代码库,而库则能够使软件开发具有更高的效率。从某种意义上来说,它改变了编程的过程。我们常常使用库构建块或模块,并将其连接在一起进行编程。

开发人员是如果使用库的呢?除了共享代码之外,我们还可以共享预训练模型。共享预训练模型能够使开发人员有针对性的开发该模型,而不需要访问计算资源或手头上用于训练模型的原始数据。例如,NASNet架构在GPU上花费数千个小时进行训练。通过共享学习到的权重,其他开发人员就能够更容易重用库和构建模型或架构。

图片描述

机器学习模型内部的“组成部分”,可以使用TensorFlow Hub进行打包和共享。从某种意义上来讲,除了架构本身,共享预先训练好的模型的同时,也共享了开发模型的计算时间和数据集。

为机器学习开发者提供库产生了TensorFlow Hub库。TensorFlow Hub库是一个在TensorFlow中进行发布和重用中机器学习模块的平台。我们可以在其他类似的任务中重复使用一个模块(一个TensorFlow的独立片段及其权重)。 开发人员也可以重用一个模块使用一个更小的数据集来训练模型,来提高泛化或加快训练速度。下面来看几个具体的例子。

图像再训练

首先,我们从少量的训练数据开始——图像分类器。现代图像识别模型具有数百万个参数,如果从头开始训练,就需要大量的标记数据和计算能力。使用图像再训练技术,就可以使用很少的数据来训练模型,并且计算时间也少得多。以下是TensorFlow Hub的外观。

其基本思想是,用一个现成的图像识别模块从图像中提取特征训练一个新的分类器。正如你所看到的一样,TensorFlow Hub模块可以在构建TensorFlow图时通过URL(或文件路径)进行实例化。TensorFlow Hub上有多种模块可供选择,包括NASNet、MobileNet(包括其最近的V2)、Inception、ResNet等。想要使用某一模块,首先导入TensorFlow Hub,然后将模块的URL地址复制/粘贴到代码中即可。

图片描述

TensorFlow Hub上提供的图像模块

每个模块都有一个已定义的接口,在不了解其内在结构的情况下,也能够替换使用。这个模块提供了一个检索预期图像大小的方法:只需提供一组有正确形状的图像,然后调用该模块来检索图像的特征表示。该模块负责对图像进行预处理,可以直接将图像转换为其特征表示,然后再构建一个线性模型或其他类型的分类器。

请注意,我们使用的模块是由Google开发的,并且是版本化的(因此模块在实验中不会改变)。和普通Python函数一样,我们也可以使用该模块来构建模型的一部分。一旦导出到磁盘,模块是独立的,无需访问创建和训练该模块的代码和数据(也可以发布代码和数据),也能供其他人所使用。

文本分类

现在你想训练一个模型:将电影评论分为正面或负面,但是只有少量的训练数据(比如只有几百个正面和负面的电影评论)。由于训练数据有限,因此你打算使用以前在大得多的语料库上训练过的词嵌入数据集。以下是使用TensorFlow Hub思路。

同样,首先选择一个模块。TensorFlow Hub提供了多种文本模块,包括基于各种语言(EN,JP,DE和ES)的神经网络语言模型,在维基百科上训练的Word2vec模型和在Google新闻上训练的NNLM嵌入。

图片描述

在TensorFlow Hub上的一些文本模块

在这里,我们使用一个模块来进行文本嵌入。使用上面的代码下载一个模块,用来对一个句子进行预处理,然后检索每个块的嵌入,这就意味着可以直接将数据集中的句子转换为适合分类器的格式。该模块负责标记句子和其他逻辑(如处理词典外的单词)。预处理逻辑和嵌入都封装在一个模块中,使在各种不同的数据集上的文字嵌入和预处理策略变得更加容易,而不必对代码进行大幅度的变动。

图片描述

使用TensorFlow Hub的文本分类教程

通用句子编码器

我们还分享了一个新的TensorFlow Hub模块!下面是通用句子编码器。它是在各种各样的数据集(“通用”)上训练的句级嵌入模块。其功能是语义相似性、自定义文本分类和聚类。

图片描述

这篇文章展示了如何在任何一个可嵌入句子的TF-Hub模块上训练一个简单的二进制文本分类器。

如在图像再训练中,使用相对较少的标记数据使模块适应某一任务,如餐厅评论。查看本教程以了解更多信息。

其他模块

TensorFlow Hub不仅仅是图像和文本分类。用于Progressive GAN和Google地标深层特征的其他模块请查看链接。

注意事项

使用TensorFlow Hub模块时需要考虑几个重要因素:首先,请记住模块包含的可运行的代码,一定要使用可信来源的模块;其次,正如所有的机器学习一样,公平性是一个很重要的因素。

上面的两个例子都使用了预先训练好的大数据集。当重复使用这样的数据集时,注意其包含的数据是否存在偏差,以及这些是如何影响正在构建的模型和用户的。

原文链接
干货好文,请关注扫描以下二维码:
图片描述

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

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

相关文章

新建文本文档好玩的代码_(03)用什么工具写ASP源代码?

有很多工具可以书写ASP源代码,我使用Windows自带的记事本来编写ASP源代码。下面做一下简要介绍。一. ASP源代码文件的格式1. ASP源代码文件是以.asp为后缀命名的文本文件,如index.asp,conn.asp等,前面设置的IIS就是执行这些文件内…

漫话:如何给女朋友解释鸿蒙OS是怎样实现跨平台的?

戳蓝字“CSDN云计算”关注我们哦!周末在家休息,女朋友在刷朋友圈,突然她问我:鸿蒙OS回顾2019年8月9日华为开发者大会上,华为消费者业务CEO余承东正式宣布发布自有操作系统鸿蒙,内核为Linux内核、鸿蒙微内核…

apache ant 安装_Jmeter+ Ant+jenkins 接口自动化框架实现

一、文件配置•编写jmeter脚本 •上传jmx脚本到jmeter目录下,新建一个Loadtest目录,•在Tomcat webapp 文件夹下面新建报告输出文件夹testReport;•将jmeter中extras 文件夹ant-jmeter-1.1.1.jar 包放置于ant目录下lib文件夹 •将jmeter的ext…

机器学习必备:前20名Python人工智能和机器学习开源项目

摘要: 机器学习之旅必了解:前20名Python人工智能和机器学习开源项目! 如今机器学习和人工智能已经变得家喻户晓,有很多爱好者进入了该领域。但是,什么才是能够进入该领域的正确路径呢?如何保持自己跟上该领…

索非亚机器人的采访_还记得曾经扬言要“毁灭人类”的机器人索菲亚吗?如今过成这样...

如今人类电子信息技术的不断发展,人工智能大量出现在我们的生活之中,比如手机、电脑等,他们让我们的生活更加便捷和高效,人工智能作为一项服务人类的技术,在带给我们生活的便利的同时,却也让很多人表示担忧…

华为5G设备全球分布图曝光:欧洲占总量近6成;地平线发布首款车规级AI芯片,名叫征程2.0;奥迪与比亚迪达成电池供货协议……...

关注并标星星CSDN云计算极客头条:速递、最新、绝对有料。这里有企业新动、这里有业界要闻,打起十二分精神,紧跟fashion你可以的!每周三次,打卡即read更快、更全了解泛云圈精彩newsgo go go 首个金融教育主题微信小游戏…

阿里云全球首次互联网8K直播背后的技术解读

摘要: 3月28日,云栖大会深圳峰会现场,阿里云发布并现场演示了阿里视频云最新8K互联网直播解决方案。这是全球发布的首个8K视频云解决方案,也是全球首次8K互联网视频直播。 视频地址:https://v.qq.com/x/page/v0618atp7…

python画海绵宝宝_《1,2,3到动物园》数数书,适合幼儿园小班宝宝亲子共读,从游戏中了解数字的概念...

大家好,我是神桐妈妈,最近开始陆续给几个幼儿园做了有关绘本方面的师资培训,然后又有新的幼儿园要有了嵌入式幼儿园绘本馆,有了绘本,有了书香氛围,又有孩子们开始接触绘本,每天拿着一本绘本带回…

ESS控制台发布新功能:创建多实例规格的伸缩配置

摘要: 背景 原弹性伸缩ESS服务限定,生效的伸缩配置中只能对应一种实例规格,这样就会存在如果生效的配置中的实例规格的库存不足(高配实例规格通常更容易出现库存不足的情况)时, 用户配置好的伸缩规则以及伸…

在列表前方插入一个数据_通俗易懂的Redis数据结构基础教程

Redis有5个基本数据结构,string、list、hash、set和zset。它们是日常开发中使用频率非常高应用最为广泛的数据结构,把这5个数据结构都吃透了,你就掌握了Redis应用知识的一半了。string首先我们从string谈起。string表示的是一个可变的字节数组…

OpenStack精华问答 | NOVA计算服务

自诞生以来,OpenStack 似乎一直被质疑,其背后最重要的两大推手 NASA 和 Rackspace 都弃它而去,惠普、思科接连宣布关闭基于 OpenStack 的公有云服务,但是,OpenStack 依旧坚挺。1Q:NOVA计算服务A:1 实例生命…

java泛型_Java核心知识 基础五 JAVA 泛型

泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本 质是参数化类型,也就是说所操作的数据类型被指定为一个参数。比如我们要写一个排序方法, 能够对整型数组、字符串数组甚至其他任何类型的数组进行排序…

省钱小贴士(ECS):教你如何每年省出8w+ 块

摘要: 随着用户越来越多地使用阿里云的ECS服务,如何用最小的成本来保有ECS,成为用户越来越重要的关注点。为了更好的服务客户,ECS团队调整了系统盘的最小容量限制。 随着用户越来越多地使用阿里云的ECS服务,如何用最小…

相对熵与交叉熵_详解机器学习中的熵、条件熵、相对熵、交叉熵

目录信息熵条件熵相对熵交叉熵总结一 信息熵 (information entropy)熵 (entropy) 这一词最初来源于热力学。1948年,克劳德爱尔伍德香农将热力学中的熵引入信息论,所以也被称为香农熵 (Shannon entropy),信息熵 (information entropy)。本文只…

《CDN 之我见》原理篇——CDN的由来与调度

CDN是将源站内容分发至全国所有的节点,从而缩短用户查看对象的延迟,提高用户访问网站的响应速度与网站的可用性的技术。它能够有效解决网络带宽小、用户访问量大、网点分布不均等问题。 为了让大家更全面的了解CDN的原理、调度、缓存和安全等关键技术点&…

java实现apriori算法_各种排序算法的分析及java实现(一)

阅读本文约需要7分钟大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈)。上次老师跟大家分享了下用Navicat for Mysql导入.sql文件的相关知识,今天跟大家分享在 各种排序算法的分…

超越杭州、北京居首、广州晋级第一梯队……国内城市算力大起底!

戳蓝字“CSDN云计算”关注我们哦!近日,在2019中国人工智能计算大会(AICC2019)上,IDC与浪潮联合发布了《2019-2020中国人工智能计算力发展评估报告》。报告指出,计算力是承载和推动人工智能走向实际应用的基…

在阿里,我们如何管理代码分支?

摘要: 阿里有很多的研发团队,不同事业部使用的发布流程、分支策略并非整齐划一,但总体上看是比较规整的。其中有一种主流的发布模式以及对应的分支使用方式,称为“AoneFlow”。这套工作模式思路独特,在阿里以外的地方并…

linux杀掉80端口线程命令

80端口被其他程序占用, fuser -k -n tcp 80 查看端口是否启用 telnet ip地址 端口没有启动,显示拒绝: 端口启动,显示微笑: