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

相关推荐
柳鲲鹏2 分钟前
OpenCV: DNN超采样,性能差,只能整数
人工智能·opencv·dnn
林林宋2 分钟前
speech/music/sing 分离
人工智能
赛希咨询2 分钟前
生成式人工智能问答:在软件工程中的应用
人工智能·软件工程
siliconstorm.ai3 分钟前
全球人形机器人产业现状与技术挑战:AI与云计算如何驱动下一波发展
人工智能
Clarice__6 分钟前
Anaconda安装、使用教程
windows·python·机器学习·conda·visual studio code
Fleshy数模9 分钟前
Sklearn实战KNN:快速实现分类任务的入门指南
人工智能·分类·sklearn
犀思云9 分钟前
出海SaaS全球分布式部署:流量调度的六大核心挑战与破局思考
运维·网络·人工智能·系统架构·机器人
weixin_4454023011 分钟前
如何为开源Python项目做贡献?
jvm·数据库·python
老蒋每日coding12 分钟前
AI Agent 设计模式系列(二十一)—— 探索和发现设计模式
人工智能·设计模式
格林威13 分钟前
Baumer相机铁轨表面裂纹巡检:提升铁路安全监测能力的 7 个关键技术,附 OpenCV+Halcon 实战代码!
人工智能·数码相机·opencv·算法·安全·计算机视觉·分类