深度学习中的随机初始化种子random.seed()

seed在深度学习代码中叫随机种子,设置seed的目的是由于深度学习网络模型中初始的权值参数通常都是初始化成随机数,而使用梯度下降法最终得到的局部最优解对于初始位置点的选择很敏感,设置了seed就相当于规定了初始的随机值。

即产生随机种子意味着每次运行实验,产生的随机数都是相同的

为将模型在初始化过程中所用到的“随机数”全部固定下来,以保证每次重新训练模型需要初始化模型参数的时候能够得到相同的初始化参数,从而达到稳定复现训练结果的目的。【血泪教训】

torch.manual_seed(seed):设置生成随机数的种子

【You can use torch.manual_seed() to seed the RNG for all devices (both CPU and CUDA)】

torch.cuda.manual_seed_all():为所有的GPU设置种子【使用多个GPU】

torch.cuda.manual_seed(seed):在GPU中设置生成随机数的种子

【当设置的种子固定下来的时候,之后依次pytorch生成的随机数序列也被固定下来,当只调用torch.cuda.manual_seed()一次时并不能生成相同的随机数序列,要得到相同的随机数序列就需要每次产生随机数的时候都要调用torch.cuda.manual_seed()】

dgl.random.seed(seed):在DGL中设置随机方法的种子

random.seed(seed)改变随机生成器的种子,传入的数值用于指定随机数生成时所用算法开始时所选定的整数值,如果使用相同的seed()值,则每次生成的随机数都相同;如果不设置值,每次生成的随机数会不同

你可能感兴趣的:(Deep,Learning,机器学习,深度学习,python)