Встраивание

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

Слой внедрения.

Embedding фактически представляет собой таблицу поиска, которая отображает индексы из фиксированного словаря в векторные представления фиксированного размера (плотные), например [[0], [3]] -> [[0.25, 0.1], [0.6, -0.2]]

  • Обучаемая таблица поиска, которая сопоставляет словарные индексы с их плотными векторными представлениями.

    Декларация

    public var embeddings: Tensor<Scalar>
  • Создает слой Embedding со случайно инициализированными внедрениями формы (vocabularySize, embeddingSize) так что каждому индексу словаря присваивается векторное представление.

    Декларация

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

    Параметры

    vocabularySize

    Количество различных индексов (слов) в словаре. Это число должно быть наибольшим целочисленным индексом плюс один.

    embeddingSize

    Количество записей в одном векторном представлении внедрения.

    embeddingsInitializer

    Инициализатор, используемый для параметров внедрения.

  • Создает слой Embedding из предоставленных внедрений. Полезно для введения в модель предварительно обученных внедрений.

    Декларация

    public init(embeddings: Tensor<Scalar>)

    Параметры

    embeddings

    Предварительно обученная таблица вложений.

  • Возвращает выходные данные, заменяя каждый индекс во входных данных соответствующим плотным векторным представлением.

    Декларация

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

    Возвращаемое значение

    Тензор, созданный путем замены входных индексов их векторными представлениями.