137 lines
5.2 KiB
Protocol Buffer
137 lines
5.2 KiB
Protocol Buffer
//
|
|
// WARNING: This file is automatically generated! Please edit onnx.in.proto.
|
|
//
|
|
|
|
|
|
// Copyright (c) ONNX Project Contributors.
|
|
// Licensed under the Apache-2.0 license.
|
|
|
|
syntax = "proto2";
|
|
|
|
package onnx;
|
|
import "onnx/onnx-ml.proto";
|
|
|
|
//
|
|
// This file contains the proto definitions for OperatorSetProto and
|
|
// OperatorProto. OperatorSetProtos are used to describe a versioned
|
|
// set of operators that can be used by a ModelProto.
|
|
//
|
|
// Like ModelProto, OperatorSetProto is defined as a top-level file/wire
|
|
// format, however their usage is different.
|
|
//
|
|
// ModelProto files are used to describe executable graphs that can be
|
|
// executed directly by a framework, runtime, or engine.
|
|
//
|
|
// OperatorSetProto files are used to describe a set of operators that are
|
|
// available in a given environment. The file TBD.TBD is the OperatorSetProto
|
|
// that describes the ONNX standard operators.
|
|
//
|
|
|
|
// An OperatorProto represents the immutable specification of the signature
|
|
// and semantics of an operator.
|
|
//
|
|
// Operators are declared as part of an OperatorSet, which also defines the
|
|
// domain name for the set.
|
|
//
|
|
// Operators are uniquely identified by a three part identifier
|
|
// (domain, op_type, since_version)
|
|
// where
|
|
// *domain* is the domain of an operator set that
|
|
// contains this operator specification.
|
|
//
|
|
// *op_type* is the name of the operator as referenced by a
|
|
// NodeProto.op_type
|
|
//
|
|
// *since_version* is the version of the operator set that
|
|
// this operator was initially declared in.
|
|
//
|
|
message OperatorProto {
|
|
// The name of the operator within a domain.
|
|
// This field MUST be present in this version of the IR.
|
|
optional string op_type = 1;
|
|
|
|
// The version of the operator set that first introduced this
|
|
// operator. This value MUST be the same value as the
|
|
// opset_version of the operator set that first published this operator.
|
|
// Subsequent versions of the operator set MUST NOT alter the signature
|
|
// or semantics of the operator once published as STABLE.
|
|
// This field MUST be present in this version of the IR.
|
|
optional int64 since_version = 2;
|
|
|
|
// This field indicates whether the syntax, semantics, or presence
|
|
// of this operator is in an experimental or stable stage. Once an
|
|
// operator is published as STABLE, it's syntax and semantics MUST NOT
|
|
// change in subsequent versions of the operator set.
|
|
// When an operator is published as EXPERIMENTAL, the syntax and semantics
|
|
// of the operator MAY change across operator set versions.
|
|
// Operators "become" stable by deprecating the experimental version and
|
|
// introducing a new stable operator with the same op_type.
|
|
optional OperatorStatus status = 3;
|
|
|
|
// Eventually we will declare the signature of the operator here
|
|
|
|
// A human-readable documentation for this operator. Markdown is allowed.
|
|
optional string doc_string = 10;
|
|
}
|
|
|
|
// An OperatorSetProto represents an immutable set of immutable operator
|
|
// specifications.
|
|
//
|
|
// The domain of the set (OperatorSetProto.domain) is a reverse-DNS name
|
|
// that disambiguates operator sets defined by independent entities.
|
|
//
|
|
// The version of the set (opset_version) is a monotonically increasing
|
|
// integer that indicates changes to the membership of the operator set.
|
|
//
|
|
//
|
|
// Operator sets are uniquely identified by a two part identifier (domain, opset_version)
|
|
//
|
|
// Like ModelProto, OperatorSetProto is intended as a top-level file/wire format,
|
|
// and thus has the standard format headers in addition to the operator set information.
|
|
//
|
|
message OperatorSetProto {
|
|
// All OperatorSetProtos start with a distingushed byte sequence to disambiguate
|
|
// protobuf files containing OperatorSets from other content.
|
|
// This field MUST be "ONNXOPSET"
|
|
// This field MUST be present in this version of the IR
|
|
optional string magic = 1;
|
|
|
|
// All OperatorSetProtos indicate the version of the IR syntax and semantics
|
|
// they adhere to. It is always IR_VERSION.
|
|
// This field MUST be present in this version of the IR
|
|
optional int64 ir_version = 2;
|
|
|
|
// The prerelease component of the SemVer of the IR.
|
|
// This field MAY be absent in this version of the IR
|
|
optional string ir_version_prerelease = 3;
|
|
|
|
// The build metadata component of the SemVer of the IR.
|
|
// This field MAY be absent in this version of the IR
|
|
optional string ir_build_metadata = 7;
|
|
|
|
// Domain name of the operator set, in reverse DNS form (e.g., com.acme.dnnops).
|
|
optional string domain = 4;
|
|
|
|
// The version of the set of operators. This is a simple int value
|
|
// that is monotonically increasing as new versions of the operator set
|
|
// are published. All operators in this set MUST have since_version
|
|
// <= opset_version.
|
|
optional int64 opset_version = 5;
|
|
|
|
// A human-readable documentation for this set of operators. Markdown is allowed.
|
|
optional string doc_string = 6;
|
|
|
|
// The operators specified by this operator set.
|
|
// The (name, version) MUST be unique across all OperatorProtos in operator
|
|
repeated OperatorProto operator = 8;
|
|
|
|
// The functions specified by this operator set.
|
|
// The (name, version) MUST be unique across all OperatorProtos/FunctionProtos in operator/functions
|
|
repeated FunctionProto functions = 9;
|
|
}
|
|
|
|
|
|
// For using protobuf-lite
|
|
option optimize_for = LITE_RUNTIME;
|
|
|