@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)
Создает слой
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
.Параметры
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
Инициализатор, используемый для параметров смещения.