Kares中Embeding层详解

2 篇文章 0 订阅
1 篇文章 0 订阅
keras.layers.Embedding(input_dim, output_dim, embeddings_initializer='uniform', embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None)

这是Keras中文文档中的解释,给新手理解,不是我想讲的,有基础的同学可直接看后面

将正整数(索引值)转换为固定尺寸的稠密向量。 例如: [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]

该层只能用作模型中的第一层。

  • input_dim: int > 0。词汇表大小, 即,最大整数 index + 1。
  • output_dim: int >= 0。词向量的维度。
  • embeddings_initializerembeddings 矩阵的初始化方法。
  • embeddings_regularizerembeddings matrix 的正则化方法 。
  • embeddings_constraintembeddings matrix 的约束函数 。
  • mask_zero: 是否把 0 看作为一个应该被遮蔽的特殊的 "padding" 值。 这对于可变长的 循环神经网络层 十分有用。 如果设定为 True,那么接下来的所有层都必须支持 masking,否则就会抛出异常。 如果 mask_zero 为 True,作为结果,索引 0 就不能被用于词汇表中 (input_dim 应该与 vocabulary + 1 大小相同)。
  • input_length: 输入序列的长度,当它是固定的时。 如果你需要连接 Flatten 和 Dense 层,则这个参数是必须的 (没有它,dense 层的输出尺寸就无法计算)。

输入尺寸

尺寸为 (batch_size, sequence_length) 的 2D 张量。

输出尺寸

尺寸为 (batch_size, sequence_length, output_dim) 的 3D 张量。

None表示batch大小。

 我主要想记录一下Embeding层数据处理过程,即输入输出是什么,形状见上面。

Kares框架中的Embeding层究竟干了什么?

简单来说就是一个查表操作,输入一串词id,输出一串对应的词向量。

比如你输入一个2,他就输出他现在状态下的Embeding矩阵的第二行的那个词向量。所以要加载预训练的Embeding矩阵的话,需要将词id和Embeding矩阵的行对应好,比如,预训练的词id:2,对应的词向量为V2,则初始化Embeding矩阵的时候要把V2放在矩阵第2行。大约就是这个样子,具体细节可以参考这篇文章中一个非常简单的例子:https://www.jianshu.com/p/a3f3033a7379

下面留一个笔记自用,以后忘了回来看看,字迹有些潦草,仅供自用,需要的同学也可大体看看。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值