class ClipOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- ClipOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws),
+ template <class... Args>
+ explicit ClipOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
min_(std::numeric_limits<T>::lowest()),
max_(std::numeric_limits<T>::max()) {
if (HasArgument("min")) {
class ClipGradientOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- ClipGradientOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws),
+ template <class... Args>
+ explicit ClipGradientOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
min_(std::numeric_limits<T>::lowest()),
max_(std::numeric_limits<T>::max()) {
if (HasArgument("min")) {
class CollectAndDistributeFpnRpnProposalsOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- CollectAndDistributeFpnRpnProposalsOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws),
+ template <class... Args>
+ explicit CollectAndDistributeFpnRpnProposalsOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
roi_canonical_scale_(
this->template GetSingleArgument<int>("roi_canonical_scale", 224)),
roi_canonical_level_(
static const int kSplitOpInputSize = 2;
USE_OPERATOR_CONTEXT_FUNCTIONS;
- SplitOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws),
+ template <class... Args>
+ explicit SplitOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
split_(this->template GetRepeatedArgument<int>("split")) {
CAFFE_ENFORCE(
!(OperatorBase::HasArgument("axis") &&
class SplitByLengthsOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- SplitByLengthsOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {
+ template <class... Args>
+ explicit SplitByLengthsOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {
CAFFE_ENFORCE(
!(OperatorBase::HasArgument("axis") &&
OperatorBase::HasArgument("order")),
class ConcatOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- ConcatOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {
+ template <class... Args>
+ explicit ConcatOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {
CAFFE_ENFORCE(
!(OperatorBase::HasArgument("axis") &&
OperatorBase::HasArgument("order")),
class ConditionalOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- ConditionalOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {}
+ template <class... Args>
+ explicit ConditionalOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
bool RunOnDevice() override;
};
class ConvOp final : public ConvPoolOpBase<Context> {
public:
USE_CONV_POOL_BASE_FUNCTIONS(Context);
- ConvOp(const OperatorDef& operator_def, Workspace* ws)
+ explicit ConvOp(const OperatorDef& operator_def, Workspace* ws)
: ConvPoolOpBase<Context>(operator_def, ws) {
// Since this is the default convolution implementation, we will
// use CAFFE_ENFORCE instead of OPERATOR_NEEDS_FEATURE.
class ConvGradientOp final : public ConvPoolOpBase<Context> {
public:
USE_CONV_POOL_BASE_FUNCTIONS(Context);
- ConvGradientOp(const OperatorDef& operator_def, Workspace* ws)
+ explicit ConvGradientOp(const OperatorDef& operator_def, Workspace* ws)
: ConvPoolOpBase<Context>(operator_def, ws),
no_bias_(this->template GetSingleArgument<int>("no_bias", 0)) {
CAFFE_ENFORCE(
class CudnnConvOpBase : public ConvPoolOpBase<CUDAContext> {
public:
- CudnnConvOpBase(const OperatorDef& operator_def, Workspace* ws)
+ explicit CudnnConvOpBase(const OperatorDef& operator_def, Workspace* ws)
: ConvPoolOpBase<CUDAContext>(operator_def, ws),
cudnn_wrapper_(&context_),
cudnn_ws_nbytes_limit_(OperatorBase::GetSingleArgument<size_t>(
class CudnnConvOp final : public CudnnConvOpBase {
public:
- CudnnConvOp(const OperatorDef& operator_def, Workspace* ws)
+ explicit CudnnConvOp(const OperatorDef& operator_def, Workspace* ws)
: CudnnConvOpBase(operator_def, ws) {}
~CudnnConvOp() override {}
class CudnnConvGradientOp final : public CudnnConvOpBase {
public:
- CudnnConvGradientOp(const OperatorDef& operator_def, Workspace* ws)
+ explicit CudnnConvGradientOp(const OperatorDef& operator_def, Workspace* ws)
: CudnnConvOpBase(operator_def, ws),
no_bias_(OperatorBase::GetSingleArgument<int>("no_bias", 0)) {
CAFFE_ENFORCE(
class EigenConvOp final : public ConvPoolOpBase<CPUContext> {
public:
USE_CONV_POOL_BASE_FUNCTIONS(CPUContext);
- EigenConvOp(const OperatorDef& operator_def, Workspace* ws)
+ explicit EigenConvOp(const OperatorDef& operator_def, Workspace* ws)
: ConvPoolOpBase<CPUContext>(operator_def, ws) {
OPERATOR_NEEDS_FEATURE(group_ == 1, "Group convolution not supported yet.");
}
class ConvPoolOpBase : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- ConvPoolOpBase(const OperatorDef& operator_def, Workspace* ws)
+ explicit ConvPoolOpBase(const OperatorDef& operator_def, Workspace* ws)
: Operator<Context>(operator_def, ws),
legacy_pad_(
static_cast<LegacyPadding>(this->template GetSingleArgument<int>(
class ConvTransposeOp final : public ConvTransposeUnpoolBase<Context> {
public:
USE_CONV_TRANSPOSE_UNPOOL_BASE_FUNCTIONS(Context);
- ConvTransposeOp(const OperatorDef& operator_def, Workspace* ws)
- : ConvTransposeUnpoolBase<Context>(operator_def, ws) {}
+ template <class... Args>
+ explicit ConvTransposeOp(Args&&... args)
+ : ConvTransposeUnpoolBase<Context>(std::forward<Args>(args)...) {}
bool RunOnDeviceWithOrderNCHW() override;
bool RunOnDeviceWithOrderNHWC() override;
class ConvTransposeGradientOp final : public ConvTransposeUnpoolBase<Context> {
public:
USE_CONV_TRANSPOSE_UNPOOL_BASE_FUNCTIONS(Context);
- ConvTransposeGradientOp(const OperatorDef& operator_def, Workspace* ws)
- : ConvTransposeUnpoolBase<Context>(operator_def, ws),
+ template <class... Args>
+ explicit ConvTransposeGradientOp(Args&&... args)
+ : ConvTransposeUnpoolBase<Context>(std::forward<Args>(args)...),
no_bias_(this->template GetSingleArgument<bool>("no_bias", false)) {
CAFFE_ENFORCE(
!(no_bias_ && OutputSize() == 3),
class CudnnConvTransposeOpBase : public ConvTransposeUnpoolBase<CUDAContext> {
public:
- CudnnConvTransposeOpBase(const OperatorDef& operator_def, Workspace* ws)
- : ConvTransposeUnpoolBase<CUDAContext>(operator_def, ws),
+ template <class... Args>
+ explicit CudnnConvTransposeOpBase(Args&&... args)
+ : ConvTransposeUnpoolBase<CUDAContext>(std::forward<Args>(args)...),
cudnn_wrapper_(&context_),
cudnn_ws_nbytes_limit_(OperatorBase::GetSingleArgument<size_t>(
"ws_nbytes_limit",
template <typename T>
class CudnnConvTransposeOp final : public CudnnConvTransposeOpBase {
public:
- CudnnConvTransposeOp(const OperatorDef& operator_def, Workspace* ws)
- : CudnnConvTransposeOpBase(operator_def, ws) {}
+ template <class... Args>
+ explicit CudnnConvTransposeOp(Args&&... args)
+ : CudnnConvTransposeOpBase(std::forward<Args>(args)...) {}
~CudnnConvTransposeOp() override {}
template <typename T>
class CudnnConvTransposeGradientOp final : public CudnnConvTransposeOpBase {
public:
- CudnnConvTransposeGradientOp(const OperatorDef& operator_def, Workspace* ws)
- : CudnnConvTransposeOpBase(operator_def, ws),
+ template <class... Args>
+ explicit CudnnConvTransposeGradientOp(Args&&... args)
+ : CudnnConvTransposeOpBase(std::forward<Args>(args)...),
no_bias_(OperatorBase::GetSingleArgument<bool>("no_bias", false)) {
CAFFE_ENFORCE(
!(no_bias_ && OutputSize() == 3),
class ConvTransposeUnpoolBase : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- ConvTransposeUnpoolBase(const OperatorDef& operator_def, Workspace* ws)
+ explicit ConvTransposeUnpoolBase(const OperatorDef& operator_def, Workspace* ws)
: Operator<Context>(operator_def, ws),
legacy_pad_(
static_cast<LegacyPadding>(this->template GetSingleArgument<int>(
class CopyOnDeviceLikeOp<CUDAContext, CUDAContext, CUDAContext>
: public Operator<CUDAContext> {
public:
- CopyOnDeviceLikeOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<CUDAContext>(operator_def, ws) {}
+ template<class... Args> explicit CopyOnDeviceLikeOp(Args&&... args)
+ : Operator<CUDAContext>(std::forward<Args>(args)...) {}
USE_OPERATOR_FUNCTIONS(CUDAContext);
bool RunOnDevice() override {
template <class Context, class DstContext, class SrcContext>
class CopyOnDeviceLikeOp : public CopyOp<Context, DstContext, SrcContext> {
public:
- CopyOnDeviceLikeOp(const OperatorDef& operator_def, Workspace* ws)
- : CopyOp<Context, DstContext, SrcContext>(operator_def, ws) {}
+ template <class... Args>
+ explicit CopyOnDeviceLikeOp(Args&&... args)
+ : CopyOp<Context, DstContext, SrcContext>(std::forward<Args>(args)...) {}
};
} // namespace caffe2
template <class Context>
class CosineEmbeddingCriterionOp final : public Operator<Context> {
public:
- CosineEmbeddingCriterionOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws),
+ template <class... Args>
+ explicit CosineEmbeddingCriterionOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
OP_SINGLE_ARG(float, "margin", margin_, 0.0) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
template <class Context>
class CosineEmbeddingCriterionGradientOp final : public Operator<Context> {
public:
- CosineEmbeddingCriterionGradientOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws),
+ template <class... Args>
+ explicit CosineEmbeddingCriterionGradientOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
OP_SINGLE_ARG(float, "margin", margin_, 0.0) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
class CreateCounterOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- CreateCounterOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws),
+ template <class... Args>
+ explicit CreateCounterOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
init_count_(this->template GetSingleArgument<T>("init_count", 0)) {
CAFFE_ENFORCE_LE(0, init_count_, "negative init_count is not permitted.");
}
class ResetCounterOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- ResetCounterOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws),
+ template <class... Args>
+ explicit ResetCounterOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
init_count_(this->template GetSingleArgument<T>("init_count", 0)) {
CAFFE_ENFORCE_LE(0, init_count_, "negative init_count is not permitted.");
}
class CountDownOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- CountDownOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {}
+ template <class... Args>
+ explicit CountDownOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
bool RunOnDevice() override {
auto& counterPtr = this->template Input<std::unique_ptr<Counter<T>>>(0);
class CheckCounterDoneOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- CheckCounterDoneOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {}
+ template <class... Args>
+ explicit CheckCounterDoneOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
bool RunOnDevice() override {
auto& counterPtr = this->template Input<std::unique_ptr<Counter<T>>>(0);
class CountUpOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- CountUpOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {}
+ template <class... Args>
+ explicit CountUpOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
bool RunOnDevice() override {
auto& counterPtr = this->template Input<std::unique_ptr<Counter<T>>>(0);
class RetrieveCountOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- RetrieveCountOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {}
+ template <class... Args>
+ explicit RetrieveCountOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
bool RunOnDevice() override {
auto& counterPtr = this->template Input<std::unique_ptr<Counter<T>>>(0);
template <class Context>
class CreateScopeOp final : public Operator<Context> {
public:
- CreateScopeOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {}
+ template <class... Args>
+ explicit CreateScopeOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override;
template <class Context>
class HasScopeOp final : public Operator<Context> {
public:
- HasScopeOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {}
+ template <class... Args>
+ explicit HasScopeOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override;
class ViterbiPathOp : public Operator<CPUContext> {
public:
- ViterbiPathOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws) {}
+ template <class... Args>
+ explicit ViterbiPathOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...) {}
void GatherRow(
const TensorCPU& data,
};
class SwapBestPathOp : public Operator<CPUContext> {
public:
- SwapBestPathOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws) {}
+ template <class... Args>
+ explicit SwapBestPathOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...) {}
bool RunOnDevice() override {
auto& data = Input(0);
auto& newBestIdicies = Input(1);
class SigmoidCrossEntropyWithLogitsOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- SigmoidCrossEntropyWithLogitsOp(
- const OperatorDef& operator_def,
- Workspace* ws)
- : Operator<Context>(operator_def, ws),
- log_D_trick_(this->template GetSingleArgument<bool>(
- "log_D_trick",
- false)),
- unjoined_lr_loss_(this->template GetSingleArgument<bool>(
- "unjoined_lr_loss",
- false)) {
+ template <class... Args>
+ explicit SigmoidCrossEntropyWithLogitsOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
+ log_D_trick_(
+ this->template GetSingleArgument<bool>("log_D_trick", false)),
+ unjoined_lr_loss_(
+ this->template GetSingleArgument<bool>("unjoined_lr_loss", false)) {
CAFFE_ENFORCE(
!(log_D_trick_ && unjoined_lr_loss_),
"log_D_trick_ and unjoined_lr_loss_ cannot be set as True simultaneously");
class SigmoidCrossEntropyWithLogitsGradientOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- SigmoidCrossEntropyWithLogitsGradientOp(
- const OperatorDef& operator_def,
- Workspace* ws)
- : Operator<Context>(operator_def, ws),
- log_D_trick_(this->template GetSingleArgument<bool>(
- "log_D_trick",
- false)),
- unjoined_lr_loss_(this->template GetSingleArgument<bool>(
- "unjoined_lr_loss",
- false)) {}
+ template <class... Args>
+ explicit SigmoidCrossEntropyWithLogitsGradientOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
+ log_D_trick_(
+ this->template GetSingleArgument<bool>("log_D_trick", false)),
+ unjoined_lr_loss_(
+ this->template GetSingleArgument<bool>("unjoined_lr_loss", false)) {
+ }
bool RunOnDevice() override;
class CTCBeamSearchDecoderOp : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- CTCBeamSearchDecoderOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {
+ template <class... Args>
+ explicit CTCBeamSearchDecoderOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {
beam_width_ = this->template GetSingleArgument<int32_t>("beam_width", 10);
prune_threshold_ =
this->template GetSingleArgument<float>("prune_threshold", 0.001);
class CTCGreedyDecoderOp : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- CTCGreedyDecoderOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {
+ template <class... Args>
+ explicit CTCGreedyDecoderOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {
merge_repeated_ =
this->template GetSingleArgument<bool>("merge_repeated", true);
}
class CreateTreeCursorOp : public Operator<CPUContext> {
public:
- CreateTreeCursorOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws),
+ template <class... Args>
+ explicit CreateTreeCursorOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...),
fields_(OperatorBase::GetRepeatedArgument<std::string>("fields")) {}
bool RunOnDevice() override {
class GetCursorOffsetOp : public Operator<CPUContext> {
public:
- GetCursorOffsetOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws) {}
+ template <class... Args>
+ explicit GetCursorOffsetOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...) {}
bool RunOnDevice() override {
auto& cursor = OperatorBase::Input<std::unique_ptr<TreeCursor>>(0);
class ResetCursorOp : public Operator<CPUContext> {
public:
- ResetCursorOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws) {}
+ template <class... Args>
+ explicit ResetCursorOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...) {}
bool RunOnDevice() override {
auto& cursor = OperatorBase::Input<std::unique_ptr<TreeCursor>>(0);
class CheckDatasetConsistencyOp : public Operator<CPUContext> {
public:
- CheckDatasetConsistencyOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws),
+ template <class... Args>
+ explicit CheckDatasetConsistencyOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...),
iterator_(OperatorBase::GetRepeatedArgument<std::string>("fields")) {}
bool RunOnDevice() override {
class PackRecordsOp : public Operator<CPUContext> {
public:
- PackRecordsOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws),
+ template <class... Args>
+ explicit PackRecordsOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...),
fields_(OperatorBase::GetRepeatedArgument<std::string>("fields")) {}
bool RunOnDevice() override {
class UnPackRecordsOp : public Operator<CPUContext> {
public:
- UnPackRecordsOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws),
+ template <class... Args>
+ explicit UnPackRecordsOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...),
fields_(OperatorBase::GetRepeatedArgument<std::string>("fields")) {}
bool RunOnDevice() override {
class ReadNextBatchOp : public Operator<CPUContext> {
public:
- ReadNextBatchOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws),
+ template <class... Args>
+ explicit ReadNextBatchOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...),
batchSize_(OperatorBase::GetSingleArgument<int>("batch_size", 1)),
enforceBatchSize_(OperatorBase::GetSingleArgument<bool>(
"enforce_batch_size",
class ComputeOffsetOp : public Operator<CPUContext> {
public:
- ComputeOffsetOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws) {}
+ template <class... Args>
+ explicit ComputeOffsetOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...) {}
bool RunOnDevice() override {
auto& cursor = OperatorBase::Input<std::unique_ptr<TreeCursor>>(0);
class SortAndShuffleOp : public Operator<CPUContext> {
public:
- SortAndShuffleOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws),
+ template <class... Args>
+ explicit SortAndShuffleOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...),
sort_by_field_idx_(
OperatorBase::GetSingleArgument<int>("sort_by_field_idx", 1)),
batch_size_(OperatorBase::GetSingleArgument<int>("batch_size", 1)),
class ReadRandomBatchOp : public Operator<CPUContext> {
public:
- ReadRandomBatchOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws),
+ template <class... Args>
+ explicit ReadRandomBatchOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...),
batchSize_(OperatorBase::GetSingleArgument<int>("batch_size", 1)),
enforceBatchSize_(
OperatorBase::GetSingleArgument<bool>("enforce_batch_size", false)),
class AppendOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- AppendOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {}
+ template <class... Args>
+ explicit AppendOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
bool RunOnDevice() override {
auto& a = Input(0);
class AtomicAppendOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- AtomicAppendOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws) {}
+ template <class... Args>
+ explicit AtomicAppendOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
bool RunOnDevice() override {
auto& mutex = OperatorBase::Input<std::unique_ptr<std::mutex>>(0);
class CollectTensorOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- CollectTensorOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws),
+ template <class... Args>
+ explicit CollectTensorOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
numToCollect_(
OperatorBase::GetSingleArgument<int>("num_to_collect", -1)),
numVisited_(0) {
class TrimDatasetOp : public Operator<CPUContext> {
public:
- TrimDatasetOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator(operator_def, ws),
+ template <class... Args>
+ explicit TrimDatasetOp(Args&&... args)
+ : Operator(std::forward<Args>(args)...),
iterator_(OperatorBase::GetRepeatedArgument<std::string>("fields")),
multiple_of_(OperatorBase::GetSingleArgument<int>("multiple_of", 1)) {
CAFFE_ENFORCE_GE(multiple_of_, 1);
class DeformConvOpBase : public ConvPoolOpBase<Context> {
public:
USE_CONV_POOL_BASE_FUNCTIONS(Context);
- DeformConvOpBase(const OperatorDef& operator_def, Workspace* ws)
+ explicit DeformConvOpBase(const OperatorDef& operator_def, Workspace* ws)
: ConvPoolOpBase<Context>(operator_def, ws),
deformable_group_(
this->template GetSingleArgument<int>("deformable_group", 1)) {}
public:
USE_DEFORMABLE_CONV_BASE_FUNCTIONS(T, Context);
- DeformConvOp(const OperatorDef& operator_def, Workspace* ws)
+ explicit DeformConvOp(const OperatorDef& operator_def, Workspace* ws)
: DeformConvOpBase<T, Context>(operator_def, ws) {
// Create shared buffer mutex in the constructor
// to avoid race-condition in DAGNet.
public:
USE_DEFORMABLE_CONV_BASE_FUNCTIONS(T, Context);
- DeformConvGradientOp(const OperatorDef& operator_def, Workspace* ws)
+ explicit DeformConvGradientOp(const OperatorDef& operator_def, Workspace* ws)
: DeformConvOpBase<T, Context>(operator_def, ws),
no_bias_(this->template GetSingleArgument<int>("no_bias", 0)) {
CAFFE_ENFORCE(
template <typename T, class Context>
class SquaredL2DistanceOp : public Operator<Context> {
public:
- SquaredL2DistanceOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws) {}
+ template <class... Args>
+ explicit SquaredL2DistanceOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override;
template <typename T, class Context>
class SquaredL2DistanceGradientOp final : public Operator<Context> {
public:
- SquaredL2DistanceGradientOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws) {}
+ template <class... Args>
+ explicit SquaredL2DistanceGradientOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override {
template <typename T, class Context>
class L1DistanceOp : public Operator<Context> {
public:
- L1DistanceOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws) {}
+ template <class... Args>
+ explicit L1DistanceOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override;
template <typename T, class Context>
class L1DistanceGradientOp : public Operator<Context> {
public:
- L1DistanceGradientOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws) {}
+ template <class... Args>
+ explicit L1DistanceGradientOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override;
template <typename T, class Context>
class DotProductOp : public Operator<Context> {
public:
- DotProductOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws) {}
+ template <class... Args>
+ explicit DotProductOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override;
template <typename T, class Context>
class DotProductGradientOp final : public Operator<Context> {
public:
- DotProductGradientOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws) {}
+ template <class... Args>
+ explicit DotProductGradientOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override;
template <typename T, class Context>
class DotProductWithPaddingOp : public Operator<Context> {
public:
- DotProductWithPaddingOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws),
+ template <class... Args>
+ explicit DotProductWithPaddingOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
pad_value_(this->template GetSingleArgument<float>("pad_value", 0.0)),
- replicate_(this->template GetSingleArgument<bool>("replicate", false)) {}
+ replicate_(this->template GetSingleArgument<bool>("replicate", false)) {
+ }
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override;
template <typename T, class Context>
class CosineSimilarityOp : public Operator<Context> {
public:
- CosineSimilarityOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws) {}
+ template <class... Args>
+ explicit CosineSimilarityOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override;
template <typename T, class Context>
class CosineSimilarityGradientOp final : public Operator<Context> {
public:
- CosineSimilarityGradientOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws) {}
+ template <class... Args>
+ explicit CosineSimilarityGradientOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...) {}
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override;
template <typename T, class Context>
class DotProductWithPaddingGradientOp final : public Operator<Context> {
public:
- DotProductWithPaddingGradientOp(const OperatorDef& def, Workspace* ws)
- : Operator<Context>(def, ws),
+ template <class... Args>
+ explicit DotProductWithPaddingGradientOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
pad_value_(this->template GetSingleArgument<float>("pad_value", 0.0)),
- replicate_(this->template GetSingleArgument<bool>("replicate", false)) {}
+ replicate_(this->template GetSingleArgument<bool>("replicate", false)) {
+ }
USE_OPERATOR_CONTEXT_FUNCTIONS;
bool RunOnDevice() override {
template <class Context>
class DoOp final : public Operator<Context> {
public:
- DoOp(const OperatorDef& operator_def, Workspace* ws)
+ explicit DoOp(const OperatorDef& operator_def, Workspace* ws)
: Operator<Context>(operator_def, ws), parent_ws_(ws) {
CAFFE_ENFORCE(
this->template HasSingleArgumentOfType<NetDef>("net"),
class DropoutOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- DropoutOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws),
+ template <class... Args>
+ explicit DropoutOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
ratio_(this->template GetSingleArgument<float>("ratio", 0.5)),
is_test_(
this->template GetSingleArgument<int>(OpSchema::Arg_IsTest, 0)) {
class DropoutGradientOp final : public Operator<Context> {
public:
USE_OPERATOR_CONTEXT_FUNCTIONS;
- DropoutGradientOp(const OperatorDef& operator_def, Workspace* ws)
- : Operator<Context>(operator_def, ws),
+ template <class... Args>
+ explicit DropoutGradientOp(Args&&... args)
+ : Operator<Context>(std::forward<Args>(args)...),
ratio_(this->template GetSingleArgument<float>("ratio", 0.5)),
is_test_(
this->template GetSingleArgument<int>(OpSchema::Arg_IsTest, 0)) {