Ubuntu 18에서 Numpy 어레이에 상당한 메모리를 할당할 때 사용자에게 다음과 같은 문제가 발생할 수 있습니다. "모양과 데이터 유형이 있는 배열을 할당할 수 없습니다."와 같은 오류가 발생합니다. 이 문제는 메모리가 충분함에도 불구하고 발생하며 MacOS에서는 관찰되지 않습니다.
이 문제는 Ubuntu의 기본 오버커밋 모드(0)에서 발생합니다. . 이 모드에서 커널은 물리적 페이지의 오버커밋을 방지하기 위해 메모리 할당을 제한합니다. 이는 약 282GB가 필요한 지정된 것과 같이 크기가 큰 배열에 메모리를 할당할 때 문제가 됩니다.
배열을 성공적으로 할당하려면 다음을 수행하세요. 오버커밋 모드를 1로 변경합니다. 이렇게 하면 "항상 오버커밋" 모드가 효과적으로 활성화되어 실제 메모리가 있는지 여부에 관계없이 할당이 가능해집니다. 충분합니다.
루트로 오버커밋 모드를 1로 설정하려면 다음 명령을 실행합니다.
$ echo 1 > /proc/sys/vm/overcommit_memory
이것은 솔루션을 사용하면 희박하거나 대부분 비어 있는 배열에 공간을 할당할 수 있습니다. 그러나 데이터가 존재하는 물리적 페이지를 할당하려면 명시적으로 배열에 써야 한다는 점에 유의하는 것이 중요합니다. 이는 효율적인 메모리 활용에 매우 중요할 수 있습니다.
위 내용은 메모리가 충분함에도 불구하고 Ubuntu에서 대규모 NumPy 배열을 할당할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!