Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何修复此错误:(-4:内存不足)无法在函数中分配6220800字节?_Python_Python 3.x_Function - Fatal编程技术网

Python 如何修复此错误:(-4:内存不足)无法在函数中分配6220800字节?

Python 如何修复此错误:(-4:内存不足)无法在函数中分配6220800字节?,python,python-3.x,function,Python,Python 3.x,Function,在这里,我试图从我的根文件夹中读取大量图像,但出现了此类错误。如何解决此问题 代码: 返回一个错误: --------------------------------------------------------------------------- error Traceback (most recent call last) <ipython-input-15-99a421951aee> in <mo

在这里,我试图从我的根文件夹中读取大量图像,但出现了此类错误。如何解决此问题

代码:

返回一个错误:

---------------------------------------------------------------------------
error                                     Traceback (most recent call last)
<ipython-input-15-99a421951aee> in <module>
    168         #videos=f'F:/deepfake_data/train_sample_videos_2/{i}'
    169     root_dir='F:/deepfake_data/train_sample_videos_2/'
--> 170     save_diffs(pairs,root_dir)
    171 

<ipython-input-15-99a421951aee> in save_diffs(pair, root_dir)
    140     frame_2=[]
    141     for n in range(0, len(onlyfiles)):
--> 142         img[n] = cv2.imread( join(mypath,onlyfiles[n]) )
    143         frame_2.append(img[n])
    144 

error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-2b5g8ysb\opencv\modules\core\src\alloc.cpp:73: error: (-4:Insufficient memory) Failed to allocate 6220800 bytes in function 'cv::OutOfMemoryError'

该错误仅表明,通过用图像填充内存,耗尽了内存。 换句话说,“deepfake_data”文件夹中的图像太多,无法放入电脑的临时内存

考虑到问题中提供的信息非常有限,可能的解决办法如下:

  • 一次在图像子集上运行程序(加载N个图像、处理、丢弃、重复)
  • 将相同的想法应用于N=1:在加载图像时对其进行处理, s、 只有一个图像始终保存在内存中
  • 在添加到列表s.t之前对图像进行向下采样。每个图像占用的内存更少
  • 考虑使用比您拥有更多RAM的云服务,例如google Colab

  • 更多信息将大大缩小答案范围。

    内存不是问题所在,问题在于地址空间。无论您的系统中有多少RAM,默认的32位Python版本只能访问2GB的RAM


    尝试安装64位版本的Python和OpenCV,即使最后换成光盘,也应该有足够的地址空间。

    您可能需要下载6.22MB的额外RAM。
    ---------------------------------------------------------------------------
    error                                     Traceback (most recent call last)
    <ipython-input-15-99a421951aee> in <module>
        168         #videos=f'F:/deepfake_data/train_sample_videos_2/{i}'
        169     root_dir='F:/deepfake_data/train_sample_videos_2/'
    --> 170     save_diffs(pairs,root_dir)
        171 
    
    <ipython-input-15-99a421951aee> in save_diffs(pair, root_dir)
        140     frame_2=[]
        141     for n in range(0, len(onlyfiles)):
    --> 142         img[n] = cv2.imread( join(mypath,onlyfiles[n]) )
        143         frame_2.append(img[n])
        144 
    
    error: OpenCV(4.4.0) C:\Users\appveyor\AppData\Local\Temp\1\pip-req-build-2b5g8ysb\opencv\modules\core\src\alloc.cpp:73: error: (-4:Insufficient memory) Failed to allocate 6220800 bytes in function 'cv::OutOfMemoryError'
    
        mypath="F:/deepfake_data/fake_id.jpg/*.*"
        frame_2=load_images_from_folder_2(mypath)
        print(frame_2)