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:
parent
1c915cab65
commit
a80f3bd97e
|
|
@ -253,9 +253,13 @@ data:
|
||||||
verbose=verbose,
|
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:
|
if worker_index == 0:
|
||||||
loss, accuracy = model.evaluate(test_dataset, verbose=2)
|
|
||||||
print(f"\n===== Final Results =====")
|
print(f"\n===== Final Results =====")
|
||||||
print(f"Test Loss: {loss:.4f}")
|
print(f"Test Loss: {loss:.4f}")
|
||||||
print(f"Test Accuracy: {accuracy:.4f}")
|
print(f"Test Accuracy: {accuracy:.4f}")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue