pytorch - PyTorch 内存不足:DefaultCPUAllocator 无法分配内存
问题描述
我正在尝试优化weigts
Pytorch 中的一些权重(),但我不断收到此错误:
RuntimeError: [enforce fail at CPUAllocator.cpp:64]。DefaultCPUAllocator:无法分配内存:您尝试分配 8000000000000 字节。错误代码 12(无法分配内存)。
即,当我跑步时事情会爆炸(weights * col).sum() / weights.sum()
。权重是大小为 (1000000,1) 的张量,而 col 也是大小为 (1000000, 1) 的张量。两个张量的大小都合适,但我为这些操作耗尽了我计算机中的所有内存 (8GB) 似乎很奇怪。
解决方案
可能是你的张量weights
和col
张量没有对齐(即其中一个被转置,所以它是(1,1000000)而不是(1000000,1)。然后当你这样做时(weights * col)
,形状会一起广播,它会产生一个张量( 1000000,1000000)这可能是您获得极端内存使用的地方(因为生成的张量是原始张量的 1000000 倍)。
推荐阅读
- c++ - 案例标签值已经出现错误
- python-3.x - 我想在列表中添加“100”所以使用附加方法
- java - 有人可以解释构造函数吗?
- python - BERT 在 colab 上使用 TPU 上的 Estimator 进行微调 TypeError: *=: 'NoneType' 和 'int' 的不支持的操作数类型
- r - geom_path 在 gganimate 中淡出
- google-cloud-platform - 将 GCP 连接器与无服务器框架一起使用
- javascript - 我无法正确地将用户输入添加到状态,当它出现时,地图不是函数错误
- excel - 修改 VBA 以便将表格转移到新工作表也进行格式设置
- redis - 使用 Spring & Lettuce 接收 Redis 流数据
- c - “错误:预期表达式”不断返回。我究竟做错了什么?