Densa

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

Uno strato di rete neurale densamente connesso.

Dense implementa l'operazione activation(matmul(input, weight) + bias) , dove weight è una matrice di peso, bias è un vettore di polarizzazione e activation è una funzione di attivazione per elemento.

Questo livello supporta anche tensori di peso 3D con matrici di polarizzazione 2D. In questo caso la prima dimensione di entrambi viene trattata come la dimensione batch allineata con la prima dimensione input e viene utilizzata la variante batch dell'operazione matmul(_:_:) , utilizzando quindi un peso e una distorsione diversi per ciascun elemento nel batch di input.

  • La matrice dei pesi.

    Dichiarazione

    public var weight: Tensor<Scalar>
  • Il vettore di polarizzazione.

    Dichiarazione

    public var bias: Tensor<Scalar>
  • La funzione di attivazione per elemento.

    Dichiarazione

    @noDerivative
    public let activation: Activation
  • Il tipo di funzione di attivazione per elemento.

    Dichiarazione

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • Crea un'istanza dal peso specificato, dal bias opzionale e dalla funzione di attivazione.

    Nota

    attualmente weight è l’unico parametro di differenziabilità. bias può essere reso un parametro di differenziabilità dopo che Optional si è conformato condizionatamente a Differentiable : TF-499.

    Dichiarazione

    @differentiable(wrt: weight)
    public init(
      weight: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation
    )
  • Restituisce l'output ottenuto dall'applicazione del livello all'input specificato.

    Dichiarazione

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

    Parametri

    input

    L'input al livello.

    Valore restituito

    L'uscita.

  • Crea un livello Dense con la dimensione di input, la dimensione di output e la funzione di attivazione per elemento specificate. La matrice dei pesi viene creata con forma [inputSize, outputSize] e il vettore bias viene creato con forma [outputSize] .

    Dichiarazione

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

    Parametri

    inputSize

    La dimensionalità dello spazio di input.

    outputSize

    La dimensionalità dello spazio di output.

    activation

    La funzione di attivazione da utilizzare. Il valore predefinito è identity(_:) .

    weightInitializer

    Inizializzatore da utilizzare per weight .

    biasInitializer

    Inizializzatore da utilizzare per bias .