摘要: 本文对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模块时需要考虑几个重要因素:首先,请记住模块包含的可运行的代码,一定要使用可信来源的模块;其次,正如所有的机器学习一样,公平性是一个很重要的因素。

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

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

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

  1. python自带intertool模块找不到_介绍Python中内置的itertools模块

    Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数. 首先,我们看看itertools提供的几个"无限"迭代器: >>> import ...

  2. matlab中的dc motor的介绍,MatLab中,直流电动机(DC-Motor)模块位于( )中。

    中直流中的比款人映借盈利能力够反率是能. 务器写的信息提交户填可以内容将用给服,电动互性页具有交从而使网. 可以采用,模块多个像上在一建立个图链接. 位于部分为(的HL代下面码将框架口分器窗)个设置. ...

  3. 03_TF2 Guide、文档清单(数据输入、估计器、保存模型、加速器、性能调优等)、TF2库和扩展库(TensorBoard、数据集、TensorFlow Hub、概率和统计分析库、图像处理库)

    对应位置:https://tensorflow.google.cn/guide 本博文为笔者对TensorFlow2官网翻译,后续会将此博文完善,连接对应地址,将会被慢慢替换大家熟悉的中文博文 1.T ...

  4. 【无标题】tensorflow hub 预训练模型库

    TensorFlow Hub 是一个包含经过训练的机器学习模型的代码库,这些模型稍作调整便可部署到任何设备上.您只需几行代码即可重复使用经过训练的模型,例如 BERT 和 Faster R-CNN. ...

  5. Simulink系列 - simulink模块库详细介绍

    (原创文章,转载请与作者联系,本文Matlab版本 R2019a) 往期回顾:SImulink仿真系列 - Simulink信号观察模块详解 上一篇:基于Matlab-Simulink 的 2FSK ...

  6. 三分钟了解APS系统中生产计划排程模块的基本原理!

    高级计划系统APS作为ERP的补充,用于协调物流.开发瓶颈资源和保证交货日期.APS包括需求和供应计划.运输和生产计划排程等各种供应链计划模块,本文主要介绍APS中生产计划排程模块的基本原理. 决策状 ...

  7. Python黑马头条推荐系统第四天 TensorFlow框架介绍和深度学习

    深度学习与推荐系统 6.1 推荐系统与深度学习关联 学习目标 目标 无 应用 无 6.1.1 深度学习到推荐系统 深度学习发展成功与局限 最近几年深度学习的流行,大家一般认为是从2012年 AlexN ...

  8. 使用预训练网络训练的两种方式:Keras Applications、TensorFlow Hub

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) tensorflow 2.0 画出model网络模型的拓扑图 ...

  9. “史上最强”BigGAN公开TensorFlow Hub demo!

    还记得前些日子轰动一时的 BigGAN 模型吗?生成对抗网络(GAN)作为当前最热门的技术之一,最近在图像生成方面的成果颇受人关注.近日,由 DeepMind 和赫瑞瓦特大学组成的科研人员公布的 Bi ...

最新文章

  1. mysql的min函数的使用方法_MySQL中MIN()函数的使用教程
  2. android第三方应用,Android 第三方应用接入微信平台研究情况分享(一)
  3. 单机环境RocketMQ的安装
  4. [html] 写出不定宽度的子级div,在相对于固定宽度的父级元素水平居中的布局
  5. ad19原理图标注_AD19中原理图的模板如何进行编辑?
  6. Postgresql 帐号密码修改方法
  7. unity粒子特效附上贴图后播放动画
  8. Lua包管理工具Luarocks
  9. 佳博标签打印机如何打印条码流水号
  10. Linux时间戳与日期相互转换
  11. 微软雅黑字体,百度云下载
  12. Cesium开发环境搭建的几种方法总结
  13. Win7电脑如何关闭智能卡服务功能--win10专业版
  14. the owning Session was closed
  15. ARM开发工具综述转
  16. Code Complete《代码大全》读书笔记
  17. c语言中y=0x20什么意思,0x20(十六进制0x20等于多少)
  18. eol自动化测试系统监控软件,EOL测试系统总体方案.doc
  19. 南农计算机考研真题,南京农业大学考研真题汇总
  20. 怎么做手游性能测试?

热门文章

  1. 【LeetCode笔记】剑指 Offer 33. 二叉树的后序遍历序列(Java、递归、栈)
  2. 【LeetCode笔记】4. 寻找两个正序数组的中位数(Java、二分、递归)
  3. 计算机主机接线视频教程,电脑主板跳线怎么接?电脑机箱与主板跳线接法图解教程...
  4. 2-路插入排序c语言算法,浅谈2路插入排序算法及其简单实现
  5. 刷卡提示57能恢复吗_硬盘格式化之后数据还能恢复吗?
  6. 基克的聚合 机器人_重做秒变神器!基克的聚合成辅助标配
  7. array js 二分法_JS常见的算法
  8. fabric shim安装合约_智能合约简介_智能合约开发_Hyperledger Fabric_开发指南_区块链服务 BaaS - 阿里云...
  9. 告诉你,为什么要娶物理系御姐?
  10. 211高校博士生入住隔离宿舍,疫情防控下科研进度不能停!