PyTorch内存不足:DefaultCPUAllocator无法分配内存

时间:2020-07-08 01:37:00

标签: pytorch out-of-memory

我正在尝试在Pytorch中优化一些重量(weigts),但我不断收到此错误:

RuntimeError:[在CPUAllocator.cpp:64强制执行失败]。 DefaultCPUAllocator:无法分配内存:您试图分配8000000000000字节。错误代码12(无法分配内存)。

也就是说,当我运行(weights * col).sum() / weights.sum()时,事情就炸了。权重是大小(1000000,1)的张量,而col也是大小(1000000,1)的张量。这两个张量的大小都不错,但是奇怪的是我用完了计算机上的所有内存(8GB)来进行这些操作。

1 个答案:

答案 0 :(得分:2)

您的weightscol张量可能未对齐(即其中一个张量已转置,因此是(1,1000000)而不是(1000000,1)。 (weights * col)形状被一起广播,并且它生成的张量为(1000000,1000000),这可能是您获得极端内存使用的位置(因为结果张量是原始张量的1000000倍)。