# 【PyTorch教程】07-PyTorch如何使用多块GPU训练神经网络模型

### 本期目录

; 1. 绪论

import torch
import torch.nn as nn

device = torch.device("cuda:0")
mytensor = my_tensor.to(device)


model.to(device)


【注意】

model = nn.DataParallel(model)


1. 导入Pytoch模块并声明参数

mport torch
import torch.nn as nn

input_size = 5
output_size = 2

batch_size = 30
data_size = 100


device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

1. 创建虚拟数据集


class RandomDataset(Dataset):

def __init__(self, size, length):
self.len = length
self.data = torch.randn(length, size)

def __getitem__(self, index):
return self.data[index]

def __len__(self):
return self.len

batch_size=batch_size, shuffle=True, num_workers=12)

1. 搭建一个简单的模型

class Model(nn.Module):

def __init__(self, input_size, output_size):
super(Model, self).__init__()
self.fc = nn.Linear(input_size, output_size)

def forward(self, input):
output = self.fc(input)
print("\tIn Model: input size", input.size,
"output size", output.size)
return output

1. 多GPU并行计算

model = Model(input_size, output_size)
if torch.cuda.device_count() > 1:
print(f"Let's use {torch.cuda.device_count()} GPUs!")
model = nn.DataParallel(model)

model.to(device)

1. 运行模型

for data in rand_loader:
input = data.to(device)
output = model(input)
print(f"Outside: input size {input.size()},"
f"output_size {output.size()}")


Let's use 8 GPUs!
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])
Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])
Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([4, 5]) output size torch.Size([4, 2])
In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])
Outside: input size torch.Size([30, 5]) output_size torch.Size([30, 2])
In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])
In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])
In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])
In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])
In Model: input size torch.Size([2, 5]) output size torch.Size([2, 2])
Outside: input size torch.Size([10, 5]) output_size torch.Size([10, 2])


7 × 4 + 2 = 30 7\times 4 + 2=30 7 ×4 +2 =3 0

Original: https://blog.csdn.net/Sihang_Xie/article/details/125707018
Author: 自牧君
Title: 【PyTorch教程】07-PyTorch如何使用多块GPU训练神经网络模型

(0)

### 大家都在看

• #### 【Pygame合集】滴~穿越童年游戏指南 请查收：这里面有你玩过的游戏嘛？（附五款源码自取）

前言 🚀 作者 ：”程序员梨子”🚀 文章简介 ：本篇文章主要是写了pygame实现五款各种类型的小游戏！🚀 文章源码免费获取 ： 为了感谢每一个关注我的小可…

Python 2023年9月19日
061
• #### ModuleNotFoundError: No module named ‘models‘ 的解决方法

参考博客：ModuleNotFoundError: No module named ‘models’解决torch.load问题【天坑】 保存与加载 使用 …

Python 2023年8月1日
072
• #### python关于编码转码问题

python在安装时，默认的编码是ascii，当程序中出现非ascii编码时，python的处理常常会报这样的错UnicodeDecodeError: ‘ascii&#…

Python 2023年8月11日
084

网页开发时常常使用到页面跳转最近在做项目时有以下两个地方需要用到跳转 退出登录时跳转回登陆界面，后端清除SESSION 主菜单点击按钮跳转到指定页面 计划都使用重定向的方法 普通渲…

Python 2023年8月13日
093
• #### 深度学习之初始化、正则化、梯度校验

声明 本文参考【中文】【吴恩达课后编程作业】Course 2 – 改善深层神经网络 – 第一周作业(1&2&3)_何宽的博客-CSDN博客，…

Python 2023年10月25日
077
• #### feapder 与 scrapy 分布式爬虫速度对比

测试用例为使用feapder的分布式爬虫与scrapy-redis爬虫，请求1万次百度，均为32并发1进程的情况下，计算耗时 运行feapder爬虫 python3 feapder…

Python 2023年10月5日
066
• #### 一维卷积神经网络理解（torch.nn.Conv1d）

Python 2023年10月27日
058
• #### Python自学教程8-数据类型有哪些注意事项

不知不觉，python自学教程已经更新到第八篇了，再有几篇，基本的语法就介绍完了。 今天来总结一下数据类型有哪些需要注意的地方。 元组注意事项 元组是另一种经常使用到的数据类型，看…

Python 2023年11月1日
069
• #### Django Rest framework (看完直接上手用)

Restframework DjangoRestframework 主要使用 APIView 类，其 APIView 实质是对 View 进行继承加工了更多功能 请求进来 APIV…

Python 2023年8月5日
076

Python 2023年8月9日
094
• #### TDengine 的存储引擎升级之路

Python 2023年5月24日
087
• #### 微信非群管理员，我实现了@所有人

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

Python 2023年8月2日
063
• #### C罗老矣，我的程序人生还有多远

☆ 随着12月11号摩洛哥1-0葡萄牙比赛的结束，不仅说明葡萄牙对要结束本届卡塔尔世界杯了，就连C罗此生的世界杯之旅也将画上句号了。☆ 37岁的球星本该是人生最璀璨的阶段，但在足球…

Python 2023年11月5日
050
• #### 利用Python实现短视频完美伪原创，制作独一无二的视频

大家好，我是J哥。 前段时间有人私信我，说自己辛辛苦苦剪辑的短视频，上传到某平台后，由于播放量太大，收到 降权 的通知，直接导致这个账号废掉了！ 其实，各大视频平台都有自己的一套鉴…

Python 2023年11月9日
0106
• #### pygame轨迹跟踪仿真（一）

本文将讲解我的部分关键pygame轨迹跟踪仿真代码，想看完整的源码可以去下方的程序源码开源地址处领取，觉得好的话记得给我star，点赞哦~ 使用我的开源代码时请引用我的文章并表明出…

Python 2023年9月20日
061
• #### pandas 拼接 合并 DataFrame（append、assign、join、merge、concat）（一）

前言 在运用pandas进行数据分析时，经常需要将DataFrame进行拼接、合并。 pandas提供的API主要包括：append、assign、join、merge、conca…

Python 2023年8月18日
073