Conv2D

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

2D 컨볼루션 레이어(예: 이미지에 대한 공간 컨볼루션)

이 레이어는 레이어 입력과 컨볼루션되어 출력 텐서를 생성하는 컨볼루션 필터를 생성합니다.

  • 4차원 컨벌루션 필터.

    선언

    public var filter: Tensor<Scalar>
  • 바이어스 벡터.

    선언

    public var bias: Tensor<Scalar>
  • 요소별 활성화 함수.

    선언

    @noDerivative
    public let activation: Activation
  • 공간적 차원을 위한 슬라이딩 윈도우의 발전.

    선언

    @noDerivative
    public let strides: (Int, Int)
  • 컨볼루션을 위한 패딩 알고리즘입니다.

    선언

    @noDerivative
    public let padding: Padding
  • 공간 차원의 확장 인자입니다.

    선언

    @noDerivative
    public let dilations: (Int, Int)
  • 요소별 활성화 함수 유형입니다.

    선언

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • 지정된 필터, 바이어스, 활성화 함수, 스트라이드, 팽창 및 패딩을 사용하여 Conv2D 레이어를 생성합니다.

    선언

    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)
    )

    매개변수

    filter

    [필터 높이, 필터 너비, 입력 채널 수, 출력 채널 수] 모양의 4D 컨벌루션 필터입니다.

    bias

    [출력 채널 수] 모양의 바이어스 벡터입니다.

    activation

    요소별 활성화 함수.

    strides

    공간 차원(보폭 높이, 보폭)에 대한 슬라이딩 창의 보폭입니다.

    padding

    컨볼루션을 위한 패딩 알고리즘입니다.

    dilations

    공간 차원에 대한 팽창 인자(팽창 높이, 팽창 폭).

  • 주어진 입력에 레이어를 적용하여 얻은 출력을 반환합니다.

    출력 공간 차원은 다음과 같이 계산됩니다.

    출력 높이 = (입력 높이 + 2 * 패딩 높이 - (팽창 높이 * (필터 높이 - 1) + 1)) / 보폭 높이 + 1

    출력 너비 = (입력 너비 + 2 * 패딩 너비 - (팽창 너비 * (필터 너비 - 1) + 1)) / 보폭 + 1

    패딩 크기는 패딩 방식에 따라 결정됩니다.

    메모

    .valid 사용할 때 패딩 크기는 0입니다.

    선언

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

    매개변수

    input

    [배치 크기, 입력 높이, 입력 너비, 입력 채널 수] 모양의 레이어에 대한 입력입니다.

    반환 값

    모양 [배치 수, 출력 높이, 출력 너비, 출력 채널 수]의 출력입니다.

  • 지정된 필터 모양, 보폭, 패딩, 확장 및 요소별 활성화 함수를 사용하여 Conv2D 레이어를 만듭니다.

    선언

    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()
    )

    매개변수

    filterShape

    (필터 높이, 필터 너비, 입력 채널 수, 출력 채널 수)를 나타내는 4차원 컨벌루션 필터의 모양입니다.

    strides

    공간 차원(보폭 높이, 보폭)에 대한 슬라이딩 창의 보폭입니다.

    padding

    컨볼루션을 위한 패딩 알고리즘입니다.

    dilations

    공간 차원에 대한 팽창 인자(팽창 높이, 팽창 폭).

    activation

    요소별 활성화 함수.

    filterInitializer

    필터 매개변수에 사용할 초기화 프로그램입니다.

    biasInitializer

    바이어스 매개변수에 사용할 초기화 프로그램입니다.