In Caffe2, a neural network can be thought of as a directed graph, where the nodes are operators and the edges represent the flow of data between operators. Operators are the basic units of computation in a Caffe2 network. Every operator is defined with a certain number of inputs and a certain number of outputs. When the operator is executed, it reads its inputs, performs the computation it is associated with, and writes the results to its outputs.
To obtain the best possible performance, Caffe2 operators are typically implemented in C++ for execution on CPUs and implemented in CUDA for execution on GPUs. All operators in Caffe2 are derived from a common interface. You can see this common interface defined in the caffe2/proto/caffe2.proto file in the Caffe2 source code.
The following is the Caffe2 operator interface found in my caffe2.proto file:
// Operator Definition...