【小白笔记】区分类方法/实例方法和静态函数/命名空间函数

针对 PyTorch 编程习惯的关键问题。在背诵代码时,理解何时需要写 torch. 前缀,何时不需要,是区分类方法/实例方法静态函数/命名空间函数的核心。

1. X_test = X_test.to(self.device) 为什么不用 torch. 前缀?

人话解释: 因为 .to() 这个功能,是 X_test 自己作为一个"物体"(张量实例)所拥有的"能力",而不是 PyTorch 这个"工具箱"里需要被调用的一个通用工具。

详细分解:
  1. 对象方法 (Instance Method)

    • 谁拥有? X_test 这个张量实例拥有。
    • 怎么调用? 必须通过实例名加点号(.)来调用,即 X_test.to(...)
    • 作用: 通常用于操作对象自身 的状态(比如把 X_test 从 CPU 移动到 GPU)。
    • 例子: .to(), .unsqueeze(), .pow(), .cpu(), .tolist()
  2. 命名空间函数 (Namespace/Static Function)

    • 谁拥有? 属于 torch 命名空间(即 PyTorch 整个工具箱)。
    • 怎么调用? 必须写 torch. 前缀。
    • 作用: 通常用于创建新的张量、执行数学运算、或者进行全局配置。
    • 例子: torch.manual_seed(), torch.from_numpy(), torch.sum(), torch.sqrt(), torch.argsort()

2. 什么时候应该前缀 torch.?(背诵记忆指南)

请记住这个原则:

动作类型 必须加 torch. 前缀 不加 torch. 前缀 (通过实例调用)
创建张量 torch.from_numpy(), torch.tensor(), torch.zeros()
通用运算 torch.sum(), torch.sqrt(), torch.argsort() (对任何张量都适用的数学函数)
配置/环境 torch.manual_seed(), torch.device(), torch.cuda.is_available()
张量移动 X_test.to(device), tensor.cpu()
张量形状 tensor.unsqueeze(0), tensor.view()
张量元素操作 tensor.pow(2) (通常是 Python 运算符的重载,如 **2)
针对您的 KNN 代码的记忆点:
  1. 需要 torch. 的地方:

    • torch.manual_seed()
    • torch.device(...)
    • torch.from_numpy(...)
    • torch.sum(...) (数学函数)
    • torch.sqrt(...) (数学函数)
    • torch.argsort(...) (排序查找函数)
  2. 不需要 torch. 的地方 (通过张量实例调用):

    • X_train.to(self.device)
    • x_new.unsqueeze(0)
    • differences.pow(2) (这是 Tensor 对象的方法)
    • k_nearest_labels_torch.cpu().tolist()

总之,如果你看到代码中没有点号 连接到 torch. 而是直接 对一个变量(比如 X_test)使用点号操作(.to()),那么这个操作就是这个变量(张量实例)本身自带的能力

相关推荐
冷雨夜中漫步15 分钟前
Python快速入门(6)——for/if/while语句
开发语言·经验分享·笔记·python
Gain_chance2 小时前
34-学习笔记尚硅谷数仓搭建-DWS层最近一日汇总表建表语句汇总
数据仓库·hive·笔记·学习·datagrip
Gain_chance4 小时前
36-学习笔记尚硅谷数仓搭建-DWS层数据装载脚本
大数据·数据仓库·笔记·学习
肖永威4 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos
暗光之痕4 小时前
Unreal5研究笔记 Actor的生命周期函数
笔记·unreal engine
Gain_chance5 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
宵时待雨5 小时前
STM32笔记归纳9:定时器
笔记·stm32·单片机·嵌入式硬件
m0_719084116 小时前
React笔记张天禹
前端·笔记·react.js
天天爱吃肉82186 小时前
跟着创意天才周杰伦学新能源汽车研发测试!3年从工程师到领域专家的成长秘籍!
数据库·python·算法·分类·汽车
Rorsion7 小时前
PyTorch实现二分类(单特征输出+单层神经网络)
人工智能·pytorch·分类