百万级图像数据集特征聚类的内存瓶颈及解决方案咨询
超大规模图像数据集聚类内存瓶颈问题
问题背景
- 处理约100万张图像的超大规模数据集,标准流程为:采用预训练CNN(如
VGG19)提取特征,测试层次聚类、k-means等聚类方法完成图像分组,该流程在数据子集上可正常运行,但全量数据集运行时遇阻。
核心问题
- Python主流聚类工具(如
scipy层次聚类、sklearn聚类算法)要求输入为数组,但100万级特征无法全部加载进64GB内存; - 可通过
Keras图像生成器/批量处理方法提取特征,但无法将输出直接送入上述聚类算法,必须转换为数组。
约束条件
- 图像来自约4000个类别,类别间存在重叠,本次目标是通过无监督聚类将这些类别归为更宽泛的大类,必须使用全量数据,无法用子集替代(已完成随机样本测试)。
已尝试方案
- 尝试过
TensorFlow datasets、dask、numpy mmemap:可成功处理并存储提取的特征,但无法将这些对象送入聚类模型; - 探索过降维方法:未找到能与
TF datasets便捷配合、轻松存储模型输出特征的方案。
调研更新
- 经调研发现,部分聚类算法所需的pairwise distance计算是核心瓶颈,目前可使用
Batch KMeans等方法,但希望了解更多针对大特征数组计算pairwise distance的解决方案。
内容的提问来源于stack exchange,提问作者vmchance
相关产品推荐
相关产品推荐

