টেনসর ভিজিটর প্ল্যান

public struct TensorVisitorPlan<Base>

TensorVisitorPlan আনুমানিক [WritableKeyPath<Base, Tensor<Float>] কিন্তু আরও দক্ষ। এটি জেনেরিক অপ্টিমাইজার লেখার জন্য উপযোগী যারা গ্রেডিয়েন্ট, বিদ্যমান ওজন এবং একটি সূচক যা অক্জিলিয়ারীভাবে সঞ্চিত ওজন খুঁজে বের করতে ব্যবহার করা যেতে পারে ম্যাপ করতে চায়। এটি কিছুটা বেশি কার্যকরী (~2x) তবে এটি আরও ভাল হতে পারে কারণ এটি O(depth_of_tree) কাজ না করার জন্য সামান্য উচ্চ ওভারহেড (অতিরিক্ত পয়েন্টার ডিরেফারেন্স) বন্ধ করে দেয় যা প্রতিটি পৃথক কীপথ ট্র্যাক করার জন্য একটি প্লেইন তালিকার সাথে প্রয়োজন।

  • পরিকল্পনাটিকে একটি একক [WritableKeyPath<Base, Tensor<Float>] হিসাবে সমতল করুন।

    ঘোষণা

    public var allTensorKeyPaths: [WritableKeyPath<Base, Tensor<Float>>] { get }
  • দক্ষতার সাথে সমস্ত টেনসর সংগ্রহ করুন।

    ঘোষণা

    public func allTensors(_ v: Base) -> [Tensor<Float>]
  • টাইপ Base দুটি মানের উপর দক্ষতার সাথে ম্যাপ করুন এবং একটি ম্যাপিং ফাংশন প্রয়োগ করুন। টেনসরের সংখ্যা প্রদান করে। প্ল্যান হিসাবে একই টেনসর গণনা সহ টেনসরগুলির একটি সহায়ক তালিকায় সূচীকরণের অনুমতি দেওয়ার জন্য অতিরিক্ত Int যুক্তি প্রদান করা হয়েছে।

    ঘোষণা

    @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
  • দুটি কীপ্যাথ উপসর্গ দ্বারা সংজ্ঞায়িত একটি পরিসরে সমস্ত কী সূচক খুঁজুন: [নিম্ন, উপরের)

    ঘোষণা

    public func allKeysBetween<T, U>(lower: WritableKeyPath<Base, T>, upper: WritableKeyPath<Base, U>)
      -> [Bool]
উপলব্ধ যেখানে `বেস`: `KeyPathIterable`
  • Base একটি নির্দিষ্ট উদাহরণে সমস্ত টেনসর দেখার একটি পরিকল্পনা তৈরি করে। এই পরিকল্পনাটি বেসের কাঠামোগতভাবে সমতুল্য সংস্করণে স্থানান্তরযোগ্য।

    ঘোষণা

    public init(_ obj: Base)