在机器学习和深度学习任务中,随机性是一个常见的因素。在某些情况下,我们希望能够获得可复现的结果,以便于调试、复现实验结果或确保结果的一致性。为了实现这一目标,设置随机种子是一种常用的方法。
在本篇博客中,将介绍如何使用Python和一些常用的库来设置随机种子,以确保在相同的种子下生成的随机数序列是一致的。
设置随机种子的方法
def seed_all(seed):
"""
设置PyTorch的随机种子, 用于生成随机数. 通过设置相同的种子, 可以确保每次运行时生成的随机数序列相同
"""
torch.manual_seed(seed)
"""
设置PyTorch在所有可用的CUDA设备上的随机种子. 如果在使用GPU进行计算, 这个设置可以确保在不同的GPU上生成的随机数序列相同
"""
torch.cuda.manual_seed_all(seed)
"""
设置PyTorch在当前CUDA设备上的随机种子. 它与上一行代码的作用类似, 但只影响当前设备
"""
torch.cuda.manual_seed(seed)
"""
设置NumPy的随机种子, 用于生成随机数. 通过设置相同的种子,可以确保在使用NumPy的随机函数时生成的随机数序列相同
"""
np.random.seed(seed)
"""
设置Python内置的随机函数的种子. Python的random模块提供了许多随机函数, 包括生成随机数、打乱列表等. 通过设置相同的种子, 可以确保使用这些随机函数时生成的随机数序列相同
"""
r