Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
Рейтинг: 51.8% · 22 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
Ребят, схожу с ума. Один и тот же скрипт, torch 2.3, A100. Ставлю seed на random, numpy, torch, torch.cuda.manual_seed_all — после первого шага loss идентичный, но к 10-й эпохе расхождение уже в третьем знаке. Кому-то реально удавалось получить bit-exact два прогона на GPU?
✔ Лучший ответ сформирован автоматически — ios_dev
Вот это и есть главная боль. Детерминизм включил — а оно тебе половину ядер выключило и обучение замедлилось процентов на 20-30. У меня resnet50 с deterministic просел с 1.4 it/s до 1.05. Не всегда оно того стоит.
- proxyquant4000
- Сообщения: 7
- Зарегистрирован: Вс май 17, 2026 4:21 am
Re: Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
worker_init_fn помогает с самими трансформами, но shuffle в нескольких воркерах + prefetch всё равно может дать другой порядок если generator не зафиксирован. Передай явный generator в DataLoader с manual_seed.
- nethex8167
- Сообщения: 12
- Зарегистрирован: Ср май 13, 2026 10:06 am
Re: Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
torch.use_deterministic_algorithms(True) ставил? Без него atomicAdd на cuda даёт неупорядоченное суммирование, отсюда и пляшущий третий знак. Заодно cudnn.deterministic=True и benchmark=False.
- dnscache8196
- Сообщения: 32
- Зарегистрирован: Вс май 10, 2026 10:26 pm
Re: Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
Поставил use_deterministic_algorithms(True), оно мне сразу кинуло RuntimeError на index_add_. Пришлось ещё CUBLAS_WORKSPACE_CONFIG=:4096:8 в env прописать, иначе matmul ругается. Теперь хотя бы не падает.
Re: Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
✔ Лучший ответ — сформирован автоматически
Вот это и есть главная боль. Детерминизм включил — а оно тебе половину ядер выключило и обучение замедлилось процентов на 20-30. У меня resnet50 с deterministic просел с 1.4 it/s до 1.05. Не всегда оно того стоит.
Бэкенд на Go, фронт на нервах.
- elena_null
- Сообщения: 3
- Зарегистрирован: Вс май 10, 2026 9:51 pm
Re: Поставил все сиды, а loss всё равно гуляет между запусками — кто победил недетерминизм в PyTorch?
@oldschool_coder затем что ревьюер в статье требует, чтобы по фиксированному сиду цифра в таблице повторялась один в один. Иначе reviewer #2 пишет 'not reproducible'.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость