PyTorch内存溢出:DefaultCPUAllocator无法分配内存。

10

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

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

具体来说,在运行 (weights * col).sum() / weights.sum() 时出现问题。权重是大小为(1000000,1)的张量,而col也是大小为(1000000,1)的张量。这两个张量的大小都还可以,但似乎使用计算机的所有内存(8GB)进行这些操作有点奇怪。

1个回答

10
可能是您的weightscol张量未对齐(即其中一个转置为(1,1000000)而不是(1000000,1))。 这时,当您执行(weights * col)时,形状会一起传播,生成一个张量,其形状为(1000000,1000000),这可能是导致极端内存使用情况的原因(因为结果张量比原始张量大1000000倍)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接