tf.layers.Embedding

embedding layer的作用

keras.layers.Embeddings(input_dim, output_dim, embeddings_initializer='uniform', embeddings_regularizer=None, activity_regularizer=None, embeddings_constraint=None, mask_zero=False, input_length=None)

我们经常会使用one-hot编码将一个特征转换为一个向量。但在实际应用当中,将特征转换为one-hot编码后维度会非常高。所以我们会将one-hot这种稀疏特征转化为稠密特征,通常做法也就是转化为我们常用的embedding。
在NLP领域中,我们需要将文本转化为电脑所能读懂的语言,也就是把文本语句转化为向量,也就是embedding。
Embedding层相当于处理词向量,之后进行一次卷积操作降维。
需要注意的是,tf.layers.Embedding只能作为第一层使用。

#vocab_size:字典大小
#embedding_dim:本层的输出大小,也就是生成的embedding的维数
#input_length:输入数据的维数,因为输入数据会做padding处理,所以一般是定义的max_length
keras.layers.Embedding(vocab_size, embedding_dim, input_length = max_length)

举个例子:

embedding_dim = 16 
batch_size = 128
model = keras.models.Sequential([
# 定义矩阵(vocab_size * embedding_dim), 输出(batch_size, max_length, embedding_dim), 将词表表示的句子转化为embedding
                                 keras.layers.Embedding(vocab_size, embedding_dim, input_length = max_length),
#batch_size*max_length*embedding_dim->batch_size*embedding_dim
                                 keras.layers.GlobalAveragePooling1D(),
                                 keras.layers.Dense(64, activation="relu"),
                                 keras.layers.Dense(1, activation="softmax")
])
model.compile(loss="binary_crossentropy", optimizer="adam", metrics=["accuracy"])

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值