Dense

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

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

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

Cette couche prend également en charge les tenseurs de poids 3D avec des matrices de polarisation 2D. Dans ce cas , la première dimension à la fois est traitée comme la taille du lot qui est aligné avec la première dimension de l' input et de la variante de lot du matmul(_:_:) opération est utilisée, en utilisant ainsi un poids différent et de polarisation pour chaque élément en 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.

    Noter

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

    Déclaration

    @differentiable(wrt: weight)
    public init(
      weight: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation
    )
  • Renvoie la sortie obtenue 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 de la couche.

    Valeur de retour

    Le résultat.

  • Crée une Dense couche de la taille d'entrée spécifiée, la taille de sortie, et la fonction d'activation par élément. La matrice de poids est créé avec la forme [inputSize, outputSize] et le vecteur de polarisation est créé avec la forme [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 l' identity(_:) .

    weightInitializer

    Initializer à utiliser pour le weight .

    biasInitializer

    Initializer à utiliser pour le bias .