Denso

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

Una capa de red neuronal densamente conectada.

Dense implementa la operación activation(matmul(input, weight) + bias) , donde weight es una matriz de peso, bias es un vector de sesgo y activation es una función de activación por elementos.

Esta capa también admite tensores de peso tridimensionales con matrices de polarización bidimensionales. En este caso, la primera dimensión de ambos se trata como el tamaño de lote que está alineado con la primera dimensión de input y se utiliza la variante de lote de la operación matmul(_:_:) , utilizando así un peso y un sesgo diferentes para cada elemento. en lote de entrada.

  • La matriz de peso.

    Declaración

    public var weight: Tensor<Scalar>
  • El vector de sesgo.

    Declaración

    public var bias: Tensor<Scalar>
  • La función de activación por elementos.

    Declaración

    @noDerivative
    public let activation: Activation
  • El tipo de función de activación por elementos.

    Declaración

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • Crea una instancia a partir del peso, el sesgo opcional y la función de activación dados.

    Nota

    Actualmente, weight es el único parámetro de diferenciabilidad. bias se puede convertir en un parámetro de diferenciabilidad después de que Optional se ajuste condicionalmente a Differentiable : TF-499.

    Declaración

    @differentiable(wrt: weight)
    public init(
      weight: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation
    )
  • Devuelve el resultado obtenido al aplicar la capa a la entrada dada.

    Declaración

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

    Parámetros

    input

    La entrada a la capa.

    Valor de retorno

    La salida.

  • Crea una capa Dense con el tamaño de entrada, el tamaño de salida y la función de activación de elementos especificados. La matriz de peso se crea con la forma [inputSize, outputSize] y el vector de sesgo se crea con la forma [outputSize] .

    Declaración

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

    Parámetros

    inputSize

    La dimensionalidad del espacio de entrada.

    outputSize

    La dimensionalidad del espacio de salida.

    activation

    La función de activación a utilizar. El valor predeterminado es identity(_:) .

    weightInitializer

    Inicializador que se utilizará para weight .

    biasInitializer

    Inicializador que se utilizará para bias .