Conv2D

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

Lớp tích chập 2-D (ví dụ: tích chập không gian trên hình ảnh).

Lớp này tạo ra một bộ lọc tích chập được tích hợp với đầu vào của lớp để tạo ra một tensor đầu ra.

  • Bộ lọc tích chập 4-D.

    Tuyên ngôn

    public var filter: Tensor<Scalar>
  • Vectơ thiên vị.

    Tuyên ngôn

    public var bias: Tensor<Scalar>
  • Chức năng kích hoạt theo phần tử.

    Tuyên ngôn

    @noDerivative
    public let activation: Activation
  • Những bước tiến của cửa sổ trượt cho các kích thước không gian.

    Tuyên ngôn

    @noDerivative
    public let strides: (Int, Int)
  • Thuật toán đệm cho tích chập.

    Tuyên ngôn

    @noDerivative
    public let padding: Padding
  • Hệ số giãn nở cho kích thước không gian.

    Tuyên ngôn

    @noDerivative
    public let dilations: (Int, Int)
  • Loại hàm kích hoạt theo phần tử.

    Tuyên ngôn

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • Tạo lớp Conv2D với bộ lọc, độ lệch, chức năng kích hoạt, bước tiến, độ giãn và phần đệm được chỉ định.

    Tuyên ngôn

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

    Thông số

    filter

    Bộ lọc tích chập 4-D có hình dạng [chiều cao bộ lọc, chiều rộng bộ lọc, số kênh đầu vào, số lượng kênh đầu ra].

    bias

    Vectơ thiên vị của hình dạng [số kênh đầu ra].

    activation

    Chức năng kích hoạt theo phần tử.

    strides

    Các bước của cửa sổ trượt cho các kích thước không gian, tức là (chiều cao bước, chiều rộng bước).

    padding

    Thuật toán đệm cho tích chập.

    dilations

    Các hệ số giãn nở cho các kích thước không gian, tức là (chiều cao giãn nở, chiều rộng giãn nở).

  • Trả về kết quả thu được từ việc áp dụng lớp cho đầu vào đã cho.

    Kích thước không gian đầu ra được tính như sau:

    chiều cao đầu ra = (chiều cao đầu vào + 2 * chiều cao đệm - (chiều cao giãn nở * (chiều cao bộ lọc - 1) + 1)) / chiều cao sải chân + 1

    chiều rộng đầu ra = (chiều rộng đầu vào + 2 * chiều rộng đệm - (chiều rộng giãn nở * (chiều rộng bộ lọc - 1) + 1)) / chiều rộng sải chân + 1

    và kích thước phần đệm được xác định bởi sơ đồ phần đệm.

    Ghi chú

    Kích thước đệm bằng 0 khi sử dụng .valid .

    Tuyên ngôn

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

    Thông số

    input

    Đầu vào của lớp hình dạng [kích thước lô, chiều cao đầu vào, chiều rộng đầu vào, số lượng kênh đầu vào].

    Giá trị trả về

    Đầu ra của hình dạng [số lô, chiều cao đầu ra, chiều rộng đầu ra, số kênh đầu ra].

  • Tạo lớp Conv2D với hình dạng bộ lọc, bước tiến, phần đệm, độ giãn nở và chức năng kích hoạt theo phần tử được chỉ định.

    Tuyên ngôn

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

    Thông số

    filterShape

    Hình dạng của bộ lọc tích chập 4-D, biểu thị (chiều cao bộ lọc, chiều rộng bộ lọc, số kênh đầu vào, số lượng kênh đầu ra).

    strides

    Các bước của cửa sổ trượt cho các kích thước không gian, tức là (chiều cao bước, chiều rộng bước).

    padding

    Thuật toán đệm cho tích chập.

    dilations

    Các hệ số giãn nở cho các kích thước không gian, tức là (chiều cao giãn nở, chiều rộng giãn nở).

    activation

    Chức năng kích hoạt theo phần tử.

    filterInitializer

    Trình khởi tạo để sử dụng cho các tham số bộ lọc.

    biasInitializer

    Trình khởi tạo để sử dụng cho các tham số sai lệch.