BatchNorm

@frozen
public struct BatchNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint

เลเยอร์การทำให้เป็นมาตรฐานแบบแบตช์

ทำให้การเปิดใช้งานของเลเยอร์ก่อนหน้าเป็นมาตรฐานในแต่ละชุด เช่น ใช้การเปลี่ยนแปลงที่รักษาค่าเฉลี่ยการเปิดใช้งานไว้ใกล้กับ 0 และค่าเบี่ยงเบนมาตรฐานการเปิดใช้งานใกล้กับ 1

ข้อมูลอ้างอิง: การทำให้เป็นมาตรฐานแบบแบตช์: การเร่งการฝึกอบรมเครือข่ายเชิงลึกโดยการลดการเปลี่ยนแปลงโควาเรียตภายใน

  • มิติคุณลักษณะ

    คำประกาศ

    @noDerivative
    public let axis: Int
  • โมเมนตัมของค่าเฉลี่ยการวิ่งและความแปรปรวนของการวิ่ง

    คำประกาศ

    @noDerivative
    public let momentum: Scalar
  • ค่าออฟเซ็ตหรือที่เรียกว่าเบต้า

    คำประกาศ

    public var offset: Tensor<Scalar>
  • ค่าสเกลหรือที่เรียกว่าแกมมา

    คำประกาศ

    public var scale: Tensor<Scalar>
  • ค่าความแปรปรวนเอปไซลอน

    คำประกาศ

    @noDerivative
    public let epsilon: Scalar
  • ค่าเฉลี่ยการวิ่ง

    คำประกาศ

    @noDerivative
    public var runningMean: Parameter<Scalar>
  • ความแปรปรวนที่กำลังดำเนินอยู่

    คำประกาศ

    @noDerivative
    public var runningVariance: Parameter<Scalar>
  • สร้างเลเยอร์การทำให้เป็นมาตรฐานแบบแบตช์

    คำประกาศ

    public init(
      axis: Int,
      momentum: Scalar,
      offset: Tensor<Scalar>,
      scale: Tensor<Scalar>,
      epsilon: Scalar,
      runningMean: Tensor<Scalar>,
      runningVariance: Tensor<Scalar>
    )

    พารามิเตอร์

    axis

    แกนที่ไม่ควรทำให้เป็นมาตรฐาน (โดยทั่วไปคือแกนคุณลักษณะ)

    momentum

    โมเมนตัมสำหรับค่าเฉลี่ยเคลื่อนที่

    offset

    ออฟเซ็ตที่จะเพิ่มให้กับเทนเซอร์ที่ทำให้เป็นมาตรฐาน

    scale

    สเกลที่ใช้คูณเทนเซอร์ที่ทำให้เป็นมาตรฐานด้วย

    epsilon

    สเกลาร์ขนาดเล็กถูกเพิ่มเข้าไปในตัวส่วนเพื่อปรับปรุงความเสถียรของตัวเลข

    runningMean

    ค่าเฉลี่ยการวิ่ง

    runningVariance

    ความแปรปรวนที่กำลังดำเนินอยู่

  • ส่งกลับผลลัพธ์ที่ได้จากการใช้เลเยอร์กับอินพุตที่กำหนด

    คำประกาศ

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

    พารามิเตอร์

    input

    อินพุตไปยังเลเยอร์

    ค่าส่งคืน

    เอาท์พุท

  • สร้างเลเยอร์การทำให้เป็นมาตรฐานแบบแบตช์

    คำประกาศ

    public init(
      featureCount: Int,
      axis: Int = -1,
      momentum: Scalar = 0.99,
      epsilon: Scalar = 0.001
    )

    พารามิเตอร์

    featureCount

    จำนวนคุณสมบัติ

    axis

    แกนที่ควรทำให้เป็นมาตรฐาน (โดยทั่วไปคือแกนคุณลักษณะ)

    momentum

    โมเมนตัมสำหรับค่าเฉลี่ยเคลื่อนที่

    epsilon

    สเกลาร์ขนาดเล็กถูกเพิ่มเข้าไปในตัวส่วนเพื่อปรับปรุงความเสถียรของตัวเลข