函数:

tf.nn.embedding_lookup(

params,

ids,

partition_strategy='mod',

name=None,

validate_indices=True,

max_norm=None

)

参数说明:

params: 表示完整的嵌入张量,或者除了第一维度之外具有相同形状的P个张量的列表,表示经分割的嵌入张量

ids: 一个类型为int32或int64的Tensor,包含要在params中查找的id

partition_strategy: 指定分区策略的字符串,如果len(params)> 1,则相关。当前支持“div”和“mod”。 默认为“mod”

name: 操作名称(可选)

validate_indices:  是否验证收集索引

max_norm: 如果不是None,嵌入值将被l2归一化为max_norm的值

tf.nn.embedding_lookup()函数的用法主要是选取一个张量里面索引对应的元素

tf.nn.embedding_lookup(tensor,id):即tensor就是输入的张量,id 就是张量对应的索引

tf.nn.embedding_lookup()就是根据input_ids中的id,寻找embeddings中的第id行。比如input_ids=[1,3,5],则找出embeddings中第1,3,5行,组成一个tensor返回

embedding_lookup不是简单的查表,id对应的向量是可以训练的,训练参数个数应该是 category num*embedding size,也就是说lookup是一种全连接层

一般做自然语言相关的。需要把每个词都映射成向量,这个向量可以是word2vec预训练好的,也可以是在网络里训练的,在网络里需要先把词的id转换成对应的向量,这个函数就是做这件事的

在基于深度学习的实体识别中,字向量会提前训练好,这个就可以理解成上面的tensor,而在实际的句子中每一个字所对应的字向量是通过id进行关联上的

例子:

#coding:utf-8

import tensorflow as tf

import numpy as np

c = np.random.random([5,1])  ##随机生成一个5*1的数组

b = tf.nn.embedding_lookup(c, [1, 3]) ##查找数组中的序号为1和3的

with tf.Session() as sess:

sess.run(tf.initialize_all_variables())

print(sess.run(b))

print(c)
输出的结果如下所示:

[[0.5687709 ]

[0.61091257]]

[[0.31777381]

[0.5687709 ]

[0.1779548 ]

[0.61091257]

[0.65478204]]

在c中第2个元素为0.5687709,第4个元素是0.61091257(索引从0开始),刚好是b的值
---------------------
作者:杨小妹_fly
来源:CSDN
原文:https://blog.csdn.net/yangfengling1023/article/details/82910951
版权声明:本文为博主原创文章,转载请附上博文链接!

tf.nn.embedding_lookup()的用法相关推荐

  1. tf.nn.embedding_lookup函数的用法

    tf.nn.embedding_lookup函数的用法主要是选取一个张量里面索引对应的元素.tf.nn.embedding_lookup(params, ids):params可以是张量也可以是数组等 ...

  2. tf.nn.embedding_lookup

    用法: a1 = tf.nn.embedding_lookup(a, index) index是索引,a是输入,通过index来选取a中对应的元素返回给a1,注意index是从0开始算起 例子: im ...

  3. 深度学习-函数-tf.nn.embedding_lookup 与tf.keras.layers.Embedding

    embedding函数用法 1. one_hot编码 1.1. 简单对比 1.2.优势分析: 1.3. 缺点分析: 1.4. 延伸思考 2. embedding的用途 2.1 embedding有两个 ...

  4. tf.nn.embedding_lookup()函数

    一.tf.nn.embedding_lookup() tf.nn.embedding_lookup函数的用法主要是选取一个张量里面索引对应的元素.tf.nn.embedding_lookup(tens ...

  5. 深度学习原理与框架-CNN在文本分类的应用 1.tf.nn.embedding_lookup(根据索引数据从数据中取出数据) 2.saver.restore(加载sess参数)...

    1. tf.nn.embedding_lookup(W, X) W的维度为[len(vocabulary_list), 128], X的维度为[?, 8],组合后的维度为[?, 8, 128] 代码说 ...

  6. 【TensorFlow】tf.nn.softmax_cross_entropy_with_logits的用法

    [TensorFlow]tf.nn.softmax_cross_entropy_with_logits的用法 from:https://blog.csdn.net/mao_xiao_feng/arti ...

  7. tf.nn.in_top_k的用法

    http://blog.csdn.net/uestc_c2_403/article/details/73187915 tf.nn.in_top_k组要是用于计算预测的结果和实际结果的是否相等,返回一个 ...

  8. tf.nn.rnn_cell.DropoutWrapper用法细节案例2

    -- coding: utf-8 -- import tensorflow as tf from tensorflow.contrib import rnn 导入 MINST 数据集 from ten ...

  9. tf.nn.rnn_cell.DropoutWrapper用法细节案例1

    前言:前面介绍了LSTM,下面介绍LSTM的几种变种 双向RNN Bidirectional RNN(双向RNN)假设当前t的输出不仅仅和之前的序列有关,并且 还与之后的序列有关,例如:预测一个语句中 ...

最新文章

  1. C++中的基本数据类型介绍
  2. SPSS 26安装教程
  3. linux局域网内根据ip查询主机名
  4. [翻译] ASP.NET Core 利用 Docker、ElasticSearch、Kibana 来记录日志
  5. 大一计算机导论期中考试,大一计算机导论试题
  6. c#值get、 set用法(包含自动转换的说明)
  7. Kettle入门操作——输入流(表输入、excel)详细
  8. 融合不是冗余,全栈自研才有出路?特斯拉/Mobileye这样做
  9. MongoDB (芒果)安装说明创建与插入数据
  10. python2.4无线模块_使用nRF24L01模块进行无线射频通信
  11. ZTE 5G UPF 性能白皮书
  12. ps切图后 JAVA开发_ps切图抠图详解-web前端(转)
  13. Cocos Creator 3D 摇杆控制器一种简单实现!
  14. 计算机右键括号内的字母,电脑操作中菜单后面括号里的字母的介绍
  15. (转)罗振宇跨年演讲:哪来直接登顶的人生,只有不断迭代的历程
  16. 未明学院:产品经理到底在职场中过得怎么样?
  17. Java break语句:跳出循环
  18. socat的安装与使用
  19. 如何把mac照片导入u盘_macbook air里的相片要怎么放到u盘里?
  20. PhotoZoomPro图片处理工具使用

热门文章

  1. 二叉树的前序、中序、后序非递归遍历 python实现
  2. django自带的分页功能
  3. IDEA : Git Pull Failed 解决(IDEA中使用stash功能)
  4. 【VB】学生信息管理系统4——数据库的发展
  5. axmath公式编辑器
  6. CVD和ALD薄膜沉积技术应用领域
  7. 电阻存储器为edge-AI提供了仿生架构
  8. 2021年大数据常用语言Scala(十二):基础语法学习 方法调用方式
  9. PHP获取今天,昨天,本月,上个月,本年 起始时间戳
  10. Python数据挖掘:绘制直方图,设置上下限和步长,绘制子图