Source code for espnet.utils.deterministic_utils

import logging
import os

import chainer
import torch


[docs]def set_deterministic_pytorch(args): """Ensures pytorch produces deterministic results depending on the program arguments :param Namespace args: The program arguments """ # seed setting torch.manual_seed(args.seed) # debug mode setting # 0 would be fastest, but 1 seems to be reasonable # considering reproducibility # remove type check torch.backends.cudnn.deterministic = True torch.backends.cudnn.benchmark = False # https://github.com/pytorch/pytorch/issues/6351 if args.debugmode < 2: chainer.config.type_check = False logging.info('torch type check is disabled') # use deterministic computation or not if args.debugmode < 1: torch.backends.cudnn.deterministic = False torch.backends.cudnn.benchmark = True logging.info('torch cudnn deterministic is disabled')
[docs]def set_deterministic_chainer(args): """Ensures chainer produces deterministic results depending on the program arguments :param Namespace args: The program arguments """ # seed setting (chainer seed may not need it) os.environ['CHAINER_SEED'] = str(args.seed) logging.info('chainer seed = ' + os.environ['CHAINER_SEED']) # debug mode setting # 0 would be fastest, but 1 seems to be reasonable # considering reproducibility # remove type check if args.debugmode < 2: chainer.config.type_check = False logging.info('chainer type check is disabled') # use deterministic computation or not if args.debugmode < 1: chainer.config.cudnn_deterministic = False logging.info('chainer cudnn deterministic is disabled') else: chainer.config.cudnn_deterministic = True