mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 12:21:27 +01:00
34 lines
1.2 KiB
C++
34 lines
1.2 KiB
C++
#include "caffe2/operators/do_op.h"
|
|
|
|
namespace caffe2 {
|
|
|
|
REGISTER_CPU_OPERATOR(Do, DoOp<CPUContext>);
|
|
|
|
OPERATOR_SCHEMA(Do)
|
|
.NumInputs(1, INT_MAX)
|
|
.NumOutputs(1, INT_MAX)
|
|
.SetDoc(R"DOC(
|
|
'Do' control operator, executes a subnet in a separate workspace.
|
|
Last blobs in the input and output lists should be the same blob created with
|
|
CreateScope op. Arguments 'inner_blobs' and 'outer_blobs_idx' provide a mapping
|
|
between selected inner blob names and corresponding outer blob indices.
|
|
)DOC")
|
|
.Arg("net", "Subnet with blob bindings")
|
|
.Arg(
|
|
"inner_blobs",
|
|
"List of inner net blob names to bind to outer workspace")
|
|
.Arg(
|
|
"outer_blobs_idx",
|
|
"Indices of corresponding outer workspace blobs, "
|
|
"in order: operator inputs, operator outputs (skipping workspace blobs)")
|
|
.Arg(
|
|
"saved_fwd_blobs",
|
|
"List of blobs from the forward Do operator workspace needed "
|
|
"in backward pass, used in gradient Do operator")
|
|
.Arg(
|
|
"reuse_workspace",
|
|
"Whether to reuse workspace or create a new one in a given scope")
|
|
.AllowInplace([](int in, int out) -> bool { return true; });
|
|
|
|
} // namespace caffe2
|