Gęsty

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

Gęsto połączona warstwa sieci neuronowej.

Dense implementuje operację activation(matmul(input, weight) + bias) , gdzie weight jest macierzą wag, bias jest wektorem odchylenia, a activation jest funkcją aktywacji elementarną.

Warstwa ta obsługuje również trójwymiarowe tensory wag z dwuwymiarowymi macierzami odchylenia. W tym przypadku pierwszy wymiar obu jest traktowany jako rozmiar partii, który jest wyrównany z pierwszym wymiarem input i używany jest wariant operacji matmul(_:_:) wsadowy, w ten sposób stosując inną wagę i obciążenie dla każdego elementu w partii wejściowej.

  • Matryca wag.

    Deklaracja

    public var weight: Tensor<Scalar>
  • Wektor odchylenia.

    Deklaracja

    public var bias: Tensor<Scalar>
  • Elementowa funkcja aktywacji.

    Deklaracja

    @noDerivative
    public let activation: Activation
  • Elementowy typ funkcji aktywacji.

    Deklaracja

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • Tworzy instancję na podstawie podanej wagi, opcjonalnego odchylenia i funkcji aktywacji.

    Notatka

    obecnie jedynym parametrem różniczkującym jest weight . bias można uczynić parametrem różniczkowalności po Optional warunkowym spełnieniu Differentiable : TF-499.

    Deklaracja

    @differentiable(wrt: weight)
    public init(
      weight: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation
    )
  • Zwraca wynik uzyskany po zastosowaniu warstwy do podanych danych wejściowych.

    Deklaracja

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

    Parametry

    input

    Wejście do warstwy.

    Wartość zwracana

    Wyjście.

  • Tworzy warstwę Dense o określonym rozmiarze wejściowym, rozmiarze wyjściowym i funkcji aktywacji opartej na elementach. Macierz wag jest tworzona za pomocą kształtu [inputSize, outputSize] , a wektor odchylenia jest tworzony za pomocą kształtu [outputSize] .

    Deklaracja

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

    Parametry

    inputSize

    Wymiarowość przestrzeni wejściowej.

    outputSize

    Wymiarowość przestrzeni wyjściowej.

    activation

    Funkcja aktywacji, której należy użyć. Wartość domyślna to identity(_:) .

    weightInitializer

    Inicjator do użycia dla weight .

    biasInitializer

    Inicjator używany do bias .