深度学习的训练过程常常非常耗时,一个模型训练几个小时是家常便饭,训练几天也是常有的事情,有时候甚至要训练几十天。

训练过程的耗时主要来自于两个部分,一部分来自数据准备,另一部分来自参数迭代。

当数据准备过程还是模型训练时间的主要瓶颈时,我们可以使用更多进程来准备数据。

当参数迭代过程成为训练时间的主要瓶颈时,我们通常的方法是应用GPU来进行加速。

Pytorch中使用GPU加速模型非常简单,只要将模型和数据移动到GPU上。核心代码只有以下几行。

# 定义模型
...   device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model.to(device) # 移动模型到cuda  # 训练模型
...  features = features.to(device) # 移动数据到cuda
labels = labels.to(device) # 或者  labels = labels.cuda() if torch.cuda.is_available() else labels
...

如果要使用多个GPU训练模型,也非常简单。只需要在将模型设置为数据并行风格模型。
则模型移动到GPU上之后,会在每一个GPU上拷贝一个副本,并把数据平分到各个GPU上进行训练。核心代码如下。

速成pytorch学习——11天. 使用GPU训练模型相关推荐

  1. 速成pytorch学习——1天

    一.Pytorch的建模流程 使用Pytorch实现神经网络模型的一般流程包括: 1,准备数据 2,定义模型 3,训练模型 4,评估模型 5,使用模型 6,保存模型. 对新手来说,其中最困难的部分实际 ...

  2. 速成pytorch学习——8天损失函数

    一般来说,监督学习的目标函数由损失函数和正则化项组成.(Objective = Loss + Regularization) Pytorch中的损失函数一般在训练模型时候指定. 注意Pytorch中内 ...

  3. 速成pytorch学习——10天.训练模型的3种方法

    Pytorch通常需要用户编写自定义训练循环,训练循环的代码风格因人而异. 有3类典型的训练循环代码风格:脚本形式训练循环,函数形式训练循环,类形式训练循环. 下面以minist数据集的分类模型的训练 ...

  4. 速成pytorch学习——6天Dataset和DataLoader

    Pytorch通常使用Dataset和DataLoader这两个工具类来构建数据管道. Dataset定义了数据集的内容,它相当于一个类似列表的数据结构,具有确定的长度,能够用索引获取数据集中的元素. ...

  5. 速成pytorch学习——7天模型层layers

    深度学习模型一般由各种模型层组合而成. torch.nn中内置了非常丰富的各种模型层.它们都属于nn.Module的子类,具备参数管理功能. 例如: nn.Linear, nn.Flatten, nn ...

  6. 速成pytorch学习——5天nn.functional 和 nn.Module

    一,nn.functional 和 nn.Module 前面我们介绍了Pytorch的张量的结构操作和数学运算中的一些常用API. 利用这些张量的API我们可以构建出神经网络相关的组件(如激活函数,模 ...

  7. 速成pytorch学习——4天中阶API示范

    使用Pytorch的中阶API实现线性回归模型和和DNN二分类模型. Pytorch的中阶API主要包括各种模型层,损失函数,优化器,数据管道等等. 一,线性回归模型 1,准备数据 import nu ...

  8. 速成pytorch学习——3天自动微分机制

    神经网络通常依赖反向传播求梯度来更新网络参数,求梯度过程通常是一件非常复杂而容易出错的事情. 而深度学习框架可以帮助我们自动地完成这种求梯度运算. Pytorch一般通过反向传播 backward 方 ...

  9. 速成pytorch学习——2天

    Pytorch的基本数据结构是张量Tensor.张量即多维数组.Pytorch的张量和numpy中的array很类似. 本节我们主要介绍张量的数据类型.张量的维度.张量的尺寸.张量和numpy数组等基 ...

最新文章

  1. 《Cacti实战》——第2章 环境的安装和配置
  2. LSTM 时间序列数据的异常检测
  3. Princess Principal(思维题)
  4. ELK集群的搭建和Elasticsearchd api的简单使用
  5. SpringDataRedis环境搭建(详细图文教程)
  6. 软考-信息系统项目管理师-项目合同管理
  7. 漏洞战争软件漏洞分析精要 学习笔记
  8. Android—Retrofit解析
  9. 避免switch嵌套的一种方法
  10. js创建file对象 字符串 txt_js-创建对象的多种方式
  11. AC+AP组网和MESH组网介绍和区别
  12. Aittit rpc的实现协议 JSON-RPC XML-RPC . Ws协议webservice 目录 1. XML-RPC协议 1 1.1. JSON-RPC远程调用协议 - CieloSun
  13. [优化算法] 拉丁超立方采样与基于优化的均匀采样
  14. 最高单价计算机函数公式,通达信公式主动性买盘均价,通达信分时图中 分时均价线黄线的源码怎么写...
  15. FBReader接入
  16. 怎样快速找出百度云盘文件夹里分享失败文件
  17. html表单颜色背景图片大全,css背景颜色、背景图片,以及列表的多种样式
  18. mailgun ——10000封每月的邮件推送接口
  19. Linux-新建用户/群组以及修改文件权限
  20. NGS项目四:高通量测序在植物生物胁迫研究中的应用

热门文章

  1. Yearn已完成对于6666枚YFI的增发
  2. 波卡二层扩容协议Plasm Network发布v1.7.0-dusty版本
  3. Jmeter(四十八)_动态线程分析HTML测试报告
  4. 【学习总结】Git学习-参考廖雪峰老师教程三-创建版本库
  5. okHttp3 源码分析
  6. Oracle树查询(查询所有子节点,父节点等等)_转载
  7. 15-TypeScript策略模式
  8. 一个请求在Struts2框架中的处理的步骤
  9. java中几种常见字符集与乱码介绍
  10. 文件创建时间、访问时间、修改时间