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

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

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

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

0f40d843e00de3bfaae8e823ac2d6dd1da1a7fd9 

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

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

图像再训练

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

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

63d57376c19ffca272627352c3606d79e33231f7 

TensorFlow Hub上提供图像模块

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

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

文本分类

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

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

34cac414137114e4b75fd9188fbbdae1290df3bf 

TensorFlow Hub一些文本模块

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

deb21c32ee00ee0b9b11633547ed7dcabf4a2eab 

使用TensorFlow Hub的文本分类教程

通用句子编码器

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

cd1f1b2bbd078b8dcf9807589c17e2dade99039e 

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

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

其他模块

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

注意事项

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

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

数十款阿里云产品限时折扣中,赶紧点击领劵开始云上实践吧!

以上为译文。

本文由北邮@爱可可-爱生活 老师推荐,阿里云云栖社区组织翻译。

文章原标题《Introducing TensorFlow Hub: A Library for Reusable Machine Learning Modules in TensorFlow》,译者:Mags,审校:袁虎。

文章为简译,更为详细的内容,请查看原文 

 

相关文章
|
算法框架/工具 机器学习/深度学习 算法
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(三)(2)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(三)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(三)(2)
|
1天前
|
机器学习/深度学习 运维 监控
TensorFlow分布式训练:加速深度学习模型训练
【4月更文挑战第17天】TensorFlow分布式训练加速深度学习模型训练,通过数据并行和模型并行利用多机器资源,减少训练时间。优化策略包括配置计算资源、优化数据划分和减少通信开销。实际应用需关注调试监控、系统稳定性和容错性,以应对分布式训练挑战。
|
3天前
|
机器学习/深度学习 人工智能 算法框架/工具
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(4)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(八)(4)
|
3天前
|
机器学习/深度学习 算法框架/工具 TensorFlow
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(4)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(4)
|
机器学习/深度学习 算法 算法框架/工具
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(3)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(3)
|
3天前
|
机器学习/深度学习 算法框架/工具 自然语言处理
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)(1)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(七)
|
2天前
|
机器学习/深度学习 算法框架/工具 TensorFlow
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(五)(3)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(五)
|
机器学习/深度学习 算法框架/工具 Python
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(五)(2)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(五)
|
3天前
|
机器学习/深度学习 算法框架/工具 Python
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(五)(1)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(五)
|
机器学习/深度学习 算法框架/工具 API
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(四)(1)
Sklearn、TensorFlow 与 Keras 机器学习实用指南第三版(四)