Penyematan

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

Lapisan penyematan.

Embedding secara efektif adalah tabel pencarian yang memetakan indeks dari kosakata tetap ke representasi vektor berukuran tetap (padat), misalnya [[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]]

  • Tabel pencarian yang dapat dipelajari yang memetakan indeks kosakata ke representasi vektor padatnya.

    Pernyataan

    public var embeddings: Tensor<Scalar>
  • Membuat lapisan Embedding dengan penyematan bentuk yang diinisialisasi secara acak (vocabularySize, embeddingSize) sehingga setiap indeks kosakata diberikan representasi vektor.

    Pernyataan

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

    Parameter

    vocabularySize

    Jumlah indeks (kata) yang berbeda dalam kosakata. Angka ini harus berupa indeks bilangan bulat terbesar ditambah satu.

    embeddingSize

    Jumlah entri dalam satu representasi vektor penyematan.

    embeddingsInitializer

    Penginisialisasi yang akan digunakan untuk parameter penyematan.

  • Membuat lapisan Embedding dari penyematan yang disediakan. Berguna untuk memperkenalkan penyematan yang telah dilatih sebelumnya ke dalam model.

    Pernyataan

    public init(embeddings: Tensor<Scalar>)

    Parameter

    embeddings

    Tabel penyematan yang telah dilatih sebelumnya.

  • Mengembalikan keluaran dengan mengganti setiap indeks pada masukan dengan representasi vektor padat yang sesuai.

    Pernyataan

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

    Nilai Pengembalian

    Tensor dibuat dengan mengganti indeks masukan dengan representasi vektornya.