news 2026/1/18 20:05:02

DAY 37 GPU训练及类的call方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DAY 37 GPU训练及类的call方法

一、GPU性能的查看:看架构代际、核心数、线程数

二、GPU性能的查看:看显存、看级别、看架构代际

三、GPU训练的方法:数据和模型移动到GPU device上

模型在 GPU 上训练,主要是将模型和数据迁移到 GPU 设备上。

在 PyTorch 里,.to(device) 方法的作用是把张量或者模型转移到指定的计算设备(像 CPU 或者 GPU)上。

- 对于张量(Tensor):调用 .to(device) 之后,会返回一个在新设备上的新张量。

- 对于模型(nn.Module):调用 .to(device) 会直接对模型进行修改,让其所有参数和缓冲区都移到新设备上。

在进行计算时,所有输入张量和模型必须处于同一个设备。要是它们不在同一设备上,就会引发运行时错误。并非所有 PyTorch 对象都有 .to(device) 方法,只有继承自 torch.nn.Module 的模型以及 torch.Tensor 对象才有此方法。

RuntimeError: Tensor for argument #1 'input' is on CPU, but expected it to be on GPU

这个常见错误就是输入张量和模型处于不同的设备。

四、类的call方法:为什么定义前向传播时可以直接写作self.fc1(x)

Python 中,只要一个类定义了 __call__ 方法,这个类的实例就变成了可调用对象(可以像函数一样加括号调用)。

self.fc1(x) 能直接调用的本质是:self.fc1 指向的是一个可调用对象(通常是 PyTorch/TensorFlow 等框架的层类实例,这些类实现了 __call__ 方法),而 __call__ 是 Python 中让实例 “像函数一样被调用” 的核心魔法方法。

self.fc1 通常是 nn.Linear 类的实例,而 nn.Linear(以及所有 nn.Module 子类)都实现了 __call__ 方法,且 __call__ 会关联到层的前向传播逻辑(forward 方法)。

self.fc1(x) 能直接写的核心是:

  • fc1 是 nn.Module 子类(如nn.Linear)的实例;
  • nn.Module 实现了 __call__ 方法,使得实例可被 “函数式调用”;
  • 调用 self.fc1(x) 时,自动触发 __call__ → 调用 forward 方法,完成前向传播。

@浙大疏锦行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/12 21:05:58

GBase 8a MPP集群不同版本升级简介

南大通用 GBase 8a MPP集群版本有86版本、952版本、953版本。V8512集群不允许直接升级到V95,需先升级到V86后,再从V86升级到V952版。目前不支持从V86版本直接升级到V953版本,需要先升级到V952版本集群后再升级到V953版本集群。升级的整体流程…

作者头像 李华
网站建设 2025/12/12 21:03:30

Cloudpods:开源多云管理平台的完整使用指南

Cloudpods:开源多云管理平台的完整使用指南 【免费下载链接】cloudpods 开源、云原生的多云管理及混合云融合平台 项目地址: https://gitcode.com/yunionio/cloudpods Cloudpods是一个开源的云原生多云管理及混合云融合平台,能够帮助企业统一管理…

作者头像 李华
网站建设 2025/12/12 21:03:25

自抗扰控制(ADRC)车辆轨迹跟踪 自抗扰控制旨在有效地抑制系统中的干扰和扰动,从而实现对系统...

自抗扰控制(ADRC)车辆轨迹跟踪 自抗扰控制旨在有效地抑制系统中的干扰和扰动,从而实现对系统的精确控制,在面对未知或难以建模的扰动时表现出色。 基于二自由度动力学模型和frenet坐标系建立的模型状态空间方程,使用ADRC控制跟踪轨迹&#xf…

作者头像 李华
网站建设 2026/1/18 8:37:20

lambda表达式

定义lambda表达式。方法的组成&#xff0c;参数列表&#xff0c;返回值&#xff0c;方法名&#xff0c;方法体func<>方法类型&#xff0c;函数类型&#xff0c;第一个类型是参数1的类型&#xff0c;第二个类型是参数2的类型&#xff0c;还可写多个类型&#xff0c;但最后…

作者头像 李华
网站建设 2025/12/14 17:31:12

Linux 安全加固:禁用 IPv6 ICMP 重定向

在 Linux 系统安全基线检查中&#xff0c;IPv6 ICMP 重定向是一个常见的中危风险点。如果未禁用&#xff0c;攻击者可能利用该机制进行路由欺骗&#xff0c;导致流量被劫持或篡改。&#x1f50e; 什么是 ICMP 重定向 ICMP 重定向&#xff1a;当路由器发现有更优路径时&#xff…

作者头像 李华
网站建设 2025/12/12 21:02:07

解决Feign只配置name或者value,报java.net.UnknownHostException

解决Feign只配置name或者value,报java.net.UnknownHostException问题背景: 服务A与服务B在同一个阿里云mse(nacos)下注册,部署在k8s容器上服务A通过Feign把服务B的名称配置到name或者valuenacos后台可以看到两个服务都已经注册 但是一直报java.net.UnknownHostException问题排查…

作者头像 李华