Fix: all workers must call model.evaluate() together

MultiWorkerMirroredStrategy에서 evaluate도 collective op을 수행하므로
모든 워커가 함께 호출해야 한다. Worker 0만 호출하면 나머지 워커가
종료되어 heartbeat timeout 발생.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Cloud User 2026-03-03 15:17:34 +09:00
parent 1c915cab65
commit a80f3bd97e
1 changed files with 6 additions and 2 deletions

View File

@ -253,9 +253,13 @@ data:
verbose=verbose,
)
# 평가 (worker 0만 출력)
# 평가 (모든 워커가 참여해야 함 - MultiWorkerMirroredStrategy 요구사항)
eval_verbose = 2 if worker_index == 0 else 0
loss, accuracy = model.evaluate(
test_dataset, verbose=eval_verbose
)
if worker_index == 0:
loss, accuracy = model.evaluate(test_dataset, verbose=2)
print(f"\n===== Final Results =====")
print(f"Test Loss: {loss:.4f}")
print(f"Test Accuracy: {accuracy:.4f}")