python学习day34

GPU训练及类的call方法

知识点回归:

  1. CPU性能的查看:看架构代际、核心数、线程数
  2. GPU性能的查看:看显存、看级别、看架构代际
  3. GPU训练的方法:数据和模型移动到GPU device上
  4. 类的call方法:为什么定义前向传播时可以直接写作self.fc1(x)
python 复制代码
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}")

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

python 复制代码
# 设置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方法

python 复制代码
# 不带参数的call方法
class Counter:
    def __init__(self):
        self.count = 0
    
    def __call__(self):
        self.count += 1
        return 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 + b

adder = Adder()
print(adder(3, 5))  # 输出: 8
相关推荐
悠哉悠哉愿意13 分钟前
【机器学习学习笔记】线性回归实现与应用
笔记·学习·机器学习
无为之士21 分钟前
君正交叉编译链工具mips-gcc540-glibc222-64bit-r3.3.0.smaller.bz2编译st-device-sdk-c
c语言·开发语言
源力祁老师1 小时前
深入分析 json2(新)与标准的 jsonrpc的区别
开发语言
小wanga1 小时前
C++知识
java·开发语言·c++
学渣676561 小时前
文件传输工具rsync|rust开发环境安装|Ascend实验相关命令
开发语言·后端·rust
Rocky4012 小时前
在线测评系统---第n天
学习
木心爱编程2 小时前
C++容器内存布局与性能优化指南
开发语言·c++·性能优化
我是渣哥2 小时前
Java String vs StringBuilder vs StringBuffer:一个性能优化的探险故事
java·开发语言·jvm·后端·算法·职场和发展·性能优化
THMAIL2 小时前
机器学习从入门到精通 - 机器学习调参终极手册:网格搜索、贝叶斯优化实战
人工智能·python·算法·机器学习·支持向量机·数据挖掘·逻辑回归
你我约定有三2 小时前
java--写在 try 中的创建连接
java·开发语言