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

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 برمی گرداند.