[pytorch]设备选择以及卷积神经网络的应用

0.写在前面:

首先这篇文章还没写完,因为今天要尝试对我之前的一个框架做一个简单的更新迭代,所以目前先更新这么多.

1.关于设备的选择

首先,目前的大多数电脑都是自带一些GPU(图形计算单元,在这里被称之为cuda), 需要安装相关的驱动才能正常使用这些设备和调用他们的具体情况.

复制代码
nvidia-smi

但是平时对于我们个人来说,我们的电脑基本无法承担上百万的数据调用,所以一般情况下,服务器是可以提供给我们这些东西.

如图所示是服务器上的GPU情况,可以看到服务器的开发者实现了一些其他的探测功能.

(1)单独设备的选取

首先注意一个情况,对于单一设备来说,我们称呼CPU为'cpu',称呼GPU为'gpu'

而在代码中,设备时被抽象为一个对象,我们可以通过torch包下的device来指定某个设备:

python 复制代码
torch.device('cpu')
torch.device('cuda') # 默认找到地0个GPU
torch.device('cuda:1') # 可以指定第一个GPU

# 以上三个函数会返回对应的一个设备连接对象

以上三个函数用来创建设备链接对象没通过这些设备可以获得具体的对象

当然在拿不准的时候,可以直接查询GPU的数目

python 复制代码
torch.cuda.device_count()

2.关于卷积神经网络的简单应用情况

如何构建神经网络,其实在上一篇博客中已经说到了,这里就简单介绍几个神经网络层构建函数

(1)卷积层

卷积层实现的效果其实就是一个简单的乘法加和,原理如图所示

python 复制代码
import torch.nn as nn

nn.Con2d( input_channels, kernet_num ,kernel_size=?, padding=0, stride=1)

注意一下参数中的第二个参数是我个人的理解,其实按照正常的普遍理解,这个应该叫"输出通道数目".

(2)平均池化层

(注意,大池化层的特点之一,都是不会改变频道的数目,也就是只会修改输入的尺寸,而不会修改输入的通道数目!!!!这个的pool东西,默认只有一层通道,也就是一个2d的核)

另外两个池化层需要输入的参数只有核的大小,以及步长

python 复制代码
import torch.nn as nn

nn.AvgPool2D(kernel_size=? stride=1)

(3)最大池化层

python 复制代码
import torch.nn as nn

nn.MaxPool2D(kernel_size=? stride=1)

3.如何讲模型和设备移动到指定设备上

首先我们在大多数情况下创建的张量和模型,都是默认在cpu上面的\

python 复制代码
arr.device    # cpu
net.device    # cuda/gpu

而在进行模型计算的时候,需要首先将模型和张量移动到统一设备上,这样计算很省时间

虽然但是,torch对于跨设备的数据和模型,提供了一些奇奇怪怪的手段来完成一个自动传递,但是真到了在训练的时候,临时传输不可避免地会造成大量的开销

使用to函数建立新链接即可

python 复制代码
cuda1=torch.device('cuda:1')
X = torch.tensor([0,1,2,3])
Y = X.to(cuda1)

X.device # cpu
Y.device # cuda1

而对于模型来说也是一样的的移动方式,使用to函数来实现

python 复制代码
# 顺便这里补充一个with语句
with语句用来创建一个上下文, 比如打开文件(这里要加上as)
或者说给模型设置为训练模式

当with语句中的函数块执行结束以后,就可以讲with对应的操作做一个取消
with net.train():
     ..........
当内部函数块执行结束以后,模型就会撤掉"转变为训练模式"这个操作
相关推荐
syyjhchou6 小时前
自己搭企业内部中转站,怎么让请求更容易命中缓存
人工智能·后端·语言模型·aigc
张然Adolf7 小时前
人工智能电力系统应用新手实战指南
人工智能
高洁017 小时前
数据同化与动态状态估计:让孪生持续贴合现实
人工智能·python·深度学习·transformer·迁移学习
feasibility.7 小时前
一物降一物?AI逆向没有终局:REA拆App,BLA设套,LASIK清场
人工智能·爬虫·github·逆向·skill·rea
IT古董7 小时前
AI 资讯日报 | 2026年10月25日:Kimi K3.1 Pro开源逼近前沿,OpenAI改离线训练,Claude合并Cowork,神经网络黑箱获新解,具身智能竞技场落幕
人工智能·神经网络·开源
小虎AI生活7 小时前
WorkBuddy + Loomy 实操教程:装开源技能反推任意图片提示词(附完整流程与提示词包)
人工智能·超级个体·一人公司·青玥ai
Rattenking8 小时前
OpenCV 轨迹栏操作和键盘响应操作
人工智能·opencv·计算机外设
科研邪修法8 小时前
混合方法文献矩阵:先拆字段,再确定分类
人工智能·深度学习
电科_银尘8 小时前
【深度学习项目实战·30】PM2.5短期预测:用LSTM构造没有未来信息的滑动窗口
人工智能·深度学习·lstm
汤姆宝库8 小时前
LoRA的低秩数学与QLoRA实现
人工智能·深度学习·机器学习