Jak ustawić rozmiar partii, kroki epoki i kroki sprawdzania poprawności


26

Zaczynam uczyć się CNN za pomocą Keras. Korzystam z backendu theano.

Nie rozumiem, jak ustawić wartości na:

  • batch_size,
  • kroki na epokę,
  • validation_steps.

Jaka powinna być wartość batch_size, liczba kroków na epokę i kroki sprawdzania poprawności, jeśli mam 240 000 próbek w zestawie szkoleniowym i 80 000 w zestawie testowym?


Jakie są twoje specyfikacje sprzętowe? Zależy to od tego, że generalnie ludzie używają wielkości partii 32/64, epoki jako 10 ~ 15, a następnie można obliczyć kroki dla każdej epoki z powyższego ..
Aditya

Odpowiedzi:


28
  • batch_size określa liczbę próbek w każdej mini partii. Jego maksimum to liczba wszystkich próbek, co sprawia, że ​​opadanie gradientu jest dokładne, utrata zmniejsza się do minimum, jeśli szybkość uczenia się jest wystarczająco mała, ale iteracje są wolniejsze. Jego minimum wynosi 1, co powoduje stochastyczne opadanie gradientu: Szybko, ale kierunek kroku gradientu jest oparty tylko na jednym przykładzie, strata może przeskakiwać. batch_size pozwala na dopasowanie pomiędzy dwoma skrajnościami: dokładnym kierunkiem gradientu i szybką iteracją. Ponadto maksymalna wartość parametru batch_size może być ograniczona, jeśli model + zestaw danych nie pasuje do dostępnej pamięci (GPU).
  • steps_per_epoch liczba iteracji wsadowych przed epoką szkolenia jest uważana za zakończoną. Jeśli masz zestaw treningowy o ustalonym rozmiarze, możesz go zignorować, ale może być przydatny, jeśli masz ogromny zestaw danych lub generujesz losowe rozszerzenia danych w locie, tj. Jeśli Twój zestaw treningowy ma (wygenerowany) nieskończony rozmiar. Jeśli masz czas na przejrzenie całego zestawu danych treningowych, zalecamy pominięcie tego parametru.
  • validation_steps podobne do steps_per_epoch, ale w zestawie danych walidacyjnych zamiast w danych szkoleniowych. Jeśli masz czas na przejrzenie całego zestawu danych sprawdzania poprawności, zalecamy pominięcie tego parametru.

Co rozumiesz przez „pomijanie tego parametru”? Po usunięciu parametru otrzymuję When using data tensors as input to a model, you should specify the steps_per_epoch argument.
Nicolas Raoul,

Zgodnie z dokumentacją parametr steps_per_epoch metody fit ma wartość domyślną, a zatem powinna być opcjonalna: „wartość domyślna None jest równa liczbie próbek w zestawie danych podzielonej przez wielkość partii lub 1, jeśli nie można tego ustalić”. Źródło: keras.io/models/model
Silpion,

1

w Github jest odpowiedź

  1. model.fit_generator wymaga, aby generator danych wejściowych działał nieskończenie długo.
  2. steps_per_epochsłuży do generowania całego zestawu danych raz wywołując generatora steps_per_epochrazy
  3. mając na uwadze, epochsile razy model jest szkolony w całym zestawie danych.
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.