tf.nn.embedding_lookup
来源:互联网 发布:windows屏幕水印 编辑:程序博客网 时间:2024/05/16 18:30
保留初心,砥砺前行
- embedding通俗易懂说就是将word映射为向量。
- 对自然语言处理中需要让机器理解word与word之间的关系,例如法国对应巴黎、中国对应北京,就需要用到embedding技术使词与词产生的向量之间存在某种联系(例如意思相近的词产生的向量在空间上更加接近等等)。这些都是后话。
- 这里只记录tensorflow中关于embedding给出的一个函数
embedding_lookup
tensorflow官方文档见这里
tf.nn.embedding_lookup(params, ids, partition_strategy='mod', name=None, validate_indices=True, max_norm=None)
作用:Looks up ids in a list of embedding tensors:也就是说在参数params中查找ids所对应的表示,如果这样的叙述并不清楚,那么参考下边这个简单的例子。
import numpy as npimport tensorflow as tfsess = tf.InteractiveSession()embedding = tf.Variable(np.identity(6, dtype=np.int32))input_ids = tf.placeholder(dtype=tf.int32, shape=[None])input_embedding = tf.nn.embedding_lookup(embedding, input_ids)sess.run(tf.global_variables_initializer())print sess.run(embedding)print sess.run(input_embedding, feed_dict={input_ids: [4, 0, 2, 4, 5, 1, 3, 0]})
运行结果
从以上简单示例可以看出,embedding将变量表现成了one-hot形式,而input_embedding = tf.nn.embedding_lookup(embedding, input_ids)
就是把input_ids中给出的tensor表现成embedding中的形式。
简单来说上图中红线上部是创建了一个embedding词典,红线下部是通过输入的input_ids查询上部的字典得到embedding后的值。而字典是可以由用户随意创建的,图中给出的是一个one-hot字典,还可以自由创建其他字典,例如使用正态分布或均匀分布产生(0,1)的随机数创建任意维度的embedding字典
- 也就是说 embedding_lookup是tensorflow中给出的用于以某种方式进行embedding的函数
如果参数partition_strategy是 “mod”,我们把每一个id分配到间隔p的分区中(p = id % len(params))。例如,13个ids划分为5个分区:[[0, 5, 10], [1, 6, 11], [2, 7, 12], [3, 8], [4, 9]]
如果参数partition_strategy是 “div”,我们把用连续的方式将ids分配到不同的分区。例如,13个ids划分为5个分区:[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10], [11, 12]]
阅读全文
0 0
- tf.nn.embedding_lookup理解
- tf.nn.embedding_lookup()笔记
- tf.nn.embedding_lookup
- tf.nn.embedding_lookup函数
- tf.nn.embedding_lookup()的使用
- Tensorflow学习---tf.nn.embedding_lookup
- TensorFlow中 tf.nn.embedding_lookup
- tf.nn.embedding_lookup简单介绍
- tensorflow tf.nn.embedding_lookup(embeddings, train_inputs)解释
- tf.nn.embedding_lookup()的参数形式
- tf.nn.embedding_lookup函数的用法
- Tensorflow-tf.nn.embedding_lookup函数原理
- tf.nn.embedding_lookup TensorFlow embedding_lookup 函数最简单实例
- tf.nn.embedding_lookup中关于partition_strategy参数详解
- tensorflow中embedding_lookup, tf.gather以及tf.nn.embedding_lookup_sparse的理解
- tf.nn
- tf.nn.top_k() tf.nn.in_top_k()
- tf.nn.top_k() tf.nn.in_top_k()
- flink之FLIP
- [Linux] linux下安装配置 zookeeper/redis/solr/tomcat/IK分词器 详细实例.
- vue2.0路由切换后页面滚动位置不变BUG
- C++类静态成员与类静态成员函数详解
- Android Studio多渠道打包
- tf.nn.embedding_lookup
- Linux下redis的安装及配置.
- 【Java】NIO reactor 多路复用技术
- SSM框架中集成TKMybatis+PageHelper实现高效查询和分页
- Qt 之 QSqlIndex Class
- Promise用法小例
- ofbiz 权限设计详解
- 解决java.io.FileNotFoundException: D:\tempfile (拒绝访问。)
- 如何使用C语言实现copy拷贝的功能