pytorch通过训练结果的复现设置随机种子

 更新时间:2021年06月01日 08:56:22   作者:tianren9  
这篇文章主要介绍了pytorch通过训练结果的复现设置随机种子的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

通过设置全局随机种子使得每次的训练结果相同可以复现

def seed_torch(seed=2018):
    random.seed(seed)
    os.environ['PYTHONHASHSEED'] = str(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    torch.backends.cudnn.deterministic = True

这里我主要讲一下模型在复现结果遇到的一些问题。

首先在固定随机种子之后,每次模型训练出来的结果一定是一样的,如果不相同,那么说明训练过程中一定还有一部分随机性操作没有被固定。

将模型参数保存下来,然后加载模型参数进行测试,如果发现结果和训练过程中得到的结果有差异。

这个时候就需要按照以下步骤进行分析:

1、先改变batchsize,看看实验复现的结果是否会发生变化。如果发生变化就说明batchsize会影响模型推理过程中的参数。

2、检查一下forward中有哪些参数跟batchsize有关,或者是不是代码写错了。比如batchsize就会影响LSTM的模型参数的初始化。

3、最后检查测试集划分batch的时候是否都一样。

test_loader = DataLoader(test_dataset, batch_size=batchsize, shuffle=True, num_workers=4, pin_memory=True)

比如这样一行代码,测试集每次都被打乱了,虽然固定了随机种子,但是这样只能保证第k轮的随机种子是一样的,而第1轮和第10轮的随机种子是不一样的。

这样的话,比如模型在第13个epoch收敛,得到的结果在是第13轮的测试集进行测试的,而模型在加载的时候是在第一轮的测试进行测试的,结果自然有差异。

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

相关文章

  • Python简单定义与使用二叉树示例

    Python简单定义与使用二叉树示例

    这篇文章主要介绍了Python简单定义与使用二叉树,结合实例形式分析了Python定义二叉树及节点插入相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • python编写一个会算账的脚本的示例代码

    python编写一个会算账的脚本的示例代码

    这篇文章主要介绍了python编写一个会算账的脚本,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • python多线程+代理池爬取天天基金网、股票数据过程解析

    python多线程+代理池爬取天天基金网、股票数据过程解析

    这篇文章主要介绍了python多线程+代理池爬取天天基金网、股票数据过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python算法与数据结构朋友圈与水杯实验题分析实例

    python算法与数据结构朋友圈与水杯实验题分析实例

    这篇文章主要介绍了python算法与数据结构朋友圈与水杯实验题分析,总的来说这并不是难题,那为什么要拿出这道题介绍?拿出这道题真正想要传达的是解题的思路,以及不断优化探寻最优解的过程。希望通过这道题能给你带来一种解题优化的思路
    2022-12-12
  • 打包发布Python模块的方法详解

    打包发布Python模块的方法详解

    这篇文章我们来学习打包与发布你的Python模块的基础知识以及方法,非常的简单实用。所以不要浪费时间了,咱们开始吧!
    2016-09-09
  • Python使用GitPython操作Git版本库的方法

    Python使用GitPython操作Git版本库的方法

    这篇文章主要介绍了Python使用GitPython操作Git版本库的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Python基于SciPy库实现统计分析与建模

    Python基于SciPy库实现统计分析与建模

    SciPy是一个强大的Python库,提供了丰富的科学计算和数据分析工具,本文我们将探讨如何使用Python和SciPy库进行统计分析和建模,感兴趣的可以学习一下
    2023-06-06
  • Python 如何测试文件是否存在

    Python 如何测试文件是否存在

    这篇文章主要介绍了Python 如何测试文件是否存在,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • 浅谈python print(xx, flush = True) 全网最清晰的解释

    浅谈python print(xx, flush = True) 全网最清晰的解释

    今天小编就为大家分享一篇浅谈python print(xx, flush = True) 全网最清晰的解释,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • pycharm如何使用anaconda中的各种包(操作步骤)

    pycharm如何使用anaconda中的各种包(操作步骤)

    这篇文章主要介绍了pycharm如何使用anaconda中的各种包,本文通过操作步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论