pytorch 常用知识
pytorch 历史版本
从此链接中可以查找pytorch历史版本的下载方法。如果感觉下载速度过慢,可以搭配镜像源使用。
pip install https://download.pytorch.org/whl/cu90/torch-1.0.0-cp36-cp36m-linux_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install torchvision
注意:安装 torch1.0 要对应安装torchvision0.2.0
查看信息
- 查看 torch和torchvision版本信息
import torch torch.__version__ import torchvision torchvision.__version__
Dataloader
- 读取单个数据
dataIter = iter(trainLoader) images, labels = next(dataIter) - 定义成单个dataset
dataset_test = ***Dataset (代表某个定义好的dataset) dataset_test[0]
训练与验证
with torch.no_grad():
在使用pytorch时,并不是所有的操作都需要进行计算图的生成(计算过程的构建,以便梯度反向传播等操作)。而对于tensor的计算操作,默认是要进行计算图的构建的,在这种情况下,可以使用with torch.no_grad():,强制之后的内容不进行计算图构建。model.eval()
在训练完成后,测试样本时需要使用model.eval()。def validate(val_loader, model, criterion): # 切换模型为预测模型,不会改变权重 model.eval() val_loss = [] # 不记录模型梯度信息 with torch.no_grad(): for i, (input, target) in enumerate(val_loader): if use_cuda: input = input.cuda() target = target.cuda() c0, c1, c2, c3, c4 = model(input) loss = criterion(c0, target[:, 0]) + \ criterion(c1, target[:, 1]) + \ criterion(c2, target[:, 2]) + \ criterion(c3, target[:, 3]) + \ criterion(c4, target[:, 4]) # loss /= 6 val_loss.append(loss.item()) return np.mean(val_loss)

浙公网安备 33010602011771号