提问人:kitewatermelon 提问时间:10/31/2023 最后编辑:desertnautkitewatermelon 更新时间:10/31/2023 访问量:64
如何高效加载图像?
How to load image efficiently?
问:
- 我的谷歌驱动器文件夹及其网址中有 17,026 个网络漫画海报图像数据(.jpeg/(256,256,3))
- 我想按他们的绘画风格进行聚类。
- 所以我将数据加载到变量中来学习模型(我使用了 K-means)
- 但是当我完成加载系统内存的状态是 3.1/12.7 但是..
- 同时转换图像 BOMB!!我的系统内存爆炸了。 (我不仅想学习原始图像,还想学习精明的边缘图像和HSV图像..)
所以我必须有效地使用我的内存
请帮帮我。我的图像数据是否太大 (17026*(2562563))?
os.chdir(image_dir)
files = os.listdir(image_dir)
jpeg_img = []
for file in files:
if '.jpeg' in file:
f = cv2.imread(file)
jpeg_img.append(f)
edge_X = []
hsv_X = []
#edge
for img in jpeg_img:
edge_X.append(cv2.Canny(img,256,256))
edgedX = np.array(edge_X)
for img in jpeg_img:
hsvImage = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
hsv_X.append(hsvImage)
hsv_X = np.array(hsv_X)
答: 暂无答案
评论
jpeg_img
~3.1 GiB。接下来是另一个 ~1GiB。 又是 1GiB。然后,使用另一个 ~3.1 GiB 进行填充。在此上,您调用 ,这将需要进一步的 ~3.1 GiB。不完全是我所说的有效使用内存。中间列表和都是冗余的,您可以提前分配 numpy 数组并直接在循环中填充它们。这样一来,内存使用量就减少了 35%。edge_X
edgedX
hsv_X
np.array(hsv_X)
edge_X
hsv_X