-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Treat network outputs differently depending on their names #193
Comments
This would have to be very explicit in the docs. I can see someone changing the output layer name to something more meaningful to them, and then not understanding why they broke it. I do like where the idea is going however. Can we move the "signal" out of band somewhere? Maybe to a param in the prototxt file? Like an "optional" param at the top of the prototxt that tells us to do extra processing (like bbox for example). |
It feels to me like a natural way of doing it would be to extend the model with one (or more) visualisation layer whose meaning would only be of significance to the DL front-end. If caffe does not want to ignore the layer it could be implemented as an identify layer. For example:
|
@semisight, why not just store the network type as a piece of DIGITS metadata? Why does it need to be included in the prototxt? We can still do it in such a way that we can merge the if model.output_type == 'classification':
# do something
elif model.output_type == 'bbox':
# do something else
else:
# default - treat as generic inference @gheinrich, are you suggesting the network should output strings like |
@lukeyeager that's fine with me. I know we don't really "own" the prototxt so it's probably not a good idea to modify it. The in-name solution just looks like a bit too much magic for me. After thinking about it, I don't think Caffe sits at a high enough level to "care" about whether a network is classification or not. So I think storing it as DIGITS metadata is probably the best way to do it. |
My thinking was that, conceptually, the visualisation of results is the final layer in your network. The DL back-end does not need to deal with it (the visualisation layers could be either hidden from the DL back-end, or implemented as an identity layer). |
Closed by #756 (with a much better implementation than what I had originally proposed). |
Jon just had a good idea.
What if instead of creating multiple paths in DIGITS like "Classification", "Generic Inference", "Bounding Boxes", etc., we had only a single generic path, and the decision about what to do with the network outputs was handled only by looking at the name of the outputs?
classifications
bbox
segmentation
This is worth giving some more thought ...
The text was updated successfully, but these errors were encountered: