如何高效加载图像?

How to load image efficiently?

提问人:kitewatermelon 提问时间:10/31/2023 最后编辑:desertnautkitewatermelon 更新时间:10/31/2023 访问量:64

问:

  1. 我的谷歌驱动器文件夹及其网址中有 17,026 个网络漫画海报图像数据(.jpeg/(256,256,3))
  2. 我想按他们的绘画风格进行聚类。
  3. 所以我将数据加载到变量中来学习模型(我使用了 K-means)
  4. 但是当我完成加载系统内存的状态是 3.1/12.7 但是..
  5. 同时转换图像 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)
python 镜像 opencv 内存

评论

0赞 JonSG 10/31/2023
对大型数据集进行聚类可能是一项挑战。你有没有考虑过可能地训练一个分类器?
0赞 s4mdf0o1 10/31/2023
你只需要一个包含所有图像的变量吗?你不能处理每张图像吗?
0赞 kitewatermelon 10/31/2023
@JonSG实际上我对此并不纠结,我的公羊在学习之前就爆炸了......
0赞 Jason Chia 10/31/2023
你能包括你的完整代码吗?你在做什么?为什么不使用 Keras 图像加载器 API?tensorflow.org/api_docs/python/tf/keras/utils/......
1赞 Dan Mašek 11/1/2023
jpeg_img~3.1 GiB。接下来是另一个 ~1GiB。 又是 1GiB。然后,使用另一个 ~3.1 GiB 进行填充。在此上,您调用 ,这将需要进一步的 ~3.1 GiB。不完全是我所说的有效使用内存。中间列表和都是冗余的,您可以提前分配 numpy 数组并直接在循环中填充它们。这样一来,内存使用量就减少了 35%。edge_XedgedXhsv_Xnp.array(hsv_X)edge_Xhsv_X

答: 暂无答案