我正在尝试在Pytorch中优化一些重量(weigts
),但我不断收到此错误:
RuntimeError:[在CPUAllocator.cpp:64强制执行失败]。 DefaultCPUAllocator:无法分配内存:您试图分配8000000000000字节。错误代码12(无法分配内存)。
也就是说,当我运行(weights * col).sum() / weights.sum()
时,事情就炸了。权重是大小(1000000,1)的张量,而col也是大小(1000000,1)的张量。这两个张量的大小都不错,但是奇怪的是我用完了计算机上的所有内存(8GB)来进行这些操作。
答案 0 :(得分:2)
您的weights
和col
张量可能未对齐(即其中一个张量已转置,因此是(1,1000000)而不是(1000000,1)。 (weights * col)
形状被一起广播,并且它生成的张量为(1000000,1000000),这可能是您获得极端内存使用的位置(因为结果张量是原始张量的1000000倍)。>