|
- /**
- * This file is part of Open Source Software TensorFlow, version 1.15.0 https://github.com/tensorflow/tensorflow
- *
- * This file is included by GraphEngine so as to support model format conversion from tensorflow model to GraphEngine model.
- * This file in this distribution may have been modified by Huawei Technologies Co., Ltd ("Huawei Modifications").
- * All Huawei Modifications are Copyright 2019-2020 Huawei Technologies Co., Ltd.
- */
-
- syntax = "proto3";
-
- package domi.tensorflow;
- option cc_enable_arenas = true;
- option java_outer_classname = "TensorProtos";
- option java_multiple_files = true;
- option java_package = "org.tensorflow.framework";
-
- import "resource_handle.proto";
- import "tensor_shape.proto";
- import "types.proto";
-
- // Protocol buffer representing a tensor.
- message TensorProto {
- DataType dtype = 1;
-
- // Shape of the tensor.
- TensorShapeProto tensor_shape = 2;
-
- // Only one of the representations below is set, one of "tensor_contents" and
- // the "xxx_val" attributes. We are not using oneof because as oneofs cannot
- // contain repeated fields it would require another extra set of messages.
-
- // Version number.
- //
- // In version 0, if the "repeated xxx" representations contain only one
- // element, that element is repeated to fill the shape. This makes it easy
- // to represent a constant Tensor with a single value.
- int32 version_number = 3;
-
- // Serialized raw tensor content from either Tensor::AsProtoTensorContent or
- // memcpy in tensorflow::grpc::EncodeTensorToByteBuffer. This representation
- // can be used for all tensor types. The purpose of this representation is to
- // reduce serialization overhead during RPC call by avoiding serialization of
- // many repeated small items.
- bytes tensor_content = 4;
-
- // Type specific representations that make it easy to create tensor protos in
- // all languages. Only the representation corresponding to "dtype" can
- // be set. The values hold the flattened representation of the tensor in
- // row major order.
-
- // DT_HALF, DT_BFLOAT16. Note that since protobuf has no int16 type, we'll
- // have some pointless zero padding for each value here.
- repeated int32 half_val = 13 [packed = true];
-
- // DT_FLOAT.
- repeated float float_val = 5 [packed = true];
-
- // DT_DOUBLE.
- repeated double double_val = 6 [packed = true];
-
- // DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
- repeated int32 int_val = 7 [packed = true];
-
- // DT_STRING
- repeated bytes string_val = 8;
-
- // DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real
- // and imaginary parts of i-th single precision complex.
- repeated float scomplex_val = 9 [packed = true];
-
- // DT_INT64
- repeated int64 int64_val = 10 [packed = true];
-
- // DT_BOOL
- repeated bool bool_val = 11 [packed = true];
-
- // DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real
- // and imaginary parts of i-th double precision complex.
- repeated double dcomplex_val = 12 [packed = true];
-
- // DT_RESOURCE
- repeated ResourceHandleProto resource_handle_val = 14;
-
- // DT_VARIANT
- repeated VariantTensorDataProto variant_val = 15;
-
- // DT_UINT32
- repeated uint32 uint32_val = 16 [packed = true];
-
- // DT_UINT64
- repeated uint64 uint64_val = 17 [packed = true];
- };
-
- // Protocol buffer representing the serialization format of DT_VARIANT tensors.
- message VariantTensorDataProto {
- // Name of the type of objects being serialized.
- string type_name = 1;
- // Portions of the object that are not Tensors.
- bytes metadata = 2;
- // Tensors contained within objects being serialized.
- repeated TensorProto tensors = 3;
- }
|