本文主要记录自己学习PyTorch的过程,做些笔记,以免忘记。
一个框架包含的基本要素:
动态计算图,functionDataset,
import torch.nn as nn
import torch.nn.function as F
a = torch.tensor([1,2,3])
# Tensor 的操作
a.squeeze() #
a.squeeze_() # '_' replace in place operation,result is directly saved as a
Autograd,自动导数
Dataset,DataLoader,从数据集中自动取元素
取数据,前向计算,反向求梯度,更新参数,然后转入下一轮
GPU在前向计算的时候,CPU可以直接从硬盘读取下一轮的数据到内存中,或者直接读取到GPU的显存中,这样可以通过流水线(pipeline)的方式减少等待数据读入的时间。当一个Batch所需要的数据量比较大时,可以极大地提升训练效率。
eval
train
to(device),model.cpu()
多机多卡训练
单机多卡训练