การฝัง

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

    Initializer ที่จะใช้สำหรับการฝังพารามิเตอร์

  • สร้างเลเยอร์ Embedding จากการฝังที่ให้มา มีประโยชน์สำหรับการแนะนำการฝังที่ฝึกไว้ล่วงหน้าในโมเดล

    คำประกาศ

    public init(embeddings: Tensor<Scalar>)

    พารามิเตอร์

    embeddings

    ตารางการฝังที่เตรียมไว้ล่วงหน้า

  • ส่งกลับเอาต์พุตโดยการแทนที่แต่ละดัชนีในอินพุตด้วยการแสดงเวกเตอร์หนาแน่นที่สอดคล้องกัน

    คำประกาศ

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

    ค่าส่งคืน

    เทนเซอร์ที่สร้างขึ้นโดยการแทนที่ดัชนีอินพุตด้วยการแสดงเวกเตอร์