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

Improve Net & Layer Schema #169

Closed
3 tasks done
shelhamer opened this issue Feb 26, 2014 · 3 comments
Closed
3 tasks done

Improve Net & Layer Schema #169

shelhamer opened this issue Feb 26, 2014 · 3 comments

Comments

@shelhamer
Copy link
Member

caffe.proto defines the schema for all of our models, and has done an admirable job, but it should be broken so that it can mend properly and best serve the research and development of Caffe and our models.

The key improvements are to:

To make this migration in a calm and orderly fashion, we will

  • freeze caffe.proto at caffe0.proto and deprecate it
  • define a new caffe.proto
  • provide a conversion script to cover the changes.

For the assignment of params and protobuf fields, there'll be:

  • core param reservations for Net, Layer, and the like (all numbers < 1024) that will be assigned by the core developers. We will accept suggestions, but reserve the choice.
  • to avoid overhead and coordinating field requests, we will adopt a distributed system based on the commit hash of the feature branch proposing new fields a proto comment will list the next available field number.
  • All field numbers will be assigned at merge time, to not impede development during feature development and pull requesting. In a feature branch, the developer should pick whichever number is next according to dev. Final numbers will be assigned right before more.

Welcome to the world of version < 1.0. The ride never stops.

@shelhamer
Copy link
Member Author

We are posting this issue to further involve the community in the planning of Caffe as an open research project. Please consider in this case that we have thoroughly thought out this change, and desire it for our work, so this will happen in some form though we can all help decide what shape it takes.

@shelhamer
Copy link
Member Author

For the assignment of field numbers, it might be simplest to have a

// NEXT_NUMBER = x

comment in caffe.proto and have mergers resolve the field numbers at merge time with an integration commit. Updating the NEXT_NUMBER line will trigger conflicts for other BVLC members merging at the same time, alerting them that field numbers have advanced and that they should assign fields accordingly.

@shelhamer
Copy link
Member Author

This is essentially done with all-in-one nets and the rest. See #734 for the last details.

wk910930 pushed a commit to wk910930/caffe that referenced this issue Jun 21, 2017
* revamp cudnn conv workspace management.

* revamp cudnn conv workspace management.

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

No branches or pull requests

1 participant