【问题标题】:PyTorch running out of memory: DefaultCPUAllocator can't allocate memoryPyTorch 内存不足:DefaultCPUAllocator 无法分配内存
【发布时间】:2023-04-05 16:13:01
【问题描述】:

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

RuntimeError: [enforce fail at CPUAllocator.cpp:64] 。 DefaultCPUAllocator:无法分配内存:您尝试分配 8000000000000 字节。错误代码 12(无法分配内存)。

也就是说,当我运行(weights * col).sum() / weights.sum() 时,事情就爆发了。权重是大小为 (1000000,1) 的张量,而 col 也是大小为 (1000000, 1) 的张量。两个张量的大小都合适,但我为这些操作耗尽了我计算机中的所有内存 (8GB) 似乎很奇怪。

【问题讨论】:

    标签: pytorch out-of-memory


    【解决方案1】:

    可能是您的 weights 和 col 张量未对齐(即其中一个被转置,因此它是 (1,1000000) 而不是 (1000000,1)。然后当您执行 (weights * col) 时形状一起广播,它会产生一个 (1000000,1000000) 的张量,这可能是您获得极端内存使用的地方(因为生成的张量是原始张量的 1000000 倍)。

    【讨论】:

      猜你喜欢
      • 2021-10-07
      • 2014-05-11
      • 2020-12-22
      • 2015-08-15
      • 1970-01-01
      • 2016-06-19
      • 2023-04-05
      • 2020-05-05
      • 2020-06-25
      相关资源
      最近更新 更多