0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TensorFlow再填新功能!谷歌宣布推出TensorFlow.Text

DPVg_AI_era 来源:lq 2019-06-15 09:49 次阅读

谷歌发布TensorFlow优化新功能TF.Text库,可对语言文本AI模型进行周期性预处理,大大节约了AI开发者对文本模型的训练时间,简化训练流程。

TensorFlow再填新功能!

谷歌宣布推出TensorFlow.Text,这是一个利用TensorFlow对语言文本模型进行预处理的库。TF官博第一时间发布了更新消息,并对TF.Text的新功能和特性进行了简要介绍。

TensorFlow一直以来致力于为用户提供更广泛的选择,帮助用户利用图像和视频数据构建模型。但是,许多模型是以文本开头的,从这些模型构建的语言模型需要进行一些预处理,才能将文本输入到模型中。比如关于使用IMDB数据集的文本分类教程,就是从已经转换为整数ID的文本数据开始入手的。

如果模型训练和推理的时间不一样,在训练过程以外完成的预处理可能会和模型产生偏差,这就需要额外投入更多的时间和精力对预处理的过程进行协调。

TensorFlow本次推出的TF.Text就是为了解决这个问题,TF.Text是一个TensorFlow 2.0库,可以使用PIP命令轻松安装。它可以在基于文本的模型中定期执行这些预处理过程,并提供TensorFlow核心组件中并未提供的、关于语言建模的更多功能和操作。

其中最常见的功能就是文本的词条化(tokenization)。词条化是将字符串分解为token的过程。这些token可能是单词、数字和标点符号,或是上述几种元素的组合。

TF.Text的Tokenizer使用RaggedTensors,这是一种用于识别文本的新型张量。

三个新的Tokenizer,系统解决文本AI模型预训练问题

TF.Text提供了三个新的tokenizer。其中最基本的是空白tokenizer,可以在ICU定义的空白字符(例如空格,制表符,换行符)上拆分UTF-8字符串。

tokenizer=tensorflow_text.WhitespaceTokenizer()tokens = tokenizer.tokenize(['everything not saved will be lost.', u'Sad☹'.encode('UTF-8')])print(tokens.to_list())

[['everything', 'not', 'saved', 'will', 'be', 'lost.'], ['Sadxe2x98xb9']]

此次发布的初始版本还包括一个面向unicode脚本的tokenizer,可以根据Unicode脚本边界拆分UTF-8字符串。值得注意的是,它和空白tokenizer很类似,最明显的区别在于后者可以从标准文本(如USCRIPT_LATIN,USCRIPT_CYRILLIC等)中分割出标点符号。

tokenizer = tensorflow_text.UnicodeScriptTokenizer()tokens = tokenizer.tokenize(['everything not saved will be lost.', u'Sad☹'.encode('UTF-8')])print(tokens.to_list())

[['everything', 'not', 'saved', 'will', 'be', 'lost', '.'], ['Sad', 'xe2x98xb9']]

TF.Text中提供的最后一个tokenizer是一个Wordpiece tokenizer。这是一个无监督的tokenizer,需要一个预先确定的词汇表,进一步将token分成子词(前缀和后缀)。Wordpiece常用于谷歌的BERT模型。

def_CreateTable(vocab,num_oov=1): init = tf.lookup.KeyValueTensorInitializer( vocab, tf.range(tf.size(vocab, out_type=tf.int64), dtype=tf.int64), key_dtype=tf.string, value_dtype=tf.int64) return tf.lookup.StaticVocabularyTable( init, num_oov, lookup_key_dtype=tf.string)vocab_table = _CreateTable(["great", "they", "the", "##'", "##re", "##est"])tokens = [["they're", "the", "greatest"]]tokenizer = tensorflow_text.WordpieceTokenizer( vocab_table, token_out_type=tf.string)result = tokenizer.tokenize(tokens)print(result.to_list())

[[['they', "##'", '##re'], ['the'], ['great', '##est']]]

每个Tokenizer都在UTF-8编码的字符串上进行标记,并提供了将字节偏移量转换为原始字符串的选项。调用者可以了解创建的token的原始字符串中的字节对齐。

此外,TF.Text库还包括归一化、n-gram和标记序列约束等功能。

新功能组件密集发布,TensorFlow大家庭日益完善

有关更深入的实例,可以查看Colab notebook内容,其中包含许多本文中未讨论的新的可用操作的各种代码段。未来计划继续提供更多新工具,让使用TensorFlow构建语言模型变得更加方便。

今年上半年,谷歌陆续发布了多个基于TensorFlow的新功能和新组件。5月,谷歌发布TensorFlow Graphics,让机器学习与图形和3D模型的关系更加密切。今年3月,谷歌发布旨在增强隐私保护的终端设备机器学习方法TensorFlow Federated。此外,TensorFlow框架面向JavaScript和iOS开发者的版本TensorFlow.js和TensorFlow Swift也于今年春天发布。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 谷歌
    +关注

    关注

    27

    文章

    5852

    浏览量

    103248
  • 模型
    +关注

    关注

    1

    文章

    2704

    浏览量

    47678
  • tensorflow
    +关注

    关注

    13

    文章

    313

    浏览量

    60242

