TensorPlan gościa

public struct TensorVisitorPlan<Base>

TensorVisitorPlan jest przybliżony [WritableKeyPath<Base, Tensor<Float>] ale jest bardziej wydajny. Jest to przydatne do pisania ogólnych optymalizatorów, które chcą odwzorować gradienty, istniejące wagi i indeks, którego można użyć do znalezienia pomocniczo przechowywanych wag. Jest to nieco bardziej wydajne (~2x), ale mogłoby być lepsze, ponieważ rezygnuje z nieco wyższych kosztów ogólnych (dodatkowe wyłuskiwanie wskaźnika) za brak konieczności wykonywania pracy O(głębia_drzewa), która jest wymagana w przypadku zwykłej listy do śledzenia każdej indywidualnej ścieżki klucza.

  • Spłaszcz plan jako pojedynczy [WritableKeyPath<Base, Tensor<Float>] .

    Deklaracja

    public var allTensorKeyPaths: [WritableKeyPath<Base, Tensor<Float>>] { get }
  • Efektywnie zbierz wszystkie tensory.

    Deklaracja

    public func allTensors(_ v: Base) -> [Tensor<Float>]
  • Efektywnie mapuj dwie wartości typu Base i zastosuj funkcję mapowania. Zwraca liczbę tensorów. Dodatkowy argument Int umożliwia indeksowanie do pomocniczej listy tensorów z tą samą liczbą tensorów co plan.

    Deklaracja

    @discardableResult
    public func mapTensors(
      _ v1: inout Base, _ v2: Base, _ fn: (inout Tensor<Float>, Tensor<Float>, Int) -> Void
    ) -> Int
  • Deklaracja

    func populateMask<Base>(_ mask: inout [Bool], _ kp: WritableKeyPath<Base, Tensor<Float>>)
  • Znajdź wszystkie klucze kończące się określoną ścieżką klucza.

    Deklaracja

    public func keysEnding<Base>(with kp: WritableKeyPath<Base, Tensor<Float>>) -> [Bool]
  • Deklaracja

    func findFirstIndex<TrueBase, T>(
      _ rootKeyPath: WritableKeyPath<TrueBase, Base>,
      _ prefix: WritableKeyPath<TrueBase, T>, _ i: inout Int
    ) -> Bool
  • Znajdź indeks pierwszej ścieżki klucza zaczynającej się od określonego przedrostka. Uwaga: wszystkie warstwy tablicowe obsługują indeksowanie od 1 do 1 końca.

    Deklaracja

    func firstIndex<T>(withPrefix prefix: WritableKeyPath<Base, T>) -> Int
  • Znajdź wszystkie indeksy kluczy w zakresie zdefiniowanym przez dwa przedrostki KeyPath: [dolny, górny)

    Deklaracja

    public func allKeysBetween<T, U>(lower: WritableKeyPath<Base, T>, upper: WritableKeyPath<Base, U>)
      -> [Bool]
Dostępne, gdzie `Base`: `KeyPathIterable`
  • Tworzy plan odwiedzenia wszystkich tensorów w określonej instancji Base . Ten plan można przenieść na strukturalnie równoważne wersje Base.

    Deklaracja

    public init(_ obj: Base)