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

Small changes for faster convergence #35

Closed
wants to merge 3 commits into from

Conversation

NikolasMarkou
Copy link

Removed redundant relus
Replaced relus with prelus with very small constant multiplier.
Haven't tested on imagenet but on all my classification tests it converged faster with slightly higher accuracy usually ~ >0.5%

Replaced relus with prelus with very small constant multiplier => faster converge
Removed redundant relus
@forresti
Copy link
Owner

Interesting! Nice work.

In order to upstream this, I would like:

  • include an ImageNet trained model
  • name this SqueezeNet v1.11

@NikolasMarkou
Copy link
Author

That is ImageNet 2011, right ?

@forresti
Copy link
Owner

forresti commented Feb 14, 2017 via email

@NikolasMarkou
Copy link
Author

Great, I'll get on to it, in the meantime it just occured to me after moving the relu/prelus that it can go a step further , since pooling is of type max everywhere there is no problem moving the relus/prelus after the pools and thus saving flops on that too and remaining equivelant to the original squeezenet v1.1

this =>
layer { name: "conv1" type: "Convolution" bottom: "data" top: "conv1" convolution_param { num_output: 64 kernel_size: 3 stride: 2 weight_filler { type: "xavier" } } } layer { name: "relu_conv1" type: "ReLU" bottom: "conv1" top: "conv1" } layer { name: "pool1" type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } }

transforming to this
layer { name: "conv1" type: "Convolution" bottom: "data" top: "conv1" convolution_param { num_output: 64 kernel_size: 3 stride: 2 weight_filler { type: "xavier" } } } layer { name: "pool1" type: "Pooling" bottom: "conv1" top: "pool1" pooling_param { pool: MAX kernel_size: 3 stride: 2 } } layer { name: "relu_conv1" type: "ReLU" bottom: "conv1" top: "conv1" }

@TechnikEmpire
Copy link

Has imagenet been trained with this yet?

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.

3 participants