GithubHelp home page GithubHelp logo

Comments (7)

rangwani-harsh avatar rangwani-harsh commented on September 24, 2024

Yes, in domain adaptation, the standard is to report validation accuracy. The same is followed for reporting results on all baselines.

from sdat.

toshi2k2 avatar toshi2k2 commented on September 24, 2024

And the same validation data can be used to tune the model/hyperparameters or choose the best model dependent on validation loss?

from sdat.

rangwani-harsh avatar rangwani-harsh commented on September 24, 2024

In domain adaptation, one adaptation setting like Ar --> Pr for Office-Home can be used to tune the model/hyperparameters and used for all other adaptation settings like (Ar --> Cl, Ar--> Rw, etc.). Hence, the evaluation is fair overall.

from sdat.

toshi2k2 avatar toshi2k2 commented on September 24, 2024

Correct me if I'm wrong, but it appears that your best model for a specific source-target data pair is chosen on the training model's performance on the same target domain test data (examples/cdan_mcc_sdat.py#L159). This doesn't seem to be a fair evaluation, or am I misunderstanding something here?

        # evaluate on validation set
        acc1 = utils.validate(val_loader, classifier, args, device)
        if args.log_results:
            wandb.log({'epoch': epoch, 'val_acc': acc1})

        # remember best acc@1 and save checkpoint
        torch.save(classifier.state_dict(),
                   logger.get_checkpoint_path('latest'))
        if acc1 > best_acc1:
            shutil.copy(logger.get_checkpoint_path('latest'),
                        logger.get_checkpoint

from sdat.

rangwani-harsh avatar rangwani-harsh commented on September 24, 2024

Yes, the best model is chosen based on target domain accuracy. But all the methods follow this; hence the comparison is fair (refer: https://github.com/thuml/Transfer-Learning-Library for details). This is the case for Office-Home and VisDA datasets.

For DomainNet, there are separate sets of data for validation and testing; hence test set is used for final accuracy evaluation.

Hope this helps :)

from sdat.

toshi2k2 avatar toshi2k2 commented on September 24, 2024

In my opinion, I think that is a form of evaluation data contamination and given the random nature of neural network loss optimization as well as the fact that many methods may not able to minimize target domain loss without this kind of model selection - this setup may not be a fair comparison.
i also didn't notice this setup in older relevant papers like MCD(unless I missed this). Is there any major work which started this evaluation process?

from sdat.

rangwani-harsh avatar rangwani-harsh commented on September 24, 2024

I do agree that there are some concerns regarding this evaluation procedure. In this work, we followed and reported results using the standard protocol at: https://github.com/thuml/Transfer-Learning-Library. I am unaware of the work that started, but most new works follow this protocol (https://github.com/thuml/Transfer-Learning-Library).

I will close this issue for now as it's unrelated to our work. In case you have any questions related to our implementation, please feel free to re-open it.

from sdat.

Related Issues (12)

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.