pytorch训练结果的复现设置随机种子

通过设置全局随机种子使得每次的训练结果相同可以复现

def seed_torch(seed=2018):

    random.seed(seed)
    os.environ['PYTHONHASHSEED'] = str(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    torch.backends.cudnn.deterministic = True
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
dataloader是PyTorch中用于加载数据的工具,它可以方便地对数据进行预处理、转换和加载。在使用dataloader加载数据时,我们可以通过设置随机种子来控制数据的洗牌(shuffle)过程。 为什么需要设置随机种子呢?在训练深度学习模型时,通常需要将数据集随机打乱来增加模型的泛化性能,减少模型对数据的依赖性。随机洗牌可以打破输入数据的顺序性,使模型更好地学习数据的特征和规律。但是,在同样的训练过程中,我们希望每次运行时的随机结果都是一致的,这样才能确保模型的可复现性,方便我们进行调试和比较实验结果。 因此,我们可以通过设置随机种子来控制dataloader加载数据时的洗牌过程。在使用dataloader加载数据时,可以通过设置参数shuffle=True来开启洗牌功能。同时,我们可以通过设置参数torch.manual_seed(seed)来设置随机种子的值。这样,每次运行时,dataloader在洗牌数据时都会使用相同的随机种子,从而保证了每次的洗牌结果都是一致的。 例如,我们可以使用以下代码来设置随机种子为10,并开启洗牌功能: torch.manual_seed(10) dataloader = DataLoader(dataset, shuffle=True) 这样,每次运行时,dataloader都会使用相同的随机种子10进行数据洗牌,从而保证了每次的洗牌结果都是一致的。这对于实验结果的比较和模型的可复现性非常重要。 总之,通过设置随机种子,我们可以在dataloader加载数据时控制洗牌过程,确保每次洗牌结果的一致性,从而提高模型的可复现性和实验的可比性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值