pytorch通过训练结果的复现设置随机种子
作者:tianren9 时间:2021-04-19 07:58:53
通过设置全局随机种子使得每次的训练结果相同可以复现
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轮的测试集进行测试的,而模型在加载的时候是在第一轮的测试进行测试的,结果自然有差异。
来源:https://blog.csdn.net/u010589524/article/details/89371919
标签:pytorch,结果,复现,随机种子
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python基础教程之Hello World!
2021-03-05 22:45:06
python turtle绘图命令及案例
2022-04-29 10:26:58
![](https://img.aspxhome.com/file/2023/7/65907_0s.png)
一个奇怪的CSS现象
2010-02-10 12:28:00
![](https://img.aspxhome.com/file/UploadPic/20102/10/y200921122655-79s.jpg)
图文教程教你asp编译成dll组件
2010-07-16 13:16:00
![](https://img.aspxhome.com/file/UploadPic/20107/16/01-16s.gif)
批量获取及验证HTTP代理的Python脚本
2023-11-19 12:10:34
python使用参数对嵌套字典进行取值的方法
2022-04-12 10:13:27
如何把数据库的记录输出到表格去?
2009-11-06 13:37:00
如何由Sybase向SQL Server移植数据库
2009-01-20 15:56:00
如何用python实现结构体数组
2023-10-13 19:07:34
用CSS实现柱状图(Bar Graph)的方法(四)—table实现复杂柱状图
2008-05-28 12:55:00
![](https://img.aspxhome.com/file/UploadPic/20085/28/200852813283924s.jpg)
PL/SQL实现Oracle数据库任务调度
2010-07-20 12:57:00
PHP实现异步定时多任务消息推送
2023-05-25 09:51:29
asp获取完整url地址代码
2010-03-22 14:25:00
浅谈python在提示符下使用open打开文件失败的原因及解决方法
2023-12-07 18:31:33
![](https://img.aspxhome.com/file/2023/0/72860_0s.jpg)
发散后的期望
2008-07-31 18:32:00
Python爬虫之Selenium实现关闭浏览器
2022-12-09 07:11:03
javascript 通用滑动门tab类
2023-08-05 09:42:25
PHP实现将科学计数法转换为原始数字字符串的方法
2023-10-15 21:13:10
ASP控制每页打印行数实例
2008-04-13 06:48:00
golang微服务框架基础Gin基本路由使用详解
2023-07-23 10:31:19