دوره های آموزشی غیریکنواخت

public final class NonuniformTrainingEpochs<
  Samples: Collection,
  Entropy: RandomNumberGenerator
>: Sequence, IteratorProtocol

توالی بی‌نهایت مجموعه‌ای از دسته‌های نمونه مناسب برای آموزش یک DNN زمانی که نمونه‌ها اندازه یکسانی ندارند.

دسته ها در هر دوره:

  • همه دقیقاً تعداد نمونه یکسانی دارند.
  • از نمونه هایی با اندازه مشابه تشکیل شده اند.
  • با دسته ای شروع کنید که حداکثر اندازه نمونه آن حداکثر اندازه تمام نمونه های استفاده شده در آن دوره است.
  • نمونه ای ایجاد می کند که نمونه ها را از samples به دسته هایی با اندازه batchSize می کشد.

    اعلامیه

    public init(
      samples: Samples,
      batchSize: Int,
      entropy: Entropy,
      batchesPerSort: Int? = nil,
      areInAscendingSizeOrder:
        @escaping (Samples.Element, Samples.Element) -> Bool
    )

    پارامترها

    entropy

    یک منبع تصادفی که برای به هم زدن ترتیب نمونه استفاده می شود. در self ذخیره می شود، بنابراین اگر فقط شبه تصادفی باشد و معنایی ارزشی داشته باشد، توالی دوره ها تعیین کننده است و به عملیات دیگر وابسته نیست.

    batchesPerSort

    تعداد دسته‌هایی که در آنها اندازه‌های نمونه به طور مشابه گروه‌بندی می‌شود، یا nil برای نشان دادن اینکه پیاده‌سازی باید یک عدد را انتخاب کند. انتخاب بیش از حد بالا می تواند تأثیرات مخلوط کردن نمونه را در بسیاری از طرح های آموزشی از بین ببرد و منجر به نتایج ضعیف شود. انتخاب خیلی کم، شباهت اندازه ها را در یک دسته معین کاهش می دهد و منجر به ناکارآمدی می شود.

    areInAscendingSizeOrder

    گزاره ای که اگر اندازه پارامتر اول کمتر از پارامتر دوم باشد true برمی گرداند.

  • نوع هر دوره، مجموعه ای از نمونه ها.

    اعلامیه

    public typealias Element = Slices<
      Sampling<Samples, Array<Samples.Index>.SubSequence>
    >
  • دوره بعدی را به ترتیب برمی گرداند.

    اعلامیه

    public func next() -> Element?
در جایی که «Entropy» == «SystemRandomNumberGenerator» موجود است
  • نمونه ای ایجاد می کند که نمونه ها را از samples به دسته هایی با اندازه batchSize می کشد.

    اعلامیه

    public convenience init(
      samples: Samples,
      batchSize: Int,
      batchesPerSort: Int? = nil,
      areInAscendingSizeOrder:
        @escaping (Samples.Element, Samples.Element) -> Bool
    )

    پارامترها

    batchesPerSort

    تعداد دسته‌هایی که در آنها اندازه‌های نمونه به طور مشابه گروه‌بندی می‌شود، یا nil برای نشان دادن اینکه پیاده‌سازی باید یک عدد را انتخاب کند. انتخاب بیش از حد بالا می تواند تأثیرات مخلوط کردن نمونه را در بسیاری از طرح های آموزشی از بین ببرد و منجر به نتایج ضعیف شود. انتخاب خیلی کم، شباهت اندازه ها را در یک دسته معین کاهش می دهد و منجر به ناکارآمدی می شود.

    areInAscendingSizeOrder

    گزاره ای که اگر اندازه پارامتر اول کمتر از پارامتر دوم باشد true برمی گرداند.