GithubHelp home page GithubHelp logo

tcl's People

Contributors

griffintaur avatar omchakrabarty avatar rpand002 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

tcl's Issues

about hmdb51

What should be done with the original hmdb51 dataset to train. We look forward to hearing from you

pre-trained weights and seed

Thanks for this great repo!

Whether pre-training weights, such as ImageNet, are used in the self-supervised pre-training stage? And whether ImageNet pre-training weights or other pre-training weights are used if [TCL→Finetuning] is executed without self-supervised pre-training?

I noticed that the models in the paper did three randomized trials when they were trained using different percentages of labeled samples, how were the seed selected in these three trials?

discussion regarding backbone

Hi,

Thanks for sharing the code. This is a discussion not a code issue.

I'm wondering whether you have tried plug in other backbone instead of TSM with the proposed contrastive learning? I have tried with another network, but it's not quite working well. I guess it's related to how I tune the model, maybe. But good to check with you guys to see whether other models work well in your experiments.

Thank you very much for your time.

missing tools folder

Hi,
Thank you for sharing the code. It seems the tools folder is missing though README shows how to use it for data processing. Could you please add this folder?
Thank you.

How to get the pseudo-label confidence?

Thanks for your great work! However,I have met a question.You said in your paper in page5 that " Finally, for finetuning with pseudo-labels, we train our model with both labeled and unlabeled videos having pseudo-label confidence more than 0.8 for 50 epochs" So how to calculate the confidence of pseudo-label ? And Is 0.8 a empirical parameter?

Another Question about In_place TSM and Residual TSM

In TCL, do you use In_place TSM instead of Residual TSM?

class make_block_temporal(nn.Module):
    def __init__(self, stage, this_segment=3,n_div=8, second_segments=2):
        super(make_block_temporal, self).__init__()
        self.blocks = nn.ModuleList(list(stage.children()))
        self.second_segments = second_segments
        print('=> Processing stage with {} blocks'.format(len(self.blocks)))
        self.temporal_shift = TemporalShift(n_segment=this_segment, n_div=n_div, second_segments= self.second_segments)
#        for i, b in enumerate(self.blocks):
 #           self.blocks[i]= nn.Sequential(b)
    def forward(self,x,unlabeled=False):
        for i, b in enumerate(self.blocks):
            x= self.temporal_shift(x,unlabeled)
            x = self.blocks[i](x)  #just use x, without unlabeled parameters
        return x

class make_blockres_temporal(nn.Module):
    def __init__(self, stage, this_segment=3,n_div=8, n_round=1, second_segments=2):
        super(make_blockres_temporal, self).__init__()
        self.blocks = nn.ModuleList(list(stage.children()))
        self.second_segments = second_segments
        self.n_round = n_round
        print('=> Processing stage with {} blocks'.format(len(self.blocks))) 
        self.temporal_shift = TemporalShift(n_segment=this_segment, n_div=n_div, second_segments=self.second_segments)
   #     for i, b in enumerate(self.blocks):
  #          self.blocks[i]= nn.Sequential(b)
 #           print(self.blocks[i])

    def forward(self,x,unlabeled=False):
        #print("make_block_res_temporal_called")
        for i, b in enumerate(self.blocks):
            #print(x.size())
            if i% self.n_round == 0:
                #print("size of x is {}".format(x.size()))
                x= self.temporal_shift(x,unlabeled)
            x = self.blocks[i](x)  #just use x, without unlabeled parameters
        return x

You change the function 'make_blockres_temporal', and it works as the function 'make_block_temporal'.

Question about resnet.py

Thank you for your perfect work on the paper Semi-Supervised Action Recognition with Temporal Contrastive Learning.

I want to know what is the function of the parameter 'unlabeled'?

def _forward_impl(self, x, unlabeled=False):
        # See note [TorchScript super()]
        x = self.conv1(x)
        x = self.bn1(x)
        x = self.relu(x)
        x = self.maxpool(x)
        #print("size of x is layer1 is {}".format(x.size()))
        x = self.layer1(x, unlabeled)
        #print("size of x is layer2 is {}".format(x.size()))

        x = self.layer2(x, unlabeled)
        #print("size of x is layer3 is {}".format(x.size()))

        x = self.layer3(x, unlabeled)
        #print("size of x is layer4 is {}".format(x.size()))

        x = self.layer4(x, unlabeled)

        x = self.avgpool(x)
        x = torch.flatten(x, 1)
        x = self.fc(x)

        return x

In class BasicBlock , the forward function just has two parameters but doesn't have the parameter 'unbeled' .So like 'x = self.layer1(x, unlabeled)' will be wrong.

Commands to reproduce the results

Thanks for this great repo!

I notice in the paper it says there're several stages in the training procedure in section3.3 (Pretraining→TCL →Finetuning). In section 3.2.1 it also mentioned using a supervised model to initialize weights. Do you mind sharing the training command for each stage in order to reproduce the results in the paper?

Thanks

problems with the provided data files

It seems the provided data config files train_videofolder.txt and val_videofolder.txt do not have the same format as mentioned in README, there're only three numbers in each line. Am I missing something?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.