PyTorch固定随机数种子

本文详细介绍了在PyTorch中如何固定随机种子以确保实验结果的可复现性,包括训练和测试过程中的注意事项,以及代码实现方法。

转载请注明作者和出处: http://blog.csdn.net/john_bh/


在神经网络中,参数默认是进行随机初始化的。不同的初始化参数往往会导致不同的结果。当得到比较好的结果时我们通常希望这个结果是可以复现的,在PyTorch中,通过设置全局随机数种子可以实现这个目的。本文总结了PyTorch中固定随机种子的方法。

1. 训练过程

在训练过程中,若相同的数据数据集,相同的训练集、测试集划分方式,相同的权重初始化,但是每次训练结果不同,可能有以下几个原因:

  • Dropout的存在 ;
  • PyTorch、Python、Numpy中的随机种子没有固定;
  • 数据预处理、增强方式采用了概率,若没有设置固定的随机种子,结果可能不同。例如常用数据增强库albumentations就采用了Python的随机产生器
  • 训练数据集被随机打乱了顺序;
  • 向上采样和插值函数/类的向后是不确定的(PyTorch的问题)

举个例子:

import numpy as np

def  no_set_seed():
    n = 0
    while (n < 3):
        n += 1
        print(np.random.random())

def set_seed():
    n = 0
    while (n < 3):
        np.random.seed(5)
        n += 1
        print(np.random.random(
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值