python怎么设置随机数种子_python实验随机种子的设置
問題:
深度學習中,訓練模型時實驗參數設置但結果不同(部分論文最優結果無法復現)
實驗參數包括: 數據集,train/test劃分,權重初始化等
可能的原因:Dropout的存在
python、numpy、torch隨機種子沒有固定
數據預處理,數據增強中采用了概率。若沒有設置固定的隨機種子,結果可能不同。例如常 用數據增強庫albumentations就采用了Python的隨機產生器。
數據集順序被打亂
隨機種子設定方式:pythonimport random
random.seed(1) # 生成同一個隨機數;
# 如果不設置則python會根據系統時間隨機生成一個,之后生成的隨機數不同
2. numpyimport numpy as np
np.random.seed(1) # 生成同一個隨機數;
# 如果不設置則python會根據系統時間隨機生成一個,之后生成的隨機數不同
3. torchtorch.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固定隨機種子?blog.csdn.net
總結
以上是生活随笔為你收集整理的python怎么设置随机数种子_python实验随机种子的设置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: robo3T-操作MongoDB数据库常
- 下一篇: uniapp ios端云打包失败,求助