pytorch如何使用GPU
在本文中,我将介绍简单如何使用GPU
pytorch是一个非常优秀的深度学习的框架,具有速度快,代码简洁,可读性强的优点。
我们使用pytorch做一个简单的回归。
首先准备数据

import numpy as np
import matplotlib.pyplot as plt
import torch
from torch.autograd import Variable
import torch.nn as nn
x = np.random.randn(1000, 1)*4
w = np.array([0.5,])
bias = -1.68

y_true = np.dot(x, w) + bias #真实数据
y = y_true + np.random.randn(x.shape[0])#加噪声的数据
#我们需要使用x和y,以及y_true回归出w和bias
1
2
3
4
5
6
7
8
9
10
11
12
定义回归网络的类

class LinearRression(nn.Module):
def __init__(self, input_size, out_size):
super(LinearRression, self).__init__()
self.x2o = nn.Linear(input_size, out_size)
#初始化
def forward(self, x):
return self.x2o(x)
#前向传递
1
2
3
4
5
6
7
8
接下来介绍将定义模型和优化器

batch_size = 10
model = LinearRression(1, 1)#回归模型
criterion = nn.MSELoss() #损失函数
#调用cuda
model.cuda()
criterion.cuda()

optimizer = torch.optim.SGD(model.parameters(), lr=0.001, momentum=0.9)
losses = []
1
2
3
4
5
6
7
8
9
下面就是训(练)练(丹)了

for i in range(epoches):
loss = 0
optimizer.zero_grad()#清空上一步的梯度
idx = np.random.randint(x.shape[0], size=batch_size)
batch_cpu = Variable(torch.from_numpy(x[idx])).float()
batch = batch_cpu.cuda()#很重要

target_cpu = Variable(torch.from_numpy(y[idx])).float()
target = target_cpu.cuda()#很重要
output = model.forward(batch)
loss += criterion(output, target)
loss.backward()
optimizer.step()

if (i +1)%10 == 0:
print('Loss at epoch[%s]: %.3f' % (i, loss.data[0]))
losses.append(loss.data[0])

plt.plot(losses, '-or')
plt.xlabel("Epoch")
plt.xlabel("Loss")

plt.show()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
下面是训练结果

Loss at epoch[9]: 5.407
Loss at epoch[19]: 3.795
Loss at epoch[29]: 2.352
Loss at epoch[39]: 1.725
Loss at epoch[49]: 1.722
Loss at epoch[59]: 1.044
Loss at epoch[69]: 1.044
Loss at epoch[79]: 0.771
Loss at epoch[89]: 1.248
Loss at epoch[99]: 1.862
1
2
3
4
5
6
7
8
9
10
总结一下。要调用cuda执行代码需要一下步骤

model.cuda()
criterion.cuda()
1
2
3
以及

batch_cpu = Variable(torch.from_numpy(x[idx])).float()
batch = batch_cpu.cuda()
target_cpu = Variable(torch.from_numpy(y[idx])).float()
target = target_cpu.cuda()
1
2
3
4
就是将模型和输入数据变为cuda执行的
,简直超级方便,良心推荐一波pytorch

---------------------
作者:小川爱学习
来源:CSDN
原文:https://blog.csdn.net/wuichuan/article/details/66969315
版权声明:本文为博主原创文章,转载请附上博文链接!

Pytorch使用GPU相关推荐

  1. pytorch 多GPU训练总结(DataParallel的使用)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_40087578/arti ...

  2. pytorch多gpu并行训练操作指南

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来源:知乎 作者:link-web 链接:https://zhuanlan.zhi ...

  3. pytorch 同步gpu

    pytorch 同步gpu import torch a = torch.tensor([[1, 2, 3],[4, 5, 6]])b = torch.tensor([[2, 2, 2], [3, 3 ...

  4. pytorch 优化GPU显存占用,避免out of memory

    pytorch 优化GPU显存占用,避免out of memory 分享一个最实用的招: 用完把tensor删掉,pytorch不会自动清理显存! 代码举例,最后多删除一个,gpu显存占用就会下降,训 ...

  5. pytorch 多GPU训练

    pytorch 多GPU训练 pytorch多GPU最终还是没搞通,可用的部分是前向计算,back propagation会出错,当时运行通过,也不太确定是如何通过了的.目前是这样,有机会再来补充 p ...

  6. pytorch多gpu并行训练

    pytorch多gpu并行训练 link-web 转自:pytorch多gpu并行训练 - 知乎 目录(目录不可点击) 说明 1.和DataParallel的区别 2.如何启动程序的时候 2.1 单机 ...

  7. Pytorch使用GPU加速

    1.    可以在cmd窗口输入nvidia-smi命令来确认自己的显卡是否有CUDA. 没有的话,需要安装.(搜CUDA官网按照步骤来) 2.    然后安装pythorch. 必须安装的有torc ...

  8. cuda的安装,及pytorch调用GPU步骤

    前言: 深度学习涉及很多向量或多矩阵运算,如矩阵相乘.矩阵相加.矩阵-向量乘法等.深层模型的算法,如BP,Auto-Encoder,CNN等,都可以写成矩阵运算的形式,无须写成循环运算.然而,在单核C ...

  9. Ubuntu18.04+Nvidia RTX 3060+Pytorch配置GPU环境

    Ubuntu18.04+Nvidia RTX 3060+Pytorch配置GPU环境 1. 安装GPU显卡驱动 1.1 安装前 1.2 安装过程 1.2.1 打开终端,查看推荐安装的驱动 1.2.2 ...

  10. Pytorch(gpu),cuda,cudnn安装

    Pytorch(gpu),cuda,cudnn安装 第一步:查看自己电脑显卡支持的CUDA版本 第二步:查看pytorch对应cuda版本 第三步:CUDA下载安装 遇到问题:安装完之后法找到nvcc ...

最新文章

  1. 活动识别API服务开发
  2. Html中各种空格的显示
  3. html5赛车小游戏,html5公路赛车小游戏
  4. Python学习笔记:异步IO(2)
  5. Nacos配置中心用法详细介绍
  6. Linux查看关机时间
  7. ACM成长之路(干货) 我爱ACM,与君共勉
  8. Ubuntu下使用pjsip点对点通话
  9. WORD中如何自动生成目录?
  10. 搭建VS2008+OpenCV2.1开发环境
  11. CCKS2018参会总结项目
  12. kaldi语音识别实战pdf_FSMN网络结构在语音识别声学模型的实践
  13. 华为鸿蒙3799跟4799有啥区别,华为鸿蒙智慧屏出世!3799元高价,是增智慧还是智商税?...
  14. 程序员漫画:影响程序员一生的书单
  15. redis安装与调优部署文档(Linux)
  16. manjaro开启热点设置密码WPA/WPA2后iphone连不上
  17. openjdk Font实现斜体
  18. 19-Python基础知识学习-----迭代器与生成器
  19. 使用Lint检查提高代码质量
  20. 21河海大学计算机838复习经验

热门文章

  1. 使用myeclipse的第一步
  2. Jquery DIV滚动至浏览器顶部后固定不动代码
  3. Redis 笔记(11)— 文本协议 RESP(单行、多行字符串、整数、错误、数组、空值、空串格式、telnet 登录 redis)
  4. flask sqlalchemy踩坑记录
  5. 利用exchangelib快速上手使用python发邮件
  6. pyspark性能调优参数
  7. nn.moduleList 和Sequential由来、用法和实例 —— 写网络模型
  8. 详解Spring中Bean的自动装配~
  9. SoC(System on chip)与NoC(network-on-chip)
  10. AIFramework框架Jittor特性(下)