|  | #include "caffe2/operators/histogram_op.h" | 
|  |  | 
|  | namespace caffe2 { | 
|  |  | 
|  | REGISTER_CPU_OPERATOR(Histogram, HistogramOp<CPUContext>); | 
|  | OPERATOR_SCHEMA(Histogram) | 
|  | .NumInputs(1, INT_MAX) | 
|  | .NumOutputs(1) | 
|  | .SetDoc( | 
|  | R"DOC( | 
|  | Computes a histogram for values in the given list of tensors. | 
|  | For logging activation histograms for post-hoc analyses, consider using the | 
|  | HistogramObserver observer. | 
|  | For iteratively computing a histogram for all input tensors encountered through | 
|  | history, consider using the AccumulateHistogram operator. | 
|  | )DOC") | 
|  | .Input(0, "X1, X2, ...", "*(type: Tensor`<float>`)* List of input tensors.") | 
|  | .Output( | 
|  | 0, | 
|  | "histogram", | 
|  | "1D tensor of length k, wherein the i-th element expresses the count of tensor values " | 
|  | "that fall within range [bin_edges[i], bin_edges[i + 1])") | 
|  | .Arg( | 
|  | "bin_edges", | 
|  | "length-(k + 1) sequence of float values wherein the i-th element represents the inclusive " | 
|  | "left boundary of the i-th bin for i in [0, k - 1] and the exclusive right boundary " | 
|  | "of the (i-1)-th bin for i in [1, k]."); | 
|  |  | 
|  | SHOULD_NOT_DO_GRADIENT(Histogram); | 
|  | } // namespace caffe2 |