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

查看信息

  1. 查看 torch和torchvision版本信息
    import torch
    torch.__version__
    
    import torchvision
    torchvision.__version__
    

Dataloader

  1. 读取单个数据
    dataIter = iter(trainLoader)
    images, labels = next(dataIter)
    
  2. 定义成单个dataset
    dataset_test = ***Dataset (代表某个定义好的dataset)
    dataset_test[0]
    

训练与验证

  1. with torch.no_grad():
    在使用pytorch时,并不是所有的操作都需要进行计算图的生成(计算过程的构建,以便梯度反向传播等操作)。而对于tensor的计算操作,默认是要进行计算图的构建的,在这种情况下,可以使用 with torch.no_grad():,强制之后的内容不进行计算图构建。
  2. 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)
    
posted @ 2020-06-03 14:26  WuMinda  阅读(193)  评论(0)    收藏  举报