开发者

pytorch中如何设置随机种子

开发者 https://www.devze.com 2022-12-14 09:24 出处:网络 作者: 大虾飞哥哥
目录pytorch设置随机种子pytorch/tensorflow设置随机种子 ,保证结果复现Pytorch随机种子设置Tensorflow设置随机种子总结pytorch设置随机种子
目录
  • pytorch设置随机种子
  • pytorch/tensorflow设置随机种子 ,保证结果复现
    • Pytorch随机种子设置
    • Tensorflow设置随机种子
  • 总结

    pytorch设置随机种子

    pytorch设置随机种子 - 保证复现模型所有的训练过程

    在使用 PyTorch 时,如果希望通过设置随机数种子,在 GPU 或 CPU 上固定每一次的训练结果,则需要在程序执行的开始处添加以下代码:

    def seed_everything():
        '''
        设置整个开发环境的seed
        :param seed:
        :param device:
        :return:
        '''
        import os
        import random
        import numpy as np
    
        random.seed(seed)
     php   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 metho开发者_JS培训ds can be random even after fixing the seed
        # unless you tell it to be deterministic
        torch.backends.cudnn.deterministic = True

    pytorch/tensorflow设置随机种子 ,保证结果复现

    Pytorch随机种子设置

    import numpy as np
    import random
    import os
    import torch
    def seed_torch(seed=2021):
      random.seed(seed)
      os.environ['PYTHONHASHSEED'] = str(seed)
      androidnp.random.seed(seed)
      torch.manual_seed(seed)
      torch.cuda.manual_seed(seed)
      torch编程.cuda.manual_seed_all(seed) # if you are using multi-GPU.
      torch.backends.cudnn.benchmark = False
      torch.backends.cudnn.deterministic = True
      torch.backends.cudnn.enabled = False
    seed_torch()

    Tensorflow设置随机种子

    第一步 仅导入设置种子和初始化种子值所需的那些库

    import tensorflow as tf
    import os
    import numpy as np
    import random
    
    SEED = 0

    第二步 为所有可能具有随机行为的库初始化种子的函数

    def set_seeds(seed=SEED):
      os.environ['PYTHONHASHSEED'] = str(seed)
      random.seed(seed)
      tf.random.set_seed(seed)
      np.random.seed(seed)

    第三步 激活 Tensorflow 确定性功能

    def set_global_determinism(seed=SEED):
      set_seeds(seed=seed)
    
      os.environ['TF_DETERMINISTIC_OPS'] = '1'
      os.environ['TF_CUDNN_DETERMhttp://www.devze.comINISTIC'] = '1'
     
      tf.config.threading.set_inter_op_parallelism_threads(1)
      tf.config.threading.set_intra_op_parallelism_tjavascripthreads(1)
    
    # Call the above function with seed value
    set_global_determinism(seed=SEED)

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号