const std::string& type,
const std::vector<string>& inputs,
const std::vector<string>& outputs) {
- createOperator(type, inputs, outputs, net_);
+ lastCreatedOp_ = createOperator(type, inputs, outputs, net_);
return *this;
}
#include "caffe2/core/tensor.h"
#include "caffe2/core/workspace.h"
+#include "caffe2/utils/proto_utils.h"
#include <cmath>
#include <vector>
return tensor;
}
-// Coincise util class to mutate a net in a chaining fashion.
+// Concise util class to mutate a net in a chaining fashion.
class NetMutator {
public:
explicit NetMutator(caffe2::NetDef* net) : net_(net) {}
const std::vector<string>& inputs,
const std::vector<string>& outputs);
+ // Add argument to the last created op.
+ template <typename T>
+ NetMutator& addArgument(const string& name, const T& value) {
+ CAFFE_ENFORCE(lastCreatedOp_ != nullptr);
+ AddArgument(name, value, lastCreatedOp_);
+ return *this;
+ }
+
private:
caffe2::NetDef* net_;
+ caffe2::OperatorDef* lastCreatedOp_;
};
-// Coincise util class to mutate a workspace in a chaining fashion.
+// Concise util class to mutate a workspace in a chaining fashion.
class WorkspaceMutator {
public:
explicit WorkspaceMutator(caffe2::Workspace* workspace)