Représentation vectorielle continue

public struct Embedding<Scalar> : Module where Scalar : TensorFlowFloatingPoint

Une couche d'intégration.

Embedding est en fait une table de recherche qui mappe les indices d'un vocabulaire fixe à des représentations vectorielles de taille fixe (dense), par exemple [[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]] .

  • Une table de recherche apprenable qui mappe les indices de vocabulaire à leurs représentations vectorielles denses.

    Déclaration

    public var embeddings: Tensor<Scalar>
  • Crée un calque Embedding avec des incorporations de forme initialisées de manière aléatoire (vocabularySize, embeddingSize) afin que chaque index de vocabulaire reçoive une représentation vectorielle.

    Déclaration

    public init(
      vocabularySize: Int,
      embeddingSize: Int,
      embeddingsInitializer: ParameterInitializer<Scalar> = { Tensor(randomUniform: $0) }
    )

    Paramètres

    vocabularySize

    Le nombre d'indices (mots) distincts dans le vocabulaire. Ce nombre doit être le plus grand index entier plus un.

    embeddingSize

    Nombre d'entrées dans une seule représentation vectorielle d'intégration.

    embeddingsInitializer

    Initialiseur à utiliser pour les paramètres d'intégration.

  • Crée un calque Embedding à partir des intégrations fournies. Utile pour introduire des intégrations pré-entraînées dans un modèle.

    Déclaration

    public init(embeddings: Tensor<Scalar>)

    Paramètres

    embeddings

    La table des intégrations pré-entraînées.

  • Renvoie une sortie en remplaçant chaque index de l'entrée par la représentation vectorielle dense correspondante.

    Déclaration

    @differentiable(wrt: self)
    public func forward(_ input: Tensor<Int32>) -> Tensor<Scalar>

    Valeur de retour

    Le tenseur créé en remplaçant les indices d'entrée par leurs représentations vectorielles.