训练

神经网络的训练主要包含以下语句:

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()相关推荐

  1. pytorch中的所有随机数(normal、rand、randn、randint、randperm) 以及 随机数种子(seed、manual_seed、initial_seed)

    torch的所有随机数官方已经整理在torch - PyTorch 1.10.0 documentation这个页面了,我又重新整理到了本blog中,用中文进行了部分解释,方便理解. 一.常用的 1. ...

  2. Pytorch torch.manual_seed()的简单用法

    简单来说就是指定随机数种子(种子可以是个任意int值),用来生成伪随机数: import torchtorch.manual_seed(1) print(torch.rand(1)) print(to ...

  3. pytorch中torch.manual_seed()的理解

    使用

  4. pytorch常用代码

    20211228 https://mp.weixin.qq.com/s/4breleAhCh6_9tvMK3WDaw 常用代码段 本文代码基于 PyTorch 1.x 版本,需要用到以下包: impo ...

  5. pytorch问题索引

    20210623 RuntimeError: expected device cpu and dtype Float but got device cpu and dtype Bool () 调试到对 ...

  6. Pytorch的LSTM的理解

    20211227 lstm和gru的区别 Pytorch实现LSTM案例学习(1)_ch206265的博客-CSDN博客_pytorch搭建lstm lstm案例 class torch.nn.LST ...

  7. PyTorch 高级实战教程:基于 BI-LSTM CRF 实现命名实体识别和中文分词

    20210607 https://blog.csdn.net/u011828281/article/details/81171066 前言:译者实测 PyTorch 代码非常简洁易懂,只需要将中文分词 ...

  8. Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)

    Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...

  9. PyTorch基础与简单应用:构建卷积神经网络实现MNIST手写数字分类

    文章目录 (一) 问题描述 (二) 设计简要描述 (三) 程序清单 (四) 结果分析 (五) 调试报告 (六) 实验小结 (七) 参考资料 (一) 问题描述 构建卷积神经网络实现MNIST手写数字分类 ...

最新文章

  1. doxygen相关问题 转
  2. 中国海洋生物医药产业专项应用调研及战略展望规划分析报告2021-2027年
  3. 英语音标 语言、语音、音素及音标
  4. 最近做项目的一些关于重构方面的总结
  5. jquery ajax 拒绝访问,拒绝访问IE上的jQuery脚本
  6. 设计模式——工厂方法
  7. JS中将变量转为字符串
  8. 如何知道PostgreSQL数据库下每个数据库所对应的目录
  9. java 中文乱码的解决方法
  10. 晶晨线刷工具_Amlogic_USB_Burning_Tool _刷机工具分享
  11. Java基础之集合篇(内容超详细,带你轻松搞懂List、Set和Map的使用)
  12. LightOJ1336
  13. 西门子 HTML控件 上不了网,Win10系统在西门子PLC调试中以太网连接异常处理办法...
  14. 2018笔试题——求一元一次方程的解
  15. web开发设为首页、添加到收藏夹实现方法
  16. 【合作伙伴大练兵-安全】NGFW盒式防火墙问题排查和维护
  17. 关于如何使用python下载各大网站的视频
  18. 关于虚拟机及dockers
  19. 历经一个月,终于搞定了SVM(支持向量机)-附源代码解析
  20. SPRING IN ACTION 第4版笔记-第四章Aspect-oriented Spring-001-什么是AOP

热门文章

  1. win10开机启动文件夹路径
  2. python爬虫爬取实习僧岗位信息并存入excel数据表中
  3. VMware ESX Server 常用命令行
  4. SQLite 命令行客户端 sqlite3 使用指南
  5. 计算机试题九,2017年职称计算机考试Excel测验试题(九)
  6. Pytorch min函数详解
  7. websocket 客户端测试工具
  8. IIC协议下的OLED屏幕的三种寻址方式
  9. 软考网络工程师如何复习?
  10. Basemap绘制中国地图