batch_size, steps_per epoch 및 유효성 검사 단계를 설정하는 방법


26

Keras를 사용하여 CNN을 배우기 시작했습니다. Theano 백엔드를 사용하고 있습니다.

값을 설정하는 방법을 이해하지 못합니다.

  • batch_size,
  • 에포크 당 단계,
  • validation_steps.

batch_size트레이닝 세트에 240,000 개의 샘플이 있고 테스트 세트에 80,000 개의 샘플이있는 경우 값 은 에포크 당 단계 및 검증 단계로 설정되어야합니까?


하드웨어 사양은 무엇입니까? 그것은 일반적으로 사람들이 배치 크기 32/64의 epoch를 10 ~ 15로 사용하고 위에서 epoch 당 단계를 계산할 수 있다는 것에 달려 있습니다.
Aditya

답변:


28
  • batch_size 는 각 미니 배치의 샘플 수를 결정합니다. 최대 값은 모든 샘플의 수이며, 그래디언트 디센트를 정확하게 만들고, 학습 속도가 충분히 작 으면 손실이 최소 수준으로 감소하지만 반복 속도는 느려집니다. 최소값은 1이며 확률 적 경사 하강을 초래합니다. 단, 단차 단계의 방향은 하나의 예에만 기반하므로 손실이 도약 할 수 있습니다. batch_size는 정확한 기울기 방향과 빠른 반복이라는 두 가지 극단 사이에서 조정할 수 있습니다. 또한 모델 + 데이터 세트가 사용 가능한 (GPU) 메모리에 맞지 않으면 batch_size의 최대 값이 제한 될 수 있습니다.
  • steps_per_epoch 훈련 에포크가 완료된 것으로 간주되기 전에 배치 반복 횟수입니다. 고정 된 크기의 트레이닝 세트가있는 경우이를 무시할 수 있지만 거대한 데이터 세트가 있거나 즉시 임의의 데이터 기능 보강을 생성하는 경우, 즉 트레이닝 세트의 크기가 무한대로 생성 된 경우 유용합니다 . 전체 교육 데이터 세트를 진행할 시간이있는 경우이 매개 변수를 건너 뛰는 것이 좋습니다.
  • validation_steps 는 steps_per_epoch와 유사하지만 교육 데이터 대신 유효성 검사 데이터 세트에 있습니다. 전체 유효성 검사 데이터 세트를 진행할 시간이 있으면이 매개 변수를 건너 뛰는 것이 좋습니다.

"이 매개 변수 건너 뛰기"는 무슨 뜻입니까? 매개 변수를 제거하면 얻을 수 When using data tensors as input to a model, you should specify the steps_per_epoch argument있습니다.
Nicolas Raoul

문서에 따르면, 방법 맞춤의 steps_per_epoch 매개 변수는 기본값을 가지므로 선택 사항이어야합니다. "기본 없음은 데이터 세트의 샘플 수를 배치 크기로 나눈 값과 같거나이를 결정할 수없는 경우 1입니다." 출처 : keras.io/models/model
Silpion

1

Github에 답이 있습니다

  1. model.fit_generator 입력 데이터 세트 생성기가 무한대로 실행되어야합니다.
  2. steps_per_epoch생성기 steps_per_epoch시간 을 호출하여 전체 데이터 세트를 한 번 생성하는 데 사용됩니다.
  3. 반면 epochs모델이 전체 데이터 세트에 대해 훈련 된 횟수를 제공하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.