Prototypical Contrastive Learning![在这里插入图片描述](https://img-blog.csdnimg.cn/37b0905a465448c19a93554f86039fc1.png)
该论文模型与MoCo出奇地相似。使用了EM算法的步骤,在E步骤调用run_kmeans
函数对特征进行聚类;在M步骤使用ProtoNCE loss更新encoder的参数。
代码来源:https://github.com/salesforce/PCL.git
本机环境:CUDA11.4+torch1.8.2+1080x2
train
训练main_pcl.py
$ python mail_pcl.py -a resnet50 --lr 0.03 --batch-size 64 --num-cluster 2500,5000,7500 --pcl-r 1664 --temperature 0.2 --workers 4 --mlp --aug-plus --cos --dist-url tcp://localhost:10001 --multiprocessing-distributed --world--size 1 --rank 0 --exp-dir experiment_pcl [imagenet_folder]
原文中采用--batch_size
为256且线程数为32,机器显存不够用故调整batch为64,线程数4。
我下载的数据集是imagenet100,其中共100个类别,每个类别训练图片为1000,测试图片为300。拆分