Dense

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

Une couche de réseau neuronal densément connectée.

Dense implémente l'opération activation(matmul(input, weight) + bias) , où weight est une matrice de poids, bias est un vecteur de biais et activation est une fonction d'activation par élément.

Cette couche prend également en charge les tenseurs de poids 3D avec des matrices de biais 2D. Dans ce cas, la première dimension des deux est traitée comme la taille du lot qui est alignée avec la première dimension d' input et la variante par lots de l'opération matmul(_:_:) est utilisée, utilisant ainsi un poids et un biais différents pour chaque élément. dans le lot d'entrée.

  • La matrice de poids.

    Déclaration

    public var weight: Tensor<Scalar>
  • Le vecteur de biais.

    Déclaration

    public var bias: Tensor<Scalar>
  • La fonction d'activation par élément.

    Déclaration

    @noDerivative
    public let activation: Activation
  • Le type de fonction d’activation par élément.

    Déclaration

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • Crée une instance à partir du poids donné, du biais facultatif et de la fonction d'activation.

    Note

    actuellement, weight est le seul paramètre de différentiabilité. bias peut devenir un paramètre de différentiabilité après que Optional soit conditionnellement conforme à Differentiable : TF-499.

    Déclaration

    @differentiable(wrt: weight)
    public init(
      weight: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation
    )
  • Renvoie le résultat obtenu en appliquant le calque à l’entrée donnée.

    Déclaration

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

    Paramètres

    input

    L'entrée dans le calque.

    Valeur de retour

    La sortie.

  • Crée une couche Dense avec la taille d'entrée, la taille de sortie et la fonction d'activation par élément spécifiées. La matrice de poids est créée avec shape [inputSize, outputSize] et le vecteur de biais est créé avec shape [outputSize] .

    Déclaration

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

    Paramètres

    inputSize

    La dimensionnalité de l'espace d'entrée.

    outputSize

    La dimensionnalité de l'espace de sortie.

    activation

    La fonction d'activation à utiliser. La valeur par défaut est identity(_:) .

    weightInitializer

    Initialiseur à utiliser pour weight .

    biasInitializer

    Initialiseur à utiliser pour bias .