TensorFlow编程指南嵌入.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在TensorFlow中,我们可以创建单词嵌入来实现对文本的分析和处理首先,我们需要将文本拆分成单词,然后为每个单词分配一个整数然后,我们将这个单词ID映射到向量中,最后,我们可以通过嵌入函数将词汇表中所有单词的嵌入映射到向量中例如,如果我们将Ihaveaca这t个句子拆分成I,have,,那么对应Wordembeddings的外形将是5,并且包含5个整数在训练完毕时,Wordembeddings将包含词汇表中全部

嵌入本文档介绍了嵌入这一概念,并且举了一个简洁的例子来说明如何在TensorFlow中训练嵌入,此外还说明白如何使用TensorBoardEmbeddingProjector查看嵌入〔真实例如〕。前两局部适合机器学习或TensorFlow手,而EmbeddingProjector指南适合各个层次的用户。

嵌入

有关这些概念的另一个教程,请参阅《机器学习速成课程》的“嵌入”局部。

嵌入是从离散对象〔例如字词〕到实数向量的映射。例如,英语字词的300维嵌入可能包括:

blue:

blue:(0.01359,00.24608,...,-0.2524,1.0048,0.06259)

blues:(0.01396,0.11887,-0.48963,...,0.033483,-0.10007,0.1158)

orange:(-0.24776,-0.12359,0.20986,...,0.079717,0.23865,

-0.014213)

oranges:(-0.35609,0.21854,0.080944,...,-0.35413,0.38511,

-0.070976)

这些向量中的各个维度通常没有固有含义,机器学习所利用的是向量的位置和相互之间的距离这些整体模式。

嵌入对于机器学习的输入格外重要。分类器〔更笼统地说是神经网络〕适用于实数向量。它们训练密集向量时效果最正确,其中全部值都有助于定义对象。不过,机器学习的很多重要输入〔例如文本的字词〕没有自然的向量表示。嵌入函数是将此类离散输入对象转换为有用连续向量的标准和有效方法。

嵌入作为机器学习的输出也很有价值。由于嵌入将对象映射到向量,因此应用可以将向量空间中的相像性〔例如欧几里德距离或向量之间的角度〕用作一项强大而敏捷的标准来衡量对象相像性。一个常见用途是找到最近的邻点。例如,下面是承受与上述一样的字词嵌入后,每个字词的三个最近邻点和相应角度:

blue:

blue:(red,47.6°),(yellow,51.9°),(purple,52.4°)

blues:(jazz,53.3°),(folk,59.1°),(bluegrass,60.6°)

orange:(yellow,53.5°),(colored,58.0°),(bright,59.9°)

oranges:(apples,45.3°),(lemons,48.3°),(mangoes,50.4°)

这样应用就会知道,在某种程度上,苹果和橙子〔相距45.3°〕的相像度高于柠檬和橙子〔相距48.3°〕。

TensorFlow中的嵌入

要在TensorFlow中创立字词嵌入,我们首先将文本拆分成字词,然后为词汇表中的每个字词安排一个整数。我们假设已经完成了这一步,并且word_ids是这些整数的向量。例如,可以将“Ihaveaca这t.个”句子拆分成[“I”,“have”,

word_ids“a”,“cat”,“.”],那么相应

word_ids

张量的外形将是[5],并且包含5个

整数。为了将这些字词ID映射到向量,我们需要创立嵌入变量并使

tf.nn.embedding_lookup用 函数,如下所示:

tf.nn.embedding_lookup

word_embeddings

word_embeddings=tf.get_variable(“word_embeddings”,

[vocabulary_size,embedding_size])

embedded_word_ids=tf.nn.embedding_lookup(word_embeddings,word_ids)

embedded_word_ids[5,完成此操作后,例如中张量 的外形将是

embedded_word_ids

[5,

embedding_size],并且包含全部5个字词的嵌入〔密集向量〕。在训练完毕时,word_embeddings将包含词汇表中全部字词的嵌入。

嵌入可以通过很多网络类型进展训练,并具有各种损失函数和数据集。例如,对于大型句子语料库,可以使用递归神经网络依据上一个字词推测下一个字词,还可以训练两个网络来进展多语言翻译。字词的向量表示教程中介绍了这些方法。

直观显示嵌入

TensorBoard包括EmbeddingProjector,这是一款可让您以交互的方式直观显示嵌入的工具。此工具可以读取模型中的嵌入,并以二维或三维方式渲染这些嵌入。

EmbeddingProjector具有三个面板:

数据面板:位于左上方,您

文档评论(0)

176****1855 + 关注
实名认证
内容提供者

注册安全工程师持证人

铁路、地铁、高速公路、房建及风电等相关领域安全管理资料

领域认证该用户于2023年05月18日上传了注册安全工程师

1亿VIP精品文档

相关文档