-
Notifications
You must be signed in to change notification settings - Fork 22
Neural Net Frameworks: Caffe DIGITS
Caffe was made by students and faculty at UC Berkeley for powerful deep learning, specifically in Image Recognition. We've used it for our PeopleNet, written in C++. Much of Caffe is related to creating your network in text form in a file called a 'prototxt' and having an emphasis on trained weights called 'caffemodels', which can be trained upon. Thus, transfer learning is made quite simple, without the need for explicit 'pruning', or the compression of a network.
DIGITS is a platform for training supplied by NVIDIA that allows people to train models in both Caffe and Torch on an external GPU server or GPU host machine efficiently. This allows for easy training on a GUI, which isn't easy to achieve in a still developing GPU universe. Check out https://github.com/dusty-nv/jetson-inference for more info on using the DIGITS platform on your machine. It's a tremendous guideline that we used to guide us on our process to building a deployable model.
We used jetson-inference, a previously created method of deploying caffemodels on the Jetson TX platforms. We modified this to suit our needs, to be able to always use the caffemodel we want and to continuously read from a continuously saved image file we used as a 'buffer'. We urge you to go through this, especially the "2 Days to a Demo" part, as it covers everything from installation to deployment to the use of DIGITS on a Jetson.
In our project specifically, we had issues with running this process concurrently with our other processes. Sometimes, running the detectnet-console file we used in the demo would crash the system if we ran it too much. Deploying caffemodels are a bit costly to your machine, so be careful.
Start-up and shutdown take a lot of time, up to a full second, so beware of that, especially if your task is heavily reliant on time. The time is also quite inconsistent.
PyCaffe is highly discouraged, especially if using a Jetson. Installing the dependencies is a pain, as opposed to the Caffe C++ library. Along with that, from our experience, the language is quite buggy and proper documentation is a bit hard to find. Till the support for PyCaffe is increased, we strongly encourage using Caffe in C++, or switching to another language.
Formula1Epoch
The self-driving car trained with deep learning