TensorVisitorPlan

public struct TensorVisitorPlan<Base>

TensorVisitorPlan מקרוב את [WritableKeyPath<Base, Tensor<Float>] אבל הוא יעיל יותר. זה שימושי לכתיבת מטובי אופטימיזציה גנריים שרוצים למפות את ההדרגות, את המשקלים הקיימים ואינדקס שניתן להשתמש בו כדי למצוא משקלים מאוחסנים בעזרה. זה מעט יותר יעיל (~2x) אבל זה יכול להיות טוב יותר מכיוון שהוא מחליף תקורה מעט יותר גבוהה (הפניית מצביע נוספת) על כך שלא צריך לעשות עבודת O(depth_of_tree) שנדרשת עם רשימה פשוטה כדי לעקוב אחר כל KeyPath בנפרד.

  • חלקו את התוכנית כיחידה [WritableKeyPath<Base, Tensor<Float>] .

    הַצהָרָה

    public var allTensorKeyPaths: [WritableKeyPath<Base, Tensor<Float>>] { get }
  • אסוף ביעילות את כל הטנזורים.

    הַצהָרָה

    public func allTensors(_ v: Base) -> [Tensor<Float>]
  • מיפוי יעיל של שני ערכים מסוג Base והחל פונקציית מיפוי. מחזירה את מספר הטנזורים. הארגומנט הנוסף Int מסופק כדי לאפשר אינדקס לרשימת עזר של Tensor עם אותה ספירת Tensor כמו התוכנית.

    הַצהָרָה

    @discardableResult
    public func mapTensors(
      _ v1: inout Base, _ v2: Base, _ fn: (inout Tensor<Float>, Tensor<Float>, Int) -> Void
    ) -> Int
  • הַצהָרָה

    func populateMask<Base>(_ mask: inout [Bool], _ kp: WritableKeyPath<Base, Tensor<Float>>)
  • מצא את כל המפתחות המסתיימים בנתיב מפתח מסוים.

    הַצהָרָה

    public func keysEnding<Base>(with kp: WritableKeyPath<Base, Tensor<Float>>) -> [Bool]
  • הַצהָרָה

    func findFirstIndex<TrueBase, T>(
      _ rootKeyPath: WritableKeyPath<TrueBase, Base>,
      _ prefix: WritableKeyPath<TrueBase, T>, _ i: inout Int
    ) -> Bool
  • מצא את האינדקס של נתיב המפתח הראשון שמתחיל בקידומת מסוימת. הערה: כל שכבות המערך תומכות באינדקס 1 מעבר לקצה.

    הַצהָרָה

    func firstIndex<T>(withPrefix prefix: WritableKeyPath<Base, T>) -> Int
  • מצא את כל מדדי המפתחות בטווח המוגדר על ידי שתי קידומות KeyPath: [תחתון, עליון)

    הַצהָרָה

    public func allKeysBetween<T, U>(lower: WritableKeyPath<Base, T>, upper: WritableKeyPath<Base, U>)
      -> [Bool]
זמין כאשר `Base`: `KeyPathIterable`
  • יוצר תוכנית לבקר את כל הטנזורים במופע מסוים של Base . תוכנית זו ניתנת להעברה לגרסאות מקבילות מבחינה מבנית של Base.

    הַצהָרָה

    public init(_ obj: Base)