当前位置: 首页 > article >正文

python学习day34

GPU训练及类的call方法

知识点回归:

  1. CPU性能的查看:看架构代际、核心数、线程数
  2. GPU性能的查看:看显存、看级别、看架构代际
  3. GPU训练的方法:数据和模型移动到GPU device上
  4. 类的call方法:为什么定义前向传播时可以直接写作self.fc1(x)
import wmi # 引入wmi模块c =  wmi.WMI() # 创建一个WMI对象processors = c.Win32_Processor()for processor in processors:print(f"CPU型号:{processor.Name}")print(f"CPU核心数:{processor.NumberOfCores}")print(f"CPU线程数:{processor.NumberOfLogicalProcessors}")

在前一天的基础上加了下面的内容,其他部分不变

# 设置GPU设备
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print(f"使用设备: {device}")# 将数据转换为PyTorch张量并移至GPU
# 分类问题交叉熵损失要求标签为long类型
# 张量具有to(device)方法,可以将张量移动到指定的设备上
X_train = torch.FloatTensor(X_train).to(device)
y_train = torch.LongTensor(y_train).to(device)
X_test = torch.FloatTensor(X_test).to(device)
y_test = torch.LongTensor(y_test).to(device)

GPU在计算的时候,相较于cpu多了3个时间上的开销,所以本次gpu时间比cpu长

  1. 数据传输开销 (CPU 内存 <-> GPU 显存)
  2. 核心启动开销 (GPU 核心启动时间)
  3. 性能浪费:计算量和数据批次

适合:

大型数据集: 例如,图像数据集成千上万张图片,每张图片维度很高。

大型模型: 例如,深度卷积网络 (CNNs like ResNet, VGG) 或 Transformer 模型,它们有数百万甚至数十亿的参数,计算量巨大。

合适的批处理大小: 能够充分利用 GPU 并行性的 batch size,不至于还有剩余的计算量没有被 GPU 处理。

复杂的、可并行的运算: 大量的矩阵乘法、卷积等。

call方法

# 不带参数的call方法
class Counter:def __init__(self):self.count = 0def __call__(self):self.count += 1return self.count# 使用示例
counter = Counter()
print(counter())  # 输出: 1
print(counter())  # 输出: 2
print(counter.count)  # 输出: 2带参数的call方法
class Adder:def __call__(self, a, b):print("唱跳篮球rap")return a + badder = Adder()
print(adder(3, 5))  # 输出: 8

http://www.lryc.cn/news/2396337.html

相关文章:

  • 秋招Day12 - 计算机网络 - 网络综合
  • QT-JSON
  • IP 风险画像技术略解
  • 秋招Day12 - 计算机网络 - 基础
  • 【网络安全】——Modbus协议详解:工业通信的“通用语言”
  • MySQL 数据库备份与恢复利器:Percona XtraBackup 详解
  • 【GlobalMapper精品教程】095:如何获取无人机照片的拍摄方位角
  • 小提琴图绘制-Graph prism
  • 写作即是生活
  • 进阶知识:Selenium底层原理深度解析
  • 基于 Flickr30k-Entities 数据集 的 Phrase Localization
  • [GHCTF 2025]SQL???
  • 【科研绘图系列】R语言绘制GO term 富集分析图(enrichment barplot)
  • JavaScript 性能优化实战指南
  • 达梦数据库:同1台服务器如何启动不同版本的DMAP服务
  • Laravel单元测试使用示例
  • Kotlin委托机制使用方式和原理
  • 鸿蒙OSUniApp集成WebAssembly实现高性能计算:从入门到实践#三方框架 #Uniapp
  • 基于 HT for Web 轻量化 3D 数字孪生数据中心解决方案
  • 精英-探索双群协同优化(Elite-Exploration Dual Swarm Cooperative Optimization, EEDSCO)
  • 解决Ubuntu20.04上Qt串口通信 QSerialPort 打开失败的问题
  • 深入浅出:使用DeepSeek开发小程序的完整指南
  • 设计模式——观察者设计模式(行为型)
  • 【前端】Vue中使用CKeditor作为富文本编辑器
  • CSS篇-6
  • 【计算机系统结构】习题2
  • 用户资产化视角下开源AI智能名片链动2+1模式S2B2C商城小程序的应用研究
  • day023-面试题总结
  • 机器学习实验七--SVM垃圾邮件分类器
  • C++23 std::fstreams基础回顾