科研实验室-Pytorch教程

上传人:1818****572 文档编号:121945495 上传时间:2020-02-28 格式:PDF 页数:29 大小:905.01KB
返回 下载 相关 举报
科研实验室-Pytorch教程_第1页
第1页 / 共29页
科研实验室-Pytorch教程_第2页
第2页 / 共29页
科研实验室-Pytorch教程_第3页
第3页 / 共29页
科研实验室-Pytorch教程_第4页
第4页 / 共29页
科研实验室-Pytorch教程_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《科研实验室-Pytorch教程》由会员分享,可在线阅读,更多相关《科研实验室-Pytorch教程(29页珍藏版)》请在金锄头文库上搜索。

1、目录 编程要点总结 PyTorch 概述 基于 PyTorch 的模型训练框架 高效工具 2 30 编程要点总结 3 30 实践流程 编写代码 测试代码 发现并解决问题 Google论坛及文档同学讨论 4 30 经验总结 想好方案 定好草稿 再动手实践 做好实验管理 及时分析实验结果 预估模型训练时间 做好时间规划 可视化分析模型结果以及中间过程 需要重复做的事情请写成自动脚本 多看源码 从源码中学习编程技巧 遇到工程问题 优先 Google 解决 5 30 PyTorch 概述 6 30 什么是 PyTorch PyTorch 是一个用于张量计算和深度神经网络的python 包 提供了如下功

2、 能 使用 GPU 加速的张量计算 内置自动梯度求解的深度神经网络 常用网站 官网 http pytorch org 文档 http pytorch org docs 论坛 https discuss pytorch org 教程 http pytorch org tutorials 源码 例程 7 30 PyTorch 组件 PyTorch 主要包含如下组件 torch autograd 提供自动微分相关的类的函数 torch nn 提供深度神经网络相关的类和函数 torch optim 提供常用的优化算法 torch multiprocessing 多线程处理库 实现在不同线程间的数据 共

3、享 可用于多 GPU 模型训练 torch utils 提供数据预处理 模型保存和导出等功能 8 30 张量 PyTorch 中的张量类型 Data typeCPU tensorGPU tensor 16 bit floating point torch cuda HalfTensor 32 bit floating pointtorch FloatTensortorch cuda FloatTensor 64 bit floating pointtorch DoubleTensortorch cuda DoubleTensor 8 bit integer unsigned torch Byt

4、eTensortorch cuda ByteTensor 8 bit integer signed torch CharTensortorch cuda CharTensor 16 bit integer signed torch ShortTensortorch cuda ShortTensor 32 bit integer signed torch IntTensortorch cuda IntTensor 64 bit integer signed torch LongTensortorch cuda LongTensor 9 30 计算图构建 在使用 Tensor 进行计算时 PyTo

5、rch 会自动构建对应的计算图 用于自动 梯度计算 张量主要属性如下 xy add z wh mul import torch w torch randn 3 3 h torch randn 3 3 x w h y torch randn 3 3 z x y data 张量数据 grad 保存梯度 grad fn 创建张量的操作 示例 10 30 自定义网络层 在 PyTorch 中通过继承 torch nn Module 类 可以方便的实现神经网络层 以及损失函数 模板如下 define your layer import torch nn as nn class LayerName nn

6、Module def init self super LayerName self init define parameters here def forward self x define the computation here return output 11 30 自定义优化器 通过继承 torch nn optim Optimizer 类可以实现自定义优化器 用于模型 参数的更新 模板如下 define your layer from torch optim import Optimizer class OptimName Optimizer def init self params

7、 default dict super LayerName self init params dict define parameters here def step self define the method to update parameters return loss 12 30 自定义反向传播 通过继承 torch autograd Function 可以实现自定义前向传播和反向传播的 计算过程 主要模板如下 from torch autograd import Function class Func Function staticmethod def forward self c

8、tx input params ctx save for backward input params return output staticmethod def backward ctx grad output input params ctx saved tensors return grad input None 13 30 hook 与过程监控 import torch from torch autograd import Variable v Variable torch Tensor 0 0 0 requires grad True h v register hook lambda

9、 grad grad 2 double the gradient v backward torch Tensor 1 1 1 v grad data 2 2 2 torch FloatTensor of size 3 h remove removes the hook PyTorch 提供了 hook 用于中间计算过程的监控 此外 也可以实现对张量 计算结果的修改 register hook 在每次梯度计算的时候自动调用 register forward hook 每次前向传播的时候自动调用 示例 梯度修改 14 30 基于 PyTorch 的模型训练框架 15 30 实验流程 准备数据集 定

10、义数据预处理过程 定义模型结构 定义优化方法 模型训练 前向传播 反向传播及参数更新 模型评估 关键模块 Data loader 载入数据并进行数据预处理 Model 描述神经网络模型结构 Optimizer 模型优化方法 如 SGD Adam 等 16 30 实验所需要的功能 规范的实验流程 可变 定义数据载入 初始化模型和优化方法 进 行模型训练和参数更新 自定义类和函数 通用 基础网络层和损失函数等 实验结果分析 通用 实验结果打包 代码备份 debug 信息显示 网络结构和复杂度分析等 17 30 框架结构设计 Code tasks trainer py main py options

11、 py ipytorch checkpoint dataloader utils visualization 保存实验结果 数据集载入和预处理 模型可视化 其他自定义函数 模型复杂度评估等 模型训练流程 实验流程 实验中所有需要调整的参数 18 30 代码示例 options py 19 30 代码实例 main py 20 30 代码实例 trainer py 21 30 Debug 信息打印 22 30 定义实验名称 log LeNet5 mnist twn momentum0 9 weightdecay0 lr0 01 bs50 01 前缀 方法 网络名称 数据集 momentum 0

12、9 weight decay 0 learning rate 0 01 batch size 50 实验 ID 重复实验 23 30 实验结果打包 log LeNet5 mnist twn momentum0 9 weightdecay0 lr0 01 bs50 01 code checkpoint py dataloader py graphgen py main py modelanalyse py models init py ResNet py onlineboard py opt py resultcurve py trainer py transform py utils py v

13、isualization py model best model pkl checkpoint pkl log txt opt log README md test error pdf train error pdf 代码备份 模型结果保存 最好的模型 checkpoint 实验结果记录 参数设置 实验说明 实验曲线 24 30 实验曲线记录 test error pdf and train error pdf testing errortraining error 25 30 高效工具 26 30 可视化分析工具 tensorboardX Code 27 30 神经网络可视化 Netron Code 28 30 分布式训练平台 OpenPAI Code 29 30 Thank You 30 30

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 实验设计

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号