Конв2D

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

Двумерный слой свертки (например, пространственная свертка изображений).

Этот слой создает фильтр свертки, который свертывается с входными данными слоя для создания тензора выходных данных.

  • 4-D сверточный фильтр.

    Декларация

    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

    Четырехмерный сверточный фильтр формы [высота фильтра, ширина фильтра, количество входных каналов, количество выходных каналов].

    bias

    Вектор смещения формы [количество выходных каналов].

    activation

    Поэлементная функция активации.

    strides

    Шаги скользящего окна для пространственных измерений, т.е. (высота шага, ширина шага).

    padding

    Алгоритм заполнения для свертки.

    dilations

    Коэффициенты расширения для пространственных размеров, т.е. (высота расширения, ширина расширения).

  • Возвращает выходные данные, полученные в результате применения слоя к заданным входным данным.

    Выходные пространственные размеры вычисляются как:

    высота вывода = (высота ввода + 2 * высота заполнения — (высота расширения * (высота фильтра — 1) + 1)) / высота шага + 1

    выходная ширина = (входная ширина + 2 * ширина заполнения - (ширина расширения * (ширина фильтра - 1) + 1)) / ширина шага + 1

    и размеры заполнения определяются схемой заполнения.

    Примечание

    Размер заполнения равен нулю при использовании .valid .

    Декларация

    @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

    Форма четырехмерного сверточного фильтра, представляющая (высоту фильтра, ширину фильтра, количество входных каналов, количество выходных каналов).

    strides

    Шаги скользящего окна для пространственных измерений, т.е. (высота шага, ширина шага).

    padding

    Алгоритм заполнения для свертки.

    dilations

    Коэффициенты расширения для пространственных размеров, т.е. (высота расширения, ширина расширения).

    activation

    Поэлементная функция активации.

    filterInitializer

    Инициализатор, используемый для параметров фильтра.

    biasInitializer

    Инициализатор, используемый для параметров смещения.