-
Notifications
You must be signed in to change notification settings - Fork 18.5k
Replace input fields with a proper layer #1245
Description
The input fields cause a few headaches like
(1) They are not a proper layer so they cannot be included in all-in-one nets by stage or other NetFilter rules
(2) They are nothing but bare blobs so input preprocessing cannot be configured or done automatically
(3) As a result of (2), the Python and MATLAB interfaces duplicate a lot of code and lead to brittle transitions between train / val / data layers and the input fields for deployment.
so there's a plan to do away with them. I'll post an issue with the fully story when I can, but the core idea is to replace these fields with MemoryDataLayer for deployment, make the tools understand stages so we can mark the layer as the "deploy" input, and then re-define all the reference deploy models and finally deprecate the pycaffe and matcaffe preprocessing code.
The deploy.prototxt could go away completely -- just like train and val were merged into train_val.prototxt there will be one net definition to rule them all that includes the layers and rules for making the train / val / deploy / whatever variations of the net. Alternatively one can stamp out each variation through Python net specification.
(1) is the top priority while (2) and (3) might be nice but leaving preprocessing to the interface languages is alright.