파이썬의 opencv를 사용하여 이미지를 읽는 프로그램을 작성하고 3GB 이미지를로드하려고 시도했지만 프로그램이 중단되었습니다. 내 PC에 32GB의 메모리가 있지만이 프로그램을 실행하면 메모리가 부족합니다. 그 원인은 무엇입니까?opencv를 사용하여 파이썬 프로그램의 메모리 부족 현상이 발생하고 있습니까?
오류 메시지가 나타나지 않고 PC가 비정상적으로 무겁게됩니다. 나는 Ubuntu의 System Monitor로 그것을 확인했고 메모리와 스왑 공간이 부족했다.
이미지를 하나의 배열로 가져 와서 tensorflow 심층 학습 프로그램에 전달합니다. 이미지의 크기는 200 x 200 컬러 이미지입니다.
저는 64 비트 버전의 파이썬을 사용합니다. 메모리 부족에 대한
import os
import numpy as np
import cv2
IMG_SIZE = 200
def read_images(path):
dirnames = sorted(os.listdir(path))
files = [sorted(os.listdir(path+dirnames[i]))\
for i in range(len(dirnames))]
i = 0
images = []
for fs in files:
tmp_images = []
for f in fs:
img = cv2.imread(path +dirnames[i] + "/" + f)
img = cv2.resize(img, (IMG_SIZE, IMG_SIZE))
img = img.flatten().astype(np.float32)/255.0
tmp_images.append(img)
i = i + 1
images.append(tmp_images)
return np.asarray(images)
오류 메시지를 게시하십시오. – voiDnyx
32 비트 버전의 Python 또는 64 비트를 사용하고 있습니까? –
64 비트 버전을 사용합니다. – pie