老师您好,关于embedding层

来源:7-3 数据padding、模型构建与训练

manbaneverout

2020-05-05

老师您好:)
1.embedding层的工作内容是不是首先定义一个vocab_size * embedding_dim的矩阵,然后将我们传进去的每条数据根据这个矩阵变成max_length (每条数据词的数量)* embedding_dim(每个词的长度),最后就会生成一个batch_size * max_length * embedding_dim的3D张量,请问这样理解对吗?
2.keras.layers.GlobalAveragePooling1D()是怎么把max_length这个维度消掉的,不是很理解,老师能简单讲讲吗?
谢谢

写回答

1回答

正十七

2020-05-07

  1. 对的。

  2. 上一步的输出是[batch_size, max_length, embedding_dim], GlobalAveragePooling1D会在max_length这一维上去做平均,所以才能消掉。而在哪一维上去做平均是由data_format='channels_last' 这个参数决定的,如果是channels_last,那么就消掉中间这一维,如果是channels_first, 就消掉最后一维。而这个channel你可以理解成特征的维度,对于图像,就是图像的通道数,对于文本就是embedding_dim,而GlobalAveragePooling会把特征维保留,把另一个维度给消掉。

0
1
manbaneverout
非常感谢!
2020-05-12
共1条回复

Google老师亲授 TensorFlow2.0 入门到进阶

Tensorflow2.0实战—以实战促理论的方式学习深度学习

1849 学习 · 896 问题

查看课程