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

相关推荐
Coder_Boy_6 分钟前
基于SpringAI的智能运维平台(AI驱动)
大数据·运维·人工智能
圆号本昊16 分钟前
RimWorld AI记忆系统深度技术分析
人工智能
Francek Chen36 分钟前
【飞算JavaAI】智能开发助手赋能Java领域,飞算JavaAI全方位解析
java·开发语言·人工智能·ai编程·飞算
Hello娃的1 小时前
【神经网络】人工神经网络ANN
人工智能·深度学习·神经网络
RockHopper20251 小时前
一种认知孪生xLLM架构的原理说明
人工智能·llm·数字孪生·认知孪生
weixin199701080161 小时前
哔哩哔哩 item_get_video - 获取视频详情接口对接全攻略:从入门到精通
人工智能·音视频
沛沛老爹1 小时前
Web开发者实战RAG评估:从指标到工程化验证体系
前端·人工智能·llm·agent·rag·评估
清水白石0081 小时前
《深入 Python 上下文管理器:contextlib.contextmanager 与类实现方式的底层差异全景解析》
开发语言·python
qq_200465051 小时前
日益衰落的五常“礼、义、仁、智、信”,蒸蒸日上的五德“升、悟、净、正、合”
人工智能·起名大师·改名大师·姓名学大师·姓名学专家
程序员佳佳1 小时前
GPT-4时代终结?GPT-5.2与Banana Pro实测数据公开,普通开发者如何接住这泼天富贵
开发语言·python·gpt·chatgpt·重构·api·midjourney