Batch_size, steps_per dönemi ve doğrulama adımları nasıl ayarlanır?


26

Keras kullanarak CNN'leri öğrenmeye başlıyorum. Theano arka ucunu kullanıyorum.

Değerleri nasıl ayarlayacağımı anlamıyorum:

  • Parti boyutu,
  • dönem başına adımlar,
  • validation_steps.

batch_sizeEğitim setinde 240.000 örnek ve test setinde 80.000 varsa , değere , döneme göre atılan adımlara ve doğrulama basamaklarına ne olmalıdır ?


Donanım özellikleriniz nedir? Bu, genellikle insanların 32/64 parti büyüklüğünü, 10 ~ 15 gibi devir sayılarını kullandıklarına ve daha sonra her bir devir başına basamakları yukarıdan hesaplayabilirsiniz ..
Aditya

Yanıtlar:


28
  • batch_size , her mini partideki örnek sayısını belirler. Maksimum, gradyan inişini doğru yapan tüm örneklerin sayısıdır, öğrenme oranı yeterince küçükse kayıp minimum seviyeye düşer, ancak yinelemeler yavaştır. Minimum değeri 1'dir, stokastik gradyan inişine neden olur: Hızlıdır, ancak gradyan adımının yönü yalnızca bir örneğe dayanırsa, kayıp etrafta sıçrayabilir. batch_size, iki uç nokta arasında ayarlamaya izin verir: doğru eğim yönü ve hızlı yineleme. Ayrıca, model + veri kümeniz mevcut (GPU) belleğe sığmıyorsa, batch_size için maksimum değer sınırlı olabilir.
  • steps_per_epoch Bir eğitim dönemi bitmiş sayılmadan önce parti yinelemelerinin sayısı. Sabit boyutta bir antrenman setiniz varsa, bunu göz ardı edebilirsiniz, ancak eğer büyük bir veri setiniz varsa veya sinek üzerinde rastgele veri artışları oluşturuyorsanız, yani antrenman setinizin (oluşturulan) sonsuz bir büyüklüğü varsa, faydalı olabilir. Tüm egzersiz verilerinizi gözden geçirmek için zamanınız varsa, bu parametreyi atlamanızı tavsiye ederim.
  • validation_steps steps_per_epoch ile benzer ancak antrenman verileri yerine ayarlanan validasyon verileri üzerinde. Doğrulama veri setinizin tamamını geçecek vaktiniz varsa bu parametreyi atlamanızı öneririm.

"Bu parametreyi atlayarak" ile ne demek istiyorsun? Parametreyi kaldırdığımda alıyorum When using data tensors as input to a model, you should specify the steps_per_epoch argument.
Nicolas Raoul

Belgelere göre, uygun yöntemin steps_per_epoch parametresi bir varsayılan değere sahiptir ve bu nedenle isteğe bağlı olmalıdır: "varsayılan Yok, veri kümenizdeki küme boyutuna bölünen örneklerin sayısına veya belirlenemiyorsa 1'e eşittir." Kaynak: keras.io/models/model
Silpion

1

Github'da bir cevap var

  1. model.fit_generator Giriş veri kümesi jeneratörünün sonsuz çalışmasını gerektirir.
  2. steps_per_epochJeneratör steps_per_epochzamanlarını çağırarak tüm veri setini bir kez üretmek için kullanılır
  3. oysa epochsmodeli tüm veri kümesi üzerinde eğitilmiştir sayısını verir.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.