>백엔드 개발 >파이썬 튜토리얼 >내 Keras 모델이 1875개의 배치를 처리하고 있음에도 불구하고 훈련 중에 Fashion MNIST 데이터세트의 일부만 사용하는 것처럼 보이는 이유는 무엇입니까?

내 Keras 모델이 1875개의 배치를 처리하고 있음에도 불구하고 훈련 중에 Fashion MNIST 데이터세트의 일부만 사용하는 것처럼 보이는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-04 09:06:02842검색

Why does my Keras model seem to only use part of my Fashion MNIST dataset during training, even though it's processing 1875 batches?

Keras 학습 제한 사항: 부분 데이터 세트 사용 문제 해결

Keras를 사용하여 신경망 모델을 학습할 때는 전체 데이터 세트가 훈련 중에 활용됩니다. 그러나 경우에 따라 사용자는 데이터의 일부만 사용되는 문제에 직면할 수 있습니다. 이 기사에서는 Fashion MNIST 데이터세트에서 훈련된 모델이 사용 가능한 데이터의 일부만 사용하는 구체적인 사례를 탐구하여 포괄적인 설명과 솔루션을 제공합니다.

제공된 코드 스니펫은 다음과 같은 model.fit() 메소드를 활용합니다. 배치 크기 32를 포함하는 기본 매개변수입니다. 이는 각 반복 또는 에포크 동안 모델이 훈련 데이터 세트에서 32개의 샘플을 처리한다는 것을 의미합니다. 60,000개의 샘플로 구성된 Fashion MNIST 데이터세트의 경우 모델은 훈련을 완료하기 위해 전체 데이터세트를 여러 번 반복해야 합니다. 그러나 콘솔에 표시된 출력은 모델이 1875번의 반복에서 한 에포크를 완료하고 있음을 나타냅니다.

이러한 불일치는 model.fit() 메서드가 총 개수가 아닌 훈련 중에 처리된 배치 개수를 보고하기 때문에 발생합니다. 샘플. 따라서 이 경우 모델은 각각 32개의 샘플을 포함하는 1875개의 배치에 대해 학습하므로 총 1875 * 32 = 60,000개의 샘플이 생성됩니다. 이는 각 시대마다 "1875/1875"를 표시하는 오해의 소지가 있는 진행률 표시줄에도 불구하고 모델이 실제로 전체 데이터 세트를 훈련에 활용하고 있음을 의미합니다.

혼란을 피하고 훈련 프로세스의 진행 상황을 정확하게 추적하려면 에포크당 처리된 샘플 수를 계산하여 표시하는 것이 좋습니다. 이는 다음과 같이 진행 상황을 인쇄하도록 코드를 수정하여 달성할 수 있습니다.

<code class="python">for epoch in range(10):
    print(f"Current Epoch: {epoch + 1}")
    for batch_idx in range(1875):
        model.train_step((train_images[batch_idx * 32 : (batch_idx + 1) * 32],
                          train_labels[batch_idx * 32 : (batch_idx + 1) * 32]))
        print(f"Batch {batch_idx + 1} processed.")</code>

이 접근 방식을 사용하면 콘솔에 배치와 샘플 측면에서 진행 상황이 표시되므로 학습 프로세스를 명확하게 이해할 수 있습니다. 모델이 전체 데이터 세트를 의도한 대로 활용하고 있는지 확인합니다.

위 내용은 내 Keras 모델이 1875개의 배치를 처리하고 있음에도 불구하고 훈련 중에 Fashion MNIST 데이터세트의 일부만 사용하는 것처럼 보이는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.