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通过pil将图片转换成黑白效果的方法

    python通过pil将图片转换成黑白效果的方法

    这篇文章主要介绍了python通过pil将图片转换成黑白效果的方法,实例分析了Python中pil库的使用技巧,需要的朋友可以参考下
    2015-03-03
  • Django web自定义通用权限控制实现方法

    Django web自定义通用权限控制实现方法

    这篇文章主要介绍了Django web自定义通用权限控制实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • django 基于中间件实现限制ip频繁访问过程详解

    django 基于中间件实现限制ip频繁访问过程详解

    这篇文章主要介绍了django 基于中间件实现限制ip频繁访问过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • python神经网络使用Keras进行模型的保存与读取

    python神经网络使用Keras进行模型的保存与读取

    这篇文章主要为大家介绍了python神经网络使用Keras进行模型的保存与读取,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python爬取三国演义的实现方法

    Python爬取三国演义的实现方法

    这篇文章通过实例给大家演示了利用python如何爬取三国演义,对于学习python的朋友们来说是个不错的实例,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2016-09-09
  • python openssl模块安装及用法

    python openssl模块安装及用法

    在本篇文章里小编给大家整理的是一篇关于python openssl模块安装及用法,有需要的朋友们可以学习下。
    2020-12-12
  • Python实现FTP弱口令扫描器的方法示例

    Python实现FTP弱口令扫描器的方法示例

    这篇文章主要介绍了Python实现FTP弱口令扫描器的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • Java ExcutorService优雅关闭方式解析

    Java ExcutorService优雅关闭方式解析

    这篇文章主要介绍了Java ExcutorService优雅关闭方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 使用Python批量压缩tif文件操作步骤

    使用Python批量压缩tif文件操作步骤

    Tif文件是栅格数据最常用的一种格式。图像数据区以位图的方式进行数据的表示。因此Tif文件可以进行压缩,常用的压缩方式有LZW、RAW、RLE、CCITT等
    2021-09-09
  • python小项目之五子棋游戏

    python小项目之五子棋游戏

    这篇文章主要为大家详细介绍了python小项目之五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12

最新评论