我有多个文件夹的图像,我读到dataframe,每个文件夹在一个dataframe行与它是相关联的数据。整个文件夹的大小是350MB,但是当我把它读入dataframe时,总大小变成了24GB,你知道为什么会这样吗
videos = pd.DataFrame()
filepath= 'C:/Users/sarmad/Documents/data/labels_metadata.csv''
metadf = pd.read_csv(filepath)
metadf.index = metadf.Instance_name
for folder in folders:
pth_upd = pth + folder + '/'
metacsv=
' pd.read_csv('C:/Users/sarmad/Documents/dev/'+format(folder)+'.csv')
x=format(folder)
meta = metadf.loc[format(folder)]
meta = pd.DataFrame([meta.values], index=[folder], columns=metadf.columns)
df = pd.DataFrame(index=[folder])
df = df.join(meta)
allfiles = os.listdir(pth_upd)
files = []
columns = ['data']
for file in allfiles:
files.append(file) if ('.jpg' in file) else None
samples = np.empty((1,227,227))
for file in files:
img = cv2.imread(os.path.join(pth_upd,file),0)
img = img.reshape(1,227,227)
img=img.astype(np.float32)
samples = np.append(samples, img, axis=0)
result = pd.DataFrame(([[samples]]), index=[folder], columns=['videos'])
print(samples.shape)
videos=videos.append(result)
videos.info(memory\u usage='deep')
<class 'pandas.core.frame.DataFrame'>
Index: 2 entries, dev_001 to dev_060
Data columns (total 1 columns):
videos 60 non-null object
dtypes: object(1)
memory usage: 24GB
如果在转换图像时使用
np.int8
而不是np.float32
,会有帮助吗?因为RGB值的范围是(0,255),可以表示为8位整数然而,理论上,它只是将内存大小减少了4倍,所以它仍然占用6GB的内存
相关问题 更多 >
编程相关推荐