动手学深度学习(Pytorch版)代码实践 -卷积神经网络-18GPU

18GPU

import torch
from torch import nn#使用CPU
torch.device('cpu')#使用GPU
#cuda:0和cuda是等价的
#是一个上下文管理器,用于在其上下文范围内临时设置默认CUDA设备
torch.cuda.device('cuda')#如果有多个GPU,torch.device(f'cuda:{i}'),表示使用第i块GPU(从0开始)
#是一个设备对象,用于在创建或移动张量时明确指定目标设备
torch.device('cuda:1')# 查询可用gpu的数量
print(torch.cuda.device_count())def try_gpu(i = 0):"""如果存在,则返回gpu(i),否则返回cpu()"""if torch.cuda.device_count() >= i + 1:return torch.device(f'cuda:{i}')return torch.device('cpu')def try_all_gpus():"""返回所有可用的GPU,如果没有GPU,则返回[cpu(),]"""devices = [torch.device(f'cuda:{i}')for i in range(torch.cuda.device_count())]return devices if devices else [torch.device('cpu')]
# 如果 devices 列表不为空,返回 devices 列表。
# 如果 devices 列表为空,返回一个包含单个CPU设备的列表 [torch.device('cpu')]。print(try_gpu())
print(try_gpu(10))
print(try_all_gpus())#张量与GPUx = torch.tensor([1, 2, 3])
print(x.device)
# cpu
# 默认情况下,张量是在CPU上创建的。#张量存储在GPU上
Y = torch.ones(2, 3, device=torch.device('cuda'))
X = torch.ones(2, 3, device=try_gpu())
print(Y)
print(X)
# tensor([[1., 1., 1.],
#         [1., 1., 1.]], device='cuda:0')# 假设至少有两个GPU
# Y = torch.rand(2, 3, device=try_gpu(1))
# print(Y)
# tensor([[0.4860, 0.1285, 0.0440],
#         [0.9743, 0.4159, 0.9979]], device='cuda:1')#复制
# Z = X.cuda(1)
# print(X)
# print(Z)
# tensor([[1., 1., 1.],
#         [1., 1., 1.]], device='cuda:0')
# tensor([[1., 1., 1.],
#         [1., 1., 1.]], device='cuda:1')#相加
print(X + Y)
# tensor([[2., 2., 2.],
#         [2., 2., 2.]], device='cuda:0')# 假设变量Z已经存在于第二个GPU上。 如果我们还是调用Z.cuda(1)
# 不会复制并分配新内存
# Z.cuda(1) is Z
# True# 神经网络与GPU
# 神经网络模型可以指定设备
net = nn.Sequential(nn.Linear(3, 1)) # 在cup上建立
net = net.to(device=try_gpu()) # 将模型参数放在GPU上print(net(X))
# tensor([[-1.4124],
#         [-1.4124]], device='cuda:0', grad_fn=<AddmmBackward>)#查看模型参数在哪里
print(net[0].weight.data.device)
# cuda:0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/857542.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

探索HTML中的元素关系:父元素、子元素、祖先元素与后代元素

在HTML的世界里&#xff0c;元素之间的关系构成了网页结构的基础。理解这些关系对于前端开发者来说至关重要&#xff0c;它们影响着样式的继承、事件的冒泡等关键概念。本文将介绍HTML中的几种基本元素关系&#xff1a;父元素、子元素、祖先元素和后代元素&#xff0c;并提供实…

【专业英语 复习】第10章 Information System

1. 单选题 (1分) An example of this type of report would be a sales report that shows that certain items are selling significantly above or below forecasts. () A. Inventory B. Demand C. Periodic D. Exception 正确答案&#xff1a; D 这种类型的报…

异步通知实验学习

异步通知实验 Linux 应用程序可以通过阻塞或者非阻塞这两种方式来访问驱动设备&#xff0c;通过阻塞方式访问的话应用程序会处于休眠态&#xff0c;等待驱动设备可以使用&#xff0c;非阻塞方式的话会通过 poll 函数来不断的轮询.查看驱动设备文件是否可以使用。这两种方式都需…

储能电池竞争出海分析

锂电池的激烈竞争进一步蔓延到储能行业。为保市场份额和现金流稳定&#xff0c;不少储能电池企业都开始大幅度降低报价只求中标储能项目。 随着6月的储能电芯的最高限价和系统报价都已经贴近成本价&#xff0c;一二三线的储能电池厂商将要如何应对&#xff1f; 1、储能规模快速…

三生随记——诡异的牙线

在小镇的角落&#xff0c;坐落着一间古老的牙医诊所。这所诊所早已荒废多年&#xff0c;窗户上爬满了藤蔓&#xff0c;门板上的油漆斑驳脱落&#xff0c;仿佛诉说着无尽的沉寂与孤独。然而&#xff0c;在午夜时分&#xff0c;偶尔会有低沉的呻吟声从紧闭的诊所里传出&#xff0…

Centos Stream9 和Centos Stream10的下载网址

Index of /https://mirror.stream.centos.org/

“迷你剧场新体验:探索短剧小程序系统的魅力!“

在移动互联网的时代背景下&#xff0c;短视频和短剧已经成为人们娱乐消费的新宠。短剧小程序系统&#xff0c;以其独特的互动形式、便捷的观看体验和丰富的内容生态&#xff0c;为迷你剧场带来了全新的体验。接下来将探讨这个系统的魅力所在&#xff0c;以及它如何改变着人们的…

ESP32-C3模组上跑通NVS(8)

