Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A reimplementation of MixNet in Gluon. #900

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

becauseofAI
Copy link

Add a new model named MixNet to gluoncv model-zoo.
It is a reimplementation of MixNet in Gluon. The paper is here. The model will be trained with ImageNet dataset when the machine is ready.

@mli
Copy link
Member

mli commented Aug 7, 2019

Job PR-900-1 is done.
Docs are uploaded to http://gluon-vision-staging.s3-website-us-west-2.amazonaws.com/PR-900/1/index.html
Code coverage of this PR: pr.svg vs. Master: master.svg

@hetong007 hetong007 requested a review from bryanyzhu August 7, 2019 18:32
@bryanyzhu
Copy link
Collaborator

PR looks awesome. Minor things about removing commented lines. Looking forward to the numbers trained on ImageNet.

@mli
Copy link
Member

mli commented Aug 8, 2019

Job PR-900-2 is done.
Docs are uploaded to http://gluon-vision-staging.s3-website-us-west-2.amazonaws.com/PR-900/2/index.html
Code coverage of this PR: pr.svg vs. Master: master.svg

@Jerryzcn Jerryzcn requested a review from hetong007 August 9, 2019 22:54
@hetong007
Copy link
Member

I'd like to hold this implementation from merged into our incoming release, unless one of the following can be met:

  1. the weights are transferred from the official source, or
  2. the network can be trained to match the accuracy.

The reason behind is due to MXNet has a limited implementation of split, which cannot split the channel dimension unevenly. So this might not be an identical re-implementation. Still, I'm open with further suggestions.

@zhreshold
Copy link
Member

@hetong007 split may not support uneven division, but @becauseofAI used workaround which uses F.slice_axis with pre-calculated brakets. So I guess it's matching the original implementation?
@becauseofAI Can you verify if you can convert weights and achieve same accuracy as reported in paper? 

@hetong007
Copy link
Member

OK you are right, F.slice_axis makes it equivalent.

@zhreshold
Copy link
Member

@becauseofAI any update on this?

1 similar comment
@djaym7
Copy link

djaym7 commented Dec 26, 2019

@becauseofAI any update on this?


def _split_channels(total_filters, num_groups):
"""Get groups list."""
split_channels = [total_filters // num_groups for _ in range(num_groups)]
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[total_filters // num_groups] * num_groups

Much faster

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants