Pytorch使用GPU
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相关推荐
- pytorch 多GPU训练总结(DataParallel的使用)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_40087578/arti ...
- pytorch多gpu并行训练操作指南
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 来源:知乎 作者:link-web 链接:https://zhuanlan.zhi ...
- pytorch 同步gpu
pytorch 同步gpu import torch a = torch.tensor([[1, 2, 3],[4, 5, 6]])b = torch.tensor([[2, 2, 2], [3, 3 ...
- pytorch 优化GPU显存占用,避免out of memory
pytorch 优化GPU显存占用,避免out of memory 分享一个最实用的招: 用完把tensor删掉,pytorch不会自动清理显存! 代码举例,最后多删除一个,gpu显存占用就会下降,训 ...
- pytorch 多GPU训练
pytorch 多GPU训练 pytorch多GPU最终还是没搞通,可用的部分是前向计算,back propagation会出错,当时运行通过,也不太确定是如何通过了的.目前是这样,有机会再来补充 p ...
- pytorch多gpu并行训练
pytorch多gpu并行训练 link-web 转自:pytorch多gpu并行训练 - 知乎 目录(目录不可点击) 说明 1.和DataParallel的区别 2.如何启动程序的时候 2.1 单机 ...
- Pytorch使用GPU加速
1. 可以在cmd窗口输入nvidia-smi命令来确认自己的显卡是否有CUDA. 没有的话,需要安装.(搜CUDA官网按照步骤来) 2. 然后安装pythorch. 必须安装的有torc ...
- cuda的安装,及pytorch调用GPU步骤
前言: 深度学习涉及很多向量或多矩阵运算,如矩阵相乘.矩阵相加.矩阵-向量乘法等.深层模型的算法,如BP,Auto-Encoder,CNN等,都可以写成矩阵运算的形式,无须写成循环运算.然而,在单核C ...
- 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 ...
- Pytorch(gpu),cuda,cudnn安装
Pytorch(gpu),cuda,cudnn安装 第一步:查看自己电脑显卡支持的CUDA版本 第二步:查看pytorch对应cuda版本 第三步:CUDA下载安装 遇到问题:安装完之后法找到nvcc ...
最新文章
- 活动识别API服务开发
- Html中各种空格的显示
- html5赛车小游戏,html5公路赛车小游戏
- Python学习笔记:异步IO(2)
- Nacos配置中心用法详细介绍
- Linux查看关机时间
- ACM成长之路(干货) 我爱ACM,与君共勉
- Ubuntu下使用pjsip点对点通话
- WORD中如何自动生成目录?
- 搭建VS2008+OpenCV2.1开发环境
- CCKS2018参会总结项目
- kaldi语音识别实战pdf_FSMN网络结构在语音识别声学模型的实践
- 华为鸿蒙3799跟4799有啥区别,华为鸿蒙智慧屏出世!3799元高价,是增智慧还是智商税?...
- 程序员漫画:影响程序员一生的书单
- redis安装与调优部署文档(Linux)
- manjaro开启热点设置密码WPA/WPA2后iphone连不上
- openjdk Font实现斜体
- 19-Python基础知识学习-----迭代器与生成器
- 使用Lint检查提高代码质量
- 21河海大学计算机838复习经验
热门文章
- 使用myeclipse的第一步
- Jquery DIV滚动至浏览器顶部后固定不动代码
- Redis 笔记(11)— 文本协议 RESP(单行、多行字符串、整数、错误、数组、空值、空串格式、telnet 登录 redis)
- flask sqlalchemy踩坑记录
- 利用exchangelib快速上手使用python发邮件
- pyspark性能调优参数
- nn.moduleList 和Sequential由来、用法和实例 —— 写网络模型
- 详解Spring中Bean的自动装配~
- SoC(System on chip)与NoC(network-on-chip)
- AIFramework框架Jittor特性(下)