Yunfan-Li / Contrastive-Clustering

Code for the paper "Contrastive Clustering" (AAAI 2021)
MIT License
289 stars 92 forks source link

Test metrics don't match #47

Open lingjieyi opened 1 year ago

lingjieyi commented 1 year ago

你好,感谢你的工作和分享的代码。我用刚刚下载的最新版本的code跑cluster.py

把start_epoch改成1000来读取save文件夹里训练好的模型,然后把image_size改成32跑Cifar-10,得出的结果如下:

Step [0/120] Computing features... Step [20/120] Computing features... Step [40/120] Computing features... Step [60/120] Computing features... Step [80/120] Computing features... Step [100/120] Computing features... Features shape (60000,) 'NMI = 0.0201 ARI = 0.0099 F = 0.2395 ACC = 0.1421'

其他的没有任何改动,请问如何解决?

Yunfan-Li commented 1 year ago

您好,image_size改动为32的话需要调整backbone的结构,默认的ResNet18/34接受的是224*224的图片,具体改动可以参照SCAN (https://github.com/wvangansbeke/Unsupervised-Classification/blob/master/models/resnet_cifar.py) 相应的您也需要重新训练网络。

lingjieyi commented 1 year ago

您好,image_size改动为32的话需要调整backbone的结构,默认的ResNet18/34接受的是224*224的图片,具体改动可以参照SCAN (https://github.com/wvangansbeke/Unsupervised-Classification/blob/master/models/resnet_cifar.py) 相应的您也需要重新训练网络。

感谢你的回复。

我调整了resnet的第一层conv1的kernel_size=3并且设置image_size=32(普遍的resnet_cifar10的设置)跑了1000个epoch,结果是:

NMI ACC ARI F
0.570381 0.611817 0.429496 0.486613

Yunfan-Li commented 1 year ago

我记得当时用32x32的效果比224x224的还要稍好一些,试试参照SCAN设置优化器学习率呢?

lingjieyi commented 1 year ago

我记得当时用32x32的效果比224x224的还要稍好一些,试试参照SCAN设置优化器学习率呢?

感谢你的耐心回复,我已经复现相似的结果了!

我还有两个问题:

  1. 作者有比较过不同的batch_size对结果的影响吗,因为做column contrast的时候,cluster representation的维度是batch_size决定的,不像row contrast维度是由network的最后一次决定的。

  2. 请问一下table 4,ICH Only是指用SimCLR pretrain整个模型,然后对所有的点计算z,然后对所有的z一次性做offline K-means吗?

Yunfan-Li commented 1 year ago

1.不同batch size会有影响,不过我都用的256、512之类的,没测试过特别的情况,而且也没有针对性地调过学习率,所以没法给出具体的结论; 2.是的。

lingjieyi commented 1 year ago

1.不同batch size会有影响,不过我都用的256、512之类的,没测试过特别的情况,而且也没有针对性地调过学习率,所以没法给出具体的结论; 2.是的。

好的我自己跑跑看。然后我看其他问题里有提过multi-gpu的运算问题,要相应的修改contrastive loss对吧?

Yunfan-Li commented 1 year ago

multi-gpu的loss可以参照期刊扩展的代码

lingjieyi commented 1 year ago

multi-gpu的loss可以参照期刊扩展的代码

感谢所有的回复,这篇文章的疑问都解答完了。Twin那一篇有几个问题,我去那边提问了。

18XiWenjuan commented 1 year ago

我记得当使用32x32的效果比224x224的还要好一些,试试看SCAN设置优化器学习率呢?

感谢你的耐心回复,我已经回复了现在似的结果了!

我还有两个问题:

  1. 作者有比较不同的batch_size对结果的影响吗,因为做column contrast的时候,cluster representation的维数是batch_size决定的,不像row contrast维数是由网络的最后一次决定的。
  2. 请问一下table 4,ICH Only是指用SimCLR pretrain整个模型,然后对所有的点计算z,然后对所有的z一次性做offline K-means吗?

您好,请问您训练32*32是修改了哪些地方,参数设置怎么修改?可否分享一下,非常感谢!!! 我目前设置lr=0.001,image_size=32,没有修改Resnet18的架构,结果是

image