The Modules of MyCaffe
MyCaffe is a very modular system designed to fit numerous different AI needs. From a very bare-bones, 3-module system, up to a more complicated reinforcement learning system that uses data gyms and a streaming database, MyCaffe offers a range of AI functionality designed to eventually cover all main aspects of artificial intelligence.
Currently, MyCaffe offers the following types of AI learning:
- Standard Classification
- One-shot and N-shot learning
- Reinforcement Learning
- Recurrent Learning
- Neural Style Transfer Learning
- Deep Dream Learning
In order to support these various types of learning, MyCaffe’s modular organization allows to selectively use a minimum set of modules depending on the type of learning being used.
The following modules make up the MyCaffe AI Platform.
Bare Bones Modules
The bare-bones modules include most layers and general functionality offered in the original CAFFE open-source project.
MyCaffe; this module is the main MyCaffe module used by all MyCaffe projects for it contains the MyCaffeControl, Solvers, Net and Layers that support most of the layer functionality of the original CAFFE open-source project.
MyCaffe.basecode; this module contains common code used by all other MyCaffe modules.
CudaDnnDll; this module contains the low-level C++ code and all CUDA Kernels used by MyCaffe. This module is accessed via the CudaDnn object which uses the CudaControl component to bridge between the C# and C++ code.
The layer groups contain layer extensions used for certain learning functionality that fall outside the layers provided by the original CAFFE open-source project.
MyCaffe.layers.alpha; the layers found within this layer group are very early stage concepts that are moved to the MyCaffe.layers.beta group after proving useful.
MyCaffe.layers.beta; the layers found within this layer group are useful general layers that do not fall within a specific layer group.
MyCaffe.layers.nt; the layers found within this layer group are used when performing Neural Style Transfer learning.
Extensions modules extend the overall MyCaffe bare-bones functionality into different types and methods of learning.
MyCaffe.model; this module extends MyCaffe to support programmatic model generation.
MyCaffe.gym; this module provides various data gyms that feed real-time data (via simulations or streamed from the MyCaffe Streaming Database) to the Trainers when solving reinforcement and recurrent learning problems.
 Yangqing Jia, Evan Shelhamer, Jeff Donahue, Sergey Karayev, Jonathan Long, Ross Girshick, Sergio Guadarrama, Trevor Darrell, Caffe: Convolutional Architecture for Fast Feature Embedding. arXiv, 2014.