首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当试图用py手电筒启动零张量时的内存问题

当试图用py手电筒启动零张量时的内存问题
EN

Data Science用户
提问于 2021-04-27 10:07:25
回答 1查看 643关注 0票数 0

在尝试初始化torch.zeros - torch.zeros((2000,2000,3200), device=device)时,我面临内存问题。

获取以下错误:

代码语言:javascript
复制
RuntimeError: CUDA out of memory. Tried to allocate 47.69 GiB (GPU 0; 8.00 GiB total capacity; 1.50 KiB already allocated; 6.16 GiB free; 2.00 MiB reserved in total by PyTorch)

我的问题是:为什么零张量需要那么大的记忆?还是我做错了什么?

我在另一个系统中与getsizeof核对--这个张量的大小仅显示为72字节。

EN

回答 1

Data Science用户

回答已采纳

发布于 2021-04-27 10:38:45

张量占用这么多内存的原因是,在默认情况下,张量将使用torch.float32类型存储值。此数据类型将对张量中的每个值使用4kb (使用.element_size()检查),这将给出与张量中的零值相乘后的总计48 of (4 * 2000 * 2000 * 3200 = 47.68GB)。您可以尝试的是将数据类型从torch.float32更改为类似于torch.int8的数据类型,它只对每个值使用1kb,将所需内存减少75%,降至12 75。但是,考虑到您似乎只有8GB可用,这也不会解决您的问题。因此,唯一的解决办法就是使用张量来减少数值。

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/93613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档