
在写代码中通常需要设定seat来确保结果的可复现性代码举例import random # 生成随机整数 print(第一次随机生成) print(random.randint(1,100)) print(random.randint(1,100)) # 生成随机整数 print(第二次随机生成) print(random.randint(1,100)) print(random.randint(1,100)) # 设置随机数生成器种子 random.seed(11) # 生成随机整数 print(第一次设定种子后随机生成) print(random.randint(1,100)) print(random.randint(1,100)) # 重置随机数生成器种子 random.seed(11) # 生成随机整数 print(第二次设定种子后随机生成) print(random.randint(1,100)) print(random.randint(1,100))结果结果如下前两次随机生成的序列不同后两次设定种子后随机生成的序列相同第一次随机生成 93 90 第二次随机生成 12 40 第一次设定种子后随机生成 58 72 第二次设定种子后随机生成 58 72训练中设置seed一般训练会用到多个库包含有关random的内容。在pytorch构建的网络中一般都是使用下面三个库来获得随机数我们需要对三个库都设置随机种子1、torch库2、numpy 库3、random库。#---------------------------------------------------# # 设置种子 #---------------------------------------------------# def seed_everything(seed11): random.seed(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