diff --git a/caffe2/operators/quantized/int8_softmax_op.h b/caffe2/operators/quantized/int8_softmax_op.h index e625df75b9d..17865d235a9 100644 --- a/caffe2/operators/quantized/int8_softmax_op.h +++ b/caffe2/operators/quantized/int8_softmax_op.h @@ -14,9 +14,8 @@ namespace int8 { class Int8SoftmaxOp final : public Operator { public: - Int8SoftmaxOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), - ws_(ws) {} + explicit Int8SoftmaxOp(const OperatorDef& operator_def, Workspace* ws) + : Operator(operator_def, ws), ws_(ws) {} ~Int8SoftmaxOp() { if (this->qnnpackOperator_ != nullptr) { diff --git a/caffe2/operators/reduce_front_back_max_ops.h b/caffe2/operators/reduce_front_back_max_ops.h index bf89ef3c056..41f77a9a81c 100644 --- a/caffe2/operators/reduce_front_back_max_ops.h +++ b/caffe2/operators/reduce_front_back_max_ops.h @@ -11,8 +11,9 @@ namespace caffe2 { template class MaxReduceDimsOp final : public Operator { public: - MaxReduceDimsOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit MaxReduceDimsOp(Args&&... args) + : Operator(std::forward(args)...), num_reduce_dims_( this->template GetSingleArgument("num_reduce_dim", 1)) {} @@ -78,8 +79,9 @@ class MaxReduceDimsOp final : public Operator { template class MaxReduceDimsGradientOp final : public Operator { public: - MaxReduceDimsGradientOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit MaxReduceDimsGradientOp(Args&&... args) + : Operator(std::forward(args)...), num_reduce_dims_( this->template GetSingleArgument("num_reduce_dim", 1)) {} diff --git a/caffe2/operators/reduce_front_back_sum_mean_ops.h b/caffe2/operators/reduce_front_back_sum_mean_ops.h index bfe9257527b..7f33f8a4b8c 100644 --- a/caffe2/operators/reduce_front_back_sum_mean_ops.h +++ b/caffe2/operators/reduce_front_back_sum_mean_ops.h @@ -11,8 +11,9 @@ namespace caffe2 { template class SumReduceDimsOp final : public Operator { public: - SumReduceDimsOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit SumReduceDimsOp(Args&&... args) + : Operator(std::forward(args)...), num_reduce_dims_( this->template GetSingleArgument("num_reduce_dim", 1)) {} @@ -86,8 +87,9 @@ class SumReduceDimsOp final : public Operator { template class SumReduceDimsGradientOp final : public Operator { public: - SumReduceDimsGradientOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit SumReduceDimsGradientOp(Args&&... args) + : Operator(std::forward(args)...), num_reduce_dims_( this->template GetSingleArgument("num_reduce_dim", 1)) {} diff --git a/caffe2/operators/reduce_ops.h b/caffe2/operators/reduce_ops.h index f9515aeeb9c..0b4e883b0b8 100644 --- a/caffe2/operators/reduce_ops.h +++ b/caffe2/operators/reduce_ops.h @@ -17,8 +17,9 @@ class ReduceOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - ReduceOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit ReduceOp(Args&&... args) + : Operator(std::forward(args)...), axes_(this->template GetRepeatedArgument("axes")), OP_SINGLE_ARG(bool, "keepdims", keep_dims_, true) {} @@ -84,8 +85,9 @@ class ReduceGradientOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - ReduceGradientOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit ReduceGradientOp(Args&&... args) + : Operator(std::forward(args)...), axes_(this->template GetRepeatedArgument("axes")) {} bool RunOnDevice() override { diff --git a/caffe2/operators/reduction_ops.h b/caffe2/operators/reduction_ops.h index ee8e6602e73..4f59bc2b961 100644 --- a/caffe2/operators/reduction_ops.h +++ b/caffe2/operators/reduction_ops.h @@ -14,10 +14,11 @@ class SumElementsOp : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - SumElementsOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit SumElementsOp(Args&&... args) + : Operator(std::forward(args)...), average_(this->template GetSingleArgument("average", false)) {} - SumElementsOp(const OperatorDef& operator_def, Workspace* ws, bool average) + explicit SumElementsOp(const OperatorDef& operator_def, Workspace* ws, bool average) : Operator(operator_def, ws), average_(average) {} ~SumElementsOp() {} @@ -51,8 +52,9 @@ class SumElementsIntOp : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - SumElementsIntOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws) {} + template + explicit SumElementsIntOp(Args&&... args) + : Operator(std::forward(args)...) {} ~SumElementsIntOp() {} bool RunOnDevice() override { @@ -74,13 +76,11 @@ class SumElementsGradientOp : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - SumElementsGradientOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit SumElementsGradientOp(Args&&... args) + : Operator(std::forward(args)...), average_(this->template GetSingleArgument("average", false)) {} - SumElementsGradientOp( - const OperatorDef& operator_def, - Workspace* ws, - bool average) + explicit SumElementsGradientOp(const OperatorDef& operator_def, Workspace* ws, bool average) : Operator(operator_def, ws), average_(average) {} ~SumElementsGradientOp() {} diff --git a/caffe2/operators/replace_nan_op.h b/caffe2/operators/replace_nan_op.h index bf9c8a2ddb5..96e3ad88b61 100644 --- a/caffe2/operators/replace_nan_op.h +++ b/caffe2/operators/replace_nan_op.h @@ -12,8 +12,9 @@ template class ReplaceNaNOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - ReplaceNaNOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws) {} + template + explicit ReplaceNaNOp(Args&&... args) + : Operator(std::forward(args)...) {} bool RunOnDevice() override { return DispatchHelper>::call(this, Input(0)); diff --git a/caffe2/operators/reshape_op.h b/caffe2/operators/reshape_op.h index 90800a306b2..f32cf8e0468 100644 --- a/caffe2/operators/reshape_op.h +++ b/caffe2/operators/reshape_op.h @@ -14,8 +14,9 @@ template class ReshapeOp : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - ReshapeOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit ReshapeOp(Args&&... args) + : Operator(std::forward(args)...), new_shape_(this->template GetRepeatedArgument("shape")) {} bool RunOnDevice() override { diff --git a/caffe2/operators/resize_op.h b/caffe2/operators/resize_op.h index 32fad091c26..51d25c70946 100644 --- a/caffe2/operators/resize_op.h +++ b/caffe2/operators/resize_op.h @@ -9,8 +9,9 @@ namespace caffe2 { template class ResizeNearestOp final : public Operator { public: - ResizeNearestOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit ResizeNearestOp(Args&&... args) + : Operator(std::forward(args)...), width_scale_(1), height_scale_(1), order_(StringToStorageOrder( @@ -45,8 +46,9 @@ class ResizeNearestOp final : public Operator { template class ResizeNearestGradientOp final : public Operator { public: - ResizeNearestGradientOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit ResizeNearestGradientOp(Args&&... args) + : Operator(std::forward(args)...), width_scale_(1), height_scale_(1), order_(StringToStorageOrder( diff --git a/caffe2/operators/rmac_regions_op.h b/caffe2/operators/rmac_regions_op.h index 72facf46304..e66d2909198 100644 --- a/caffe2/operators/rmac_regions_op.h +++ b/caffe2/operators/rmac_regions_op.h @@ -9,8 +9,9 @@ namespace caffe2 { template class RMACRegionsOp final : public Operator { public: - RMACRegionsOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit RMACRegionsOp(Args&&... args) + : Operator(std::forward(args)...), scales_(this->template GetSingleArgument("scales", 3)), overlap_(this->template GetSingleArgument("overlap", 0.4f)) {} diff --git a/caffe2/operators/rnn/recurrent_network_blob_fetcher_op.h b/caffe2/operators/rnn/recurrent_network_blob_fetcher_op.h index 56903a4af8c..28af3da51a9 100644 --- a/caffe2/operators/rnn/recurrent_network_blob_fetcher_op.h +++ b/caffe2/operators/rnn/recurrent_network_blob_fetcher_op.h @@ -17,7 +17,7 @@ class RecurrentNetworkBlobFetcherOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - RecurrentNetworkBlobFetcherOp(const OperatorDef& operator_def, Workspace* ws) + explicit RecurrentNetworkBlobFetcherOp(const OperatorDef& operator_def, Workspace* ws) : Operator(operator_def, ws) { prefix_ = this->template GetSingleArgument("prefix", "rnn"); ws_ = ws; diff --git a/caffe2/operators/rnn/recurrent_network_op.h b/caffe2/operators/rnn/recurrent_network_op.h index a86121fdbb4..582bb5fbfd5 100644 --- a/caffe2/operators/rnn/recurrent_network_op.h +++ b/caffe2/operators/rnn/recurrent_network_op.h @@ -182,7 +182,7 @@ template class RecurrentNetworkOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - RecurrentNetworkOp(const OperatorDef& operator_def, Workspace* ws) + explicit RecurrentNetworkOp(const OperatorDef& operator_def, Workspace* ws) : Operator(operator_def, ws), sharedWs_(ws), enable_rnn_executor_(this->template GetSingleArgument( @@ -416,7 +416,7 @@ template class RecurrentNetworkGradientOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - RecurrentNetworkGradientOp(const OperatorDef& operator_def, Workspace* ws) + explicit RecurrentNetworkGradientOp(const OperatorDef& operator_def, Workspace* ws) : Operator(operator_def, ws), sharedWs_(ws), enable_rnn_executor_(this->template GetSingleArgument( @@ -425,8 +425,8 @@ class RecurrentNetworkGradientOp final : public Operator { timestep_(this->template GetSingleArgument( "timestep", "timestep")), - gradInputs_(this->template GetRepeatedArgument( - "outputs_with_grads")) { + gradInputs_( + this->template GetRepeatedArgument("outputs_with_grads")) { CAFFE_ENFORCE(ws); stepNetDef_ = detail::extractNetDef(operator_def, "backward_step_net"); @@ -849,8 +849,9 @@ class RecurrentNetworkGradientOp final : public Operator { template class AccumulateInputGradientOp : public Operator { public: - AccumulateInputGradientOp(const OperatorDef& def, Workspace* ws) - : Operator(def, ws), + template + explicit AccumulateInputGradientOp(Args&&... args) + : Operator(std::forward(args)...), offset_(this->template GetSingleArgument("offset", -1)) { CAFFE_ENFORCE(offset_ >= 0, "Offset not set"); } @@ -893,8 +894,9 @@ class AccumulateInputGradientOp : public Operator { template class RNNApplyLinkOp : public Operator { public: - RNNApplyLinkOp(const OperatorDef& def, Workspace* ws) - : Operator(def, ws), + template + explicit RNNApplyLinkOp(Args&&... args) + : Operator(std::forward(args)...), offset_(this->template GetSingleArgument("offset", -1)), window_(this->template GetSingleArgument("window", -1)) { CAFFE_ENFORCE(offset_ >= 0, "offset not set"); diff --git a/caffe2/operators/rnn/recurrent_op_cudnn.cc b/caffe2/operators/rnn/recurrent_op_cudnn.cc index c3bbb8113eb..8f69944dcfd 100644 --- a/caffe2/operators/rnn/recurrent_op_cudnn.cc +++ b/caffe2/operators/rnn/recurrent_op_cudnn.cc @@ -33,17 +33,6 @@ TensorDescriptors::~TensorDescriptors() { } } -template -RecurrentBaseOp::RecurrentBaseOp( - const OperatorDef& operator_def, - Workspace* ws) - : Operator(operator_def, ws), cudnn_wrapper_(&context_) { - CUDNN_ENFORCE(cudnnCreateDropoutDescriptor(&dropoutDesc_)); - CUDNN_ENFORCE(cudnnCreateRNNDescriptor(&rnnDesc_)); - CUDNN_ENFORCE(cudnnCreateFilterDescriptor(&wDesc_)); - CUDNN_ENFORCE(cudnnCreateTensorDescriptor(&hxDesc_)); -} - template RecurrentBaseOp::~RecurrentBaseOp() { CUDNN_ENFORCE(cudnnDestroyDropoutDescriptor(dropoutDesc_)); diff --git a/caffe2/operators/rnn/recurrent_op_cudnn.h b/caffe2/operators/rnn/recurrent_op_cudnn.h index f3947901b61..44652d4e11b 100644 --- a/caffe2/operators/rnn/recurrent_op_cudnn.h +++ b/caffe2/operators/rnn/recurrent_op_cudnn.h @@ -32,7 +32,13 @@ template class RecurrentBaseOp : public Operator { public: USE_OPERATOR_FUNCTIONS(CUDAContext); - RecurrentBaseOp(const OperatorDef& operator_def, Workspace* ws); + template explicit RecurrentBaseOp(Args&&... args) + : Operator(std::forward(args)...), cudnn_wrapper_(&context_) { + CUDNN_ENFORCE(cudnnCreateDropoutDescriptor(&dropoutDesc_)); + CUDNN_ENFORCE(cudnnCreateRNNDescriptor(&rnnDesc_)); + CUDNN_ENFORCE(cudnnCreateFilterDescriptor(&wDesc_)); + CUDNN_ENFORCE(cudnnCreateTensorDescriptor(&hxDesc_)); + } virtual ~RecurrentBaseOp(); protected: @@ -84,8 +90,9 @@ template class RecurrentOp : public RecurrentBaseOp { public: USE_RECURRENT_BASE_FUNCTIONS - RecurrentOp(const OperatorDef& operator_def, Workspace* ws) - : RecurrentBaseOp(operator_def, ws) {} + template + explicit RecurrentOp(Args&&... args) + : RecurrentBaseOp(std::forward(args)...) {} bool RunOnDevice() override; @@ -100,8 +107,9 @@ template class RecurrentParamAccessOp : public RecurrentBaseOp { public: USE_RECURRENT_BASE_FUNCTIONS - RecurrentParamAccessOp(const OperatorDef& operator_def, Workspace* ws) - : RecurrentBaseOp(operator_def, ws) {} + template + explicit RecurrentParamAccessOp(Args&&... args) + : RecurrentBaseOp(std::forward(args)...) {} bool RunOnDevice() override; }; @@ -110,8 +118,9 @@ template class RecurrentGradientOp : public RecurrentBaseOp { public: USE_RECURRENT_BASE_FUNCTIONS - RecurrentGradientOp(const OperatorDef& operator_def, Workspace* ws) - : RecurrentBaseOp(operator_def, ws) {} + template + explicit RecurrentGradientOp(Args&&... args) + : RecurrentBaseOp(std::forward(args)...) {} bool RunOnDevice() override; diff --git a/caffe2/operators/roi_align_gradient_op.h b/caffe2/operators/roi_align_gradient_op.h index d8e0a164bd4..122ac6f410c 100644 --- a/caffe2/operators/roi_align_gradient_op.h +++ b/caffe2/operators/roi_align_gradient_op.h @@ -12,8 +12,9 @@ namespace caffe2 { template class RoIAlignGradientOp final : public Operator { public: - RoIAlignGradientOp(const OperatorDef& def, Workspace* ws) - : Operator(def, ws), + template + explicit RoIAlignGradientOp(Args&&... args) + : Operator(std::forward(args)...), spatial_scale_( this->template GetSingleArgument("spatial_scale", 1.)), pooled_height_(this->template GetSingleArgument("pooled_h", 1)), diff --git a/caffe2/operators/roi_align_op.h b/caffe2/operators/roi_align_op.h index f41fda4ee3d..f7e793b01c9 100644 --- a/caffe2/operators/roi_align_op.h +++ b/caffe2/operators/roi_align_op.h @@ -12,8 +12,9 @@ namespace caffe2 { template class RoIAlignOp final : public Operator { public: - RoIAlignOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit RoIAlignOp(Args&&... args) + : Operator(std::forward(args)...), order_(StringToStorageOrder( this->template GetSingleArgument("order", "NCHW"))), spatial_scale_( diff --git a/caffe2/operators/roi_align_rotated_gradient_op.h b/caffe2/operators/roi_align_rotated_gradient_op.h index bcb7d020a7f..421b9022efe 100644 --- a/caffe2/operators/roi_align_rotated_gradient_op.h +++ b/caffe2/operators/roi_align_rotated_gradient_op.h @@ -12,8 +12,9 @@ namespace caffe2 { template class RoIAlignRotatedGradientOp final : public Operator { public: - RoIAlignRotatedGradientOp(const OperatorDef& def, Workspace* ws) - : Operator(def, ws), + template + explicit RoIAlignRotatedGradientOp(Args&&... args) + : Operator(std::forward(args)...), spatial_scale_( this->template GetSingleArgument("spatial_scale", 1.)), pooled_height_(this->template GetSingleArgument("pooled_h", 1)), diff --git a/caffe2/operators/roi_align_rotated_op.h b/caffe2/operators/roi_align_rotated_op.h index c65b663e177..6828713e1f2 100644 --- a/caffe2/operators/roi_align_rotated_op.h +++ b/caffe2/operators/roi_align_rotated_op.h @@ -12,8 +12,9 @@ namespace caffe2 { template class RoIAlignRotatedOp final : public Operator { public: - RoIAlignRotatedOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit RoIAlignRotatedOp(Args&&... args) + : Operator(std::forward(args)...), order_(StringToStorageOrder( this->template GetSingleArgument("order", "NCHW"))), spatial_scale_( diff --git a/caffe2/operators/roi_pool_op.h b/caffe2/operators/roi_pool_op.h index bd5d01bf177..c8c1e9aa2c5 100644 --- a/caffe2/operators/roi_pool_op.h +++ b/caffe2/operators/roi_pool_op.h @@ -11,9 +11,11 @@ namespace caffe2 { template class RoIPoolOp final : public Operator { public: - RoIPoolOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), - is_test_(this->template GetSingleArgument(OpSchema::Arg_IsTest, 0)), + template + explicit RoIPoolOp(Args&&... args) + : Operator(std::forward(args)...), + is_test_( + this->template GetSingleArgument(OpSchema::Arg_IsTest, 0)), order_(StringToStorageOrder( this->template GetSingleArgument("order", "NCHW"))), pooled_height_(this->template GetSingleArgument("pooled_h", 1)), @@ -44,8 +46,9 @@ class RoIPoolOp final : public Operator { template class RoIPoolGradientOp final : public Operator { public: - RoIPoolGradientOp(const OperatorDef& def, Workspace* ws) - : Operator(def, ws), + template + explicit RoIPoolGradientOp(Args&&... args) + : Operator(std::forward(args)...), spatial_scale_( this->template GetSingleArgument("spatial_scale", 1.)), pooled_height_(this->template GetSingleArgument("pooled_h", 1)), diff --git a/caffe2/operators/scale_op.h b/caffe2/operators/scale_op.h index f5bc55fab53..2ea4c7dce96 100644 --- a/caffe2/operators/scale_op.h +++ b/caffe2/operators/scale_op.h @@ -11,8 +11,9 @@ template class ScaleOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - ScaleOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit ScaleOp(Args&&... args) + : Operator(std::forward(args)...), scale_(this->template GetSingleArgument("scale", 1.0)) {} template diff --git a/caffe2/operators/segment_reduction_op.h b/caffe2/operators/segment_reduction_op.h index 9d88297e752..a2678a67ac9 100644 --- a/caffe2/operators/segment_reduction_op.h +++ b/caffe2/operators/segment_reduction_op.h @@ -282,8 +282,9 @@ class AbstractReduceFrontOrBackOp : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - AbstractReduceFrontOrBackOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit AbstractReduceFrontOrBackOp(Args&&... args) + : Operator(std::forward(args)...), OP_SINGLE_ARG(int, "num_reduce_dim", num_reduce_dims_, 1) {} bool RunOnDevice() override { @@ -353,10 +354,9 @@ class AbstractReduceFrontOrBackGradientOp : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - AbstractReduceFrontOrBackGradientOp( - const OperatorDef& operator_def, - Workspace* ws) - : Operator(operator_def, ws), + template + explicit AbstractReduceFrontOrBackGradientOp(Args&&... args) + : Operator(std::forward(args)...), OP_SINGLE_ARG(int, "num_reduce_dim", num_reduce_dims_, 1) {} bool RunOnDevice() override { @@ -988,8 +988,9 @@ class AbstractUnsortedSegmentOp : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - AbstractUnsortedSegmentOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit AbstractUnsortedSegmentOp(Args&&... args) + : Operator(std::forward(args)...), OP_SINGLE_ARG(int, "num_segments", num_segments_, -1) {} bool RunOnDevice() override { diff --git a/caffe2/operators/selu_op.h b/caffe2/operators/selu_op.h index 23a778f92e7..437cf374fb6 100644 --- a/caffe2/operators/selu_op.h +++ b/caffe2/operators/selu_op.h @@ -13,8 +13,9 @@ class SeluOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - SeluOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws) { + template + explicit SeluOp(Args&&... args) + : Operator(std::forward(args)...) { alpha_ = this->template GetSingleArgument( "alpha", 1.6732632423543772848170429916717f); lambda_ = this->template GetSingleArgument( @@ -35,8 +36,9 @@ template class SeluGradientOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - SeluGradientOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws) { + template + explicit SeluGradientOp(Args&&... args) + : Operator(std::forward(args)...) { alpha_ = this->template GetSingleArgument( "alpha", 1.6732632423543772848170429916717f); lambda_ = this->template GetSingleArgument( diff --git a/caffe2/operators/sequence_ops.h b/caffe2/operators/sequence_ops.h index 0b41da82ff7..4d93489067a 100644 --- a/caffe2/operators/sequence_ops.h +++ b/caffe2/operators/sequence_ops.h @@ -11,8 +11,9 @@ template class GatherPaddingOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - GatherPaddingOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit GatherPaddingOp(Args&&... args) + : Operator(std::forward(args)...), startPaddingWidth_( this->template GetSingleArgument("padding_width", 1)), endPaddingWidth_( @@ -106,8 +107,9 @@ template class RemovePaddingOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - RemovePaddingOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit RemovePaddingOp(Args&&... args) + : Operator(std::forward(args)...), startPaddingWidth_( this->template GetSingleArgument("padding_width", 1)), endPaddingWidth_( @@ -146,8 +148,9 @@ template class AddPaddingOp final : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - AddPaddingOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit AddPaddingOp(Args&&... args) + : Operator(std::forward(args)...), startPaddingWidth_( this->template GetSingleArgument("padding_width", 1)), endPaddingWidth_( @@ -247,8 +250,9 @@ template class PadEmptySamplesOp : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - PadEmptySamplesOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws) {} + template + explicit PadEmptySamplesOp(Args&&... args) + : Operator(std::forward(args)...) {} bool RunOnDevice() override; }; diff --git a/caffe2/operators/shape_op.h b/caffe2/operators/shape_op.h index 9c44b473eaf..fd45cbeb190 100644 --- a/caffe2/operators/shape_op.h +++ b/caffe2/operators/shape_op.h @@ -13,8 +13,9 @@ template class ShapeOp : public Operator { public: USE_OPERATOR_CONTEXT_FUNCTIONS; - ShapeOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template + explicit ShapeOp(Args&&... args) + : Operator(std::forward(args)...), axes_(OperatorBase ::GetRepeatedArgument("axes")) {} bool RunOnDevice() override { diff --git a/caffe2/operators/sinusoid_position_encoding_op.h b/caffe2/operators/sinusoid_position_encoding_op.h index fd18d72fcff..206b7a71bb8 100644 --- a/caffe2/operators/sinusoid_position_encoding_op.h +++ b/caffe2/operators/sinusoid_position_encoding_op.h @@ -16,14 +16,13 @@ namespace caffe2 { template class SinusoidPositionEncodingOp : public Operator { public: - SinusoidPositionEncodingOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), - embedding_size_(this->template GetSingleArgument( - "embedding_size", - 100)), + template + explicit SinusoidPositionEncodingOp(Args&&... args) + : Operator(std::forward(args)...), + embedding_size_( + this->template GetSingleArgument("embedding_size", 100)), alpha_(this->template GetSingleArgument("alpha", 10000)), - amplitude_( - this->template GetSingleArgument("amplitude", 1)) {} + amplitude_(this->template GetSingleArgument("amplitude", 1)) {} USE_OPERATOR_CONTEXT_FUNCTIONS; bool RunOnDevice() override { diff --git a/caffe2/operators/slice_op.cu b/caffe2/operators/slice_op.cu index 49f9272ed14..7a843fee3a5 100644 --- a/caffe2/operators/slice_op.cu +++ b/caffe2/operators/slice_op.cu @@ -235,8 +235,8 @@ template<> class SliceOp : public Operator { public: USE_OPERATOR_FUNCTIONS(CUDAContext); - SliceOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template explicit SliceOp(Args&&... args) + : Operator(std::forward(args)...), starts_(this->template GetRepeatedArgument("starts")), ends_(this->template GetRepeatedArgument("ends")), statically_inited_(false) {} @@ -296,8 +296,8 @@ template <> class SliceGradientOp : public Operator { public: USE_OPERATOR_FUNCTIONS(CUDAContext); - SliceGradientOp(const OperatorDef& operator_def, Workspace* ws) - : Operator(operator_def, ws), + template explicit SliceGradientOp(Args&&... args) + : Operator(std::forward(args)...), starts_(this->template GetRepeatedArgument("starts")), ends_(this->template GetRepeatedArgument("ends")), statically_inited_(false) {}