ByungKwanLee / Causal-Unsupervised-Segmentation

Official PyTorch Implementation code for realizing the technical part of Causal Unsupervised Semantic sEgmentation (CAUSE) to improve performance of unsupervised semantic segmentation. (Under Review)
8 stars 1 forks source link

Scripts about fully unsupervised learning on training and evaluation? #5

Open JizeCao opened 10 months ago

JizeCao commented 10 months ago

According to the paper, the step 2 should perform self-supervised learning with contrastive learning objective. However, in the script _train_front_doortr.py and _fine_tuningtr.py , the dataset ground-truth labels are used to train the linear probe. And that linear probe is also used to generate predictions during the inference .

I understand that these scripts are used to generate Table 2 result, which uses a linear probe to compare against other baselines.

Does there any script perform fully unsupervised learning training & evaluation in this repo ? That would be really helpful if such scripts exist for us to evaluate this method's performance in a fully unsupervised learning manner without linear probing. :)

ByungKwanLee commented 10 months ago

You can find the following line in train_front_door_tr.py [Link]

# Bank and EMA
cluster.bank_init()
ema_init(segment.head, segment.head_ema)
ema_init(segment.projection_head, segment.projection_head_ema

Here, the funcion of ema_init is defined in modules/segment_module.py [Link]

def ema_init(x, x_ema):
    for param, param_ema in zip(x.parameters(), x_ema.parameters()): param_ema.data = param.data; param_ema.requires_grad = False
thingumajig commented 8 months ago

I join the question. It is not entirely clear how to run fully self-supervised learning on an arbitrary set of images.