深度学习训练流程是一套固定的模板

  1. optimizer定义,选择不同的optimizer,权重衰减,梯度更新。
  2. scheduler定义,选择不同的scheduler,进行学习率的更新。(可选,可不使用scheduler进行学习率更新,设为None,则学习率为恒定值)
  3. model初始化,选择使用GPU训练还是CPU训练
  4. loss选择优化函数,
for epoch in range(epochs):# 训练几个epochfor batch_data in range(train_data):# 按照事先定义batch进行shuffle抽取数据,输入模型中训练loss = model(**batch_data)loss.backward() # 进行梯度反向计算,更新模型所有的权重#可选 ,梯度剪裁,防止梯度爆炸torch.nn.utils.clip_grad_norm_(self.module.parameters(),grad_clip)optimizer.step() # 基于backward的梯度,继续梯度下降计算。scheduler.step() # 更新学习率optimizer.zero_grad() # 将梯度清零,防止上一个batch的grad对当前batch的影响  (这里有时候会写成 model.zero_grad())

model.zero_grad():
将所有模型参数的梯度置为0

optimizer.zero_grad():
清除所有优化的torch.Tensor的梯度

详细请参考:

model.zero_grad() vs optimizer.zero_grad()

理解optimizer.zero_grad(), loss.backward(), optimizer.step()的作用及原理

详解torch.nn.utils.clip_grad_norm_ 的使用与原理

【深度学习训练流程】浅析深度学习训练流程相关推荐

  1. Android 4.4 Kitkat Phone工作流程浅析(三)__MO(去电)流程分析

    本文来自http://blog.csdn.net/yihongyuelan 转载请务必注明出处 本文代码以MTK平台Android 4.4为分析对象,与Google原生AOSP有些许差异,请读者知悉. ...

  2. Android 5.1 Lollipop Phone工作流程浅析(十三)__InCallActivity启动Performance浅析

    前置文章: < Android 4.4 Kitkat Phone工作流程浅析(一)__概要和学习计划> <Android 4.4 Kitkat Phone工作流程浅析(二)__UI结 ...

  3. 花书+吴恩达深度学习(二十)构建模型策略(超参数调试、监督预训练、无监督预训练)

    目录 0. 前言 1. 学习率衰减 2. 调参策略 3. 贪心监督预训练 4. 贪心逐层无监督预训练 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十 ...

  4. AI学习笔记(九)从零开始训练神经网络、深度学习开源框架

    AI学习笔记之从零开始训练神经网络.深度学习开源框架 从零开始训练神经网络 构建网络的基本框架 启动训练网络并测试数据 深度学习开源框架 深度学习框架 组件--张量 组件--基于张量的各种操作 组件- ...

  5. 训练好的深度学习模型原来这样部署的!(干货满满,收藏慢慢看)

    点击上方蓝字关注我们 计算机视觉研究院专栏 作者:Edison_G 当我们辛苦收集数据.数据清洗.搭建环境.训练模型.模型评估测试后,终于可以应用到具体场景,但是,突然发现不知道怎么调用自己的模型,更 ...

  6. 深度强化学习落地方法论(7)——训练篇

    目录 训练开始前 环境可视化 数据预处理 训练进行中 拥抱不确定性 DRL通用超参数 折扣因子 作用原理 选取方法 Frame Skipping 网络结构 网络类型 网络深度 DRL特色超参数 DQN ...

  7. 【医疗人工智能论文】使用深度强化学习的腹腔镜机器人辅助训练

    Article 作者:Xiaoyu Tan , Chin-Boon Chng, Ye Su, Kah-Bin Lim, and Chee-Kong Chui 文献题目:Robot-Assisted T ...

  8. 深度学习工程实践 6. 使用pytorch训练自己的眼球分割模型

    深度学习工程实践 6. 使用pytorch训练自己的眼球分割模型 1. 概述 2. 目标 3. 工程实践 3.1 数据寻找,数据标注 3.2 训练 3.3 部署应用到桌面程序 4. 总结 1. 概述 ...

  9. 深度学习与围棋:为AlphaGo训练深度神经网络

    2016年,DeepMind的围棋机器人AlphaGo在与李世石的第二局对决中第37手落子的瞬间,整个围棋界都震惊了.评棋人Michael Redmond,一位有着近千场顶级比赛经验的职业棋手,在直播 ...

  10. 深度学习R语言 mlr3 建模,训练,预测,评估(随机森林,Logistic Regression)

    深度学习R语言 mlr3 建模,训练,预测,评估(随机森林,Logistic Regression) 本文主要通过使用mlr3包来训练German credit数据集,实现不同的深度学习模型. 1. ...

最新文章

  1. 软件架构是软件的组织形式
  2. Linux常用命令及技巧4
  3. MyEclipse创建Java Web工程并添加Hibernate支持
  4. Django ORM
  5. idea展示runDashboard的窗口
  6. Mac下配置Android环境
  7. 双系统重装win7/Xp后如何恢复ubuntu引导--转载
  8. mybatisplus中的xml对象参数传递
  9. Exchange Server 2013部署系列之三:部署邮箱服务器角色
  10. 跟着迪哥学python电子书pdf-跟着迪哥学Python数据分析与机器学习实战
  11. c语言程序设计基础计算存款利息,《C语言及程序设计》实践参考——定期存款利息计算器...
  12. 上 k8s 生产环境的一些准备!
  13. 流量分析:如何分析数据的波动?
  14. 【2022最新】mac版本Chrome谷歌浏览器导入burpsuite证书
  15. matlab火箭升空,火箭升空原理
  16. VRTK_Example解释
  17. 网络:tcp长连接与短连接
  18. Plist文件、NSBundle
  19. 大学计算机python编程的函数及作用总结_【转】python 内置函数总结(大部分)...
  20. spi 协议硬件分析以及在linux上的实现分析

热门文章

  1. 在线直播源码评论弹幕是如何“练”成的?
  2. ui效果图生成html,四步制作一个高大上的iPhone效果图模版 UI呀-学UI设计网
  3. 【Axure】Axure RP制作日期控件
  4. 2021年中国皮卡产销量及竞争格局分析,市场迎来新发展机遇「图」
  5. mysql远程连接报错2058
  6. AI前沿论坛会议—文字智能和游戏智能总结篇
  7. 我的linux系统怎么输入pv,如何在Linux系统中使用pv命令
  8. PE格式的定义头文件winnt.h
  9. 阿里组织新调整:张勇兼任云业务总裁“敏捷组织”是内核
  10. 抖音上火的电脑代码cmd_抖音很火的:仅靠三行代码,帮妹子“修电脑”?如何做到的!...