我尝试加载大型音频数据集并实现audio.spectrogram.
我收到了这个错误:
$ Torch: not enough memory: you tried to allocate 0GB. Buy new RAM! at /home/XXXX/torch/pkg/torch/lib/TH/THGeneral.c:222
stack traceback:
[C]: at 0xb732c560
[C]: in function '__add'
/home/XXXX/torch/install/share/lua/5.1/audio/init.lua:107: in function 'spectrogram'
large.lua:24: in main chunk
[C]: in function 'dofile'
[string "_RESULT={dofile "large.lua"}"]:1: in main chunk
[C]: in function 'xpcall'
/home/XXXX/torch/install/share/lua/5.1/trepl/init.lua:650: in function 'repl'
...XX/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:199: in main chunk
[C]: at 0x0804d6d0
Run Code Online (Sandbox Code Playgroud)
火炬7有内存限制吗?
不,Torch 没有内存限制,但它要求在分配内存时满足某些条件。
如果您查看THGeneral.c(错误来自何处),您会发现当分配使用THAllocInternal失败时会引发此错误。从你的输出来看,我猜你在 Unix 系统上,而且我还猜你正在尝试分配大量内存(但小于 1GB)。如果您想要对齐超过 5120 字节,THAllocInternal将调用posix_memalign64 字节对齐内存,否则它将调用 standard malloc. 也就是说,您看到的错误来自操作系统提供的这些功能之一。你必须去那里检查。您还可以尝试使用该标志重新编译 TorchDISABLE_POSIX_MEMALIGN以排除这种情况。