gpt4 book ai didi

keras - 嵌入 Keras

转载 作者:行者123 更新时间:2023-12-01 08:46:53 34 4
gpt4 key购买 nike

在 Keras 内置函数中嵌入使用哪种算法?Word2vec?手套?其他?

https://keras.io/layers/embeddings/

最佳答案

简短的回答是都不是。本质上,GloVeWord2Vec 等嵌入层只是一个小的神经网络模块(通常是全连接层),它将更高、稀疏的维度投影到更低、n维向量。

当您将 Keras 中的一个新鲜随机嵌入层插入到您的神经网络中时,Keras 将构建一个形状为 [input_dim, output_dim] 的密集可学习矩阵。

具体来说,假设您要插入一个嵌入层以将 整数标量 月份信息(12 个唯一值)编码为大小为 3 的 浮点向量。在 Keras 中,您将按如下方式声明您的嵌入:

import numpy as np
import keras
from keras.models import Sequential, Model
from keras.layers import Embedding, Input
x = Input(shape=(1000,)) # suppose seq_len=1000
embedding = Embedding(12+1, 3, input_length=1000)(x)
model = Model(inputs=x, outputs= embedding) # Functional API
model.summary()

您的嵌入层将有如下摘要:

_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
input_1 (InputLayer) (None, 1000) 0
_________________________________________________________________
embedding_1 (Embedding) (None, 1000, 3) 39
=================================================================
Total params: 39
Trainable params: 39
Non-trainable params: 0
_________________________________________________________________

请注意,可学习的参数是 39 = 13*3(Keras 需要 +1 来编码不属于 12 个唯一月份中的任何一个的值 - 就在案例)。

还要注意,虽然嵌入的输入形状为 (None, 1000),但嵌入的输出形状为 (None, 1000, 3)。这意味着大小为 [13, 3] 的非常小的密集权重矩阵应用于 1000 个输入时间步长中的每个。这意味着,0-11 的每个月整数输入将被转换为大小为 (3,) 的浮点向量。

这也意味着当你从最后一层反向传播到嵌入层时,1000 个时间步嵌入输出中每个的梯度也将流动(在 time_distributed 方式)到大小为 [13,3] 的小型神经网络权重(本质上嵌入层)。

嵌入层请引用 Keras 官方文档:https://keras.io/layers/embeddings/ .

关于keras - 嵌入 Keras,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51579761/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com