pytorch快速上手之一_使用GPU

本文旨在快速上手PyTorch在GPU上的运用,包括如何将tensor和模型迁移到GPU,讨论遇到的RuntimeError问题,如cuDNN错误和张量无法append的解决方案。内容涵盖GPU运算优势、张量操作、模型迁移及异常处理。
摘要由CSDN通过智能技术生成

本系列博客,目的是快速上手训练和修改开源的pytorch模型,以用促学,主要解决以下问题:
1.怎么在GPU上运算;
2.怎么把不需要的运算排除计算图;
3.怎么定义dataset、dataloader;
4.怎么保存模型,加载模型,继续训练;
5.怎么计算准确率;
6.怎么可视化loss、准确率的变化曲线;
7.矩阵平行计算parallel;

一 总述

GPU上计算比CPU上计算快多了,使用GPU训练能快速看看模型的效果

pytorch怎么使用GPU?什么能使用GPU?什么时候用GPU、什么时候用CPU?

  1. 可以放到GPU上的,要么是tensor,要么是模型;
  2. GPU上的张量和CPU上的张量进行计算会报错;
  3. GPU上张量使用pytorch的tensor操作得到的张量,都自动放到GPU上;
  4. 模型放到GPU上,模型的成员变量都会自动放到GPU上;成员方法中创建的tensor不会自动放到GPU;
  5. 与list对比,tensor有些操作不能进行:这些不能进行的操作肯定是转为list在cpu上进行,如:tensor不能进行append操作;

二 实现

2.1 放到GPU上的方法

tensor放到cuda有两种操作,第二种更好:

方法一:直接转到GPU
model.cuda()

方法二:先判断GPU可用,如果可用转到GPU,不可用使用CPU
device = 'cuda' if torch.cuda.is_available() else 'cpu'
mode.to(device)

2.2 放到GPU上的问题

这个实现是参照的网上一个博客,源博客链接忘了

import torch
import torch.nn as nn
import copy


class MyClass(nn.Module):
    def __init__(self, para1, para2):
        super(MyClass, self).__init__()
        self.attr1 = para1
        self.attr2 = para2

        ##定义函数
        self.func1 = nn.Conv2d(in_channels=3, out_channels=64, kernel_size=3, padding=1)
        self.func2 = nn.Conv2d(in_channels=64, out_channels=64, kernel_size=3, padding=1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值