如何在PyTorch中无需微调从预训练模型提取128维特征向量
无新增可学习参数的特征降维方案
有多种无需引入可学习参数、无需微调模型的方案,可将ResNet50输出的512维视觉特征转换为128维嵌入向量,具体如下:
- 固定随机投影
预先生成形状为(512, 128)的固定随机矩阵,矩阵元素可从正态分布/均匀分布中采样,全程冻结不参与训练更新,将512维原始特征与该矩阵做矩阵乘法即可得到128维输出。该方法计算速度快,理论上可近似保留原始特征的空间距离关系,只需固定随机种子即可保证结果可复现,适合无标注数据场景。 - 特征选择
对全量数据集的512维特征做统计分析,直接筛选出方差最高的前128维,或与下游任务相关性最高的前128维,舍弃剩余维度即可。该方案无额外计算开销,也不需要引入额外运算资源,通用场景下直接选择方差Top128的维度即可,无需下游任务标注。 - 分组聚合下采样
将512维特征每4维分为一组,每组取均值/最大值得到1个值,最终拼接得到128维特征。该方案无需任何额外参数,计算量极低,适合部署在算力受限的端侧设备上。 - PCA无监督降维
先提取全量数据集的512维特征,拟合PCA模型后取前128个主成分对应的投影矩阵,固定该矩阵后直接用于特征降维即可。该投影矩阵通过无监督统计得到,不属于神经网络可学习参数,不需要微调模型,且能最大程度保留原始特征的方差信息,降维后的特征冗余度最低,是特征质量要求较高场景的首选方案。
方案选择建议
- 追求极低计算开销:选特征选择或分组聚合下采样
- 无标注数据、需要快速生成嵌入:选固定随机投影
- 要求尽可能保留特征信息:选PCA降维
内容的提问来源于stack exchange,提问作者Cenzy
相关产品推荐
相关产品推荐

