PyTorch 内存不足:默认 CPU 定位器无法分配内存



我试图优化Pytorch中的一些权重(weigts(,但我一直收到这个错误:

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

也就是说,当我运行(weights * col).sum() / weights.sum()时,事情会爆炸。Weights是大小为(100000,1(的张量,col也是大小为(1000000,1(的张量。两个张量的大小都很合适,但奇怪的是,我的计算机(8GB(中的所有内存都用光了。

可能是weightscol张量没有对齐(即其中一个张量被转置,因此它是(11000000(而不是(100000,1(。然后,当你做(weights * col)时,形状被一起广播,它产生了一个张量,即(1000001000000(,这可能是你获得极端内存使用的地方(因为得到的张量比你的原始张量大1000000倍(。

最新更新