pytorch 设置随机数种子
时间: 2023-11-18 16:03:26 浏览: 116
Pytorch在dataloader类中设置shuffle的随机数种子方式
在使用 PyTorch 进行深度学习模型训练时,为了保证每次训练的结果一致,需要设置随机数种子。可以通过设置随机数种子,在 GPU 或 CPU 上固定每一次的训练结果。在 PyTorch 中,可以通过以下代码设置随机数种子:
1. 定义一个可以设置随机种子的函数:
```
def setup_seed(seed):
torch.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
np.random.seed(seed)
random.seed(seed)
torch.backends.cudnn.deterministic = True
# 设置随机数种子
setup_seed(1234)
```
2. 在程序执行的开始处添加以下代码:
```
def seed_everything():
''' 设置整个开发环境的seed
:param seed:
:param device:
:return:
'''
import os
import random
import numpy as np
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)
# some cudnn methods can be random even after fixing the seed
# unless you tell it to be deterministic
torch.backends.cudnn.deterministic = True
```
以上两种方法都可以设置随机数种子,保证每次训练的结果一致。需要注意的是,如果使用了 GPU 进行训练,需要同时设置 CPU 和 GPU 的随机数种子。
阅读全文