pytorch manual_seed()
训练
神经网络的训练主要包含以下语句:
if cuda:model.cuda()
model.train()#把模型的状态设置为训练状态,主要针对Dropout层
optimizer = torch.optim.SGD((model.parameters(), lr=lr, momentum=momentum))
for epoch in range(epochs):for batch_idx, (data, target) in enumerate(train_loader):if cuda:data, target = data.cuda(), target.cuda()output = model(data) #对data做前向过程,得到输出loss = loss(model, output, target)#计算output和target之间的损失loss.backward()#反向过程,计算损失关于各参数的梯度optimizer.step()#利用计算得到的梯度对参数进行更新
随机种子
在训练开始时,参数的初始化是随机的,为了让每次的结果一致,我们需要设置随机种子。在main函数中加入如下语句:
torch.manual_seed(args.seed)#为CPU设置随机种子
if cuda:torch.cuda.manual_seed(seed)#为当前GPU设置随机种子torch.cuda.manual_seed_all(seed)#为所有GPU设置随机种子
PyTorch的维护者在回答网友们的问题时表示未来会用torch.manual_seed()同时设置CPU和GPU的种子,不知道现在是否实现了?
在训练过程中更新优化器的学习率
如果想要在训练过程中修改学习率,需要使用新的参数构建新的optimizer。
疑问
是否应该在每个iteration之前将模型参数的梯度清0????
经过实验发现,对于optim.SGD()优化算法,如果不添加optimizer.grad_zero(),那么每次iteration计算的梯度会累加到参数梯度上。
pytorch manual_seed()相关推荐
- pytorch中的所有随机数(normal、rand、randn、randint、randperm) 以及 随机数种子(seed、manual_seed、initial_seed)
torch的所有随机数官方已经整理在torch - PyTorch 1.10.0 documentation这个页面了,我又重新整理到了本blog中,用中文进行了部分解释,方便理解. 一.常用的 1. ...
- Pytorch torch.manual_seed()的简单用法
简单来说就是指定随机数种子(种子可以是个任意int值),用来生成伪随机数: import torchtorch.manual_seed(1) print(torch.rand(1)) print(to ...
- pytorch中torch.manual_seed()的理解
使用
- pytorch常用代码
20211228 https://mp.weixin.qq.com/s/4breleAhCh6_9tvMK3WDaw 常用代码段 本文代码基于 PyTorch 1.x 版本,需要用到以下包: impo ...
- pytorch问题索引
20210623 RuntimeError: expected device cpu and dtype Float but got device cpu and dtype Bool () 调试到对 ...
- Pytorch的LSTM的理解
20211227 lstm和gru的区别 Pytorch实现LSTM案例学习(1)_ch206265的博客-CSDN博客_pytorch搭建lstm lstm案例 class torch.nn.LST ...
- PyTorch 高级实战教程:基于 BI-LSTM CRF 实现命名实体识别和中文分词
20210607 https://blog.csdn.net/u011828281/article/details/81171066 前言:译者实测 PyTorch 代码非常简洁易懂,只需要将中文分词 ...
- Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)
Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...
- PyTorch基础与简单应用:构建卷积神经网络实现MNIST手写数字分类
文章目录 (一) 问题描述 (二) 设计简要描述 (三) 程序清单 (四) 结果分析 (五) 调试报告 (六) 实验小结 (七) 参考资料 (一) 问题描述 构建卷积神经网络实现MNIST手写数字分类 ...
最新文章
- doxygen相关问题 转
- 中国海洋生物医药产业专项应用调研及战略展望规划分析报告2021-2027年
- 英语音标 语言、语音、音素及音标
- 最近做项目的一些关于重构方面的总结
- jquery ajax 拒绝访问,拒绝访问IE上的jQuery脚本
- 设计模式——工厂方法
- JS中将变量转为字符串
- 如何知道PostgreSQL数据库下每个数据库所对应的目录
- java 中文乱码的解决方法
- 晶晨线刷工具_Amlogic_USB_Burning_Tool _刷机工具分享
- Java基础之集合篇(内容超详细,带你轻松搞懂List、Set和Map的使用)
- LightOJ1336
- 西门子 HTML控件 上不了网,Win10系统在西门子PLC调试中以太网连接异常处理办法...
- 2018笔试题——求一元一次方程的解
- web开发设为首页、添加到收藏夹实现方法
- 【合作伙伴大练兵-安全】NGFW盒式防火墙问题排查和维护
- 关于如何使用python下载各大网站的视频
- 关于虚拟机及dockers
- 历经一个月,终于搞定了SVM(支持向量机)-附源代码解析
- SPRING IN ACTION 第4版笔记-第四章Aspect-oriented Spring-001-什么是AOP