码迷,mamicode.com
首页 > 其他好文 > 详细

[pytorch学习]2. 官网60分钟教程摘要

时间:2019-01-31 01:24:29      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:ice   bat   net   __init__   tutorials   back   本质   cross   变量   

 

https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html

1. Pytorch的基本单元,tensor,本质上和numpy的操作类似;不同的主要在与可以自动计算微分和梯度(Autograd);

2. 每个tensor的requires_grad设置为True时,就能够自动计算梯度;操作时,只能修改枝叶变量的requires_grad;

3. Pytorch中建立神经网络的基本步骤:

  1) 在Net(nn.Module)类的__init__中定义网络的基本结构(几层conv,几层fc全连接层),输入数据格式;

  2) 在forward中定义每层结构的池化和激发函数

  3) 定义Loss Function(criterion = nn.CrossEntropyLoss)和优化方法(optim.SGD)

  3) 如果要使用GPU进行计算,需要将net,以及输入数据通过.to(device)的方式送给GPU

    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

4. Pytorch的神经网络训练步骤:

  在每个epoch中

  1) 循环获得一个batch的训练数据

  2) optimizer.zero_grad()将梯度缓存置零

  3) 使用forward,获得网络结果 output = net(input)

  4)   计算结果与目标的差别 loss = criterion(output, label)

  5)  反向传播梯度 loss.backward()

  6)  优化并更新 optimizer.step()

[pytorch学习]2. 官网60分钟教程摘要

标签:ice   bat   net   __init__   tutorials   back   本质   cross   变量   

原文地址:https://www.cnblogs.com/westmole-site/p/10340305.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!