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 pesos, bias es un vector de polarización, y activation es una función de activación elemento a elemento.

Esta capa también admite tensores de peso 3-D con matrices de polarización 2-D. En este caso la primera dimensión de ambos es entendido como el tamaño del lote que está alineado con la primera dimensión de input y la variante de lote del matmul(_:_:) operación se utiliza, por lo tanto con un peso y el sesgo diferente 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 dado, el sesgo opcional y la función de activación.

    Nota

    Actualmente, weight es el único parámetro diferenciabilidad. bias puede hacerse un parámetro diferenciabilidad después Optional ajusta condicionalmente a Differentiable : TF-499.

    Declaración

    @differentiable(wrt: weight)
    public init(
      weight: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation
    )
  • Devuelve la salida obtenida 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 devuelto

    La salida.

  • Crea un Dense capa con el tamaño especificado de entrada, el tamaño de salida, y la función de activación de elemento a elemento. La matriz de pesos se crea con forma [inputSize, outputSize] y el vector de sesgo se crea con 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 por defecto es identity(_:) .

    weightInitializer

    Inicializador a utilizar para weight .

    biasInitializer

    Inicializador a utilizar para bias .