内存中的稀疏矩阵大小

2024-09-27 23:21:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个巨大的图像数据集,分辨率为1280*1918,格式为.jpg。一个映像在磁盘上的重量是100 kB,但是当我用skimage.io加载它时,它需要超过7 MB。所以我决定尝试以稀疏格式存储它。但这会带来意想不到的结果。在

所以我有以下代码:

from skimage.io import imread
from scipy import sparse

suffixes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']
def humansize(nbytes):
    i = 0
    while nbytes >= 1024 and i < len(suffixes)-1:
        nbytes /= 1024.
        i += 1
    f = ('%.2f' % nbytes).rstrip('0').rstrip('.')
    return '%s %s' % (f, suffixes[i])

first_image = imread("imgname.jpg")
humansize(sys.getsizeof(first_image))
>>> 7.02 MB

然后我得到了第一个稀疏算法,并尝试将其转换为稀疏(因为它是张量,我只使用了一个通道):

^{pr2}$

我知道这只是图像的三分之一,但是80*3远比我想象的要少。这个尺寸是真的吗?有没有其他方法可以存储图像,并且在记忆方面更有效? 我的目标是在8GB内存中存储最接近5000的内存。在


Tags: fromio图像imageimport格式mbfirst

热门问题