public override int GetHashCode()
        {
            int hash = 1;

            if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.GridAnchorGenerator)
            {
                hash ^= GridAnchorGenerator.GetHashCode();
            }
            if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.SsdAnchorGenerator)
            {
                hash ^= SsdAnchorGenerator.GetHashCode();
            }
            if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.MultiscaleAnchorGenerator)
            {
                hash ^= MultiscaleAnchorGenerator.GetHashCode();
            }
            if (anchorGeneratorOneofCase_ == AnchorGeneratorOneofOneofCase.FlexibleGridAnchorGenerator)
            {
                hash ^= FlexibleGridAnchorGenerator.GetHashCode();
            }
            hash ^= (int)anchorGeneratorOneofCase_;
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }
        public void MergeFrom(AnchorGenerator other)
        {
            if (other == null)
            {
                return;
            }
            switch (other.AnchorGeneratorOneofCase)
            {
            case AnchorGeneratorOneofOneofCase.GridAnchorGenerator:
                if (GridAnchorGenerator == null)
                {
                    GridAnchorGenerator = new global::Tensorflow.Models.ObjectDetection.Protos.GridAnchorGenerator();
                }
                GridAnchorGenerator.MergeFrom(other.GridAnchorGenerator);
                break;

            case AnchorGeneratorOneofOneofCase.SsdAnchorGenerator:
                if (SsdAnchorGenerator == null)
                {
                    SsdAnchorGenerator = new global::Tensorflow.Models.ObjectDetection.Protos.SsdAnchorGenerator();
                }
                SsdAnchorGenerator.MergeFrom(other.SsdAnchorGenerator);
                break;

            case AnchorGeneratorOneofOneofCase.MultiscaleAnchorGenerator:
                if (MultiscaleAnchorGenerator == null)
                {
                    MultiscaleAnchorGenerator = new global::Tensorflow.Models.ObjectDetection.Protos.MultiscaleAnchorGenerator();
                }
                MultiscaleAnchorGenerator.MergeFrom(other.MultiscaleAnchorGenerator);
                break;

            case AnchorGeneratorOneofOneofCase.FlexibleGridAnchorGenerator:
                if (FlexibleGridAnchorGenerator == null)
                {
                    FlexibleGridAnchorGenerator = new global::Tensorflow.Models.ObjectDetection.Protos.FlexibleGridAnchorGenerator();
                }
                FlexibleGridAnchorGenerator.MergeFrom(other.FlexibleGridAnchorGenerator);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }