Changes to layer exclusion prefixes and Softmax-related code [DON'T MERGE]#623
Changes to layer exclusion prefixes and Softmax-related code [DON'T MERGE]#623lukeyeager wants to merge 6 commits intoNVIDIA:masterfrom
Conversation
a074edb to
5a635ca
Compare
|
Fixed tests and fixed a bug |
In case someone hits a problem like that mentioned in NVIDIA#601 for a classification network. Once Caffe implements input layers and phase control from Python we should be able to remove those workarounds.
Important changes:
* Only set inner_product_param.num_output when it was unset
Also:
* Stop trying to calculate network outputs (was only needed for
setting inner_product_param.num_output)
* Ensure that layer prefix exclusion works the same way for both
generic and classification nets
* A little refactoring to make generic and classification code paths
more similar
Makes network specification more explicit
Explain how inner_product_param.num_output gets filled in automatically when missing.
Yes, that makes sense for classification networks. Whenever we get around to merging "classification" and "generic" we can do something more clever. But that's the right solution for now. |
|
As I'm thinking more about this, should we ask users to differentiate between Train/Val/Deploy by using Example of an all-in-one network specified using PR giving greater stage support to Caffe: |
5a635ca to
96fe5d5
Compare
|
That sounds like a great idea. Is the stage syntax already known? I haven't found definitions of |
|
Yeah, I think that's what we need to do. I'm working on it now. The number of ways you can specify the NetState is somewhat staggering. https://github.com/NVIDIA/caffe/blob/v0.14.2/src/caffe/proto/caffe.proto#L330-L337 DIGITS definitely can't support all of those options. We'll have to keep it to a subset. |
|
Closing in favor of #628. I decided to make a new PR since it's such a different approach. |

Close #605, close #335
NOTE: this will break networks which used to work in DIGITS
Changes:
Softmaxlayers in the deploy prototxt whenSoftmaxWithLosslayers were present in the original prototxt (since you can do it manually with prefixes now)inner_product_param.num_outputwhen it was unset in the original prototxtTODO: