GameServerX / MLPY /Lib /site-packages /onnx /onnx-data.in.proto
Kano001's picture
Upload 2707 files
dc2106c verified
raw
history blame
5.25 kB
// SPDX-License-Identifier: Apache-2.0
syntax = "proto2";
package {PACKAGE_NAME};
// #if ONNX-ML
import "onnx/onnx-ml.proto";
// #else
import "onnx/onnx.proto";
// #endif
// This file contains the proto definitions for MapProto and
// SequenceProto. These protos are used to represent the data structures
// of maps and sequence for use in test data or ModelProto.
// Sequences
//
// Defines a dense, ordered, collection of elements that are of homogeneous types.
// Sequences can be made out of tensors, maps, or sequences.
//
// If a sequence is made out of tensors, the tensors must have the same element
// type (i.e. int32). In some cases, the tensors in a sequence can have different
// shapes. Whether the tensors can have different shapes or not depends on the
// type/shape associated with the corresponding "ValueInfo". For example,
// "Sequence<Tensor<float, [M,N]>" means that all tensors have same shape. However,
// "Sequence<Tensor<float, [omitted,omitted]>" means they can have different
// shapes (all of rank 2), where "omitted" means the corresponding dimension has
// no symbolic/constant value. Finally, "Sequence<Tensor<float, omitted>>" means
// that the different tensors can have different ranks, when the "shape" itself
// is omitted from the tensor-type. For a more complete description, refer to
// https://github.com/onnx/onnx/blob/main/docs/IR.md#static-tensor-shapes.
//
message SequenceProto {
optional string name = 1;
enum DataType {
UNDEFINED = 0;
TENSOR = 1;
SPARSE_TENSOR = 2;
SEQUENCE = 3;
MAP = 4;
OPTIONAL = 5;
}
// The data type of the element.
// This field MUST have a valid SequenceProto.DataType value
optional int32 elem_type = 2;
// For TensorProto values.
// When this field is present, the elem_type field MUST be TENSOR.
repeated TensorProto tensor_values = 3;
// For SparseTensorProto values.
// When this field is present, the elem_type field MUST be SPARSE_TENSOR.
repeated SparseTensorProto sparse_tensor_values = 4;
// For SequenceProto values, allowing sequences to be of themselves.
// When this field is present, the elem_type field MUST be SEQUENCE.
repeated SequenceProto sequence_values = 5;
// For MapProto values.
// When this field is present, the elem_type field MUST be MAP.
repeated MapProto map_values = 6;
// For OptionalProto values.
// When this field is present, the elem_type field MUST be Optional.
repeated OptionalProto optional_values = 7;
}
// Maps
//
// Specifies an associative table, defined by keys and values.
// MapProto is formed with a repeated field of keys (of type INT8, INT16, INT32,
// INT64, UINT8, UINT16, UINT32, UINT64, or STRING) and values (of type TENSOR,
// SPARSE_TENSOR, SEQUENCE, or MAP). Key types and value types have to remain
// the same throughout the instantiation of the MapProto.
//
message MapProto {
optional string name = 1;
// All MapProto data types must have the same length of keys and values.
// The data type of the key.
// This field MUST have a valid TensorProto.DataType value of
// INT8, INT16, INT32, INT64, UINT8, UINT16, UINT32, UINT64, or STRING
optional int32 key_type = 2;
// Every element of keys has to be one of the following data types
// INT8, INT16, INT32, INT64, UINT8, UINT16, UINT32, UINT64, or STRING.
// The integer cases are represented by the repeated int64 field keys below.
repeated int64 keys = 3;
// If keys are strings, they are represented by the repeated bytes field
// string_keys below.
repeated bytes string_keys = 4;
// MapProto values are represented in a SequenceProto of the same length as the
// repeated keys field and have to be one of the following data types
// TENSOR, SPARSE_TENSOR, MAP, SEQUENCE.
optional SequenceProto values = 5;
}
// Optional
//
//
message OptionalProto {
optional string name = 1;
enum DataType {
UNDEFINED = 0;
TENSOR = 1;
SPARSE_TENSOR = 2;
SEQUENCE = 3;
MAP = 4;
OPTIONAL = 5;
}
// The data type of the element, identifies if the OptionalProto value
// is Tensor, Sparse Tensor, Sequence, Map, or Optional.
// The type of the optional value MUST match the elem_type specified.
// This field MUST have a valid OptionalProto.DataType value.
optional int32 elem_type = 2;
// For TensorProto value.
// When this field is present, the elem_type field MUST be TENSOR.
optional TensorProto tensor_value = 3;
// For SparseTensorProto value.
// When this field is present, the elem_type field MUST be SPARSE_TENSOR.
optional SparseTensorProto sparse_tensor_value = 4;
// For SequenceProto value.
// When this field is present, the elem_type field MUST be SEQUENCE.
optional SequenceProto sequence_value = 5;
// For MapProto value.
// When this field is present, the elem_type field MUST be MAP.
optional MapProto map_value = 6;
// For OptionalProto value, allowing optional to be of itself (completeness)
// When this field is present, the elem_type field MUST be OPTIONAL.
optional OptionalProto optional_value = 7;
}