我有一个大类的分类问题:特征集是 512 维,类数在 3000 左右。这是一个人脸识别问题。(从 3000 位名人中识别出是谁的脸。特征是使用 FaceNet 提取的。)
训练这样一个 SVM 模型的问题太慢了:
我使用了 sklearn SVC,结果如下:
RAM usage: > 100GB // I eventually ended up using virtual memory of 100GB
Training time: > 30 hours
Classification time: > 1 hour per face
Other issue: Single CPU usage, no parallelization
总而言之,对这样的 SVM 模型使用上述幼稚的训练方式是不切实际的。
我的问题:优化 SVM 训练/使用这种规模输入数据的实用方法是什么?(~ 3000 个类,feature_size = 512)