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

相关推荐
sky17202 分钟前
VectorStoreRetriever 三种搜索类型
python·langchain
用户5191495848459 分钟前
Linux PAM环境变量注入漏洞利用工具解析
人工智能·aigc
哔哔龙10 分钟前
Langchain中“logprobs”的作用
人工智能
智谱开放平台10 分钟前
理解 Claude 的 Agentic 生态:把零散能力组织成可持续的工作流
人工智能·claude
光算科技13 分钟前
AI重写工具导致‘文本湍流’特征|如何人工消除算法识别标记
大数据·人工智能·算法
旦莫16 分钟前
Python测试开发工具库:日志脱敏工具(敏感信息自动屏蔽)
python·测试开发·自动化·ai测试
唐叔在学习21 分钟前
Python自动化指令进阶:UAC提权
后端·python
旺仔小拳头..22 分钟前
Java ---变量、常量、类型转换、默认值、重载、标识符、输入输出、访问修饰符、泛型、迭代器
java·开发语言·python
合力亿捷-小亿29 分钟前
沉浸式体验店咨询转化难?在智能客服机器人如何把“体验预约→到店→复购”串成一条链路
人工智能·机器人
狼爷31 分钟前
为什么大小公司都在all in AI Agent?这不是炒作,是AI时代的必然突围
人工智能·aigc