[英]running out of ram in google colab while importing dataset in array
我想在一個數組中存儲大約 2400 張大小為 2000**2000*3 的圖像,以提供卷積神經網絡。 但是,由於內存不足,Google Colab session 不斷崩潰。
我導入圖像數據集的代碼:
Train_data = []
for img in sorted(glob.glob("path/*.jpg")):
image= mpimg.imread(img)
image=np.array(image , dtype='float32')
image /= 255.
Train_data.append(image)
Train_data = np.array(Train_data)
有兩種方法可以避免 RAM 錯誤:
第一個選項:將圖像調整為較小的尺寸
import cv2
Train_data = []
for img in sorted(glob.glob("path/*.jpg")):
image= mpimg.imread(img)
image=np.array(image , dtype='float32')
image = cv2.resize(image, (150,150))
image /= 255.
Train_data.append(image)
Train_data = np.array(Train_data)
第二種選擇:您可以使用比迭代器消耗更少 memory 的生成器,因為它不存儲整個列表。
Train_data = []
def gen_images():
for img in sorted(glob.glob("path/*.jpg")):
image= mpimg.imread(img)
image=np.array(image , dtype='float32')
image /= 255.
yield image
for image in gen_images():
Train_data.append(image)
非常感謝您的出色回答。 我嘗試生成器,沒關系。 但是,當我嘗試下面的代碼時,我不會面臨崩潰:
Train_data =np.empty(shape=(num,m,n,c), dtype=np.float32)
i=0
for img in sorted(glob.glob("path/*.jpg")):
image= mpimg.imread(img)
image=np.array(image , dtype='float32')
image /= 255.
Train_data[i,:,:,:] = image
i+=1
任何人都可以比較這個代碼和我第一個使用 append 的代碼在空間復雜度方面嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.