Conv3D

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

เลเยอร์การบิดแบบ 3 มิติสำหรับการบิดแบบเชิงพื้นที่/เชิงพื้นที่-ชั่วคราวบนรูปภาพ

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

  • ตัวกรองการบิดแบบ 5-D

    คำประกาศ

    public var filter: Tensor<Scalar>
  • เวกเตอร์อคติ

    คำประกาศ

    public var bias: Tensor<Scalar>
  • ฟังก์ชั่นการเปิดใช้งานตามองค์ประกอบ

    คำประกาศ

    @noDerivative
    public let activation: Activation
  • ความก้าวหน้าของหน้าต่างบานเลื่อนเพื่อมิติเชิงพื้นที่

    คำประกาศ

    @noDerivative
    public let strides: (Int, Int, Int)
  • อัลกอริธึมการเติมสำหรับการบิด

    คำประกาศ

    @noDerivative
    public let padding: Padding
  • ปัจจัยการขยายสำหรับมิติเชิงพื้นที่/เชิงพื้นที่

    คำประกาศ

    @noDerivative
    public let dilations: (Int, Int, Int)
  • ประเภทฟังก์ชันการเปิดใช้งานตามองค์ประกอบ

    คำประกาศ

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • สร้างเลเยอร์ Conv3D โดยมีตัวกรอง อคติ ฟังก์ชันการเปิดใช้งาน การก้าวย่าง และระยะห่างจากขอบที่ระบุ

    คำประกาศ

    public init(
      filter: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation = identity,
      strides: (Int, Int, Int) = (1, 1, 1),
      padding: Padding = .valid,
      dilations: (Int, Int, Int) = (1, 1, 1)
    )

    พารามิเตอร์

    filter

    ตัวกรองแบบหมุนวน 5 มิติของรูปร่าง [ความลึกของตัวกรอง ความสูงของตัวกรอง ความกว้างของตัวกรอง จำนวนช่องอินพุต จำนวนช่องสัญญาณเอาต์พุต]

    bias

    เวกเตอร์อคติของรูปร่าง [จำนวนช่องสัญญาณออก]

    activation

    ฟังก์ชั่นการเปิดใช้งานตามองค์ประกอบ

    strides

    ก้าวของหน้าต่างบานเลื่อนสำหรับมิติเชิงพื้นที่ เช่น (ความลึกก้าว ความสูงก้าว ความกว้างก้าว)

    padding

    อัลกอริธึมการเติมสำหรับการบิด

    dilations

    ปัจจัยการขยายสำหรับมิติเชิงพื้นที่/เชิงพื้นที่-ชั่วคราว

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

    มิติเชิงพื้นที่เอาต์พุตคำนวณได้ดังนี้:

    ความลึกเอาต์พุต = (ความลึกอินพุต + 2 * ความลึกของการขยาย - (ความลึกของการขยาย * (ความลึกของตัวกรอง - 1) + 1)) / ความลึกก้าว + 1

    ความสูงเอาท์พุต = (ความสูงอินพุต + 2 * ความสูงของการเสริม - (ความสูงการขยาย * (ความสูงของตัวกรอง - 1) + 1)) / ความสูงก้าวย่าง + 1

    ความกว้างเอาต์พุต = (ความกว้างอินพุต + 2 * ความกว้างของช่องว่างภายใน - (ความกว้างของการขยาย * (ความกว้างของตัวกรอง - 1) + 1)) / ความกว้างก้าว + 1

    และขนาดการเสริมจะถูกกำหนดโดยโครงร่างการเสริม

    บันทึก

    ขนาดช่องว่างภายในเท่ากับศูนย์เมื่อใช้ .valid valid

    คำประกาศ

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

    พารามิเตอร์

    input

    การป้อนข้อมูลไปยังเลเยอร์ของรูปร่าง [จำนวนแบทช์ ความลึกอินพุต ความสูงอินพุต ความกว้างอินพุต จำนวนช่องอินพุต]

    ค่าส่งคืน

    ผลลัพธ์ของรูปร่าง [จำนวนแบทช์ ความลึกเอาต์พุต ความสูงของเอาต์พุต ความกว้างเอาต์พุต จำนวนช่องสัญญาณเอาต์พุต]

  • สร้างเลเยอร์ Conv3D ด้วยรูปร่างตัวกรอง การก้าวย่าง การเสริม การขยาย และฟังก์ชันการเปิดใช้งานตามองค์ประกอบที่ระบุ เทนเซอร์ตัวกรองถูกเตรียมใช้งานโดยใช้การกำหนดค่าเริ่มต้นแบบ Glorot ด้วยเมล็ดที่ระบุ เวกเตอร์อคติเริ่มต้นด้วยศูนย์

    คำประกาศ

    public init(
      filterShape: (Int, Int, Int, Int, Int),
      strides: (Int, Int, Int) = (1, 1, 1),
      padding: Padding = .valid,
      dilations: (Int, Int, Int) = (1, 1, 1),
      activation: @escaping Activation = identity,
      useBias: Bool = true,
      filterInitializer: ParameterInitializer<Scalar> = glorotUniform(),
      biasInitializer: ParameterInitializer<Scalar> = zeros()
    )

    พารามิเตอร์

    filterShape

    รูปร่างของตัวกรองแบบหมุนวน 5 มิติ ซึ่งเป็นตัวแทน (ความลึกของตัวกรอง ความสูงของตัวกรอง ความกว้างของตัวกรอง จำนวนช่องสัญญาณอินพุต จำนวนช่องสัญญาณเอาต์พุต)

    strides

    ก้าวของหน้าต่างบานเลื่อนสำหรับมิติเชิงพื้นที่ เช่น (ความลึกก้าว ความสูงก้าว ความกว้างก้าว)

    padding

    อัลกอริธึมการเติมสำหรับการบิด

    dilations

    ปัจจัยการขยายสำหรับมิติเชิงพื้นที่/เชิงพื้นที่-ชั่วคราว

    activation

    ฟังก์ชั่นการเปิดใช้งานตามองค์ประกอบ

    filterInitializer

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

    biasInitializer

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