// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: tensorflow/core/framework/tensor.proto

package org.tensorflow.proto.framework;

/**
 * <pre>
 * Protocol buffer representing a tensor.
 * </pre>
 *
 * Protobuf type {@code tensorflow.TensorProto}
 */
public  final class TensorProto extends
    com.google.protobuf.GeneratedMessageV3 implements
    // @@protoc_insertion_point(message_implements:tensorflow.TensorProto)
    TensorProtoOrBuilder {
private static final long serialVersionUID = 0L;
  // Use TensorProto.newBuilder() to construct.
  private TensorProto(com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }
  private TensorProto() {
    dtype_ = 0;
    tensorContent_ = com.google.protobuf.ByteString.EMPTY;
    halfVal_ = emptyIntList();
    floatVal_ = emptyFloatList();
    doubleVal_ = emptyDoubleList();
    intVal_ = emptyIntList();
    stringVal_ = java.util.Collections.emptyList();
    scomplexVal_ = emptyFloatList();
    int64Val_ = emptyLongList();
    boolVal_ = emptyBooleanList();
    dcomplexVal_ = emptyDoubleList();
    resourceHandleVal_ = java.util.Collections.emptyList();
    variantVal_ = java.util.Collections.emptyList();
    uint32Val_ = emptyIntList();
    uint64Val_ = emptyLongList();
  }

  @Override
  @SuppressWarnings({"unused"})
  protected Object newInstance(
      UnusedPrivateParameter unused) {
    return new TensorProto();
  }

  @Override
  public final com.google.protobuf.UnknownFieldSet
  getUnknownFields() {
    return this.unknownFields;
  }
  private TensorProto(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    this();
    if (extensionRegistry == null) {
      throw new NullPointerException();
    }
    int mutable_bitField0_ = 0;
    com.google.protobuf.UnknownFieldSet.Builder unknownFields =
        com.google.protobuf.UnknownFieldSet.newBuilder();
    try {
      boolean done = false;
      while (!done) {
        int tag = input.readTag();
        switch (tag) {
          case 0:
            done = true;
            break;
          case 8: {
            int rawValue = input.readEnum();

            dtype_ = rawValue;
            break;
          }
          case 18: {
            TensorShapeProto.Builder subBuilder = null;
            if (tensorShape_ != null) {
              subBuilder = tensorShape_.toBuilder();
            }
            tensorShape_ = input.readMessage(TensorShapeProto.parser(), extensionRegistry);
            if (subBuilder != null) {
              subBuilder.mergeFrom(tensorShape_);
              tensorShape_ = subBuilder.buildPartial();
            }

            break;
          }
          case 24: {

            versionNumber_ = input.readInt32();
            break;
          }
          case 34: {

            tensorContent_ = input.readBytes();
            break;
          }
          case 45: {
            if (!((mutable_bitField0_ & 0x00000002) != 0)) {
              floatVal_ = newFloatList();
              mutable_bitField0_ |= 0x00000002;
            }
            floatVal_.addFloat(input.readFloat());
            break;
          }
          case 42: {
            int length = input.readRawVarint32();
            int limit = input.pushLimit(length);
            if (!((mutable_bitField0_ & 0x00000002) != 0) && input.getBytesUntilLimit() > 0) {
              floatVal_ = newFloatList();
              mutable_bitField0_ |= 0x00000002;
            }
            while (input.getBytesUntilLimit() > 0) {
              floatVal_.addFloat(input.readFloat());
            }
            input.popLimit(limit);
            break;
          }
          case 49: {
            if (!((mutable_bitField0_ & 0x00000004) != 0)) {
              doubleVal_ = newDoubleList();
              mutable_bitField0_ |= 0x00000004;
            }
            doubleVal_.addDouble(input.readDouble());
            break;
          }
          case 50: {
            int length = input.readRawVarint32();
            int limit = input.pushLimit(length);
            if (!((mutable_bitField0_ & 0x00000004) != 0) && input.getBytesUntilLimit() > 0) {
              doubleVal_ = newDoubleList();
              mutable_bitField0_ |= 0x00000004;
            }
            while (input.getBytesUntilLimit() > 0) {
              doubleVal_.addDouble(input.readDouble());
            }
            input.popLimit(limit);
            break;
          }
          case 56: {
            if (!((mutable_bitField0_ & 0x00000008) != 0)) {
              intVal_ = newIntList();
              mutable_bitField0_ |= 0x00000008;
            }
            intVal_.addInt(input.readInt32());
            break;
          }
          case 58: {
            int length = input.readRawVarint32();
            int limit = input.pushLimit(length);
            if (!((mutable_bitField0_ & 0x00000008) != 0) && input.getBytesUntilLimit() > 0) {
              intVal_ = newIntList();
              mutable_bitField0_ |= 0x00000008;
            }
            while (input.getBytesUntilLimit() > 0) {
              intVal_.addInt(input.readInt32());
            }
            input.popLimit(limit);
            break;
          }
          case 66: {
            if (!((mutable_bitField0_ & 0x00000010) != 0)) {
              stringVal_ = new java.util.ArrayList<com.google.protobuf.ByteString>();
              mutable_bitField0_ |= 0x00000010;
            }
            stringVal_.add(input.readBytes());
            break;
          }
          case 77: {
            if (!((mutable_bitField0_ & 0x00000020) != 0)) {
              scomplexVal_ = newFloatList();
              mutable_bitField0_ |= 0x00000020;
            }
            scomplexVal_.addFloat(input.readFloat());
            break;
          }
          case 74: {
            int length = input.readRawVarint32();
            int limit = input.pushLimit(length);
            if (!((mutable_bitField0_ & 0x00000020) != 0) && input.getBytesUntilLimit() > 0) {
              scomplexVal_ = newFloatList();
              mutable_bitField0_ |= 0x00000020;
            }
            while (input.getBytesUntilLimit() > 0) {
              scomplexVal_.addFloat(input.readFloat());
            }
            input.popLimit(limit);
            break;
          }
          case 80: {
            if (!((mutable_bitField0_ & 0x00000040) != 0)) {
              int64Val_ = newLongList();
              mutable_bitField0_ |= 0x00000040;
            }
            int64Val_.addLong(input.readInt64());
            break;
          }
          case 82: {
            int length = input.readRawVarint32();
            int limit = input.pushLimit(length);
            if (!((mutable_bitField0_ & 0x00000040) != 0) && input.getBytesUntilLimit() > 0) {
              int64Val_ = newLongList();
              mutable_bitField0_ |= 0x00000040;
            }
            while (input.getBytesUntilLimit() > 0) {
              int64Val_.addLong(input.readInt64());
            }
            input.popLimit(limit);
            break;
          }
          case 88: {
            if (!((mutable_bitField0_ & 0x00000080) != 0)) {
              boolVal_ = newBooleanList();
              mutable_bitField0_ |= 0x00000080;
            }
            boolVal_.addBoolean(input.readBool());
            break;
          }
          case 90: {
            int length = input.readRawVarint32();
            int limit = input.pushLimit(length);
            if (!((mutable_bitField0_ & 0x00000080) != 0) && input.getBytesUntilLimit() > 0) {
              boolVal_ = newBooleanList();
              mutable_bitField0_ |= 0x00000080;
            }
            while (input.getBytesUntilLimit() > 0) {
              boolVal_.addBoolean(input.readBool());
            }
            input.popLimit(limit);
            break;
          }
          case 97: {
            if (!((mutable_bitField0_ & 0x00000100) != 0)) {
              dcomplexVal_ = newDoubleList();
              mutable_bitField0_ |= 0x00000100;
            }
            dcomplexVal_.addDouble(input.readDouble());
            break;
          }
          case 98: {
            int length = input.readRawVarint32();
            int limit = input.pushLimit(length);
            if (!((mutable_bitField0_ & 0x00000100) != 0) && input.getBytesUntilLimit() > 0) {
              dcomplexVal_ = newDoubleList();
              mutable_bitField0_ |= 0x00000100;
            }
            while (input.getBytesUntilLimit() > 0) {
              dcomplexVal_.addDouble(input.readDouble());
            }
            input.popLimit(limit);
            break;
          }
          case 104: {
            if (!((mutable_bitField0_ & 0x00000001) != 0)) {
              halfVal_ = newIntList();
              mutable_bitField0_ |= 0x00000001;
            }
            halfVal_.addInt(input.readInt32());
            break;
          }
          case 106: {
            int length = input.readRawVarint32();
            int limit = input.pushLimit(length);
            if (!((mutable_bitField0_ & 0x00000001) != 0) && input.getBytesUntilLimit() > 0) {
              halfVal_ = newIntList();
              mutable_bitField0_ |= 0x00000001;
            }
            while (input.getBytesUntilLimit() > 0) {
              halfVal_.addInt(input.readInt32());
            }
            input.popLimit(limit);
            break;
          }
          case 114: {
            if (!((mutable_bitField0_ & 0x00000200) != 0)) {
              resourceHandleVal_ = new java.util.ArrayList<ResourceHandleProto>();
              mutable_bitField0_ |= 0x00000200;
            }
            resourceHandleVal_.add(
                input.readMessage(ResourceHandleProto.parser(), extensionRegistry));
            break;
          }
          case 122: {
            if (!((mutable_bitField0_ & 0x00000400) != 0)) {
              variantVal_ = new java.util.ArrayList<VariantTensorDataProto>();
              mutable_bitField0_ |= 0x00000400;
            }
            variantVal_.add(
                input.readMessage(VariantTensorDataProto.parser(), extensionRegistry));
            break;
          }
          case 128: {
            if (!((mutable_bitField0_ & 0x00000800) != 0)) {
              uint32Val_ = newIntList();
              mutable_bitField0_ |= 0x00000800;
            }
            uint32Val_.addInt(input.readUInt32());
            break;
          }
          case 130: {
            int length = input.readRawVarint32();
            int limit = input.pushLimit(length);
            if (!((mutable_bitField0_ & 0x00000800) != 0) && input.getBytesUntilLimit() > 0) {
              uint32Val_ = newIntList();
              mutable_bitField0_ |= 0x00000800;
            }
            while (input.getBytesUntilLimit() > 0) {
              uint32Val_.addInt(input.readUInt32());
            }
            input.popLimit(limit);
            break;
          }
          case 136: {
            if (!((mutable_bitField0_ & 0x00001000) != 0)) {
              uint64Val_ = newLongList();
              mutable_bitField0_ |= 0x00001000;
            }
            uint64Val_.addLong(input.readUInt64());
            break;
          }
          case 138: {
            int length = input.readRawVarint32();
            int limit = input.pushLimit(length);
            if (!((mutable_bitField0_ & 0x00001000) != 0) && input.getBytesUntilLimit() > 0) {
              uint64Val_ = newLongList();
              mutable_bitField0_ |= 0x00001000;
            }
            while (input.getBytesUntilLimit() > 0) {
              uint64Val_.addLong(input.readUInt64());
            }
            input.popLimit(limit);
            break;
          }
          default: {
            if (!parseUnknownField(
                input, unknownFields, extensionRegistry, tag)) {
              done = true;
            }
            break;
          }
        }
      }
    } catch (com.google.protobuf.InvalidProtocolBufferException e) {
      throw e.setUnfinishedMessage(this);
    } catch (java.io.IOException e) {
      throw new com.google.protobuf.InvalidProtocolBufferException(
          e).setUnfinishedMessage(this);
    } finally {
      if (((mutable_bitField0_ & 0x00000002) != 0)) {
        floatVal_.makeImmutable(); // C
      }
      if (((mutable_bitField0_ & 0x00000004) != 0)) {
        doubleVal_.makeImmutable(); // C
      }
      if (((mutable_bitField0_ & 0x00000008) != 0)) {
        intVal_.makeImmutable(); // C
      }
      if (((mutable_bitField0_ & 0x00000010) != 0)) {
        stringVal_ = java.util.Collections.unmodifiableList(stringVal_); // C
      }
      if (((mutable_bitField0_ & 0x00000020) != 0)) {
        scomplexVal_.makeImmutable(); // C
      }
      if (((mutable_bitField0_ & 0x00000040) != 0)) {
        int64Val_.makeImmutable(); // C
      }
      if (((mutable_bitField0_ & 0x00000080) != 0)) {
        boolVal_.makeImmutable(); // C
      }
      if (((mutable_bitField0_ & 0x00000100) != 0)) {
        dcomplexVal_.makeImmutable(); // C
      }
      if (((mutable_bitField0_ & 0x00000001) != 0)) {
        halfVal_.makeImmutable(); // C
      }
      if (((mutable_bitField0_ & 0x00000200) != 0)) {
        resourceHandleVal_ = java.util.Collections.unmodifiableList(resourceHandleVal_);
      }
      if (((mutable_bitField0_ & 0x00000400) != 0)) {
        variantVal_ = java.util.Collections.unmodifiableList(variantVal_);
      }
      if (((mutable_bitField0_ & 0x00000800) != 0)) {
        uint32Val_.makeImmutable(); // C
      }
      if (((mutable_bitField0_ & 0x00001000) != 0)) {
        uint64Val_.makeImmutable(); // C
      }
      this.unknownFields = unknownFields.build();
      makeExtensionsImmutable();
    }
  }

  public static final com.google.protobuf.Descriptors.Descriptor
  getDescriptor() {
    return TensorProtos.internal_static_tensorflow_TensorProto_descriptor;
  }

  @Override
  protected FieldAccessorTable
  internalGetFieldAccessorTable() {
    return TensorProtos.internal_static_tensorflow_TensorProto_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            TensorProto.class, Builder.class);
  }

  public static final int DTYPE_FIELD_NUMBER = 1;
  private int dtype_;

  /**
   * <code>.tensorflow.DataType dtype = 1;</code>
   */
  public int getDtypeValue() {
    return dtype_;
  }

  /**
   * <code>.tensorflow.DataType dtype = 1;</code>
   */
  public DataType getDtype() {
    @SuppressWarnings("deprecation")
    DataType result = DataType.valueOf(dtype_);
    return result == null ? DataType.UNRECOGNIZED : result;
  }

  public static final int TENSOR_SHAPE_FIELD_NUMBER = 2;
  private TensorShapeProto tensorShape_;
  /**
   * <pre>
   * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
   * </pre>
   *
   * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
   */
  public boolean hasTensorShape() {
    return tensorShape_ != null;
  }

  /**
   * <pre>
   * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
   * </pre>
   *
   * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
   */
  public TensorShapeProto getTensorShape() {
    return tensorShape_ == null ? TensorShapeProto.getDefaultInstance() : tensorShape_;
  }

  /**
   * <pre>
   * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
   * </pre>
   *
   * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
   */
  public TensorShapeProtoOrBuilder getTensorShapeOrBuilder() {
    return getTensorShape();
  }

  public static final int VERSION_NUMBER_FIELD_NUMBER = 3;
  private int versionNumber_;
  /**
   * <pre>
   * 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.
   * </pre>
   *
   * <code>int32 version_number = 3;</code>
   */
  public int getVersionNumber() {
    return versionNumber_;
  }

  public static final int TENSOR_CONTENT_FIELD_NUMBER = 4;
  private com.google.protobuf.ByteString tensorContent_;
  /**
   * <pre>
   * 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.
   * </pre>
   *
   * <code>bytes tensor_content = 4;</code>
   */
  public com.google.protobuf.ByteString getTensorContent() {
    return tensorContent_;
  }

  public static final int HALF_VAL_FIELD_NUMBER = 13;
  private com.google.protobuf.Internal.IntList halfVal_;

  /**
   * <pre>
   * DT_HALF, DT_BFLOAT16. Note that since protobuf has no int16 type, we'll
   * have some pointless zero padding for each value here.
   * </pre>
   *
   * <code>repeated int32 half_val = 13 [packed = true];</code>
   */
  public java.util.List<Integer>
  getHalfValList() {
    return halfVal_;
  }

  /**
   * <pre>
   * DT_HALF, DT_BFLOAT16. Note that since protobuf has no int16 type, we'll
   * have some pointless zero padding for each value here.
   * </pre>
   *
   * <code>repeated int32 half_val = 13 [packed = true];</code>
   */
  public int getHalfValCount() {
    return halfVal_.size();
  }
  /**
   * <pre>
   * DT_HALF, DT_BFLOAT16. Note that since protobuf has no int16 type, we'll
   * have some pointless zero padding for each value here.
   * </pre>
   *
   * <code>repeated int32 half_val = 13 [packed = true];</code>
   */
  public int getHalfVal(int index) {
    return halfVal_.getInt(index);
  }
  private int halfValMemoizedSerializedSize = -1;

  public static final int FLOAT_VAL_FIELD_NUMBER = 5;
  private com.google.protobuf.Internal.FloatList floatVal_;

  /**
   * <pre>
   * DT_FLOAT.
   * </pre>
   *
   * <code>repeated float float_val = 5 [packed = true];</code>
   */
  public java.util.List<Float>
  getFloatValList() {
    return floatVal_;
  }

  /**
   * <pre>
   * DT_FLOAT.
   * </pre>
   *
   * <code>repeated float float_val = 5 [packed = true];</code>
   */
  public int getFloatValCount() {
    return floatVal_.size();
  }
  /**
   * <pre>
   * DT_FLOAT.
   * </pre>
   *
   * <code>repeated float float_val = 5 [packed = true];</code>
   */
  public float getFloatVal(int index) {
    return floatVal_.getFloat(index);
  }
  private int floatValMemoizedSerializedSize = -1;

  public static final int DOUBLE_VAL_FIELD_NUMBER = 6;
  private com.google.protobuf.Internal.DoubleList doubleVal_;

  /**
   * <pre>
   * DT_DOUBLE.
   * </pre>
   *
   * <code>repeated double double_val = 6 [packed = true];</code>
   */
  public java.util.List<Double>
  getDoubleValList() {
    return doubleVal_;
  }

  /**
   * <pre>
   * DT_DOUBLE.
   * </pre>
   *
   * <code>repeated double double_val = 6 [packed = true];</code>
   */
  public int getDoubleValCount() {
    return doubleVal_.size();
  }
  /**
   * <pre>
   * DT_DOUBLE.
   * </pre>
   *
   * <code>repeated double double_val = 6 [packed = true];</code>
   */
  public double getDoubleVal(int index) {
    return doubleVal_.getDouble(index);
  }
  private int doubleValMemoizedSerializedSize = -1;

  public static final int INT_VAL_FIELD_NUMBER = 7;
  private com.google.protobuf.Internal.IntList intVal_;

  /**
   * <pre>
   * DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
   * </pre>
   *
   * <code>repeated int32 int_val = 7 [packed = true];</code>
   */
  public java.util.List<Integer>
  getIntValList() {
    return intVal_;
  }

  /**
   * <pre>
   * DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
   * </pre>
   *
   * <code>repeated int32 int_val = 7 [packed = true];</code>
   */
  public int getIntValCount() {
    return intVal_.size();
  }
  /**
   * <pre>
   * DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
   * </pre>
   *
   * <code>repeated int32 int_val = 7 [packed = true];</code>
   */
  public int getIntVal(int index) {
    return intVal_.getInt(index);
  }
  private int intValMemoizedSerializedSize = -1;

  public static final int STRING_VAL_FIELD_NUMBER = 8;
  private java.util.List<com.google.protobuf.ByteString> stringVal_;
  /**
   * <pre>
   * DT_STRING
   * </pre>
   *
   * <code>repeated bytes string_val = 8;</code>
   */
  public java.util.List<com.google.protobuf.ByteString>
      getStringValList() {
    return stringVal_;
  }
  /**
   * <pre>
   * DT_STRING
   * </pre>
   *
   * <code>repeated bytes string_val = 8;</code>
   */
  public int getStringValCount() {
    return stringVal_.size();
  }
  /**
   * <pre>
   * DT_STRING
   * </pre>
   *
   * <code>repeated bytes string_val = 8;</code>
   */
  public com.google.protobuf.ByteString getStringVal(int index) {
    return stringVal_.get(index);
  }

  public static final int SCOMPLEX_VAL_FIELD_NUMBER = 9;
  private com.google.protobuf.Internal.FloatList scomplexVal_;

  /**
   * <pre>
   * DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real
   * and imaginary parts of i-th single precision complex.
   * </pre>
   *
   * <code>repeated float scomplex_val = 9 [packed = true];</code>
   */
  public java.util.List<Float>
  getScomplexValList() {
    return scomplexVal_;
  }

  /**
   * <pre>
   * DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real
   * and imaginary parts of i-th single precision complex.
   * </pre>
   *
   * <code>repeated float scomplex_val = 9 [packed = true];</code>
   */
  public int getScomplexValCount() {
    return scomplexVal_.size();
  }
  /**
   * <pre>
   * DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real
   * and imaginary parts of i-th single precision complex.
   * </pre>
   *
   * <code>repeated float scomplex_val = 9 [packed = true];</code>
   */
  public float getScomplexVal(int index) {
    return scomplexVal_.getFloat(index);
  }
  private int scomplexValMemoizedSerializedSize = -1;

  public static final int INT64_VAL_FIELD_NUMBER = 10;
  private com.google.protobuf.Internal.LongList int64Val_;

  /**
   * <pre>
   * DT_INT64
   * </pre>
   *
   * <code>repeated int64 int64_val = 10 [packed = true];</code>
   */
  public java.util.List<Long>
  getInt64ValList() {
    return int64Val_;
  }

  /**
   * <pre>
   * DT_INT64
   * </pre>
   *
   * <code>repeated int64 int64_val = 10 [packed = true];</code>
   */
  public int getInt64ValCount() {
    return int64Val_.size();
  }
  /**
   * <pre>
   * DT_INT64
   * </pre>
   *
   * <code>repeated int64 int64_val = 10 [packed = true];</code>
   */
  public long getInt64Val(int index) {
    return int64Val_.getLong(index);
  }
  private int int64ValMemoizedSerializedSize = -1;

  public static final int BOOL_VAL_FIELD_NUMBER = 11;
  private com.google.protobuf.Internal.BooleanList boolVal_;

  /**
   * <pre>
   * DT_BOOL
   * </pre>
   *
   * <code>repeated bool bool_val = 11 [packed = true];</code>
   */
  public java.util.List<Boolean>
  getBoolValList() {
    return boolVal_;
  }

  /**
   * <pre>
   * DT_BOOL
   * </pre>
   *
   * <code>repeated bool bool_val = 11 [packed = true];</code>
   */
  public int getBoolValCount() {
    return boolVal_.size();
  }
  /**
   * <pre>
   * DT_BOOL
   * </pre>
   *
   * <code>repeated bool bool_val = 11 [packed = true];</code>
   */
  public boolean getBoolVal(int index) {
    return boolVal_.getBoolean(index);
  }
  private int boolValMemoizedSerializedSize = -1;

  public static final int DCOMPLEX_VAL_FIELD_NUMBER = 12;
  private com.google.protobuf.Internal.DoubleList dcomplexVal_;

  /**
   * <pre>
   * DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real
   * and imaginary parts of i-th double precision complex.
   * </pre>
   *
   * <code>repeated double dcomplex_val = 12 [packed = true];</code>
   */
  public java.util.List<Double>
  getDcomplexValList() {
    return dcomplexVal_;
  }

  /**
   * <pre>
   * DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real
   * and imaginary parts of i-th double precision complex.
   * </pre>
   *
   * <code>repeated double dcomplex_val = 12 [packed = true];</code>
   */
  public int getDcomplexValCount() {
    return dcomplexVal_.size();
  }
  /**
   * <pre>
   * DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real
   * and imaginary parts of i-th double precision complex.
   * </pre>
   *
   * <code>repeated double dcomplex_val = 12 [packed = true];</code>
   */
  public double getDcomplexVal(int index) {
    return dcomplexVal_.getDouble(index);
  }
  private int dcomplexValMemoizedSerializedSize = -1;

  public static final int RESOURCE_HANDLE_VAL_FIELD_NUMBER = 14;
  private java.util.List<ResourceHandleProto> resourceHandleVal_;

  /**
   * <pre>
   * DT_RESOURCE
   * </pre>
   *
   * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
   */
  public java.util.List<ResourceHandleProto> getResourceHandleValList() {
    return resourceHandleVal_;
  }

  /**
   * <pre>
   * DT_RESOURCE
   * </pre>
   *
   * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
   */
  public java.util.List<? extends ResourceHandleProtoOrBuilder>
  getResourceHandleValOrBuilderList() {
    return resourceHandleVal_;
  }

  /**
   * <pre>
   * DT_RESOURCE
   * </pre>
   *
   * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
   */
  public int getResourceHandleValCount() {
    return resourceHandleVal_.size();
  }

  /**
   * <pre>
   * DT_RESOURCE
   * </pre>
   *
   * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
   */
  public ResourceHandleProto getResourceHandleVal(int index) {
    return resourceHandleVal_.get(index);
  }

  /**
   * <pre>
   * DT_RESOURCE
   * </pre>
   *
   * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
   */
  public ResourceHandleProtoOrBuilder getResourceHandleValOrBuilder(
      int index) {
    return resourceHandleVal_.get(index);
  }

  public static final int VARIANT_VAL_FIELD_NUMBER = 15;
  private java.util.List<VariantTensorDataProto> variantVal_;

  /**
   * <pre>
   * DT_VARIANT
   * </pre>
   *
   * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
   */
  public java.util.List<VariantTensorDataProto> getVariantValList() {
    return variantVal_;
  }

  /**
   * <pre>
   * DT_VARIANT
   * </pre>
   *
   * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
   */
  public java.util.List<? extends VariantTensorDataProtoOrBuilder>
  getVariantValOrBuilderList() {
    return variantVal_;
  }

  /**
   * <pre>
   * DT_VARIANT
   * </pre>
   *
   * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
   */
  public int getVariantValCount() {
    return variantVal_.size();
  }

  /**
   * <pre>
   * DT_VARIANT
   * </pre>
   *
   * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
   */
  public VariantTensorDataProto getVariantVal(int index) {
    return variantVal_.get(index);
  }

  /**
   * <pre>
   * DT_VARIANT
   * </pre>
   *
   * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
   */
  public VariantTensorDataProtoOrBuilder getVariantValOrBuilder(
      int index) {
    return variantVal_.get(index);
  }

  public static final int UINT32_VAL_FIELD_NUMBER = 16;
  private com.google.protobuf.Internal.IntList uint32Val_;

  /**
   * <pre>
   * DT_UINT32
   * </pre>
   *
   * <code>repeated uint32 uint32_val = 16 [packed = true];</code>
   */
  public java.util.List<Integer>
  getUint32ValList() {
    return uint32Val_;
  }

  /**
   * <pre>
   * DT_UINT32
   * </pre>
   *
   * <code>repeated uint32 uint32_val = 16 [packed = true];</code>
   */
  public int getUint32ValCount() {
    return uint32Val_.size();
  }
  /**
   * <pre>
   * DT_UINT32
   * </pre>
   *
   * <code>repeated uint32 uint32_val = 16 [packed = true];</code>
   */
  public int getUint32Val(int index) {
    return uint32Val_.getInt(index);
  }
  private int uint32ValMemoizedSerializedSize = -1;

  public static final int UINT64_VAL_FIELD_NUMBER = 17;
  private com.google.protobuf.Internal.LongList uint64Val_;

  /**
   * <pre>
   * DT_UINT64
   * </pre>
   *
   * <code>repeated uint64 uint64_val = 17 [packed = true];</code>
   */
  public java.util.List<Long>
  getUint64ValList() {
    return uint64Val_;
  }

  /**
   * <pre>
   * DT_UINT64
   * </pre>
   *
   * <code>repeated uint64 uint64_val = 17 [packed = true];</code>
   */
  public int getUint64ValCount() {
    return uint64Val_.size();
  }
  /**
   * <pre>
   * DT_UINT64
   * </pre>
   *
   * <code>repeated uint64 uint64_val = 17 [packed = true];</code>
   */
  public long getUint64Val(int index) {
    return uint64Val_.getLong(index);
  }
  private int uint64ValMemoizedSerializedSize = -1;

  private byte memoizedIsInitialized = -1;

  @Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @Override
  public void writeTo(com.google.protobuf.CodedOutputStream output)
                      throws java.io.IOException {
    getSerializedSize();
    if (dtype_ != DataType.DT_INVALID.getNumber()) {
      output.writeEnum(1, dtype_);
    }
    if (tensorShape_ != null) {
      output.writeMessage(2, getTensorShape());
    }
    if (versionNumber_ != 0) {
      output.writeInt32(3, versionNumber_);
    }
    if (!tensorContent_.isEmpty()) {
      output.writeBytes(4, tensorContent_);
    }
    if (getFloatValList().size() > 0) {
      output.writeUInt32NoTag(42);
      output.writeUInt32NoTag(floatValMemoizedSerializedSize);
    }
    for (int i = 0; i < floatVal_.size(); i++) {
      output.writeFloatNoTag(floatVal_.getFloat(i));
    }
    if (getDoubleValList().size() > 0) {
      output.writeUInt32NoTag(50);
      output.writeUInt32NoTag(doubleValMemoizedSerializedSize);
    }
    for (int i = 0; i < doubleVal_.size(); i++) {
      output.writeDoubleNoTag(doubleVal_.getDouble(i));
    }
    if (getIntValList().size() > 0) {
      output.writeUInt32NoTag(58);
      output.writeUInt32NoTag(intValMemoizedSerializedSize);
    }
    for (int i = 0; i < intVal_.size(); i++) {
      output.writeInt32NoTag(intVal_.getInt(i));
    }
    for (int i = 0; i < stringVal_.size(); i++) {
      output.writeBytes(8, stringVal_.get(i));
    }
    if (getScomplexValList().size() > 0) {
      output.writeUInt32NoTag(74);
      output.writeUInt32NoTag(scomplexValMemoizedSerializedSize);
    }
    for (int i = 0; i < scomplexVal_.size(); i++) {
      output.writeFloatNoTag(scomplexVal_.getFloat(i));
    }
    if (getInt64ValList().size() > 0) {
      output.writeUInt32NoTag(82);
      output.writeUInt32NoTag(int64ValMemoizedSerializedSize);
    }
    for (int i = 0; i < int64Val_.size(); i++) {
      output.writeInt64NoTag(int64Val_.getLong(i));
    }
    if (getBoolValList().size() > 0) {
      output.writeUInt32NoTag(90);
      output.writeUInt32NoTag(boolValMemoizedSerializedSize);
    }
    for (int i = 0; i < boolVal_.size(); i++) {
      output.writeBoolNoTag(boolVal_.getBoolean(i));
    }
    if (getDcomplexValList().size() > 0) {
      output.writeUInt32NoTag(98);
      output.writeUInt32NoTag(dcomplexValMemoizedSerializedSize);
    }
    for (int i = 0; i < dcomplexVal_.size(); i++) {
      output.writeDoubleNoTag(dcomplexVal_.getDouble(i));
    }
    if (getHalfValList().size() > 0) {
      output.writeUInt32NoTag(106);
      output.writeUInt32NoTag(halfValMemoizedSerializedSize);
    }
    for (int i = 0; i < halfVal_.size(); i++) {
      output.writeInt32NoTag(halfVal_.getInt(i));
    }
    for (int i = 0; i < resourceHandleVal_.size(); i++) {
      output.writeMessage(14, resourceHandleVal_.get(i));
    }
    for (int i = 0; i < variantVal_.size(); i++) {
      output.writeMessage(15, variantVal_.get(i));
    }
    if (getUint32ValList().size() > 0) {
      output.writeUInt32NoTag(130);
      output.writeUInt32NoTag(uint32ValMemoizedSerializedSize);
    }
    for (int i = 0; i < uint32Val_.size(); i++) {
      output.writeUInt32NoTag(uint32Val_.getInt(i));
    }
    if (getUint64ValList().size() > 0) {
      output.writeUInt32NoTag(138);
      output.writeUInt32NoTag(uint64ValMemoizedSerializedSize);
    }
    for (int i = 0; i < uint64Val_.size(); i++) {
      output.writeUInt64NoTag(uint64Val_.getLong(i));
    }
    unknownFields.writeTo(output);
  }

  @Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (dtype_ != DataType.DT_INVALID.getNumber()) {
      size += com.google.protobuf.CodedOutputStream
          .computeEnumSize(1, dtype_);
    }
    if (tensorShape_ != null) {
      size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, getTensorShape());
    }
    if (versionNumber_ != 0) {
      size += com.google.protobuf.CodedOutputStream
        .computeInt32Size(3, versionNumber_);
    }
    if (!tensorContent_.isEmpty()) {
      size += com.google.protobuf.CodedOutputStream
        .computeBytesSize(4, tensorContent_);
    }
    {
      int dataSize = 0;
      dataSize = 4 * getFloatValList().size();
      size += dataSize;
      if (!getFloatValList().isEmpty()) {
        size += 1;
        size += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(dataSize);
      }
      floatValMemoizedSerializedSize = dataSize;
    }
    {
      int dataSize = 0;
      dataSize = 8 * getDoubleValList().size();
      size += dataSize;
      if (!getDoubleValList().isEmpty()) {
        size += 1;
        size += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(dataSize);
      }
      doubleValMemoizedSerializedSize = dataSize;
    }
    {
      int dataSize = 0;
      for (int i = 0; i < intVal_.size(); i++) {
        dataSize += com.google.protobuf.CodedOutputStream
          .computeInt32SizeNoTag(intVal_.getInt(i));
      }
      size += dataSize;
      if (!getIntValList().isEmpty()) {
        size += 1;
        size += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(dataSize);
      }
      intValMemoizedSerializedSize = dataSize;
    }
    {
      int dataSize = 0;
      for (int i = 0; i < stringVal_.size(); i++) {
        dataSize += com.google.protobuf.CodedOutputStream
          .computeBytesSizeNoTag(stringVal_.get(i));
      }
      size += dataSize;
      size += 1 * getStringValList().size();
    }
    {
      int dataSize = 0;
      dataSize = 4 * getScomplexValList().size();
      size += dataSize;
      if (!getScomplexValList().isEmpty()) {
        size += 1;
        size += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(dataSize);
      }
      scomplexValMemoizedSerializedSize = dataSize;
    }
    {
      int dataSize = 0;
      for (int i = 0; i < int64Val_.size(); i++) {
        dataSize += com.google.protobuf.CodedOutputStream
          .computeInt64SizeNoTag(int64Val_.getLong(i));
      }
      size += dataSize;
      if (!getInt64ValList().isEmpty()) {
        size += 1;
        size += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(dataSize);
      }
      int64ValMemoizedSerializedSize = dataSize;
    }
    {
      int dataSize = 0;
      dataSize = 1 * getBoolValList().size();
      size += dataSize;
      if (!getBoolValList().isEmpty()) {
        size += 1;
        size += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(dataSize);
      }
      boolValMemoizedSerializedSize = dataSize;
    }
    {
      int dataSize = 0;
      dataSize = 8 * getDcomplexValList().size();
      size += dataSize;
      if (!getDcomplexValList().isEmpty()) {
        size += 1;
        size += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(dataSize);
      }
      dcomplexValMemoizedSerializedSize = dataSize;
    }
    {
      int dataSize = 0;
      for (int i = 0; i < halfVal_.size(); i++) {
        dataSize += com.google.protobuf.CodedOutputStream
          .computeInt32SizeNoTag(halfVal_.getInt(i));
      }
      size += dataSize;
      if (!getHalfValList().isEmpty()) {
        size += 1;
        size += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(dataSize);
      }
      halfValMemoizedSerializedSize = dataSize;
    }
    for (int i = 0; i < resourceHandleVal_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(14, resourceHandleVal_.get(i));
    }
    for (int i = 0; i < variantVal_.size(); i++) {
      size += com.google.protobuf.CodedOutputStream
        .computeMessageSize(15, variantVal_.get(i));
    }
    {
      int dataSize = 0;
      for (int i = 0; i < uint32Val_.size(); i++) {
        dataSize += com.google.protobuf.CodedOutputStream
          .computeUInt32SizeNoTag(uint32Val_.getInt(i));
      }
      size += dataSize;
      if (!getUint32ValList().isEmpty()) {
        size += 2;
        size += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(dataSize);
      }
      uint32ValMemoizedSerializedSize = dataSize;
    }
    {
      int dataSize = 0;
      for (int i = 0; i < uint64Val_.size(); i++) {
        dataSize += com.google.protobuf.CodedOutputStream
          .computeUInt64SizeNoTag(uint64Val_.getLong(i));
      }
      size += dataSize;
      if (!getUint64ValList().isEmpty()) {
        size += 2;
        size += com.google.protobuf.CodedOutputStream
            .computeInt32SizeNoTag(dataSize);
      }
      uint64ValMemoizedSerializedSize = dataSize;
    }
    size += unknownFields.getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @Override
  public boolean equals(final Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj instanceof TensorProto)) {
      return super.equals(obj);
    }
    TensorProto other = (TensorProto) obj;

    if (dtype_ != other.dtype_) {
      return false;
    }
    if (hasTensorShape() != other.hasTensorShape()) {
      return false;
    }
    if (hasTensorShape()) {
      if (!getTensorShape()
          .equals(other.getTensorShape())) return false;
    }
    if (getVersionNumber()
        != other.getVersionNumber()) return false;
    if (!getTensorContent()
        .equals(other.getTensorContent())) return false;
    if (!getHalfValList()
        .equals(other.getHalfValList())) return false;
    if (!getFloatValList()
        .equals(other.getFloatValList())) return false;
    if (!getDoubleValList()
        .equals(other.getDoubleValList())) return false;
    if (!getIntValList()
        .equals(other.getIntValList())) return false;
    if (!getStringValList()
        .equals(other.getStringValList())) return false;
    if (!getScomplexValList()
        .equals(other.getScomplexValList())) return false;
    if (!getInt64ValList()
        .equals(other.getInt64ValList())) return false;
    if (!getBoolValList()
        .equals(other.getBoolValList())) return false;
    if (!getDcomplexValList()
        .equals(other.getDcomplexValList())) return false;
    if (!getResourceHandleValList()
        .equals(other.getResourceHandleValList())) return false;
    if (!getVariantValList()
        .equals(other.getVariantValList())) return false;
    if (!getUint32ValList()
        .equals(other.getUint32ValList())) return false;
    if (!getUint64ValList()
        .equals(other.getUint64ValList())) return false;
    if (!unknownFields.equals(other.unknownFields)) return false;
    return true;
  }

  @Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + DTYPE_FIELD_NUMBER;
    hash = (53 * hash) + dtype_;
    if (hasTensorShape()) {
      hash = (37 * hash) + TENSOR_SHAPE_FIELD_NUMBER;
      hash = (53 * hash) + getTensorShape().hashCode();
    }
    hash = (37 * hash) + VERSION_NUMBER_FIELD_NUMBER;
    hash = (53 * hash) + getVersionNumber();
    hash = (37 * hash) + TENSOR_CONTENT_FIELD_NUMBER;
    hash = (53 * hash) + getTensorContent().hashCode();
    if (getHalfValCount() > 0) {
      hash = (37 * hash) + HALF_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getHalfValList().hashCode();
    }
    if (getFloatValCount() > 0) {
      hash = (37 * hash) + FLOAT_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getFloatValList().hashCode();
    }
    if (getDoubleValCount() > 0) {
      hash = (37 * hash) + DOUBLE_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getDoubleValList().hashCode();
    }
    if (getIntValCount() > 0) {
      hash = (37 * hash) + INT_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getIntValList().hashCode();
    }
    if (getStringValCount() > 0) {
      hash = (37 * hash) + STRING_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getStringValList().hashCode();
    }
    if (getScomplexValCount() > 0) {
      hash = (37 * hash) + SCOMPLEX_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getScomplexValList().hashCode();
    }
    if (getInt64ValCount() > 0) {
      hash = (37 * hash) + INT64_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getInt64ValList().hashCode();
    }
    if (getBoolValCount() > 0) {
      hash = (37 * hash) + BOOL_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getBoolValList().hashCode();
    }
    if (getDcomplexValCount() > 0) {
      hash = (37 * hash) + DCOMPLEX_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getDcomplexValList().hashCode();
    }
    if (getResourceHandleValCount() > 0) {
      hash = (37 * hash) + RESOURCE_HANDLE_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getResourceHandleValList().hashCode();
    }
    if (getVariantValCount() > 0) {
      hash = (37 * hash) + VARIANT_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getVariantValList().hashCode();
    }
    if (getUint32ValCount() > 0) {
      hash = (37 * hash) + UINT32_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getUint32ValList().hashCode();
    }
    if (getUint64ValCount() > 0) {
      hash = (37 * hash) + UINT64_VAL_FIELD_NUMBER;
      hash = (53 * hash) + getUint64ValList().hashCode();
    }
    hash = (29 * hash) + unknownFields.hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static TensorProto parseFrom(
      java.nio.ByteBuffer data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static TensorProto parseFrom(
      java.nio.ByteBuffer data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static TensorProto parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static TensorProto parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static TensorProto parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static TensorProto parseFrom(
      byte[] data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static TensorProto parseFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }

  public static TensorProto parseFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  public static TensorProto parseDelimitedFrom(java.io.InputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input);
  }

  public static TensorProto parseDelimitedFrom(
      java.io.InputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
  }

  public static TensorProto parseFrom(
      com.google.protobuf.CodedInputStream input)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input);
  }

  public static TensorProto parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3
        .parseWithIOException(PARSER, input, extensionRegistry);
  }

  @Override
  public Builder newBuilderForType() { return newBuilder(); }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(TensorProto prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE
        ? new Builder() : new Builder().mergeFrom(this);
  }

  @Override
  protected Builder newBuilderForType(
      BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }

  /**
   * <pre>
   * Protocol buffer representing a tensor.
   * </pre>
   *
   * Protobuf type {@code tensorflow.TensorProto}
   */
  public static final class Builder extends
      com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements
      // @@protoc_insertion_point(builder_implements:tensorflow.TensorProto)
      TensorProtoOrBuilder {

    public static final com.google.protobuf.Descriptors.Descriptor
    getDescriptor() {
      return TensorProtos.internal_static_tensorflow_TensorProto_descriptor;
    }

    @Override
    protected FieldAccessorTable
    internalGetFieldAccessorTable() {
      return TensorProtos.internal_static_tensorflow_TensorProto_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              TensorProto.class, Builder.class);
    }

    // Construct using org.tensorflow.proto.framework.TensorProto.newBuilder()
    private Builder() {
      maybeForceBuilderInitialization();
    }

    private Builder(
        BuilderParent parent) {
      super(parent);
      maybeForceBuilderInitialization();
    }

    private void maybeForceBuilderInitialization() {
      if (com.google.protobuf.GeneratedMessageV3
          .alwaysUseFieldBuilders) {
        getResourceHandleValFieldBuilder();
        getVariantValFieldBuilder();
      }
    }

    @Override
    public Builder clear() {
      super.clear();
      dtype_ = 0;

      if (tensorShapeBuilder_ == null) {
        tensorShape_ = null;
      } else {
        tensorShape_ = null;
        tensorShapeBuilder_ = null;
      }
      versionNumber_ = 0;

      tensorContent_ = com.google.protobuf.ByteString.EMPTY;

      halfVal_ = emptyIntList();
      bitField0_ = (bitField0_ & ~0x00000001);
      floatVal_ = emptyFloatList();
      bitField0_ = (bitField0_ & ~0x00000002);
      doubleVal_ = emptyDoubleList();
      bitField0_ = (bitField0_ & ~0x00000004);
      intVal_ = emptyIntList();
      bitField0_ = (bitField0_ & ~0x00000008);
      stringVal_ = java.util.Collections.emptyList();
      bitField0_ = (bitField0_ & ~0x00000010);
      scomplexVal_ = emptyFloatList();
      bitField0_ = (bitField0_ & ~0x00000020);
      int64Val_ = emptyLongList();
      bitField0_ = (bitField0_ & ~0x00000040);
      boolVal_ = emptyBooleanList();
      bitField0_ = (bitField0_ & ~0x00000080);
      dcomplexVal_ = emptyDoubleList();
      bitField0_ = (bitField0_ & ~0x00000100);
      if (resourceHandleValBuilder_ == null) {
        resourceHandleVal_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000200);
      } else {
        resourceHandleValBuilder_.clear();
      }
      if (variantValBuilder_ == null) {
        variantVal_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000400);
      } else {
        variantValBuilder_.clear();
      }
      uint32Val_ = emptyIntList();
      bitField0_ = (bitField0_ & ~0x00000800);
      uint64Val_ = emptyLongList();
      bitField0_ = (bitField0_ & ~0x00001000);
      return this;
    }

    @Override
    public com.google.protobuf.Descriptors.Descriptor
    getDescriptorForType() {
      return TensorProtos.internal_static_tensorflow_TensorProto_descriptor;
    }

    @Override
    public TensorProto getDefaultInstanceForType() {
      return TensorProto.getDefaultInstance();
    }

    @Override
    public TensorProto build() {
      TensorProto result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @Override
    public TensorProto buildPartial() {
      TensorProto result = new TensorProto(this);
      int from_bitField0_ = bitField0_;
      result.dtype_ = dtype_;
      if (tensorShapeBuilder_ == null) {
        result.tensorShape_ = tensorShape_;
      } else {
        result.tensorShape_ = tensorShapeBuilder_.build();
      }
      result.versionNumber_ = versionNumber_;
      result.tensorContent_ = tensorContent_;
      if (((bitField0_ & 0x00000001) != 0)) {
        halfVal_.makeImmutable();
        bitField0_ = (bitField0_ & ~0x00000001);
      }
      result.halfVal_ = halfVal_;
      if (((bitField0_ & 0x00000002) != 0)) {
        floatVal_.makeImmutable();
        bitField0_ = (bitField0_ & ~0x00000002);
      }
      result.floatVal_ = floatVal_;
      if (((bitField0_ & 0x00000004) != 0)) {
        doubleVal_.makeImmutable();
        bitField0_ = (bitField0_ & ~0x00000004);
      }
      result.doubleVal_ = doubleVal_;
      if (((bitField0_ & 0x00000008) != 0)) {
        intVal_.makeImmutable();
        bitField0_ = (bitField0_ & ~0x00000008);
      }
      result.intVal_ = intVal_;
      if (((bitField0_ & 0x00000010) != 0)) {
        stringVal_ = java.util.Collections.unmodifiableList(stringVal_);
        bitField0_ = (bitField0_ & ~0x00000010);
      }
      result.stringVal_ = stringVal_;
      if (((bitField0_ & 0x00000020) != 0)) {
        scomplexVal_.makeImmutable();
        bitField0_ = (bitField0_ & ~0x00000020);
      }
      result.scomplexVal_ = scomplexVal_;
      if (((bitField0_ & 0x00000040) != 0)) {
        int64Val_.makeImmutable();
        bitField0_ = (bitField0_ & ~0x00000040);
      }
      result.int64Val_ = int64Val_;
      if (((bitField0_ & 0x00000080) != 0)) {
        boolVal_.makeImmutable();
        bitField0_ = (bitField0_ & ~0x00000080);
      }
      result.boolVal_ = boolVal_;
      if (((bitField0_ & 0x00000100) != 0)) {
        dcomplexVal_.makeImmutable();
        bitField0_ = (bitField0_ & ~0x00000100);
      }
      result.dcomplexVal_ = dcomplexVal_;
      if (resourceHandleValBuilder_ == null) {
        if (((bitField0_ & 0x00000200) != 0)) {
          resourceHandleVal_ = java.util.Collections.unmodifiableList(resourceHandleVal_);
          bitField0_ = (bitField0_ & ~0x00000200);
        }
        result.resourceHandleVal_ = resourceHandleVal_;
      } else {
        result.resourceHandleVal_ = resourceHandleValBuilder_.build();
      }
      if (variantValBuilder_ == null) {
        if (((bitField0_ & 0x00000400) != 0)) {
          variantVal_ = java.util.Collections.unmodifiableList(variantVal_);
          bitField0_ = (bitField0_ & ~0x00000400);
        }
        result.variantVal_ = variantVal_;
      } else {
        result.variantVal_ = variantValBuilder_.build();
      }
      if (((bitField0_ & 0x00000800) != 0)) {
        uint32Val_.makeImmutable();
        bitField0_ = (bitField0_ & ~0x00000800);
      }
      result.uint32Val_ = uint32Val_;
      if (((bitField0_ & 0x00001000) != 0)) {
        uint64Val_.makeImmutable();
        bitField0_ = (bitField0_ & ~0x00001000);
      }
      result.uint64Val_ = uint64Val_;
      onBuilt();
      return result;
    }

    @Override
    public Builder clone() {
      return super.clone();
    }

    @Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        Object value) {
      return super.setField(field, value);
    }

    @Override
    public Builder clearField(
        com.google.protobuf.Descriptors.FieldDescriptor field) {
      return super.clearField(field);
    }

    @Override
    public Builder clearOneof(
        com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return super.clearOneof(oneof);
    }

    @Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        int index, Object value) {
      return super.setRepeatedField(field, index, value);
    }

    @Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field,
        Object value) {
      return super.addRepeatedField(field, value);
    }

    @Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof TensorProto) {
        return mergeFrom((TensorProto) other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(TensorProto other) {
      if (other == TensorProto.getDefaultInstance()) {
        return this;
      }
      if (other.dtype_ != 0) {
        setDtypeValue(other.getDtypeValue());
      }
      if (other.hasTensorShape()) {
        mergeTensorShape(other.getTensorShape());
      }
      if (other.getVersionNumber() != 0) {
        setVersionNumber(other.getVersionNumber());
      }
      if (other.getTensorContent() != com.google.protobuf.ByteString.EMPTY) {
        setTensorContent(other.getTensorContent());
      }
      if (!other.halfVal_.isEmpty()) {
        if (halfVal_.isEmpty()) {
          halfVal_ = other.halfVal_;
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          ensureHalfValIsMutable();
          halfVal_.addAll(other.halfVal_);
        }
        onChanged();
      }
      if (!other.floatVal_.isEmpty()) {
        if (floatVal_.isEmpty()) {
          floatVal_ = other.floatVal_;
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          ensureFloatValIsMutable();
          floatVal_.addAll(other.floatVal_);
        }
        onChanged();
      }
      if (!other.doubleVal_.isEmpty()) {
        if (doubleVal_.isEmpty()) {
          doubleVal_ = other.doubleVal_;
          bitField0_ = (bitField0_ & ~0x00000004);
        } else {
          ensureDoubleValIsMutable();
          doubleVal_.addAll(other.doubleVal_);
        }
        onChanged();
      }
      if (!other.intVal_.isEmpty()) {
        if (intVal_.isEmpty()) {
          intVal_ = other.intVal_;
          bitField0_ = (bitField0_ & ~0x00000008);
        } else {
          ensureIntValIsMutable();
          intVal_.addAll(other.intVal_);
        }
        onChanged();
      }
      if (!other.stringVal_.isEmpty()) {
        if (stringVal_.isEmpty()) {
          stringVal_ = other.stringVal_;
          bitField0_ = (bitField0_ & ~0x00000010);
        } else {
          ensureStringValIsMutable();
          stringVal_.addAll(other.stringVal_);
        }
        onChanged();
      }
      if (!other.scomplexVal_.isEmpty()) {
        if (scomplexVal_.isEmpty()) {
          scomplexVal_ = other.scomplexVal_;
          bitField0_ = (bitField0_ & ~0x00000020);
        } else {
          ensureScomplexValIsMutable();
          scomplexVal_.addAll(other.scomplexVal_);
        }
        onChanged();
      }
      if (!other.int64Val_.isEmpty()) {
        if (int64Val_.isEmpty()) {
          int64Val_ = other.int64Val_;
          bitField0_ = (bitField0_ & ~0x00000040);
        } else {
          ensureInt64ValIsMutable();
          int64Val_.addAll(other.int64Val_);
        }
        onChanged();
      }
      if (!other.boolVal_.isEmpty()) {
        if (boolVal_.isEmpty()) {
          boolVal_ = other.boolVal_;
          bitField0_ = (bitField0_ & ~0x00000080);
        } else {
          ensureBoolValIsMutable();
          boolVal_.addAll(other.boolVal_);
        }
        onChanged();
      }
      if (!other.dcomplexVal_.isEmpty()) {
        if (dcomplexVal_.isEmpty()) {
          dcomplexVal_ = other.dcomplexVal_;
          bitField0_ = (bitField0_ & ~0x00000100);
        } else {
          ensureDcomplexValIsMutable();
          dcomplexVal_.addAll(other.dcomplexVal_);
        }
        onChanged();
      }
      if (resourceHandleValBuilder_ == null) {
        if (!other.resourceHandleVal_.isEmpty()) {
          if (resourceHandleVal_.isEmpty()) {
            resourceHandleVal_ = other.resourceHandleVal_;
            bitField0_ = (bitField0_ & ~0x00000200);
          } else {
            ensureResourceHandleValIsMutable();
            resourceHandleVal_.addAll(other.resourceHandleVal_);
          }
          onChanged();
        }
      } else {
        if (!other.resourceHandleVal_.isEmpty()) {
          if (resourceHandleValBuilder_.isEmpty()) {
            resourceHandleValBuilder_.dispose();
            resourceHandleValBuilder_ = null;
            resourceHandleVal_ = other.resourceHandleVal_;
            bitField0_ = (bitField0_ & ~0x00000200);
            resourceHandleValBuilder_ = 
              com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                 getResourceHandleValFieldBuilder() : null;
          } else {
            resourceHandleValBuilder_.addAllMessages(other.resourceHandleVal_);
          }
        }
      }
      if (variantValBuilder_ == null) {
        if (!other.variantVal_.isEmpty()) {
          if (variantVal_.isEmpty()) {
            variantVal_ = other.variantVal_;
            bitField0_ = (bitField0_ & ~0x00000400);
          } else {
            ensureVariantValIsMutable();
            variantVal_.addAll(other.variantVal_);
          }
          onChanged();
        }
      } else {
        if (!other.variantVal_.isEmpty()) {
          if (variantValBuilder_.isEmpty()) {
            variantValBuilder_.dispose();
            variantValBuilder_ = null;
            variantVal_ = other.variantVal_;
            bitField0_ = (bitField0_ & ~0x00000400);
            variantValBuilder_ = 
              com.google.protobuf.GeneratedMessageV3.alwaysUseFieldBuilders ?
                 getVariantValFieldBuilder() : null;
          } else {
            variantValBuilder_.addAllMessages(other.variantVal_);
          }
        }
      }
      if (!other.uint32Val_.isEmpty()) {
        if (uint32Val_.isEmpty()) {
          uint32Val_ = other.uint32Val_;
          bitField0_ = (bitField0_ & ~0x00000800);
        } else {
          ensureUint32ValIsMutable();
          uint32Val_.addAll(other.uint32Val_);
        }
        onChanged();
      }
      if (!other.uint64Val_.isEmpty()) {
        if (uint64Val_.isEmpty()) {
          uint64Val_ = other.uint64Val_;
          bitField0_ = (bitField0_ & ~0x00001000);
        } else {
          ensureUint64ValIsMutable();
          uint64Val_.addAll(other.uint64Val_);
        }
        onChanged();
      }
      this.mergeUnknownFields(other.unknownFields);
      onChanged();
      return this;
    }

    @Override
    public final boolean isInitialized() {
      return true;
    }

    @Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      TensorProto parsedMessage = null;
      try {
        parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        parsedMessage = (TensorProto) e.getUnfinishedMessage();
        throw e.unwrapIOException();
      } finally {
        if (parsedMessage != null) {
          mergeFrom(parsedMessage);
        }
      }
      return this;
    }
    private int bitField0_;

    private int dtype_ = 0;
    /**
     * <code>.tensorflow.DataType dtype = 1;</code>
     */
    public int getDtypeValue() {
      return dtype_;
    }
    /**
     * <code>.tensorflow.DataType dtype = 1;</code>
     */
    public Builder setDtypeValue(int value) {
      dtype_ = value;
      onChanged();
      return this;
    }

    /**
     * <code>.tensorflow.DataType dtype = 1;</code>
     */
    public DataType getDtype() {
      @SuppressWarnings("deprecation")
      DataType result = DataType.valueOf(dtype_);
      return result == null ? DataType.UNRECOGNIZED : result;
    }

    /**
     * <code>.tensorflow.DataType dtype = 1;</code>
     */
    public Builder setDtype(DataType value) {
      if (value == null) {
        throw new NullPointerException();
      }

      dtype_ = value.getNumber();
      onChanged();
      return this;
    }

    /**
     * <code>.tensorflow.DataType dtype = 1;</code>
     */
    public Builder clearDtype() {
      
      dtype_ = 0;
      onChanged();
      return this;
    }

    private TensorShapeProto tensorShape_;
    private com.google.protobuf.SingleFieldBuilderV3<
        TensorShapeProto, TensorShapeProto.Builder, TensorShapeProtoOrBuilder> tensorShapeBuilder_;
    /**
     * <pre>
     * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
     * </pre>
     *
     * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
     */
    public boolean hasTensorShape() {
      return tensorShapeBuilder_ != null || tensorShape_ != null;
    }

    /**
     * <pre>
     * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
     * </pre>
     *
     * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
     */
    public TensorShapeProto getTensorShape() {
      if (tensorShapeBuilder_ == null) {
        return tensorShape_ == null ? TensorShapeProto.getDefaultInstance() : tensorShape_;
      } else {
        return tensorShapeBuilder_.getMessage();
      }
    }

    /**
     * <pre>
     * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
     * </pre>
     *
     * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
     */
    public Builder setTensorShape(TensorShapeProto value) {
      if (tensorShapeBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        tensorShape_ = value;
        onChanged();
      } else {
        tensorShapeBuilder_.setMessage(value);
      }

      return this;
    }

    /**
     * <pre>
     * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
     * </pre>
     *
     * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
     */
    public Builder setTensorShape(
        TensorShapeProto.Builder builderForValue) {
      if (tensorShapeBuilder_ == null) {
        tensorShape_ = builderForValue.build();
        onChanged();
      } else {
        tensorShapeBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }

    /**
     * <pre>
     * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
     * </pre>
     *
     * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
     */
    public Builder mergeTensorShape(TensorShapeProto value) {
      if (tensorShapeBuilder_ == null) {
        if (tensorShape_ != null) {
          tensorShape_ =
              TensorShapeProto.newBuilder(tensorShape_).mergeFrom(value).buildPartial();
        } else {
          tensorShape_ = value;
        }
        onChanged();
      } else {
        tensorShapeBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     * <pre>
     * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
     * </pre>
     *
     * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
     */
    public Builder clearTensorShape() {
      if (tensorShapeBuilder_ == null) {
        tensorShape_ = null;
        onChanged();
      } else {
        tensorShape_ = null;
        tensorShapeBuilder_ = null;
      }

      return this;
    }

    /**
     * <pre>
     * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
     * </pre>
     *
     * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
     */
    public TensorShapeProto.Builder getTensorShapeBuilder() {

      onChanged();
      return getTensorShapeFieldBuilder().getBuilder();
    }

    /**
     * <pre>
     * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
     * </pre>
     *
     * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
     */
    public TensorShapeProtoOrBuilder getTensorShapeOrBuilder() {
      if (tensorShapeBuilder_ != null) {
        return tensorShapeBuilder_.getMessageOrBuilder();
      } else {
        return tensorShape_ == null ?
            TensorShapeProto.getDefaultInstance() : tensorShape_;
      }
    }

    /**
     * <pre>
     * Shape of the tensor.  TODO(touts): sort out the 0-rank issues.
     * </pre>
     *
     * <code>.tensorflow.TensorShapeProto tensor_shape = 2;</code>
     */
    private com.google.protobuf.SingleFieldBuilderV3<
        TensorShapeProto, TensorShapeProto.Builder, TensorShapeProtoOrBuilder>
        getTensorShapeFieldBuilder() {
      if (tensorShapeBuilder_ == null) {
        tensorShapeBuilder_ = new com.google.protobuf.SingleFieldBuilderV3<
            TensorShapeProto, TensorShapeProto.Builder, TensorShapeProtoOrBuilder>(
            getTensorShape(),
            getParentForChildren(),
            isClean());
        tensorShape_ = null;
      }
      return tensorShapeBuilder_;
    }

    private int versionNumber_ ;
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>int32 version_number = 3;</code>
     */
    public int getVersionNumber() {
      return versionNumber_;
    }
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>int32 version_number = 3;</code>
     */
    public Builder setVersionNumber(int value) {
      
      versionNumber_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>int32 version_number = 3;</code>
     */
    public Builder clearVersionNumber() {
      
      versionNumber_ = 0;
      onChanged();
      return this;
    }

    private com.google.protobuf.ByteString tensorContent_ = com.google.protobuf.ByteString.EMPTY;
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>bytes tensor_content = 4;</code>
     */
    public com.google.protobuf.ByteString getTensorContent() {
      return tensorContent_;
    }
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>bytes tensor_content = 4;</code>
     */
    public Builder setTensorContent(com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  
      tensorContent_ = value;
      onChanged();
      return this;
    }
    /**
     * <pre>
     * 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.
     * </pre>
     *
     * <code>bytes tensor_content = 4;</code>
     */
    public Builder clearTensorContent() {
      
      tensorContent_ = getDefaultInstance().getTensorContent();
      onChanged();
      return this;
    }

    private com.google.protobuf.Internal.IntList halfVal_ = emptyIntList();
    private void ensureHalfValIsMutable() {
      if (!((bitField0_ & 0x00000001) != 0)) {
        halfVal_ = mutableCopy(halfVal_);
        bitField0_ |= 0x00000001;
      }
    }

    /**
     * <pre>
     * DT_HALF, DT_BFLOAT16. Note that since protobuf has no int16 type, we'll
     * have some pointless zero padding for each value here.
     * </pre>
     *
     * <code>repeated int32 half_val = 13 [packed = true];</code>
     */
    public java.util.List<Integer>
    getHalfValList() {
      return ((bitField0_ & 0x00000001) != 0) ?
          java.util.Collections.unmodifiableList(halfVal_) : halfVal_;
    }

    /**
     * <pre>
     * DT_HALF, DT_BFLOAT16. Note that since protobuf has no int16 type, we'll
     * have some pointless zero padding for each value here.
     * </pre>
     *
     * <code>repeated int32 half_val = 13 [packed = true];</code>
     */
    public int getHalfValCount() {
      return halfVal_.size();
    }
    /**
     * <pre>
     * DT_HALF, DT_BFLOAT16. Note that since protobuf has no int16 type, we'll
     * have some pointless zero padding for each value here.
     * </pre>
     *
     * <code>repeated int32 half_val = 13 [packed = true];</code>
     */
    public int getHalfVal(int index) {
      return halfVal_.getInt(index);
    }
    /**
     * <pre>
     * DT_HALF, DT_BFLOAT16. Note that since protobuf has no int16 type, we'll
     * have some pointless zero padding for each value here.
     * </pre>
     *
     * <code>repeated int32 half_val = 13 [packed = true];</code>
     */
    public Builder setHalfVal(
        int index, int value) {
      ensureHalfValIsMutable();
      halfVal_.setInt(index, value);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * DT_HALF, DT_BFLOAT16. Note that since protobuf has no int16 type, we'll
     * have some pointless zero padding for each value here.
     * </pre>
     *
     * <code>repeated int32 half_val = 13 [packed = true];</code>
     */
    public Builder addHalfVal(int value) {
      ensureHalfValIsMutable();
      halfVal_.addInt(value);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_HALF, DT_BFLOAT16. Note that since protobuf has no int16 type, we'll
     * have some pointless zero padding for each value here.
     * </pre>
     *
     * <code>repeated int32 half_val = 13 [packed = true];</code>
     */
    public Builder addAllHalfVal(
        Iterable<? extends Integer> values) {
      ensureHalfValIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, halfVal_);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_HALF, DT_BFLOAT16. Note that since protobuf has no int16 type, we'll
     * have some pointless zero padding for each value here.
     * </pre>
     *
     * <code>repeated int32 half_val = 13 [packed = true];</code>
     */
    public Builder clearHalfVal() {
      halfVal_ = emptyIntList();
      bitField0_ = (bitField0_ & ~0x00000001);
      onChanged();
      return this;
    }

    private com.google.protobuf.Internal.FloatList floatVal_ = emptyFloatList();
    private void ensureFloatValIsMutable() {
      if (!((bitField0_ & 0x00000002) != 0)) {
        floatVal_ = mutableCopy(floatVal_);
        bitField0_ |= 0x00000002;
      }
    }

    /**
     * <pre>
     * DT_FLOAT.
     * </pre>
     *
     * <code>repeated float float_val = 5 [packed = true];</code>
     */
    public java.util.List<Float>
    getFloatValList() {
      return ((bitField0_ & 0x00000002) != 0) ?
          java.util.Collections.unmodifiableList(floatVal_) : floatVal_;
    }

    /**
     * <pre>
     * DT_FLOAT.
     * </pre>
     *
     * <code>repeated float float_val = 5 [packed = true];</code>
     */
    public int getFloatValCount() {
      return floatVal_.size();
    }
    /**
     * <pre>
     * DT_FLOAT.
     * </pre>
     *
     * <code>repeated float float_val = 5 [packed = true];</code>
     */
    public float getFloatVal(int index) {
      return floatVal_.getFloat(index);
    }
    /**
     * <pre>
     * DT_FLOAT.
     * </pre>
     *
     * <code>repeated float float_val = 5 [packed = true];</code>
     */
    public Builder setFloatVal(
        int index, float value) {
      ensureFloatValIsMutable();
      floatVal_.setFloat(index, value);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * DT_FLOAT.
     * </pre>
     *
     * <code>repeated float float_val = 5 [packed = true];</code>
     */
    public Builder addFloatVal(float value) {
      ensureFloatValIsMutable();
      floatVal_.addFloat(value);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_FLOAT.
     * </pre>
     *
     * <code>repeated float float_val = 5 [packed = true];</code>
     */
    public Builder addAllFloatVal(
        Iterable<? extends Float> values) {
      ensureFloatValIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, floatVal_);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_FLOAT.
     * </pre>
     *
     * <code>repeated float float_val = 5 [packed = true];</code>
     */
    public Builder clearFloatVal() {
      floatVal_ = emptyFloatList();
      bitField0_ = (bitField0_ & ~0x00000002);
      onChanged();
      return this;
    }

    private com.google.protobuf.Internal.DoubleList doubleVal_ = emptyDoubleList();
    private void ensureDoubleValIsMutable() {
      if (!((bitField0_ & 0x00000004) != 0)) {
        doubleVal_ = mutableCopy(doubleVal_);
        bitField0_ |= 0x00000004;
      }
    }

    /**
     * <pre>
     * DT_DOUBLE.
     * </pre>
     *
     * <code>repeated double double_val = 6 [packed = true];</code>
     */
    public java.util.List<Double>
    getDoubleValList() {
      return ((bitField0_ & 0x00000004) != 0) ?
          java.util.Collections.unmodifiableList(doubleVal_) : doubleVal_;
    }

    /**
     * <pre>
     * DT_DOUBLE.
     * </pre>
     *
     * <code>repeated double double_val = 6 [packed = true];</code>
     */
    public int getDoubleValCount() {
      return doubleVal_.size();
    }
    /**
     * <pre>
     * DT_DOUBLE.
     * </pre>
     *
     * <code>repeated double double_val = 6 [packed = true];</code>
     */
    public double getDoubleVal(int index) {
      return doubleVal_.getDouble(index);
    }
    /**
     * <pre>
     * DT_DOUBLE.
     * </pre>
     *
     * <code>repeated double double_val = 6 [packed = true];</code>
     */
    public Builder setDoubleVal(
        int index, double value) {
      ensureDoubleValIsMutable();
      doubleVal_.setDouble(index, value);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * DT_DOUBLE.
     * </pre>
     *
     * <code>repeated double double_val = 6 [packed = true];</code>
     */
    public Builder addDoubleVal(double value) {
      ensureDoubleValIsMutable();
      doubleVal_.addDouble(value);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_DOUBLE.
     * </pre>
     *
     * <code>repeated double double_val = 6 [packed = true];</code>
     */
    public Builder addAllDoubleVal(
        Iterable<? extends Double> values) {
      ensureDoubleValIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, doubleVal_);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_DOUBLE.
     * </pre>
     *
     * <code>repeated double double_val = 6 [packed = true];</code>
     */
    public Builder clearDoubleVal() {
      doubleVal_ = emptyDoubleList();
      bitField0_ = (bitField0_ & ~0x00000004);
      onChanged();
      return this;
    }

    private com.google.protobuf.Internal.IntList intVal_ = emptyIntList();
    private void ensureIntValIsMutable() {
      if (!((bitField0_ & 0x00000008) != 0)) {
        intVal_ = mutableCopy(intVal_);
        bitField0_ |= 0x00000008;
      }
    }

    /**
     * <pre>
     * DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
     * </pre>
     *
     * <code>repeated int32 int_val = 7 [packed = true];</code>
     */
    public java.util.List<Integer>
    getIntValList() {
      return ((bitField0_ & 0x00000008) != 0) ?
          java.util.Collections.unmodifiableList(intVal_) : intVal_;
    }

    /**
     * <pre>
     * DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
     * </pre>
     *
     * <code>repeated int32 int_val = 7 [packed = true];</code>
     */
    public int getIntValCount() {
      return intVal_.size();
    }
    /**
     * <pre>
     * DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
     * </pre>
     *
     * <code>repeated int32 int_val = 7 [packed = true];</code>
     */
    public int getIntVal(int index) {
      return intVal_.getInt(index);
    }
    /**
     * <pre>
     * DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
     * </pre>
     *
     * <code>repeated int32 int_val = 7 [packed = true];</code>
     */
    public Builder setIntVal(
        int index, int value) {
      ensureIntValIsMutable();
      intVal_.setInt(index, value);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
     * </pre>
     *
     * <code>repeated int32 int_val = 7 [packed = true];</code>
     */
    public Builder addIntVal(int value) {
      ensureIntValIsMutable();
      intVal_.addInt(value);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
     * </pre>
     *
     * <code>repeated int32 int_val = 7 [packed = true];</code>
     */
    public Builder addAllIntVal(
        Iterable<? extends Integer> values) {
      ensureIntValIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, intVal_);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_INT32, DT_INT16, DT_INT8, DT_UINT8.
     * </pre>
     *
     * <code>repeated int32 int_val = 7 [packed = true];</code>
     */
    public Builder clearIntVal() {
      intVal_ = emptyIntList();
      bitField0_ = (bitField0_ & ~0x00000008);
      onChanged();
      return this;
    }

    private java.util.List<com.google.protobuf.ByteString> stringVal_ = java.util.Collections.emptyList();
    private void ensureStringValIsMutable() {
      if (!((bitField0_ & 0x00000010) != 0)) {
        stringVal_ = new java.util.ArrayList<com.google.protobuf.ByteString>(stringVal_);
        bitField0_ |= 0x00000010;
       }
    }
    /**
     * <pre>
     * DT_STRING
     * </pre>
     *
     * <code>repeated bytes string_val = 8;</code>
     */
    public java.util.List<com.google.protobuf.ByteString>
        getStringValList() {
      return ((bitField0_ & 0x00000010) != 0) ?
               java.util.Collections.unmodifiableList(stringVal_) : stringVal_;
    }
    /**
     * <pre>
     * DT_STRING
     * </pre>
     *
     * <code>repeated bytes string_val = 8;</code>
     */
    public int getStringValCount() {
      return stringVal_.size();
    }
    /**
     * <pre>
     * DT_STRING
     * </pre>
     *
     * <code>repeated bytes string_val = 8;</code>
     */
    public com.google.protobuf.ByteString getStringVal(int index) {
      return stringVal_.get(index);
    }
    /**
     * <pre>
     * DT_STRING
     * </pre>
     *
     * <code>repeated bytes string_val = 8;</code>
     */
    public Builder setStringVal(
        int index, com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  ensureStringValIsMutable();
      stringVal_.set(index, value);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * DT_STRING
     * </pre>
     *
     * <code>repeated bytes string_val = 8;</code>
     */
    public Builder addStringVal(com.google.protobuf.ByteString value) {
      if (value == null) {
    throw new NullPointerException();
  }
  ensureStringValIsMutable();
      stringVal_.add(value);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_STRING
     * </pre>
     *
     * <code>repeated bytes string_val = 8;</code>
     */
    public Builder addAllStringVal(
        Iterable<? extends com.google.protobuf.ByteString> values) {
      ensureStringValIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, stringVal_);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_STRING
     * </pre>
     *
     * <code>repeated bytes string_val = 8;</code>
     */
    public Builder clearStringVal() {
      stringVal_ = java.util.Collections.emptyList();
      bitField0_ = (bitField0_ & ~0x00000010);
      onChanged();
      return this;
    }

    private com.google.protobuf.Internal.FloatList scomplexVal_ = emptyFloatList();
    private void ensureScomplexValIsMutable() {
      if (!((bitField0_ & 0x00000020) != 0)) {
        scomplexVal_ = mutableCopy(scomplexVal_);
        bitField0_ |= 0x00000020;
      }
    }

    /**
     * <pre>
     * DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real
     * and imaginary parts of i-th single precision complex.
     * </pre>
     *
     * <code>repeated float scomplex_val = 9 [packed = true];</code>
     */
    public java.util.List<Float>
    getScomplexValList() {
      return ((bitField0_ & 0x00000020) != 0) ?
          java.util.Collections.unmodifiableList(scomplexVal_) : scomplexVal_;
    }

    /**
     * <pre>
     * DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real
     * and imaginary parts of i-th single precision complex.
     * </pre>
     *
     * <code>repeated float scomplex_val = 9 [packed = true];</code>
     */
    public int getScomplexValCount() {
      return scomplexVal_.size();
    }
    /**
     * <pre>
     * DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real
     * and imaginary parts of i-th single precision complex.
     * </pre>
     *
     * <code>repeated float scomplex_val = 9 [packed = true];</code>
     */
    public float getScomplexVal(int index) {
      return scomplexVal_.getFloat(index);
    }
    /**
     * <pre>
     * DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real
     * and imaginary parts of i-th single precision complex.
     * </pre>
     *
     * <code>repeated float scomplex_val = 9 [packed = true];</code>
     */
    public Builder setScomplexVal(
        int index, float value) {
      ensureScomplexValIsMutable();
      scomplexVal_.setFloat(index, value);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real
     * and imaginary parts of i-th single precision complex.
     * </pre>
     *
     * <code>repeated float scomplex_val = 9 [packed = true];</code>
     */
    public Builder addScomplexVal(float value) {
      ensureScomplexValIsMutable();
      scomplexVal_.addFloat(value);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real
     * and imaginary parts of i-th single precision complex.
     * </pre>
     *
     * <code>repeated float scomplex_val = 9 [packed = true];</code>
     */
    public Builder addAllScomplexVal(
        Iterable<? extends Float> values) {
      ensureScomplexValIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, scomplexVal_);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_COMPLEX64. scomplex_val(2*i) and scomplex_val(2*i+1) are real
     * and imaginary parts of i-th single precision complex.
     * </pre>
     *
     * <code>repeated float scomplex_val = 9 [packed = true];</code>
     */
    public Builder clearScomplexVal() {
      scomplexVal_ = emptyFloatList();
      bitField0_ = (bitField0_ & ~0x00000020);
      onChanged();
      return this;
    }

    private com.google.protobuf.Internal.LongList int64Val_ = emptyLongList();
    private void ensureInt64ValIsMutable() {
      if (!((bitField0_ & 0x00000040) != 0)) {
        int64Val_ = mutableCopy(int64Val_);
        bitField0_ |= 0x00000040;
      }
    }

    /**
     * <pre>
     * DT_INT64
     * </pre>
     *
     * <code>repeated int64 int64_val = 10 [packed = true];</code>
     */
    public java.util.List<Long>
    getInt64ValList() {
      return ((bitField0_ & 0x00000040) != 0) ?
          java.util.Collections.unmodifiableList(int64Val_) : int64Val_;
    }

    /**
     * <pre>
     * DT_INT64
     * </pre>
     *
     * <code>repeated int64 int64_val = 10 [packed = true];</code>
     */
    public int getInt64ValCount() {
      return int64Val_.size();
    }
    /**
     * <pre>
     * DT_INT64
     * </pre>
     *
     * <code>repeated int64 int64_val = 10 [packed = true];</code>
     */
    public long getInt64Val(int index) {
      return int64Val_.getLong(index);
    }
    /**
     * <pre>
     * DT_INT64
     * </pre>
     *
     * <code>repeated int64 int64_val = 10 [packed = true];</code>
     */
    public Builder setInt64Val(
        int index, long value) {
      ensureInt64ValIsMutable();
      int64Val_.setLong(index, value);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * DT_INT64
     * </pre>
     *
     * <code>repeated int64 int64_val = 10 [packed = true];</code>
     */
    public Builder addInt64Val(long value) {
      ensureInt64ValIsMutable();
      int64Val_.addLong(value);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_INT64
     * </pre>
     *
     * <code>repeated int64 int64_val = 10 [packed = true];</code>
     */
    public Builder addAllInt64Val(
        Iterable<? extends Long> values) {
      ensureInt64ValIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, int64Val_);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_INT64
     * </pre>
     *
     * <code>repeated int64 int64_val = 10 [packed = true];</code>
     */
    public Builder clearInt64Val() {
      int64Val_ = emptyLongList();
      bitField0_ = (bitField0_ & ~0x00000040);
      onChanged();
      return this;
    }

    private com.google.protobuf.Internal.BooleanList boolVal_ = emptyBooleanList();
    private void ensureBoolValIsMutable() {
      if (!((bitField0_ & 0x00000080) != 0)) {
        boolVal_ = mutableCopy(boolVal_);
        bitField0_ |= 0x00000080;
      }
    }

    /**
     * <pre>
     * DT_BOOL
     * </pre>
     *
     * <code>repeated bool bool_val = 11 [packed = true];</code>
     */
    public java.util.List<Boolean>
    getBoolValList() {
      return ((bitField0_ & 0x00000080) != 0) ?
          java.util.Collections.unmodifiableList(boolVal_) : boolVal_;
    }

    /**
     * <pre>
     * DT_BOOL
     * </pre>
     *
     * <code>repeated bool bool_val = 11 [packed = true];</code>
     */
    public int getBoolValCount() {
      return boolVal_.size();
    }
    /**
     * <pre>
     * DT_BOOL
     * </pre>
     *
     * <code>repeated bool bool_val = 11 [packed = true];</code>
     */
    public boolean getBoolVal(int index) {
      return boolVal_.getBoolean(index);
    }
    /**
     * <pre>
     * DT_BOOL
     * </pre>
     *
     * <code>repeated bool bool_val = 11 [packed = true];</code>
     */
    public Builder setBoolVal(
        int index, boolean value) {
      ensureBoolValIsMutable();
      boolVal_.setBoolean(index, value);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * DT_BOOL
     * </pre>
     *
     * <code>repeated bool bool_val = 11 [packed = true];</code>
     */
    public Builder addBoolVal(boolean value) {
      ensureBoolValIsMutable();
      boolVal_.addBoolean(value);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_BOOL
     * </pre>
     *
     * <code>repeated bool bool_val = 11 [packed = true];</code>
     */
    public Builder addAllBoolVal(
        Iterable<? extends Boolean> values) {
      ensureBoolValIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, boolVal_);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_BOOL
     * </pre>
     *
     * <code>repeated bool bool_val = 11 [packed = true];</code>
     */
    public Builder clearBoolVal() {
      boolVal_ = emptyBooleanList();
      bitField0_ = (bitField0_ & ~0x00000080);
      onChanged();
      return this;
    }

    private com.google.protobuf.Internal.DoubleList dcomplexVal_ = emptyDoubleList();
    private void ensureDcomplexValIsMutable() {
      if (!((bitField0_ & 0x00000100) != 0)) {
        dcomplexVal_ = mutableCopy(dcomplexVal_);
        bitField0_ |= 0x00000100;
      }
    }

    /**
     * <pre>
     * DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real
     * and imaginary parts of i-th double precision complex.
     * </pre>
     *
     * <code>repeated double dcomplex_val = 12 [packed = true];</code>
     */
    public java.util.List<Double>
    getDcomplexValList() {
      return ((bitField0_ & 0x00000100) != 0) ?
          java.util.Collections.unmodifiableList(dcomplexVal_) : dcomplexVal_;
    }

    /**
     * <pre>
     * DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real
     * and imaginary parts of i-th double precision complex.
     * </pre>
     *
     * <code>repeated double dcomplex_val = 12 [packed = true];</code>
     */
    public int getDcomplexValCount() {
      return dcomplexVal_.size();
    }
    /**
     * <pre>
     * DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real
     * and imaginary parts of i-th double precision complex.
     * </pre>
     *
     * <code>repeated double dcomplex_val = 12 [packed = true];</code>
     */
    public double getDcomplexVal(int index) {
      return dcomplexVal_.getDouble(index);
    }
    /**
     * <pre>
     * DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real
     * and imaginary parts of i-th double precision complex.
     * </pre>
     *
     * <code>repeated double dcomplex_val = 12 [packed = true];</code>
     */
    public Builder setDcomplexVal(
        int index, double value) {
      ensureDcomplexValIsMutable();
      dcomplexVal_.setDouble(index, value);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real
     * and imaginary parts of i-th double precision complex.
     * </pre>
     *
     * <code>repeated double dcomplex_val = 12 [packed = true];</code>
     */
    public Builder addDcomplexVal(double value) {
      ensureDcomplexValIsMutable();
      dcomplexVal_.addDouble(value);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real
     * and imaginary parts of i-th double precision complex.
     * </pre>
     *
     * <code>repeated double dcomplex_val = 12 [packed = true];</code>
     */
    public Builder addAllDcomplexVal(
        Iterable<? extends Double> values) {
      ensureDcomplexValIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, dcomplexVal_);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_COMPLEX128. dcomplex_val(2*i) and dcomplex_val(2*i+1) are real
     * and imaginary parts of i-th double precision complex.
     * </pre>
     *
     * <code>repeated double dcomplex_val = 12 [packed = true];</code>
     */
    public Builder clearDcomplexVal() {
      dcomplexVal_ = emptyDoubleList();
      bitField0_ = (bitField0_ & ~0x00000100);
      onChanged();
      return this;
    }

    private java.util.List<ResourceHandleProto> resourceHandleVal_ =
        java.util.Collections.emptyList();
    private void ensureResourceHandleValIsMutable() {
      if (!((bitField0_ & 0x00000200) != 0)) {
        resourceHandleVal_ = new java.util.ArrayList<ResourceHandleProto>(resourceHandleVal_);
        bitField0_ |= 0x00000200;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        ResourceHandleProto, ResourceHandleProto.Builder, ResourceHandleProtoOrBuilder> resourceHandleValBuilder_;

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public java.util.List<ResourceHandleProto> getResourceHandleValList() {
      if (resourceHandleValBuilder_ == null) {
        return java.util.Collections.unmodifiableList(resourceHandleVal_);
      } else {
        return resourceHandleValBuilder_.getMessageList();
      }
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public int getResourceHandleValCount() {
      if (resourceHandleValBuilder_ == null) {
        return resourceHandleVal_.size();
      } else {
        return resourceHandleValBuilder_.getCount();
      }
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public ResourceHandleProto getResourceHandleVal(int index) {
      if (resourceHandleValBuilder_ == null) {
        return resourceHandleVal_.get(index);
      } else {
        return resourceHandleValBuilder_.getMessage(index);
      }
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public Builder setResourceHandleVal(
        int index, ResourceHandleProto value) {
      if (resourceHandleValBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResourceHandleValIsMutable();
        resourceHandleVal_.set(index, value);
        onChanged();
      } else {
        resourceHandleValBuilder_.setMessage(index, value);
      }
      return this;
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public Builder setResourceHandleVal(
        int index, ResourceHandleProto.Builder builderForValue) {
      if (resourceHandleValBuilder_ == null) {
        ensureResourceHandleValIsMutable();
        resourceHandleVal_.set(index, builderForValue.build());
        onChanged();
      } else {
        resourceHandleValBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public Builder addResourceHandleVal(ResourceHandleProto value) {
      if (resourceHandleValBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResourceHandleValIsMutable();
        resourceHandleVal_.add(value);
        onChanged();
      } else {
        resourceHandleValBuilder_.addMessage(value);
      }
      return this;
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public Builder addResourceHandleVal(
        int index, ResourceHandleProto value) {
      if (resourceHandleValBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureResourceHandleValIsMutable();
        resourceHandleVal_.add(index, value);
        onChanged();
      } else {
        resourceHandleValBuilder_.addMessage(index, value);
      }
      return this;
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public Builder addResourceHandleVal(
        ResourceHandleProto.Builder builderForValue) {
      if (resourceHandleValBuilder_ == null) {
        ensureResourceHandleValIsMutable();
        resourceHandleVal_.add(builderForValue.build());
        onChanged();
      } else {
        resourceHandleValBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public Builder addResourceHandleVal(
        int index, ResourceHandleProto.Builder builderForValue) {
      if (resourceHandleValBuilder_ == null) {
        ensureResourceHandleValIsMutable();
        resourceHandleVal_.add(index, builderForValue.build());
        onChanged();
      } else {
        resourceHandleValBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public Builder addAllResourceHandleVal(
        Iterable<? extends ResourceHandleProto> values) {
      if (resourceHandleValBuilder_ == null) {
        ensureResourceHandleValIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, resourceHandleVal_);
        onChanged();
      } else {
        resourceHandleValBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public Builder clearResourceHandleVal() {
      if (resourceHandleValBuilder_ == null) {
        resourceHandleVal_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000200);
        onChanged();
      } else {
        resourceHandleValBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public Builder removeResourceHandleVal(int index) {
      if (resourceHandleValBuilder_ == null) {
        ensureResourceHandleValIsMutable();
        resourceHandleVal_.remove(index);
        onChanged();
      } else {
        resourceHandleValBuilder_.remove(index);
      }
      return this;
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public ResourceHandleProto.Builder getResourceHandleValBuilder(
        int index) {
      return getResourceHandleValFieldBuilder().getBuilder(index);
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public ResourceHandleProtoOrBuilder getResourceHandleValOrBuilder(
        int index) {
      if (resourceHandleValBuilder_ == null) {
        return resourceHandleVal_.get(index);
      } else {
        return resourceHandleValBuilder_.getMessageOrBuilder(index);
      }
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public java.util.List<? extends ResourceHandleProtoOrBuilder>
    getResourceHandleValOrBuilderList() {
      if (resourceHandleValBuilder_ != null) {
        return resourceHandleValBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(resourceHandleVal_);
      }
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public ResourceHandleProto.Builder addResourceHandleValBuilder() {
      return getResourceHandleValFieldBuilder().addBuilder(
          ResourceHandleProto.getDefaultInstance());
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public ResourceHandleProto.Builder addResourceHandleValBuilder(
        int index) {
      return getResourceHandleValFieldBuilder().addBuilder(
          index, ResourceHandleProto.getDefaultInstance());
    }

    /**
     * <pre>
     * DT_RESOURCE
     * </pre>
     *
     * <code>repeated .tensorflow.ResourceHandleProto resource_handle_val = 14;</code>
     */
    public java.util.List<ResourceHandleProto.Builder>
    getResourceHandleValBuilderList() {
      return getResourceHandleValFieldBuilder().getBuilderList();
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        ResourceHandleProto, ResourceHandleProto.Builder, ResourceHandleProtoOrBuilder>
    getResourceHandleValFieldBuilder() {
      if (resourceHandleValBuilder_ == null) {
        resourceHandleValBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
            ResourceHandleProto, ResourceHandleProto.Builder, ResourceHandleProtoOrBuilder>(
            resourceHandleVal_,
            ((bitField0_ & 0x00000200) != 0),
            getParentForChildren(),
            isClean());
        resourceHandleVal_ = null;
      }
      return resourceHandleValBuilder_;
    }

    private java.util.List<VariantTensorDataProto> variantVal_ =
        java.util.Collections.emptyList();
    private void ensureVariantValIsMutable() {
      if (!((bitField0_ & 0x00000400) != 0)) {
        variantVal_ = new java.util.ArrayList<VariantTensorDataProto>(variantVal_);
        bitField0_ |= 0x00000400;
       }
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        VariantTensorDataProto, VariantTensorDataProto.Builder, VariantTensorDataProtoOrBuilder> variantValBuilder_;

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public java.util.List<VariantTensorDataProto> getVariantValList() {
      if (variantValBuilder_ == null) {
        return java.util.Collections.unmodifiableList(variantVal_);
      } else {
        return variantValBuilder_.getMessageList();
      }
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public int getVariantValCount() {
      if (variantValBuilder_ == null) {
        return variantVal_.size();
      } else {
        return variantValBuilder_.getCount();
      }
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public VariantTensorDataProto getVariantVal(int index) {
      if (variantValBuilder_ == null) {
        return variantVal_.get(index);
      } else {
        return variantValBuilder_.getMessage(index);
      }
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public Builder setVariantVal(
        int index, VariantTensorDataProto value) {
      if (variantValBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureVariantValIsMutable();
        variantVal_.set(index, value);
        onChanged();
      } else {
        variantValBuilder_.setMessage(index, value);
      }
      return this;
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public Builder setVariantVal(
        int index, VariantTensorDataProto.Builder builderForValue) {
      if (variantValBuilder_ == null) {
        ensureVariantValIsMutable();
        variantVal_.set(index, builderForValue.build());
        onChanged();
      } else {
        variantValBuilder_.setMessage(index, builderForValue.build());
      }
      return this;
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public Builder addVariantVal(VariantTensorDataProto value) {
      if (variantValBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureVariantValIsMutable();
        variantVal_.add(value);
        onChanged();
      } else {
        variantValBuilder_.addMessage(value);
      }
      return this;
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public Builder addVariantVal(
        int index, VariantTensorDataProto value) {
      if (variantValBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        ensureVariantValIsMutable();
        variantVal_.add(index, value);
        onChanged();
      } else {
        variantValBuilder_.addMessage(index, value);
      }
      return this;
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public Builder addVariantVal(
        VariantTensorDataProto.Builder builderForValue) {
      if (variantValBuilder_ == null) {
        ensureVariantValIsMutable();
        variantVal_.add(builderForValue.build());
        onChanged();
      } else {
        variantValBuilder_.addMessage(builderForValue.build());
      }
      return this;
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public Builder addVariantVal(
        int index, VariantTensorDataProto.Builder builderForValue) {
      if (variantValBuilder_ == null) {
        ensureVariantValIsMutable();
        variantVal_.add(index, builderForValue.build());
        onChanged();
      } else {
        variantValBuilder_.addMessage(index, builderForValue.build());
      }
      return this;
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public Builder addAllVariantVal(
        Iterable<? extends VariantTensorDataProto> values) {
      if (variantValBuilder_ == null) {
        ensureVariantValIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, variantVal_);
        onChanged();
      } else {
        variantValBuilder_.addAllMessages(values);
      }
      return this;
    }
    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public Builder clearVariantVal() {
      if (variantValBuilder_ == null) {
        variantVal_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000400);
        onChanged();
      } else {
        variantValBuilder_.clear();
      }
      return this;
    }
    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public Builder removeVariantVal(int index) {
      if (variantValBuilder_ == null) {
        ensureVariantValIsMutable();
        variantVal_.remove(index);
        onChanged();
      } else {
        variantValBuilder_.remove(index);
      }
      return this;
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public VariantTensorDataProto.Builder getVariantValBuilder(
        int index) {
      return getVariantValFieldBuilder().getBuilder(index);
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public VariantTensorDataProtoOrBuilder getVariantValOrBuilder(
        int index) {
      if (variantValBuilder_ == null) {
        return variantVal_.get(index);
      } else {
        return variantValBuilder_.getMessageOrBuilder(index);
      }
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public java.util.List<? extends VariantTensorDataProtoOrBuilder>
    getVariantValOrBuilderList() {
      if (variantValBuilder_ != null) {
        return variantValBuilder_.getMessageOrBuilderList();
      } else {
        return java.util.Collections.unmodifiableList(variantVal_);
      }
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public VariantTensorDataProto.Builder addVariantValBuilder() {
      return getVariantValFieldBuilder().addBuilder(
          VariantTensorDataProto.getDefaultInstance());
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public VariantTensorDataProto.Builder addVariantValBuilder(
        int index) {
      return getVariantValFieldBuilder().addBuilder(
          index, VariantTensorDataProto.getDefaultInstance());
    }

    /**
     * <pre>
     * DT_VARIANT
     * </pre>
     *
     * <code>repeated .tensorflow.VariantTensorDataProto variant_val = 15;</code>
     */
    public java.util.List<VariantTensorDataProto.Builder>
    getVariantValBuilderList() {
      return getVariantValFieldBuilder().getBuilderList();
    }

    private com.google.protobuf.RepeatedFieldBuilderV3<
        VariantTensorDataProto, VariantTensorDataProto.Builder, VariantTensorDataProtoOrBuilder>
    getVariantValFieldBuilder() {
      if (variantValBuilder_ == null) {
        variantValBuilder_ = new com.google.protobuf.RepeatedFieldBuilderV3<
            VariantTensorDataProto, VariantTensorDataProto.Builder, VariantTensorDataProtoOrBuilder>(
            variantVal_,
            ((bitField0_ & 0x00000400) != 0),
            getParentForChildren(),
            isClean());
        variantVal_ = null;
      }
      return variantValBuilder_;
    }

    private com.google.protobuf.Internal.IntList uint32Val_ = emptyIntList();
    private void ensureUint32ValIsMutable() {
      if (!((bitField0_ & 0x00000800) != 0)) {
        uint32Val_ = mutableCopy(uint32Val_);
        bitField0_ |= 0x00000800;
      }
    }

    /**
     * <pre>
     * DT_UINT32
     * </pre>
     *
     * <code>repeated uint32 uint32_val = 16 [packed = true];</code>
     */
    public java.util.List<Integer>
    getUint32ValList() {
      return ((bitField0_ & 0x00000800) != 0) ?
          java.util.Collections.unmodifiableList(uint32Val_) : uint32Val_;
    }

    /**
     * <pre>
     * DT_UINT32
     * </pre>
     *
     * <code>repeated uint32 uint32_val = 16 [packed = true];</code>
     */
    public int getUint32ValCount() {
      return uint32Val_.size();
    }
    /**
     * <pre>
     * DT_UINT32
     * </pre>
     *
     * <code>repeated uint32 uint32_val = 16 [packed = true];</code>
     */
    public int getUint32Val(int index) {
      return uint32Val_.getInt(index);
    }
    /**
     * <pre>
     * DT_UINT32
     * </pre>
     *
     * <code>repeated uint32 uint32_val = 16 [packed = true];</code>
     */
    public Builder setUint32Val(
        int index, int value) {
      ensureUint32ValIsMutable();
      uint32Val_.setInt(index, value);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * DT_UINT32
     * </pre>
     *
     * <code>repeated uint32 uint32_val = 16 [packed = true];</code>
     */
    public Builder addUint32Val(int value) {
      ensureUint32ValIsMutable();
      uint32Val_.addInt(value);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_UINT32
     * </pre>
     *
     * <code>repeated uint32 uint32_val = 16 [packed = true];</code>
     */
    public Builder addAllUint32Val(
        Iterable<? extends Integer> values) {
      ensureUint32ValIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, uint32Val_);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_UINT32
     * </pre>
     *
     * <code>repeated uint32 uint32_val = 16 [packed = true];</code>
     */
    public Builder clearUint32Val() {
      uint32Val_ = emptyIntList();
      bitField0_ = (bitField0_ & ~0x00000800);
      onChanged();
      return this;
    }

    private com.google.protobuf.Internal.LongList uint64Val_ = emptyLongList();
    private void ensureUint64ValIsMutable() {
      if (!((bitField0_ & 0x00001000) != 0)) {
        uint64Val_ = mutableCopy(uint64Val_);
        bitField0_ |= 0x00001000;
      }
    }

    /**
     * <pre>
     * DT_UINT64
     * </pre>
     *
     * <code>repeated uint64 uint64_val = 17 [packed = true];</code>
     */
    public java.util.List<Long>
    getUint64ValList() {
      return ((bitField0_ & 0x00001000) != 0) ?
          java.util.Collections.unmodifiableList(uint64Val_) : uint64Val_;
    }

    /**
     * <pre>
     * DT_UINT64
     * </pre>
     *
     * <code>repeated uint64 uint64_val = 17 [packed = true];</code>
     */
    public int getUint64ValCount() {
      return uint64Val_.size();
    }
    /**
     * <pre>
     * DT_UINT64
     * </pre>
     *
     * <code>repeated uint64 uint64_val = 17 [packed = true];</code>
     */
    public long getUint64Val(int index) {
      return uint64Val_.getLong(index);
    }
    /**
     * <pre>
     * DT_UINT64
     * </pre>
     *
     * <code>repeated uint64 uint64_val = 17 [packed = true];</code>
     */
    public Builder setUint64Val(
        int index, long value) {
      ensureUint64ValIsMutable();
      uint64Val_.setLong(index, value);
      onChanged();
      return this;
    }
    /**
     * <pre>
     * DT_UINT64
     * </pre>
     *
     * <code>repeated uint64 uint64_val = 17 [packed = true];</code>
     */
    public Builder addUint64Val(long value) {
      ensureUint64ValIsMutable();
      uint64Val_.addLong(value);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_UINT64
     * </pre>
     *
     * <code>repeated uint64 uint64_val = 17 [packed = true];</code>
     */
    public Builder addAllUint64Val(
        Iterable<? extends Long> values) {
      ensureUint64ValIsMutable();
      com.google.protobuf.AbstractMessageLite.Builder.addAll(
          values, uint64Val_);
      onChanged();
      return this;
    }

    /**
     * <pre>
     * DT_UINT64
     * </pre>
     *
     * <code>repeated uint64 uint64_val = 17 [packed = true];</code>
     */
    public Builder clearUint64Val() {
      uint64Val_ = emptyLongList();
      bitField0_ = (bitField0_ & ~0x00001000);
      onChanged();
      return this;
    }

    @Override
    public final Builder setUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

    @Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }


    // @@protoc_insertion_point(builder_scope:tensorflow.TensorProto)
  }

  // @@protoc_insertion_point(class_scope:tensorflow.TensorProto)
  private static final TensorProto DEFAULT_INSTANCE;
  static {
    DEFAULT_INSTANCE = new TensorProto();
  }

  public static TensorProto getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<TensorProto>
      PARSER = new com.google.protobuf.AbstractParser<TensorProto>() {
    @Override
    public TensorProto parsePartialFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return new TensorProto(input, extensionRegistry);
    }
  };

  public static com.google.protobuf.Parser<TensorProto> parser() {
    return PARSER;
  }

  @Override
  public com.google.protobuf.Parser<TensorProto> getParserForType() {
    return PARSER;
  }

  @Override
  public TensorProto getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }

}

