public protocol Layer : Module where Self.Input : Differentiable
Слой нейронной сети.
Типы, соответствующие Layer
, представляют функции, которые сопоставляют входные данные с выходными. Они могут иметь внутреннее состояние, представленное параметрами, такими как тензоры веса.
Экземпляры Layer
определяют дифференцируемый метод callAsFunction(_:)
для сопоставления входных данных с выходными.
Возвращает выходные данные, полученные в результате применения слоя к заданным входным данным.
Декларация
@differentiable func callAsFunction(_ input: Input) -> Output
Параметры
input
Входные данные слоя.
Возвращаемое значение
Вывод.
Реализация по умолчанию
Декларация
@differentiable func forward(_ input: Input) -> Output
Возвращает выходные данные вывода, полученные в результате применения слоя к заданным входным данным.
Декларация
public func inferring(from input: Input) -> Output
Параметры
input
Входные данные слоя.
Возвращаемое значение
Вывод вывода.
Декларация
public typealias Backpropagator = (_ direction: Output.TangentVector) -> (layerGradient: TangentVector, inputGradient: Input.TangentVector)
Возвращает выходные данные вывода и функцию обратного распространения ошибки, полученную в результате применения слоя к заданным входным данным.
Декларация
public func appliedForBackpropagation(to input: Input) -> (output: Output, backpropagator: Backpropagator)
Параметры
input
Входные данные слоя.
Возвращаемое значение
Кортеж, содержащий выходные данные и функцию обратного распространения ошибки. Функция обратного распространения ошибки (она же обратное распространение ошибки) принимает вектор направления и возвращает градиенты на слое и на входе соответственно.
Реализация по умолчанию
Декларация
@differentiable(wrt: self) @differentiable public func callAsFunction(_ input: Input) -> Output