我试图优化Pytorch中的一些权重(weigts
(,但我一直收到这个错误:
RuntimeError:[在CPUAllocator上强制失败.cpp:64]。默认CPUAllocator:无法分配内存:您试图分配8000000000000字节。错误代码12(无法分配内存(。
也就是说,当我运行(weights * col).sum() / weights.sum()
时,事情会爆炸。Weights是大小为(100000,1(的张量,col也是大小为(1000000,1(的张量。两个张量的大小都很合适,但奇怪的是,我的计算机(8GB(中的所有内存都用光了。
可能是weights
和col
张量没有对齐(即其中一个张量被转置,因此它是(11000000(而不是(100000,1(。然后,当你做(weights * col)
时,形状被一起广播,它产生了一个张量,即(1000001000000(,这可能是你获得极端内存使用的地方(因为得到的张量比你的原始张量大1000000倍(。