Недетерминированное поведение для обучения нейронной сети на GPU, реализованное в PyTorch, и с фиксированным случайным начальным числом

Я наблюдал странное поведение конечной точности, когда я запускаю точно такой же эксперимент (тот же код для обучения нейронной сети для классификации изображений) с одним и тем же случайным семенем на разных графических процессорах (машинах). Я использую только один GPU. Точнее, когда я провожу эксперимент на одной машине_1, точность составляет 86,37. Когда я провожу эксперимент на machine_2, точность составляет 88,0. Когда я провожу эксперимент несколько раз на одной машине, вариативности нет. Версии PyTorch и CUDA одинаковы. Не могли бы вы помочь мне выяснить причину и исправить?

Machine_1: NVIDIA-SMI 440.82 Версия драйвера: 440.82 Версия CUDA: 10.2

Machine_2: NVIDIA-SMI 440.100 Версия драйвера: 440.100 Версия CUDA: 10.2

Чтобы исправить случайное семя, я использую следующий код:

random.seed(args.seed) os.environ[‘PYTHONHASHSEED’] = str(args.seed) np.random.seed(args.seed) torch.manual_seed(args.seed) torch.cuda.manual_seed(args.seed) torch.backends.cudnn.benchmark = False torch.backends.cudnn.deterministic = True

Отвечает ли это на ваш вопрос? Обучение моделей PyTorch на разных машинах приводит к разным результатам </ а>   —  person Evgeny Krivosheev    schedule 18.05.2021

Источник: ledsshop.ru

Стиль жизни - Здоровье!