原文标题:TensorFlow官宣新功能TF.Text:攻克语言AI模型预处理偏差难题

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Mozilla Firefox浏览器推出Text Fragments功能,提升用户体验

    早在2020年,谷歌即在Chrome浏览器中推出了“Scroll to Text Fragments”功能,而Edge、Opera、Brave、Vivaldi以及苹果Safari等基于
    的头像 发表于 04-08 10:21 255次阅读

    谷歌模型框架是什么软件?谷歌模型框架怎么用?

    谷歌模型框架通常指的是谷歌开发的用于机器学习和人工智能的软件框架,其中最著名的是TensorFlowTensorFlow是一个开源的机器学习框架,由
    的头像 发表于 03-01 16:25 230次阅读

    基于TensorFlow和Keras的图像识别

    TensorFlow和Keras最常见的用途之一是图像识别/分类。通过本文,您将了解如何使用Keras达到这一目的。定义如果您不了解图像识别的基本概念,将很难完全理解本文的内容。因此在正文开始之前
    的头像 发表于 01-13 08:27 374次阅读
    基于<b class='flag-5'>TensorFlow</b>和Keras的图像识别

    如何使用TensorFlow构建机器学习模型

    在这篇文章中,我将逐步讲解如何使用 TensorFlow 创建一个简单的机器学习模型。
    的头像 发表于 01-08 09:25 357次阅读
    如何使用<b class='flag-5'>TensorFlow</b>构建机器学习模型

    PyTorch与TensorFlow的优点和缺点

    转载自:冷冻工厂   深度学习框架是简化人工神经网络 (ANN) 开发的重要工具,并且其发展非常迅速。其中,TensorFlow 和 PyTorch 脱颖而出,各自在不同的机器学习领域占有一席之地
    的头像 发表于 10-30 09:56 499次阅读
    PyTorch与<b class='flag-5'>TensorFlow</b>的优点和缺点

    iTOP-RK3588开发板使用 tensorflow框架

    TensorFlow 是一个软件库或框架,由 Google 团队设计,以最简单的方式实现机器学习和深度学习概念。它结合了优化技术的计算代数,便于计算许多数学表达式。TensorFlow 有以下 重要功能
    发表于 10-08 10:04

    如何用BMlang搭建Tensorflow模型?

    在EVM1684上如何用BMlang搭建一个Tensorflow模型,求助官方一个demo。
    发表于 09-18 07:00

    深度学习框架tensorflow介绍

    深度学习框架tensorflow介绍 深度学习框架TensorFlow简介 深度学习框架TensorFlow由Google开发,是一个开放源代码的深度学习框架,可用于构建人工智能应用程序
    的头像 发表于 08-17 16:11 1424次阅读

    为什么无法使用POT优化Tensorflow (TF)或MXNet模型?

    无法使用 POT 优化 Tensorflow (TF) 或 MXNet 模型,以便在 英特尔凌动® 平台上使用 OpenVINO™ 工具套件进行推理。 运行 pot -h。 接收错误消息: 非法指令例外
    发表于 08-15 08:05

    TensorFlow将神经网络量化为8位

    随着TensorFlow Lite的推出TensorFlow已经更新了量化技术和工具,您可以使用这些技术和工具来提高网络性能。 本指南向您展示如何量化网络,使其在训练过程中使用8位数
    发表于 08-10 06:01

    如何使用TensorFlow将神经网络模型部署到移动或嵌入式设备上

    有很多方法可以将经过训练的神经网络模型部署到移动或嵌入式设备上。不同的框架在各种平台上支持Arm,包括TensorFlow、PyTorch、Caffe2、MxNet和CNTK,如Android
    发表于 08-02 06:43

    使用Tensorflow的Raspberry Pi Covid口罩检测器

    电子发烧友网站提供《使用Tensorflow的Raspberry Pi Covid口罩检测器.zip》资料免费下载
    发表于 07-13 10:54 0次下载
    使用<b class='flag-5'>Tensorflow</b>的Raspberry Pi Covid口罩检测器

    如何使用pycoral、tensorflow-lite和edgetpu构建核心最小图像?

    如果您能告诉我们如何使用 pycoral、tensorflow-lite 和 edgetpu 构建核心最小图像,我们将不胜感激。
    发表于 06-05 10:53

    如何使用meta-imx层中提供的tensorflow-lite编译图像?

    我们正在尝试使用 meta-imx 层中提供的 tensorflow-lite 编译图像。我们没有任何 自定义更改/bbappends (Highlight to read)sources
    发表于 05-29 06:55

    在树莓派64位上安装TensorFlow

    本页将指导您在Raspberry Pi 4 64位操作系统Bullseye 上安装 TensorFlow 2.10.0 或更早版本。
    的头像 发表于 05-15 13:46 798次阅读
    在树莓派64位上安装<b class='flag-5'>TensorFlow</b>