首页 > 解决方案 > 图像处理中的内存管理

问题描述

我对数据科学比较陌生,我正在尝试为Kaggle 黑色素瘤比赛创建一个 CNN 模型。我创建了以下两个函数来将 JPEG 图像文件夹转换为 Numpy 数组:

def keras_pipeline(file):
    TARGET_SIZE = (100,150)
    img = load_img(file, target_size=TARGET_SIZE)
    img_array = img_to_array(img)
    return img_array
 
def files_to_array(path, files_list):
    files = [path+file for file in files_list]
    with concurrent.futures.ProcessPoolExecutor() as executor:
        img_map = executor.map(keras_pipeline, files)
    return img_map

然后我会在卷积网络中使用该数组。

我在ASUS TUF A15上运行,它有 8 个内核、16GB RAM 和 NVIDIA GeForce GTX 1660Ti GPU。我已经尝试使用多个调整大小运行此代码TARGET_SIZE,并且每次我超载 RAM 时。我可以尝试增加交换,但我认为无论我使用多少它都会崩溃。

是否有任何文献或文档讨论图像处理中的 RAM 使用情况,或计算某些大小的 Numpy 数组将使用多少内存的方法?

标签: pythonimage-processingmemory-managementram

解决方案


推荐阅读