GithubHelp home page GithubHelp logo

filapro / visda2019 Goto Github PK

View Code? Open in Web Editor NEW
23.0 3.0 2.0 115 KB

MixMatch Domain Adaptation: Prize-winning solution for both tracks of VisDA 2019 challenge

License: Other

Python 100.00%
domain-adaptation visda mixmatch efficient-net tensorflow

visda2019's Introduction

This codebase contains the implementation of our (with @denemmy) solution for VisDA 2019 challenge. Our team got 2nd place on final leaderboard of multi-source track (with accuracy: .716), and 3rd place of semi-supervised (with accuracy: .713). This solution heavily borrows ideas from MixMatch (arxiv, github) and EfficientNet (arxiv, github).

The technical report is published on arxiv.

Installation

Just clone this repo, update PYTHONPATH and install requirements.txt throw pip. The code was tested on ubuntu 16.04 with python 3.6, cuda 10.0, cudnn 7.5. You may also need wget and unzip packages to download data.

Data preparation

Download and convert images to .tfrecords:

python scripts/download.py
python scripts/convert_to_tfrecords.py

The resulting structure of data directory is shown in docs/structure.md.

Training example

python runners/source_semi_supervised.py

The growth of accuracy on sketch domain will be displayed at stdout and in log file. The arguments of all scripts are listed in docs/arguments.md.

Achieving leaderboard accuracy

Follow the instructions in docs/solution.md.

visda2019's People

Contributors

filapro 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

Watchers

 avatar  avatar  avatar

visda2019's Issues

Question of function run_balanced

def run_balanced(models, tensors):
n_tensors = len(tensors)
splitted_tensors = tuple(tf.split(tensors[i], n_tensors) for i in range(n_tensors))
results = []
for i in range(n_tensors):
combined_tensors = tf.concat(tuple(splitted_tensors[j][i] for j in range(n_tensors)), axis=0)
for model in models:
combined_tensors = model(combined_tensors, training=True)
results.append(combined_tensors)
splitted_results = tuple(tf.split(results[i], n_tensors) for i in range(n_tensors))
combined_results = []
for i in range(n_tensors):
combined_results.append(tf.concat(tuple(splitted_results[j][i] for j in range(n_tensors)), axis=0))
return tuple(combined_results)

Hi, thanks for the wonderful work! After reading the code, I have a question about the function run_balanced.

It seems to find the transposition of tensors first, and then convert it to the original order after feeding it to the models. I am confused about its function and usage...

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.