构建肺结肠癌CNN分类器遇数组append错误及内存溢出问题
肺与结肠癌分类CNN模型构建的内存优化问题
我正在构建用于肺与结肠癌分类的CNN模型,使用Kaggle的肺与结肠癌病理图像数据集。
基础代码
导入库
import numpy as np import pandas as pd from PIL import Image from glob import glob import cv2 import gc import os
数据集路径配置
path = PATH + 'lung_colon_image_set/lung_image_sets' classes = os.listdir(path)
注:需自行定义PATH以加载数据集。
统计图像数量
for cat in classes: image_dir = f'{path}/{cat}' images = os.listdir(image_dir) print('Images Count: ', len(images)) IMG_SIZE = 256
初始错误:AttributeError
我将X、Y定义为列表,但执行X.append()时出现*AttributeError: 'numpy.ndarray' object has no attribute 'append'*错误,相关代码如下:
X = list() Y = list() for i, cat in enumerate(classes): images = glob(f'{path}/{cat}/*.jpeg') for image in images: img = cv2.imread(image) #img1 = cv2.resize(img, (IMG_SIZE, IMG_SIZE)) #X = append(X,cv2.resize(img, (IMG_SIZE, IMG_SIZE))) #X = np.append(X,cv2.resize(cv2.imread(image), (IMG_SIZE, IMG_SIZE))) #X = np.append(X, img1) X.append(cv2.resize(img, (IMG_SIZE, IMG_SIZE))) Y.append(i) X = np.asarray(X) one_hot_encoded_Y = pd.get_dummies(Y).values
尝试多种修正方式(见注释代码)但循环无法结束,错误回溯如下:
NameError Traceback (most recent call last) Cell In[37], line 16 10 img = cv2.imread(image) 11 #img = img.tolist() 12 #print(type(img)) 13 #img1 = cv2.resize(img, (IMG_SIZE, IMG_SIZE)) 14 #print(type(img1.shape)) ---> 16 X.append(cv2.resize(img, (IMG_SIZE, IMG_SIZE))) 17 #X = np.append(X,cv2.resize(cv2.imread(image), (IMG_SIZE, IMG_SIZE))) 18 #X = np.append(X, img1) 19 #X=np.append(X, cv2.resize(img, (IMG_SIZE, IMG_SIZE))) 20 #Y=np.append(i, Y) 22 Y.append(i) AttributeError: 'numpy.ndarray' object has no attribute 'append'
内存溢出问题(编辑后)
将图像数组转列表后修复了上述错误,但处理约5000-6000张图像(共15000张)时内核崩溃,推测是内存占用过高,代码如下:
for i, cat in enumerate(classes): images = glob(f'{path}/{cat}/*.jpeg') kk =0 #for tracking only for image in images: kk+=1 print('kk = ', kk) #tracking img1 = (cv2.resize(cv2.imread(image), (IMG_SIZE, IMG_SIZE))).tolist() X.append(img1) Y.append(i)
我无法使用extend(),需要保留图像元素的列表结构;尝试调用gc()无效,且不想减少图像数量,设备为MacBook Pro M1(无GPU),恳请提供内存优化方案。
内容的提问来源于stack exchange,提问作者Toly
相关产品推荐
相关产品推荐

