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

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.xdnf.cn/news/10335.html

相关文章:

  • 学习海康VisionMaster之表面缺陷滤波
  • Cesium快速入门到精通系列教程
  • 【KWDB 创作者计划】_探秘浪潮KWDB数据库:从时间索引到前沿技术
  • 用户认证的魔法配方:从模型设计到密码安全的奇幻之旅
  • ApiHug 1.3.9 支持 Spring 3.5.0 + Plugin 0.7.4 内置小插件升级!儿童节快乐!!!
  • vue-08(使用slot进行灵活的组件渲染)
  • Java Spring 之监听器(Listener)详解与实战
  • 如何查看电脑电池性能
  • 对蚁群算法的理解和实例详解
  • [笔记]一般小信号测量方法
  • 企业微信接入说明
  • proteus美观与偏好设置
  • Qq空间照片视频批量下载工具
  • TomSolver 库 | 入门及使用
  • docker安装和镜像源替换
  • Python训练营---Day41
  • GoogLeNet网络模型
  • 【求A类B类月】2022-2-9
  • 【python】uv管理器
  • PS裁剪后像素未删除?5步解决“删除裁剪像素”失效问题
  • Role of ISMEAR in insulator-conductor transition
  • Java-Character类静态方法深度剖析
  • Day08
  • 每日算法刷题Day19 5.31:leetcode二分答案3道题,用时1h
  • 本地部署基于 Kibana 开源搜索引擎 Elasticsearch 并实现外部访问
  • acwing刷题
  • 【Rust 轻松构建轻量级多端桌面应用】
  • 【沉浸式求职学习day51】【发送邮件】【javaweb结尾】
  • Kafka 的 ISR 机制深度解析:保障数据可靠性的核心防线
  • 在RTX5060Ti上进行Qwen3-4B的GRPO强化微调