Fullstar

Archives

  • December 2025
  • August 2024
  • July 2024
  • February 2024
  • November 2023
  • August 2023
  • July 2023
  • January 2023
  • November 2022
  • October 2022
  • September 2022
  • February 2022
  • January 2022
  • September 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020

Categories

  • Code
  • Lens
  • Life
0
Fullstar
  • Code

Keras Embedding层

  • July 21, 2020
  • Brandon

Looking for a Shorter Overview?

AI Summary

Embedding层把词的整数编号映射为稠密向量,使模型能够用向量计算估计词语之间的关系。文中说明了input_dim、output_dim和input_length的含义,并通过输入形状为(3,7)的示例验证输出形状为(3,7,2)。

Key Moments

AI-generated
1

嵌入层将词转换为稠密向量

嵌入层把每个单词映射为一个向量,以便通过向量计算估计单词之间的关系。
2

三个核心参数的作用

input_dim限定输入整数索引范围,output_dim指定每个索引的向量长度,input_length指定每条输入的特征数或序列长度。
3

输入输出形状的推导

输入形状为(10,5)且output_dim为3时,10条各含5个单词的序列会输出形状为(10,5,3)的张量。
4

示例验证嵌入层输出

测试中输入形状为(3,7)的整数矩阵,经output_dim为2的嵌入层处理后得到形状为(3,7,2)的结果。
Total
0
Shares
0
0
0

意义:embedding层的意义在于将文字向量化,如有10句话,每句话有5个单词,那么若用简单的one hot进行表示无法体现出单词与单词间的关系,而利用embedding层能够使得一个单词变为一个向量,从而能够利用向量间的计算方法对单词间的关系进行数值化估计

keras中提供了Embedding层,其常用形式如下:

model.add(Embedding(input_dim=10,output_dim=3,input_length=5))

上述代码中参数input_dim表示所输入的数组的最大值所不能超过的界限值,output_dim表示将输入的矩阵中的一个值用长度为多少的向量来表示,input_length表示一个数据所含有的特征数目,即矩阵的列数。若输入为(10,5)的矩阵,则可以理解为输入10句话,每句话有5个单词,每个单词用长度为3的向量来表示,因此输出shape为(10,5,3)。函数测试如下:

from keras.layers import Embedding
from keras import Sequential
import numpy as np

model = Sequential()

model.add(Embedding(input_dim=10,output_dim=2,input_length=7))

model.compile('rmsprop', 'mse')
a=np.array([[1, 1, 0, 1, 1, 0, 0],
            [1, 1, 1, 1, 1, 1, 1],
            [1, 1, 1, 1, 1, 1, 1]]
)

result = model.predict(a)
print('Embedded a:\n', result)
print('shape Embedded a:\n', result.shape)

输出如下:

Embedded a:
 [[[-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.02440189 -0.01358169]
  [-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.02440189 -0.01358169]
  [-0.02440189 -0.01358169]]

 [[-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.01546042  0.01157654]]

 [[-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.01546042  0.01157654]
  [-0.01546042  0.01157654]]]
shape Embedded a:
 (3, 7, 2)

参考博客:Keras里Embedding层的理解

Related Posts

AI-generated

基于RNN的自动文本生成

从字符索引到向量编码,RNN能够根据已有文本预测下一个字母。文章说明独热编码、Embedding、SimpleRNN与softmax分类层如何协同训练自动文本生成模型。
54.7% match July 22, 2020

attention model

注意力机制不再让解码器反复依赖同一个向量,而是在每个时间步选择最相关的编码信息。文章说明其计算流程,并展示它如何将图像特征逐词转化为描述语句。
51.2% match July 26, 2020

Questions Answered

AI-generated

Embedding层为什么比独热编码更适合表示单词?

它把单词映射为向量,可数值化估计词语之间的关系。

input_dim、output_dim和input_length分别表示什么?

它们依次控制编号范围、词向量长度和序列特征数量。

输入为(10,5)矩阵时Embedding层输出形状是什么?

每个词扩展为三维向量时,输出形状为(10,5,3)。

相同的词编号在Embedding层中会得到什么结果?

它们查询同一嵌入向量,因此输出完全相同的向量值。

Next Up

RNN续写文本
动态注意力机制
Keras 实战速记
读写外部记忆
Total
0
Shares
Share 0
Tweet 0
Pin it 0
Brandon

Previous Article
  • Code

网址收藏夹

  • July 16, 2020
  • Brandon
View Post
Next Article
  • Code

基于RNN的自动文本生成

  • July 22, 2020
  • Brandon
View Post
You May Also Like
View Post
  • Code

Letta部署记录

  • Brandon
  • December 26, 2025
View Post
  • Code

WordPress 后台任务利器:使用 BGRunner 构建可靠的异步处理

  • Brandon
  • December 14, 2025
View Post
  • Code

WordPress image offload

  • Brandon
  • December 14, 2025
View Post
  • Code

ComfyUI应用手册

  • Brandon
  • December 6, 2025
View Post
  • Code

Leetcode Java常用代码

  • Brandon
  • February 17, 2024
View Post
  • Code

Golang入门

  • Brandon
  • February 4, 2024
View Post
  • Code

Setting Up and Maintaining a Ubuntu Environment for My Home Server

  • Brandon
  • November 24, 2023
View Post
  • Code

Swift Learning Log

  • Brandon
  • August 31, 2023

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Fullstar

Input your search keywords and press Enter.

基于RNN的自动文本生成

attention model

Private: keras简单实战代码记录

Memory Network

Letta部署记录

ComfyUI应用手册

UP NEXT

基于RNN的自动文本生成

54.7% match July 22, 2020 0