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,这就造成程序有一些偶然机会会正常运行

相关推荐
魏祖潇4 分钟前
RAG 的关键从来不是向量——是你能不能把对的内容捞出来
人工智能
web_Leon4 分钟前
提示词工程已死?Loop Engineering 三步法,让你的 AI 效率暴增 10 倍
人工智能·ai编程
半个落月12 分钟前
为什么大模型“记不住”你?从一次 API 调用讲透 LLM 的无状态、上下文与对话历史
人工智能
血小溅14 分钟前
Skill 脚本语言选型:Python、Node.js、Shell 到底怎么选?
人工智能·后端
ZhengEnCi14 分钟前
09d-斯坦福 CS336 作业三:缩放定律(Scaling Laws)
人工智能
JieE21216 分钟前
从"无状态"到"懂你":深入理解 LLM 对话的本质,以及 Prompt/Context/Loop 三层工程进化之路
人工智能·llm·ai编程
稚雪九月17 分钟前
永久记忆,丰富情感,Atrium AI框架:给AI一颗真正的心
人工智能
小鼻子的猫19 分钟前
万字长文讲透 AI Agent 架构设计:从 ReAct 到多 Agent 协作,附完整 Python 代码
人工智能
Hector_zh21 分钟前
实战·第八篇:当模型陷入死循环——FACA破解JSON生成的架构陷阱
人工智能·agent·vibecoding
曲幽27 分钟前
刚部署的 LibreTranslate 频频翻车?我掏出了 20 年前的 StarDict 词典,用 FastAPI 搭了个本地词典翻译 API
python·fastapi·web·translate·goldendict·libretranslate·stardict·pystardict