机器学习和深度学习中的种子设置

发布于:2025-02-11 ⋅ 阅读:(39) ⋅ 点赞:(0)

一、常见的随机数生成器及其对应的设置方法:

  1. Python内置的随机数生成器

    import random
    random.seed(manual_seed)
    
  2. NumPy的随机数生成器

    import numpy as np
    np.random.seed(manual_seed)
    
  3. PyTorch的随机数生成器

    import torch
    torch.manual_seed(manual_seed)
    
  4. CUDA的随机数生成器(在GPU环境中):

    torch.cuda.manual_seed(manual_seed)
    
  5. 所有GPU的随机数生成器(在多GPU环境中):

    torch.cuda.manual_seed_all(manual_seed)
    
  6. Python的os模块(用于设置环境变量):

    import os
    os.environ['PYTHONHASHSEED'] = str(manual_seed)
    
  7. Python的hashlib模块(用于设置哈希函数的种子):

    import hashlib
    hashlib._seed = manual_seed
    
  8. Python的uuid模块(用于设置UUID生成器的种子):

    import uuid
    uuid._random._seed = manual_seed
    
  9. Python的datetime模块(用于设置日期时间生成器的种子):

    import datetime
    datetime.datetime.now = lambda: datetime.datetime(2022, 1, 1)
    
  10. Python的time模块(用于设置时间生成器的种子):

    import time
    time.time = lambda: 1640995200.0  # 2022-01-01 00:00:00 UTC
    

请注意,这些设置方法可能因Python版本和库的版本而有所不同。在实际使用中,应根据具体情况进行调整。

二、PyTorch

  1. PyTorch的随机数生成器

    import torch
    torch.manual_seed(manual_seed)
    
  2. PyTorch的CUDA随机数生成器(在GPU环境中):

    import torch
    torch.cuda.manual_seed(manual_seed)
    
  3. PyTorch的所有CUDA随机数生成器(在多GPU环境中):

    import torch
    torch.cuda.manual_seed_all(manual_seed)
    
  4. PyTorch的生成器

    import torch
    torch.Generator().manual_seed(manual_seed)
    
  5. PyTorch的优化器随机数生成器

    import torch
    torch.optim.Optimizer.set_random_seed(manual_seed)
    
  6. PyTorch的哈希函数随机数生成器

    import torch
    torch.utils.set_random_seed(manual_seed)

三、TensorFlow

  1. TensorFlow的随机数生成器

    import tensorflow as tf
    tf.random.set_seed(manual_seed)
    
  2. TensorFlow的GPU随机数生成器(在GPU环境中):

    import tensorflow as tf
    tf.config.experimental.enable_tensor_float_32_execution(False)
    
  3. TensorFlow的Keras随机数生成器

    import tensorflow as tf
    tf.keras.backend.set_random_seed(manual_seed)
    
  4. TensorFlow的图像处理随机数生成器

    import tensorflow as tf
    tf.image.set_jitter_random(seed=manual_seed)
    
  5. TensorFlow的优化器随机数生成器

    import tensorflow as tf
    tf.keras.optimizers.Optimizer.set_random_seed(manual_seed)
    
  6. TensorFlow的哈希函数随机数生成器

    import tensorflow as tf
    tf.keras.utils.set_random_seed(manual_seed)