通过设置全局随机种子,使得每次的训练结果相同可以复现
PyTorch
def seed_torch(seed=42):
seed = int(seed)
random.seed(seed)
os.environ[‘PYTHONHASHSEED’] = str(seed)
np.random.seed(seed)
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
Tensorflow
def seed_tensorflow(seed=42):
random.seed(seed)
os.environ[‘PYTHONHASHSEED’] = str(seed)
np.random.seed(seed)
tf.set_random_seed(seed)