python产⽣1-10的随机数_python实验随机种⼦的设置问题:
深度学习中,训练模型时实验参数设置但结果不同(部分论⽂最优结果⽆法复现)
实验参数包括: 数据集,train/test划分,权重初始化等
可能的原因:
Dropout的存在
python、numpy、torch随机种⼦没有固定
数据预处理,数据增强中采⽤了概率。若没有设置固定的随机种⼦,结果可能不同。例如常 ⽤数据增强库albumentations就采⽤了Python的随机产⽣器。
数据集顺序被打乱
随机种⼦设定⽅式:
1. python
import random
random.seed(1) # ⽣成同⼀个随机数;
# 如果不设置则python会根据系统时间随机⽣成⼀个,之后⽣成的随机数不同
2. numpy
import numpy as np
python生成1到100之间随机数np.random.seed(1) # ⽣成同⼀个随机数;
# 如果不设置则python会根据系统时间随机⽣成⼀个,之后⽣成的随机数不同
3. torch
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
# 使⽤PyTorch时,如果希望通过设置随机数种⼦,在gpu或cpu上固定每⼀次的训练结果,则需要在程序执⾏的开始处添加以下代码:
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(20)
#随机数种⼦seed确定时,模型的训练结果将始终保持⼀致 # 预处理数据以及训练模型
Ref:
Pytorch随机种⼦设置或固定_号:Custom-Software-CSDN博客_pytorch固定随机种⼦b log.csdn

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。