4 #include "caffe2/core/context.h" 5 #include "caffe2/core/logging.h" 6 #include "caffe2/core/operator.h" 7 #include "caffe2/utils/math.h" 11 template <
typename T,
class Context>
16 is_test_(OperatorBase::GetSingleArgument<int>(OpSchema::Arg_IsTest, 0)),
17 order_(StringToStorageOrder(
18 OperatorBase::GetSingleArgument<string>(
"order",
"NCHW"))),
19 pooled_height_(OperatorBase::GetSingleArgument<int>(
"pooled_h", 1)),
20 pooled_width_(OperatorBase::GetSingleArgument<int>(
"pooled_w", 1)),
22 OperatorBase::GetSingleArgument<float>(
"spatial_scale", 1.)) {
24 (is_test_ && OutputSize() == 1) || (!is_test_ && OutputSize() == 2),
25 "Output size mismatch.");
26 CAFFE_ENFORCE_GT(spatial_scale_, 0);
27 CAFFE_ENFORCE_GT(pooled_height_, 0);
28 CAFFE_ENFORCE_GT(pooled_width_, 0);
30 order_, StorageOrder::NCHW,
"Only NCHW order is supported right now.");
32 USE_OPERATOR_CONTEXT_FUNCTIONS;
34 bool RunOnDevice()
override;
44 template <
typename T,
class Context>
50 OperatorBase::GetSingleArgument<float>(
"spatial_scale", 1.)),
51 pooled_height_(OperatorBase::GetSingleArgument<int>(
"pooled_h", 1)),
52 pooled_width_(OperatorBase::GetSingleArgument<int>(
"pooled_w", 1)),
53 order_(StringToStorageOrder(
54 OperatorBase::GetSingleArgument<string>(
"order",
"NCHW"))) {
55 CAFFE_ENFORCE_GT(spatial_scale_, 0);
56 CAFFE_ENFORCE_GT(pooled_height_, 0);
57 CAFFE_ENFORCE_GT(pooled_width_, 0);
59 order_, StorageOrder::NCHW,
"Only NCHW order is supported right now.");
61 USE_OPERATOR_CONTEXT_FUNCTIONS;
63 bool RunOnDevice()
override {
64 CAFFE_NOT_IMPLEMENTED;
76 #endif // ROI_POOL_OP_H_ Workspace is a class that holds all the related objects created during runtime: (1) all blobs...
A global dictionary that holds information about what Caffe2 modules have been loaded in the current ...