Плотный

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

Плотно связанный слой нейронной сети.

Dense реализует операцию activation(matmul(input, weight) + bias) , где weight — это матрица весов, bias — вектор смещения, а activation — поэлементная функция активации.

Этот слой также поддерживает трехмерные весовые тензоры с двумерными матрицами смещения. В этом случае первое измерение обоих рассматривается как размер пакета, который соответствует первому измерению input , и используется пакетный вариант операции matmul(_:_:) , таким образом используя разные вес и смещение для каждого элемента. во входной партии.

  • Весовая матрица.

    Декларация

    public var weight: Tensor<Scalar>
  • Вектор смещения.

    Декларация

    public var bias: Tensor<Scalar>
  • Функция поэлементной активации.

    Декларация

    @noDerivative
    public let activation: Activation
  • Тип функции поэлементной активации.

    Декларация

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • Создает экземпляр на основе заданного веса, необязательного смещения и функции активации.

    Примечание

    в настоящее время weight является единственным параметром дифференцируемости. bias можно сделать параметром дифференцируемости после того, Optional условно соответствует Differentiable : TF-499.

    Декларация

    @differentiable(wrt: weight)
    public init(
      weight: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation
    )
  • Возвращает выходные данные, полученные в результате применения слоя к заданным входным данным.

    Декларация

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

    Параметры

    input

    Входные данные слоя.

    Возвращаемое значение

    Выход.

  • Создает Dense слой с указанным входным размером, выходным размером и функцией активации поэлементно. Матрица весов создается с помощью формы [inputSize, outputSize] , а вектор смещения создается с помощью формы [outputSize] .

    Декларация

    public init(
      inputSize: Int,
      outputSize: Int,
      activation: @escaping Activation = identity,
      useBias: Bool = true,
      weightInitializer: ParameterInitializer<Scalar> = glorotUniform(),
      biasInitializer: ParameterInitializer<Scalar> = zeros()
    )

    Параметры

    inputSize

    Размерность входного пространства.

    outputSize

    Размерность выходного пространства.

    activation

    Используемая функция активации. Значение по умолчанию —ident identity(_:) .

    weightInitializer

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

    biasInitializer

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