Я наблюдал странное поведение конечной точности, когда я запускаю точно такой же эксперимент (тот же код для обучения нейронной сети для классификации изображений) с одним и тем же случайным семенем на разных графических процессорах (машинах). Я использую только один 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
Источник: