torch.empty()造成的内存溢出问题

torch.empty()造成的内存溢出问题

问题

代码实现的时候遇见了一个很奇怪的问题,运行同一段代码会出现一些奇怪的超大指数值,调试发现是混淆了torch.empty 和torch.zeros的概念。对torch.empty初始化的矩阵直接"+=",出现的内存问题。

例如:

python 复制代码
import torch

a = torch.empty((3,4))
a += 1

上述代码不会报错,但是结果不正确。

原因

这是由于torch.empty 创建了矩阵会分配一个内存地址,该地址对应的数据是随机的,可能跟你上一次的缓存或者其他数据有关

例如

python 复制代码
a = torch.empty((3,4))
#
# tensor([[6.8943e+34, 1.6212e-19, 1.4586e-19, 7.7179e+28],
#        [1.6217e-19, 1.4586e-19, 1.8617e+25, 1.6212e-19],
#        [1.4587e-19, 1.1578e+27, 3.3248e-06, 6.0542e+22]])

这里的矩阵值是随机的,因此torch.empty只起到一个占位的作用,只有需要赋值的时候可以使用,

但是如果明确需要初始值为0,需要torch.zeros

PS: 不排除有一定的机率初始化为0,这就造成程序有一些偶然机会会正常运行

相关推荐
leikooo7 分钟前
基于 GitHub Actions 的 Notion RSS 自动化部署指南
python·github·rss
万岳科技程序员小金21 分钟前
AI数字人小程序源码开发全流程实战:前端交互+后端算法部署指南
前端·人工智能·软件开发·ai数字人小程序·ai数字人系统源码·ai数字人软件开发·ai数字人平台搭建
励ℳ23 分钟前
机器学习-LASSO算法指南
人工智能·算法·机器学习
小刘的大模型笔记24 分钟前
大模型微调PPO原理——零基础吃透RLHF核心算法
人工智能
IT_Octopus29 分钟前
AI 工程 生产级别向量数据库Milvus2.6.10性能测试报告
数据库·人工智能·milvus
rainbow72424431 分钟前
主流AI证书全面对比
人工智能
Hcoco_me32 分钟前
深度学习目标关联:常见深度学习匹配方法全面详解
人工智能·深度学习·分类·数据挖掘·自动驾驶
EF@蛐蛐堂32 分钟前
【AI】openclaw 小龙虾料理全攻略
人工智能
l1t36 分钟前
在python 3.14 容器中安装和使用chdb包
开发语言·python·clickhouse·chdb