接前一篇文章:ESP32-C3模组上跑通NVS(7) 上一回讲解了乐鑫技术支持提供的例程代码中的主函数app_main()。主函数在调用nvs_flash_init_partition函数,进行了test分区的初始化之后,接下来调用了save_blob_test函数。save_blob_test函数在同文件中,代码如下: esp_err_t s…

红队内网攻防渗透:内网渗透之内网对抗:隧道技术篇防火墙组策略HTTP反向SSH转发出网穿透CrossC2解决方案

红队内网攻防渗透 1. 内网隧道技术1.1 HTTP隧道搭建内网穿透:(解决目标出站限制做信息收集)1.1.1 项目Neo-reGeorg1.1.2 HTTP隧道搭建上线C2:(解决目标出站限制上线C2)1.1.3 哥斯拉&冰蝎自带http上线1.1.3.1 冰蝎1.1.3.2 哥斯拉1.1.3.3 CS上线http隧道1.1.3.3.1 reve…

二维码美化,修改二维码颜色样式,添加logo,文字描述

在如今的社会&#xff0c;二维码已成为我们日常生活中不可或缺的一部分&#xff0c;无论是支付、访问网站、社交媒体互动&#xff0c;还是分享信息&#xff0c;二维码都扮演着重要角色。然而&#xff0c;标准的黑白二维码有时可能显得过于单调&#xff0c;缺乏吸引力。为了提升…

EasyRecovery数据恢复软件2024免费版下载

EasyRecovery数据恢复软件&#xff0c;是我在电脑使用过程中遇到的神器&#xff01;它不仅功能强大&#xff0c;操作简便&#xff0c;还帮我找回了丢失的重要文件。今天&#xff0c;我就来给大家分享一下我的使用体验和心得。 让我来介绍一下EasyRecovery的功能。这款软件可以恢…

你只是重新发现了一些东西

指北君关于另外一条思维路径的发现。 "自以为是"的顿悟时刻 有很多时候&#xff0c;我会"自以为是"的发现/发明一些东西。这种"自以为是"的时刻通常还带有一些骄傲自豪的情绪。这种感觉特别像古希腊博学家阿基米德 在苦思冥想如何测量不规则物体…

数据库管理-第210期 HaloDB-Oracle兼容性测试02(20240622)

数据库管理209期 2024-06-22 数据库管理-第210期 HaloDB-Oracle兼容性测试02&#xff08;20240622&#xff09;1 表增加列2 约束3 自增列4 虚拟列5 表注释6 truncat表总结 数据库管理-第210期 HaloDB-Oracle兼容性测试02&#xff08;20240622&#xff09; 作者&#xff1a;胖头…

一种简单的图像分析

简介 一种简单的边界分析&#xff0c;通过相邻的像素的灰度进行判断&#xff0c;计算出边界。 测试1 原图 结果 测试2 原图 结果 代码说明 主要的技术在makeTable过程中&#xff0c;这个过程主要执行了以下几步 计算每个像素的灰度计算相邻多个像素的最大灰度差统计灰度差…

每日一题——冒泡排序

C语言——冒泡排序 冒泡排序练习 前言&#xff1a;CSDN的小伙伴们&#xff0c;大家好&#xff01;今天我来给大家分享一种解题思想——冒泡排序。 冒泡排序 冒泡法的核心思想&#xff1a;两两相邻的元素进行比较 2.冒泡排序的算法描述如下。 (1)比较相邻的元素。如果第一 个比…

如何用Go语言实现一个基于宏系统的解释器?

步骤1&#xff1a;定义语言的语法规则 首先&#xff0c;你需要定义你的宏系统语言的基本语法规则。这通常包括关键字、标识符、操作符、表达式等元素的定义。 步骤2&#xff1a;词法分析&#xff08;Lexical Analysis&#xff09; 词法分析是将源代码分解成一个个的词素&…

第6集《大乘起信论》

请大家打开《讲义》第十一页。 我们上一堂课程讲到马鸣菩萨造作本论的因缘&#xff0c;简单的说明马鸣菩萨之所以造作本论&#xff0c;是要成就大乘的信、解、行、证四种功德。这个信、解、行是大乘的因相&#xff0c;证是大乘的果相&#xff0c;所以说有如是等因缘&#xff0…

揭秘软件功能测试:如何精准锁定测试需求?

软件功能测试在确定测试需求时&#xff0c;可以遵循以下步骤和依据&#xff1a; 一、确定测试需求的步骤 了解测试背景和目的&#xff1a; 了解软件系统的应用领域、用户群体、使用场景等信息。明确测试的目的和测试范围&#xff0c;以便有针对性地进行测试。分析软件系统&am…

展讯-源码编译

1.硬件要求 编译主机要求&#xff0c;注意尽量不要使用虚拟机 CPU&#xff1a;Intel(R) Core(TM) i7-4790 CPU 3.60 GHz 内存&#xff1a;8G 硬盘&#xff1a;500G SSD Ubuntu 版本&#xff1a;Ubuntu 64-bit 14.04.5 LTS 这是最低版本要求&#xff0c;实际性能越高越好 2…

从零到一学FFmpeg:av_interleaved_write_frame 函数详析与实战

文章目录 前言一、函数原型二、功能描述三、使用场景四、使用实例 前言 av_interleaved_write_frame是FFmpeg库中的一个函数&#xff0c;用于将一个已编码的媒体数据包&#xff08;AVPacket&#xff09;写入到输出媒体文件或流中。 此函数特别关注于维护正确的交错&#xff08…