cuvis-ai-schemas 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. cuvis_ai_schemas/__init__.py +5 -0
  2. cuvis_ai_schemas/discovery/__init__.py +6 -0
  3. cuvis_ai_schemas/enums/__init__.py +5 -0
  4. cuvis_ai_schemas/enums/types.py +30 -0
  5. cuvis_ai_schemas/execution/__init__.py +12 -0
  6. cuvis_ai_schemas/execution/context.py +41 -0
  7. cuvis_ai_schemas/execution/monitoring.py +83 -0
  8. cuvis_ai_schemas/extensions/__init__.py +3 -0
  9. cuvis_ai_schemas/extensions/ui/__init__.py +8 -0
  10. cuvis_ai_schemas/extensions/ui/port_display.py +159 -0
  11. cuvis_ai_schemas/grpc/__init__.py +3 -0
  12. cuvis_ai_schemas/grpc/v1/__init__.py +11 -0
  13. cuvis_ai_schemas/grpc/v1/cuvis_ai_pb2.py +240 -0
  14. cuvis_ai_schemas/grpc/v1/cuvis_ai_pb2.pyi +1046 -0
  15. cuvis_ai_schemas/grpc/v1/cuvis_ai_pb2_grpc.py +1290 -0
  16. cuvis_ai_schemas/pipeline/__init__.py +17 -0
  17. cuvis_ai_schemas/pipeline/config.py +238 -0
  18. cuvis_ai_schemas/pipeline/ports.py +48 -0
  19. cuvis_ai_schemas/plugin/__init__.py +6 -0
  20. cuvis_ai_schemas/plugin/config.py +118 -0
  21. cuvis_ai_schemas/plugin/manifest.py +95 -0
  22. cuvis_ai_schemas/training/__init__.py +40 -0
  23. cuvis_ai_schemas/training/callbacks.py +137 -0
  24. cuvis_ai_schemas/training/config.py +135 -0
  25. cuvis_ai_schemas/training/data.py +73 -0
  26. cuvis_ai_schemas/training/optimizer.py +94 -0
  27. cuvis_ai_schemas/training/run.py +198 -0
  28. cuvis_ai_schemas/training/scheduler.py +69 -0
  29. cuvis_ai_schemas/training/trainer.py +40 -0
  30. cuvis_ai_schemas-0.1.0.dist-info/METADATA +111 -0
  31. cuvis_ai_schemas-0.1.0.dist-info/RECORD +34 -0
  32. cuvis_ai_schemas-0.1.0.dist-info/WHEEL +5 -0
  33. cuvis_ai_schemas-0.1.0.dist-info/licenses/LICENSE +190 -0
  34. cuvis_ai_schemas-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,5 @@
1
+ """cuvis-ai-schemas: Lightweight schema definitions for the cuvis-ai ecosystem."""
2
+
3
+ __version__ = "0.1.0"
4
+
5
+ __all__ = ["__version__"]
@@ -0,0 +1,6 @@
1
+ """Discovery and metadata schemas."""
2
+
3
+ # Discovery schemas are primarily defined in proto
4
+ # Python implementations will be added as needed
5
+
6
+ __all__: list[str] = []
@@ -0,0 +1,5 @@
1
+ """Shared enums across cuvis-ai ecosystem."""
2
+
3
+ from cuvis_ai_schemas.enums.types import ArtifactType, ExecutionStage
4
+
5
+ __all__ = ["ExecutionStage", "ArtifactType"]
@@ -0,0 +1,30 @@
1
+ """Shared type enums for cuvis-ai ecosystem."""
2
+
3
+ from enum import StrEnum
4
+
5
+
6
+ class ExecutionStage(StrEnum):
7
+ """Execution stages for node filtering.
8
+
9
+ Nodes can specify which stages they should execute in to enable
10
+ stage-aware graph execution (e.g., loss nodes only in training).
11
+ """
12
+
13
+ ALWAYS = "always"
14
+ TRAIN = "train"
15
+ VAL = "val"
16
+ VALIDATE = "val"
17
+ TEST = "test"
18
+ INFERENCE = "inference"
19
+
20
+
21
+ class ArtifactType(StrEnum):
22
+ """Types of artifacts with different validation/logging policies.
23
+
24
+ Attributes
25
+ ----------
26
+ IMAGE : str
27
+ Image artifact - expects shape (H, W, 1) monocular or (H, W, 3) RGB
28
+ """
29
+
30
+ IMAGE = "image"
@@ -0,0 +1,12 @@
1
+ """Execution context schemas."""
2
+
3
+ from collections.abc import Iterator
4
+ from typing import Any
5
+
6
+ from cuvis_ai_schemas.execution.context import Context
7
+ from cuvis_ai_schemas.execution.monitoring import Artifact, Metric
8
+
9
+ # Type alias for data streaming
10
+ InputStream = Iterator[dict[str, Any]]
11
+
12
+ __all__ = ["Context", "Artifact", "Metric", "InputStream"]
@@ -0,0 +1,41 @@
1
+ """Execution context for pipeline execution."""
2
+
3
+ from dataclasses import dataclass
4
+
5
+ from cuvis_ai_schemas.enums.types import ExecutionStage
6
+
7
+
8
+ @dataclass
9
+ class Context:
10
+ """Execution context passed to executor and nodes.
11
+
12
+ Contains runtime information that doesn't flow through data edges.
13
+ This replaces mutable global state with explicit context parameters.
14
+
15
+ Attributes
16
+ ----------
17
+ stage : ExecutionStage
18
+ Execution stage: "train", "val", "test", "inference"
19
+ epoch : int
20
+ Current training epoch
21
+ batch_idx : int
22
+ Current batch index within epoch
23
+ global_step : int
24
+ Global training step across all epochs
25
+
26
+ Examples
27
+ --------
28
+ >>> context = Context(stage=ExecutionStage.TRAIN, epoch=5, batch_idx=42, global_step=1337)
29
+ >>> executor.forward(context=context, batch=batch)
30
+
31
+ Notes
32
+ -----
33
+ Future extensions for distributed training:
34
+ - rank: int (process rank in distributed training)
35
+ - world_size: int (total number of processes)
36
+ """
37
+
38
+ stage: ExecutionStage = ExecutionStage.INFERENCE
39
+ epoch: int = 0
40
+ batch_idx: int = 0
41
+ global_step: int = 0
@@ -0,0 +1,83 @@
1
+ """Monitoring schemas for artifacts and metrics."""
2
+
3
+ from dataclasses import dataclass
4
+ from typing import TYPE_CHECKING
5
+
6
+ from cuvis_ai_schemas.enums.types import ArtifactType, ExecutionStage
7
+
8
+ if TYPE_CHECKING:
9
+ import numpy as np
10
+
11
+
12
+ @dataclass
13
+ class Artifact:
14
+ """Artifact for logging visualizations and data to monitoring systems.
15
+
16
+ Attributes
17
+ ----------
18
+ name : str
19
+ Name/identifier for the artifact
20
+ value : np.ndarray
21
+ Numpy array containing the artifact data (shape validated by type)
22
+ el_id : int
23
+ Element ID (e.g., batch item index, image index)
24
+ desc : str
25
+ Human-readable description of the artifact
26
+ type : ArtifactType
27
+ Type of artifact, determines validation and logging policy
28
+ stage : ExecutionStage
29
+ Execution stage when artifact was generated
30
+ epoch : int
31
+ Training epoch when artifact was generated
32
+ batch_idx : int
33
+ Batch index when artifact was generated
34
+
35
+ Examples
36
+ --------
37
+ >>> import numpy as np
38
+ >>> artifact = Artifact(
39
+ ... name="heatmap_img_0",
40
+ ... value=np.random.rand(256, 256, 3),
41
+ ... el_id=0,
42
+ ... desc="Anomaly heatmap for first image",
43
+ ... type=ArtifactType.IMAGE
44
+ ... )
45
+ """
46
+
47
+ name: str
48
+ value: "np.ndarray"
49
+ el_id: int
50
+ desc: str
51
+ type: ArtifactType
52
+ stage: ExecutionStage = ExecutionStage.INFERENCE
53
+ epoch: int = 0
54
+ batch_idx: int = 0
55
+
56
+
57
+ @dataclass
58
+ class Metric:
59
+ """Metric for logging scalar values to monitoring systems.
60
+
61
+ Attributes
62
+ ----------
63
+ name : str
64
+ Name/identifier for the metric
65
+ value : float
66
+ Scalar metric value
67
+ stage : ExecutionStage
68
+ Execution stage when metric was recorded
69
+ epoch : int
70
+ Training epoch when metric was recorded
71
+ batch_idx : int
72
+ Batch index when metric was recorded
73
+
74
+ Examples
75
+ --------
76
+ >>> metric = Metric(name="loss/train", value=0.123, stage=ExecutionStage.TRAIN)
77
+ """
78
+
79
+ name: str
80
+ value: float
81
+ stage: ExecutionStage = ExecutionStage.INFERENCE
82
+ epoch: int = 0
83
+ batch_idx: int = 0
@@ -0,0 +1,3 @@
1
+ """Optional extensions for specific use cases."""
2
+
3
+ __all__: list[str] = []
@@ -0,0 +1,8 @@
1
+ """UI-specific extensions for port display."""
2
+
3
+ from cuvis_ai_schemas.extensions.ui.port_display import (
4
+ DTYPE_COLORS,
5
+ PortDisplaySpec,
6
+ )
7
+
8
+ __all__ = ["PortDisplaySpec", "DTYPE_COLORS"]
@@ -0,0 +1,159 @@
1
+ """UI display extensions for PortSpec."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from typing import TYPE_CHECKING
6
+
7
+ if TYPE_CHECKING:
8
+ from cuvis_ai_schemas.pipeline.ports import PortSpec
9
+
10
+ # Default RGB colors for different data types
11
+ # Extended with hyperspectral/cuvis-ai specific types for comprehensive UI support
12
+ DTYPE_COLORS: dict[str, tuple[int, int, int]] = {
13
+ # === PyTorch Tensor Types ===
14
+ "torch.Tensor": (100, 150, 255), # Blue for generic tensors
15
+ "tensor": (255, 200, 150), # Peach for generic tensor type
16
+ # Floating point types - warm orange/yellow tones
17
+ "torch.float16": (255, 180, 80), # Light orange
18
+ "torch.float32": (255, 150, 50), # Orange
19
+ "torch.float64": (255, 120, 30), # Dark orange
20
+ "torch.bfloat16": (255, 200, 100), # Pale orange
21
+ "float16": (255, 180, 80),
22
+ "float32": (255, 150, 50),
23
+ "float64": (255, 120, 30),
24
+ "float": (150, 255, 150), # Green for Python floats
25
+ # Integer types - cool blue tones
26
+ "torch.int8": (150, 200, 255), # Light blue
27
+ "torch.int16": (120, 180, 255), # Medium blue
28
+ "torch.int32": (100, 160, 255), # Blue
29
+ "torch.int64": (80, 140, 255), # Dark blue
30
+ "torch.uint8": (180, 220, 255), # Pale blue
31
+ "torch.uint16": (160, 210, 255), # Light pale blue
32
+ "int8": (150, 200, 255),
33
+ "int16": (120, 180, 255),
34
+ "int32": (100, 160, 255),
35
+ "int64": (80, 140, 255),
36
+ "uint8": (180, 220, 255),
37
+ "uint16": (160, 210, 255),
38
+ "int": (255, 200, 100), # Orange for Python ints
39
+ # Boolean types - green
40
+ "torch.bool": (100, 220, 100), # Green
41
+ "bool": (255, 150, 150), # Pink for Python bools (keep original for backward compat)
42
+ # Complex types - purple tones
43
+ "torch.complex64": (200, 150, 255), # Light purple
44
+ "torch.complex128": (180, 120, 255), # Purple
45
+ # === Python Built-in Types ===
46
+ "str": (200, 200, 200), # Gray for strings
47
+ "list": (180, 180, 255), # Light blue for lists
48
+ "dict": (255, 180, 255), # Light purple for dicts
49
+ "object": (180, 180, 180), # Gray for generic objects
50
+ # === Hyperspectral/Cuvis-AI Specific Types ===
51
+ "cube": (255, 180, 100), # Orange-ish (hyperspectral data cube)
52
+ "mask": (150, 255, 150), # Light green (binary/segmentation mask)
53
+ "wavelengths": (100, 200, 255), # Light blue (spectral wavelength array)
54
+ "bbox": (255, 150, 150), # Light red (bounding box coordinates)
55
+ "points": (200, 255, 200), # Pale green (point cloud/coordinates)
56
+ "labels": (255, 200, 200), # Light pink (classification labels)
57
+ "indices": (200, 180, 255), # Light purple (index array)
58
+ "scalar": (255, 255, 180), # Light yellow (single value)
59
+ "image": (200, 255, 255), # Light cyan (2D image output)
60
+ # === Special/Generic Types ===
61
+ "any": (255, 255, 255), # White (accepts anything)
62
+ }
63
+
64
+ DEFAULT_COLOR = (200, 200, 200) # Light gray for unknown types
65
+
66
+
67
+ class PortDisplaySpec:
68
+ """UI display wrapper for PortSpec providing color and formatting.
69
+
70
+ This class wraps a PortSpec and adds UI-specific display properties
71
+ like colors and formatted tooltips.
72
+
73
+ Attributes
74
+ ----------
75
+ port_spec : PortSpec
76
+ The underlying port specification
77
+
78
+ Examples
79
+ --------
80
+ >>> from cuvis_ai_schemas.pipeline.ports import PortSpec
81
+ >>> port = PortSpec(dtype="torch.Tensor", shape=(1, 3, 224, 224))
82
+ >>> display = PortDisplaySpec(port)
83
+ >>> display.color
84
+ (100, 150, 255)
85
+ >>> display.format_tooltip()
86
+ 'torch.Tensor\\nShape: (1, 3, 224, 224)'
87
+ """
88
+
89
+ def __init__(self, port_spec: PortSpec) -> None:
90
+ """Initialize display spec.
91
+
92
+ Parameters
93
+ ----------
94
+ port_spec : PortSpec
95
+ Port specification to wrap
96
+ """
97
+ self.port_spec = port_spec
98
+
99
+ @property
100
+ def color(self) -> tuple[int, int, int]:
101
+ """Get RGB color for this port's dtype.
102
+
103
+ Returns
104
+ -------
105
+ tuple[int, int, int]
106
+ RGB color tuple (0-255 range)
107
+ """
108
+ dtype_str = str(self.port_spec.dtype)
109
+
110
+ # Try exact match first
111
+ if dtype_str in DTYPE_COLORS:
112
+ return DTYPE_COLORS[dtype_str]
113
+
114
+ # Try to extract typename for partial matches
115
+ if hasattr(self.port_spec.dtype, "__name__"):
116
+ typename = self.port_spec.dtype.__name__
117
+ if typename in DTYPE_COLORS:
118
+ return DTYPE_COLORS[typename]
119
+
120
+ # Check if it contains "Tensor"
121
+ if "Tensor" in dtype_str or "tensor" in dtype_str:
122
+ return DTYPE_COLORS["torch.Tensor"]
123
+
124
+ return DEFAULT_COLOR
125
+
126
+ @property
127
+ def display_name(self) -> str:
128
+ """Get formatted display name for the dtype.
129
+
130
+ Returns
131
+ -------
132
+ str
133
+ Human-readable dtype name
134
+ """
135
+ if hasattr(self.port_spec.dtype, "__name__"):
136
+ return self.port_spec.dtype.__name__
137
+ return str(self.port_spec.dtype)
138
+
139
+ def format_tooltip(self) -> str:
140
+ """Format a tooltip string for UI display.
141
+
142
+ Returns
143
+ -------
144
+ str
145
+ Formatted tooltip with dtype, shape, and description
146
+ """
147
+ lines = [self.display_name]
148
+
149
+ if self.port_spec.shape:
150
+ shape_str = ", ".join(str(d) for d in self.port_spec.shape)
151
+ lines.append(f"Shape: ({shape_str})")
152
+
153
+ if self.port_spec.description:
154
+ lines.append(f"\\n{self.port_spec.description}")
155
+
156
+ if self.port_spec.optional:
157
+ lines.append("[Optional]")
158
+
159
+ return "\\n".join(lines)
@@ -0,0 +1,3 @@
1
+ """gRPC proto messages and helpers."""
2
+
3
+ __all__: list[str] = []
@@ -0,0 +1,11 @@
1
+ """Generated proto files for cuvis.ai gRPC API v1."""
2
+
3
+ __all__: list[str] = []
4
+
5
+ try:
6
+ from cuvis_ai_schemas.grpc.v1 import cuvis_ai_pb2, cuvis_ai_pb2_grpc
7
+
8
+ __all__ = ["cuvis_ai_pb2", "cuvis_ai_pb2_grpc"]
9
+ except ImportError:
10
+ # Proto files not generated yet or proto extra not installed
11
+ pass
@@ -0,0 +1,240 @@
1
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
2
+ # NO CHECKED-IN PROTOBUF GENCODE
3
+ # source: cuvis_ai/grpc/v1/cuvis_ai.proto
4
+ # Protobuf Python Version: 6.31.1
5
+ """Generated protocol buffer code."""
6
+
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+
13
+ _runtime_version.ValidateProtobufRuntimeVersion(
14
+ _runtime_version.Domain.PUBLIC, 6, 31, 1, "", "cuvis_ai/grpc/v1/cuvis_ai.proto"
15
+ )
16
+ # @@protoc_insertion_point(imports)
17
+
18
+ _sym_db = _symbol_database.Default()
19
+
20
+
21
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(
22
+ b'\n\x1f\x63uvis_ai/grpc/v1/cuvis_ai.proto\x12\x0b\x63uvis_ai.v1"L\n\x06Tensor\x12\r\n\x05shape\x18\x01 \x03(\x03\x12!\n\x05\x64type\x18\x02 \x01(\x0e\x32\x12.cuvis_ai.v1.DType\x12\x10\n\x08raw_data\x18\x03 \x01(\x0c"l\n\x07\x43ontext\x12*\n\x05stage\x18\x01 \x01(\x0e\x32\x1b.cuvis_ai.v1.ExecutionStage\x12\r\n\x05\x65poch\x18\x02 \x01(\x05\x12\x11\n\tbatch_idx\x18\x03 \x01(\x05\x12\x13\n\x0bglobal_step\x18\x04 \x01(\x05"&\n\x0ePipelineConfig\x12\x14\n\x0c\x63onfig_bytes\x18\x01 \x01(\x0c""\n\nDataConfig\x12\x14\n\x0c\x63onfig_bytes\x18\x01 \x01(\x0c"\'\n\x0fOptimizerConfig\x12\x14\n\x0c\x63onfig_bytes\x18\x01 \x01(\x0c"\'\n\x0fSchedulerConfig\x12\x14\n\x0c\x63onfig_bytes\x18\x01 \x01(\x0c"\'\n\x0f\x43\x61llbacksConfig\x12\x14\n\x0c\x63onfig_bytes\x18\x01 \x01(\x0c"~\n\x10PipelineMetadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\x0f\n\x07\x63reated\x18\x03 \x01(\t\x12\x18\n\x10\x63uvis_ai_version\x18\x04 \x01(\t\x12\x0c\n\x04tags\x18\x05 \x03(\t\x12\x0e\n\x06\x61uthor\x18\x06 \x01(\t"\xaa\x01\n\x0cPipelineInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12/\n\x08metadata\x18\x03 \x01(\x0b\x32\x1d.cuvis_ai.v1.PipelineMetadata\x12\x0c\n\x04tags\x18\x04 \x03(\t\x12\x13\n\x0bhas_weights\x18\x05 \x01(\x08\x12\x14\n\x0cweights_path\x18\x06 \x01(\t\x12\x14\n\x0cyaml_content\x18\x07 \x01(\t"&\n\x0eTrainingConfig\x12\x14\n\x0c\x63onfig_bytes\x18\x01 \x01(\x0c"&\n\x0eTrainRunConfig\x12\x14\n\x0c\x63onfig_bytes\x18\x01 \x01(\x0c"]\n\x0b\x42oundingBox\x12\x12\n\nelement_id\x18\x01 \x01(\x05\x12\r\n\x05x_min\x18\x02 \x01(\x02\x12\r\n\x05y_min\x18\x03 \x01(\x02\x12\r\n\x05x_max\x18\x04 \x01(\x02\x12\r\n\x05y_max\x18\x05 \x01(\x02"8\n\rBoundingBoxes\x12\'\n\x05\x62oxes\x18\x01 \x03(\x0b\x32\x18.cuvis_ai.v1.BoundingBox"W\n\x05Point\x12\x12\n\nelement_id\x18\x01 \x01(\x05\x12\t\n\x01x\x18\x02 \x01(\x02\x12\t\n\x01y\x18\x03 \x01(\x02\x12$\n\x04type\x18\x04 \x01(\x0e\x32\x16.cuvis_ai.v1.PointType",\n\x06Points\x12"\n\x06points\x18\x01 \x03(\x0b\x32\x12.cuvis_ai.v1.Point"\xeb\x02\n\nInputBatch\x12(\n\x0bwavelengths\x18\x01 \x01(\x0b\x32\x13.cuvis_ai.v1.Tensor\x12!\n\x04\x63ube\x18\x02 \x01(\x0b\x32\x13.cuvis_ai.v1.Tensor\x12!\n\x04mask\x18\x03 \x01(\x0b\x32\x13.cuvis_ai.v1.Tensor\x12*\n\x06\x62\x62oxes\x18\x04 \x01(\x0b\x32\x1a.cuvis_ai.v1.BoundingBoxes\x12#\n\x06points\x18\x05 \x01(\x0b\x32\x13.cuvis_ai.v1.Points\x12\x13\n\x0btext_prompt\x18\x06 \x01(\t\x12>\n\x0c\x65xtra_inputs\x18\x07 \x03(\x0b\x32(.cuvis_ai.v1.InputBatch.ExtraInputsEntry\x1aG\n\x10\x45xtraInputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12"\n\x05value\x18\x02 \x01(\x0b\x32\x13.cuvis_ai.v1.Tensor:\x02\x38\x01"^\n\nTensorSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05shape\x18\x02 \x03(\x03\x12!\n\x05\x64type\x18\x03 \x01(\x0e\x32\x12.cuvis_ai.v1.DType\x12\x10\n\x08required\x18\x04 \x01(\x08"\xc2\x02\n\rTrainResponse\x12%\n\x07\x63ontext\x18\x01 \x01(\x0b\x32\x14.cuvis_ai.v1.Context\x12\x36\n\x06losses\x18\x02 \x03(\x0b\x32&.cuvis_ai.v1.TrainResponse.LossesEntry\x12\x38\n\x07metrics\x18\x03 \x03(\x0b\x32\'.cuvis_ai.v1.TrainResponse.MetricsEntry\x12(\n\x06status\x18\x04 \x01(\x0e\x32\x18.cuvis_ai.v1.TrainStatus\x12\x0f\n\x07message\x18\x05 \x01(\t\x1a-\n\x0bLossesEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01\x1a.\n\x0cMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01"y\n\tParamSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x10\n\x08required\x18\x03 \x01(\x08\x12\x15\n\rdefault_value\x18\x04 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t\x12\x12\n\nvalidation\x18\x06 \x01(\t"a\n\x10\x43\x61llbackTypeInfo\x12\x0c\n\x04type\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12*\n\nparameters\x18\x03 \x03(\x0b\x32\x16.cuvis_ai.v1.ParamSpec"C\n\x15OptimizerParamsSchema\x12*\n\nparameters\x18\x01 \x03(\x0b\x32\x16.cuvis_ai.v1.ParamSpec"C\n\x15SchedulerParamsSchema\x12*\n\nparameters\x18\x01 \x03(\x0b\x32\x16.cuvis_ai.v1.ParamSpec"H\n\x1eListAvailablePipelineesRequest\x12\x17\n\nfilter_tag\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\r\n\x0b_filter_tag"P\n\x1fListAvailablePipelineesResponse\x12-\n\npipelinees\x18\x01 \x03(\x0b\x32\x19.cuvis_ai.v1.PipelineInfo"/\n\x16GetPipelineInfoRequest\x12\x15\n\rpipeline_name\x18\x01 \x01(\t"K\n\x17GetPipelineInfoResponse\x12\x30\n\rpipeline_info\x18\x01 \x01(\x0b\x32\x19.cuvis_ai.v1.PipelineInfo"\x16\n\x14\x43reateSessionRequest"+\n\x15\x43reateSessionResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t"h\n\x1cSetSessionSearchPathsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x14\n\x0csearch_paths\x18\x02 \x03(\t\x12\x13\n\x06\x61ppend\x18\x03 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_append"_\n\x1dSetSessionSearchPathsResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x15\n\rcurrent_paths\x18\x02 \x03(\t\x12\x16\n\x0erejected_paths\x18\x03 \x03(\t")\n\x13\x43loseSessionRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t"\'\n\x14\x43loseSessionResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08"`\n\x14ResolveConfigRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x13\n\x0b\x63onfig_type\x18\x02 \x01(\t\x12\x0c\n\x04path\x18\x03 \x01(\t\x12\x11\n\toverrides\x18\x04 \x03(\t"-\n\x15ResolveConfigResponse\x12\x14\n\x0c\x63onfig_bytes\x18\x01 \x01(\x0c"0\n\x19GetParameterSchemaRequest\x12\x13\n\x0b\x63onfig_type\x18\x01 \x01(\t"1\n\x1aGetParameterSchemaResponse\x12\x13\n\x0bjson_schema\x18\x01 \x01(\t"B\n\x15ValidateConfigRequest\x12\x13\n\x0b\x63onfig_type\x18\x01 \x01(\t\x12\x14\n\x0c\x63onfig_bytes\x18\x02 \x01(\x0c"I\n\x16ValidateConfigResponse\x12\r\n\x05valid\x18\x01 \x01(\x08\x12\x0e\n\x06\x65rrors\x18\x02 \x03(\t\x12\x10\n\x08warnings\x18\x03 \x03(\t"\x93\x01\n\x1aLoadPipelineWeightsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x16\n\x0cweights_path\x18\x02 \x01(\tH\x00\x12\x17\n\rweights_bytes\x18\x03 \x01(\x0cH\x00\x12\x13\n\x06strict\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\x10\n\x0eweights_sourceB\t\n\x07_strict"E\n\x1bLoadPipelineWeightsResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x15\n\rresolved_path\x18\x02 \x01(\t"[\n\x18SetTrainRunConfigRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12+\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x1b.cuvis_ai.v1.TrainRunConfig"J\n\x19SetTrainRunConfigResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x1c\n\x14pipeline_from_config\x18\x02 \x01(\x08"\xa8\x01\n\x0cTrainRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12.\n\x0ctrainer_type\x18\x02 \x01(\x0e\x32\x18.cuvis_ai.v1.TrainerType\x12%\n\x04\x64\x61ta\x18\x03 \x01(\x0b\x32\x17.cuvis_ai.v1.DataConfig\x12-\n\x08training\x18\x04 \x01(\x0b\x32\x1b.cuvis_ai.v1.TrainingConfig"+\n\x15GetTrainStatusRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t"M\n\x16GetTrainStatusResponse\x12\x33\n\x0flatest_progress\x18\x01 \x01(\x0b\x32\x1a.cuvis_ai.v1.TrainResponse" \n\x1eGetTrainingCapabilitiesRequest"\x95\x02\n\x1fGetTrainingCapabilitiesResponse\x12\x1c\n\x14supported_optimizers\x18\x01 \x03(\t\x12\x1c\n\x14supported_schedulers\x18\x02 \x03(\t\x12:\n\x13supported_callbacks\x18\x03 \x03(\x0b\x32\x1d.cuvis_ai.v1.CallbackTypeInfo\x12<\n\x10optimizer_params\x18\x04 \x01(\x0b\x32".cuvis_ai.v1.OptimizerParamsSchema\x12<\n\x10scheduler_params\x18\x05 \x01(\x0b\x32".cuvis_ai.v1.SchedulerParamsSchema"q\n\x13SavePipelineRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x15\n\rpipeline_path\x18\x02 \x01(\t\x12/\n\x08metadata\x18\x03 \x01(\x0b\x32\x1d.cuvis_ai.v1.PipelineMetadata"T\n\x14SavePipelineResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x15\n\rpipeline_path\x18\x02 \x01(\t\x12\x14\n\x0cweights_path\x18\x03 \x01(\t"X\n\x13LoadPipelineRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12-\n\x08pipeline\x18\x02 \x01(\x0b\x32\x1b.cuvis_ai.v1.PipelineConfig"X\n\x14LoadPipelineResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12/\n\x08metadata\x18\x02 \x01(\x0b\x32\x1d.cuvis_ai.v1.PipelineMetadata"V\n\x13SaveTrainRunRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x15\n\rtrainrun_path\x18\x02 \x01(\t\x12\x14\n\x0csave_weights\x18\x03 \x01(\x08"k\n\x14SaveTrainRunResponse\x12\x0f\n\x07success\x18\x01 \x01(\x08\x12\x15\n\rtrainrun_path\x18\x02 \x01(\t\x12\x15\n\rpipeline_path\x18\x03 \x01(\t\x12\x14\n\x0cweights_path\x18\x04 \x01(\t"{\n\x16RestoreTrainRunRequest\x12\x15\n\rtrainrun_path\x18\x01 \x01(\t\x12\x19\n\x0cweights_path\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06strict\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x0f\n\r_weights_pathB\t\n\x07_strict"\\\n\x17RestoreTrainRunResponse\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12-\n\x08trainrun\x18\x02 \x01(\x0b\x32\x1b.cuvis_ai.v1.TrainRunConfig".\n\x18GetPipelineInputsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t"\xc9\x01\n\x19GetPipelineInputsResponse\x12\x13\n\x0binput_names\x18\x01 \x03(\t\x12K\n\x0binput_specs\x18\x02 \x03(\x0b\x32\x36.cuvis_ai.v1.GetPipelineInputsResponse.InputSpecsEntry\x1aJ\n\x0fInputSpecsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.cuvis_ai.v1.TensorSpec:\x02\x38\x01"/\n\x19GetPipelineOutputsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t"\xcf\x01\n\x1aGetPipelineOutputsResponse\x12\x14\n\x0coutput_names\x18\x01 \x03(\t\x12N\n\x0coutput_specs\x18\x02 \x03(\x0b\x32\x38.cuvis_ai.v1.GetPipelineOutputsResponse.OutputSpecsEntry\x1aK\n\x10OutputSpecsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.cuvis_ai.v1.TensorSpec:\x02\x38\x01"E\n\x1fGetPipelineVisualizationRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x0e\n\x06\x66ormat\x18\x02 \x01(\t"F\n GetPipelineVisualizationResponse\x12\x12\n\nimage_data\x18\x01 \x01(\x0c\x12\x0e\n\x06\x66ormat\x18\x02 \x01(\t"e\n\x10InferenceRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\'\n\x06inputs\x18\x02 \x01(\x0b\x32\x17.cuvis_ai.v1.InputBatch\x12\x14\n\x0coutput_specs\x18\x03 \x03(\t"\x84\x02\n\x11InferenceResponse\x12<\n\x07outputs\x18\x01 \x03(\x0b\x32+.cuvis_ai.v1.InferenceResponse.OutputsEntry\x12<\n\x07metrics\x18\x02 \x03(\x0b\x32+.cuvis_ai.v1.InferenceResponse.MetricsEntry\x1a\x43\n\x0cOutputsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12"\n\x05value\x18\x02 \x01(\x0b\x32\x13.cuvis_ai.v1.Tensor:\x02\x38\x01\x1a.\n\x0cMetricsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x02:\x02\x38\x01"&\n\x0ePluginManifest\x12\x14\n\x0c\x63onfig_bytes\x18\x01 \x01(\x0c"W\n\nPluginInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x0e\n\x06source\x18\x03 \x01(\t\x12\x0b\n\x03tag\x18\x04 \x01(\t\x12\x10\n\x08provides\x18\x05 \x03(\t"q\n\x08PortSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12!\n\x05\x64type\x18\x02 \x01(\x0e\x32\x12.cuvis_ai.v1.DType\x12\r\n\x05shape\x18\x03 \x03(\x03\x12\x10\n\x08optional\x18\x04 \x01(\x08\x12\x13\n\x0b\x64\x65scription\x18\x05 \x01(\t"4\n\x0cPortSpecList\x12$\n\x05specs\x18\x01 \x03(\x0b\x32\x15.cuvis_ai.v1.PortSpec"\xed\x02\n\x08NodeInfo\x12\x12\n\nclass_name\x18\x01 \x01(\t\x12\x11\n\tfull_path\x18\x02 \x01(\t\x12\x0e\n\x06source\x18\x03 \x01(\t\x12\x13\n\x0bplugin_name\x18\x04 \x01(\t\x12:\n\x0binput_specs\x18\x05 \x03(\x0b\x32%.cuvis_ai.v1.NodeInfo.InputSpecsEntry\x12<\n\x0coutput_specs\x18\x06 \x03(\x0b\x32&.cuvis_ai.v1.NodeInfo.OutputSpecsEntry\x1aL\n\x0fInputSpecsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.cuvis_ai.v1.PortSpecList:\x02\x38\x01\x1aM\n\x10OutputSpecsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12(\n\x05value\x18\x02 \x01(\x0b\x32\x19.cuvis_ai.v1.PortSpecList:\x02\x38\x01"W\n\x12LoadPluginsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12-\n\x08manifest\x18\x02 \x01(\x0b\x32\x1b.cuvis_ai.v1.PluginManifest"\xb0\x01\n\x13LoadPluginsResponse\x12\x16\n\x0eloaded_plugins\x18\x01 \x03(\t\x12K\n\x0e\x66\x61iled_plugins\x18\x02 \x03(\x0b\x32\x33.cuvis_ai.v1.LoadPluginsResponse.FailedPluginsEntry\x1a\x34\n\x12\x46\x61iledPluginsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01".\n\x18ListLoadedPluginsRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t"E\n\x19ListLoadedPluginsResponse\x12(\n\x07plugins\x18\x01 \x03(\x0b\x32\x17.cuvis_ai.v1.PluginInfo"?\n\x14GetPluginInfoRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t\x12\x13\n\x0bplugin_name\x18\x02 \x01(\t"@\n\x15GetPluginInfoResponse\x12\'\n\x06plugin\x18\x01 \x01(\x0b\x32\x17.cuvis_ai.v1.PluginInfo"/\n\x19ListAvailableNodesRequest\x12\x12\n\nsession_id\x18\x01 \x01(\t"B\n\x1aListAvailableNodesResponse\x12$\n\x05nodes\x18\x01 \x03(\x0b\x32\x15.cuvis_ai.v1.NodeInfo".\n\x17\x43learPluginCacheRequest\x12\x13\n\x0bplugin_name\x18\x01 \x01(\t"1\n\x18\x43learPluginCacheResponse\x12\x15\n\rcleared_count\x18\x01 \x01(\x05*\xb4\x01\n\x0eProcessingMode\x12\x1f\n\x1bPROCESSING_MODE_UNSPECIFIED\x10\x00\x12\x17\n\x13PROCESSING_MODE_RAW\x10\x01\x12\x1f\n\x1bPROCESSING_MODE_REFLECTANCE\x10\x02\x12 \n\x1cPROCESSING_MODE_DARKSUBTRACT\x10\x03\x12%\n!PROCESSING_MODE_SPECTRAL_RADIANCE\x10\x04*\x9e\x01\n\x0e\x45xecutionStage\x12\x1f\n\x1b\x45XECUTION_STAGE_UNSPECIFIED\x10\x00\x12\x19\n\x15\x45XECUTION_STAGE_TRAIN\x10\x01\x12\x17\n\x13\x45XECUTION_STAGE_VAL\x10\x02\x12\x18\n\x14\x45XECUTION_STAGE_TEST\x10\x03\x12\x1d\n\x19\x45XECUTION_STAGE_INFERENCE\x10\x04*\xb5\x01\n\x05\x44Type\x12\x16\n\x12\x44_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0e\x44_TYPE_FLOAT32\x10\x01\x12\x12\n\x0e\x44_TYPE_FLOAT64\x10\x02\x12\x10\n\x0c\x44_TYPE_INT32\x10\x03\x12\x10\n\x0c\x44_TYPE_INT64\x10\x04\x12\x10\n\x0c\x44_TYPE_UINT8\x10\x05\x12\x0f\n\x0b\x44_TYPE_BOOL\x10\x06\x12\x12\n\x0e\x44_TYPE_FLOAT16\x10\x07\x12\x11\n\rD_TYPE_UINT16\x10\x08*d\n\x0bTrainerType\x12\x1c\n\x18TRAINER_TYPE_UNSPECIFIED\x10\x00\x12\x1c\n\x18TRAINER_TYPE_STATISTICAL\x10\x01\x12\x19\n\x15TRAINER_TYPE_GRADIENT\x10\x02*x\n\x0bTrainStatus\x12\x1c\n\x18TRAIN_STATUS_UNSPECIFIED\x10\x00\x12\x18\n\x14TRAIN_STATUS_RUNNING\x10\x01\x12\x19\n\x15TRAIN_STATUS_COMPLETE\x10\x02\x12\x16\n\x12TRAIN_STATUS_ERROR\x10\x03*q\n\tPointType\x12\x1a\n\x16POINT_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13POINT_TYPE_POSITIVE\x10\x01\x12\x17\n\x13POINT_TYPE_NEGATIVE\x10\x02\x12\x16\n\x12POINT_TYPE_NEUTRAL\x10\x03\x32\xbf\x13\n\x0e\x43uvisAIService\x12t\n\x17ListAvailablePipelinees\x12+.cuvis_ai.v1.ListAvailablePipelineesRequest\x1a,.cuvis_ai.v1.ListAvailablePipelineesResponse\x12\\\n\x0fGetPipelineInfo\x12#.cuvis_ai.v1.GetPipelineInfoRequest\x1a$.cuvis_ai.v1.GetPipelineInfoResponse\x12V\n\rCreateSession\x12!.cuvis_ai.v1.CreateSessionRequest\x1a".cuvis_ai.v1.CreateSessionResponse\x12n\n\x15SetSessionSearchPaths\x12).cuvis_ai.v1.SetSessionSearchPathsRequest\x1a*.cuvis_ai.v1.SetSessionSearchPathsResponse\x12S\n\x0c\x43loseSession\x12 .cuvis_ai.v1.CloseSessionRequest\x1a!.cuvis_ai.v1.CloseSessionResponse\x12V\n\rResolveConfig\x12!.cuvis_ai.v1.ResolveConfigRequest\x1a".cuvis_ai.v1.ResolveConfigResponse\x12\x65\n\x12GetParameterSchema\x12&.cuvis_ai.v1.GetParameterSchemaRequest\x1a\'.cuvis_ai.v1.GetParameterSchemaResponse\x12Y\n\x0eValidateConfig\x12".cuvis_ai.v1.ValidateConfigRequest\x1a#.cuvis_ai.v1.ValidateConfigResponse\x12h\n\x13LoadPipelineWeights\x12\'.cuvis_ai.v1.LoadPipelineWeightsRequest\x1a(.cuvis_ai.v1.LoadPipelineWeightsResponse\x12\x62\n\x11SetTrainRunConfig\x12%.cuvis_ai.v1.SetTrainRunConfigRequest\x1a&.cuvis_ai.v1.SetTrainRunConfigResponse\x12@\n\x05Train\x12\x19.cuvis_ai.v1.TrainRequest\x1a\x1a.cuvis_ai.v1.TrainResponse0\x01\x12Y\n\x0eGetTrainStatus\x12".cuvis_ai.v1.GetTrainStatusRequest\x1a#.cuvis_ai.v1.GetTrainStatusResponse\x12t\n\x17GetTrainingCapabilities\x12+.cuvis_ai.v1.GetTrainingCapabilitiesRequest\x1a,.cuvis_ai.v1.GetTrainingCapabilitiesResponse\x12S\n\x0cSavePipeline\x12 .cuvis_ai.v1.SavePipelineRequest\x1a!.cuvis_ai.v1.SavePipelineResponse\x12S\n\x0cLoadPipeline\x12 .cuvis_ai.v1.LoadPipelineRequest\x1a!.cuvis_ai.v1.LoadPipelineResponse\x12S\n\x0cSaveTrainRun\x12 .cuvis_ai.v1.SaveTrainRunRequest\x1a!.cuvis_ai.v1.SaveTrainRunResponse\x12\\\n\x0fRestoreTrainRun\x12#.cuvis_ai.v1.RestoreTrainRunRequest\x1a$.cuvis_ai.v1.RestoreTrainRunResponse\x12\x62\n\x11GetPipelineInputs\x12%.cuvis_ai.v1.GetPipelineInputsRequest\x1a&.cuvis_ai.v1.GetPipelineInputsResponse\x12\x65\n\x12GetPipelineOutputs\x12&.cuvis_ai.v1.GetPipelineOutputsRequest\x1a\'.cuvis_ai.v1.GetPipelineOutputsResponse\x12w\n\x18GetPipelineVisualization\x12,.cuvis_ai.v1.GetPipelineVisualizationRequest\x1a-.cuvis_ai.v1.GetPipelineVisualizationResponse\x12J\n\tInference\x12\x1d.cuvis_ai.v1.InferenceRequest\x1a\x1e.cuvis_ai.v1.InferenceResponse\x12P\n\x0bLoadPlugins\x12\x1f.cuvis_ai.v1.LoadPluginsRequest\x1a .cuvis_ai.v1.LoadPluginsResponse\x12\x62\n\x11ListLoadedPlugins\x12%.cuvis_ai.v1.ListLoadedPluginsRequest\x1a&.cuvis_ai.v1.ListLoadedPluginsResponse\x12V\n\rGetPluginInfo\x12!.cuvis_ai.v1.GetPluginInfoRequest\x1a".cuvis_ai.v1.GetPluginInfoResponse\x12\x65\n\x12ListAvailableNodes\x12&.cuvis_ai.v1.ListAvailableNodesRequest\x1a\'.cuvis_ai.v1.ListAvailableNodesResponse\x12_\n\x10\x43learPluginCache\x12$.cuvis_ai.v1.ClearPluginCacheRequest\x1a%.cuvis_ai.v1.ClearPluginCacheResponseb\x06proto3'
23
+ )
24
+
25
+ _globals = globals()
26
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
27
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, "cuvis_ai.grpc.v1.cuvis_ai_pb2", _globals)
28
+ if not _descriptor._USE_C_DESCRIPTORS:
29
+ DESCRIPTOR._loaded_options = None
30
+ _globals["_INPUTBATCH_EXTRAINPUTSENTRY"]._loaded_options = None
31
+ _globals["_INPUTBATCH_EXTRAINPUTSENTRY"]._serialized_options = b"8\001"
32
+ _globals["_TRAINRESPONSE_LOSSESENTRY"]._loaded_options = None
33
+ _globals["_TRAINRESPONSE_LOSSESENTRY"]._serialized_options = b"8\001"
34
+ _globals["_TRAINRESPONSE_METRICSENTRY"]._loaded_options = None
35
+ _globals["_TRAINRESPONSE_METRICSENTRY"]._serialized_options = b"8\001"
36
+ _globals["_GETPIPELINEINPUTSRESPONSE_INPUTSPECSENTRY"]._loaded_options = None
37
+ _globals["_GETPIPELINEINPUTSRESPONSE_INPUTSPECSENTRY"]._serialized_options = b"8\001"
38
+ _globals["_GETPIPELINEOUTPUTSRESPONSE_OUTPUTSPECSENTRY"]._loaded_options = None
39
+ _globals["_GETPIPELINEOUTPUTSRESPONSE_OUTPUTSPECSENTRY"]._serialized_options = b"8\001"
40
+ _globals["_INFERENCERESPONSE_OUTPUTSENTRY"]._loaded_options = None
41
+ _globals["_INFERENCERESPONSE_OUTPUTSENTRY"]._serialized_options = b"8\001"
42
+ _globals["_INFERENCERESPONSE_METRICSENTRY"]._loaded_options = None
43
+ _globals["_INFERENCERESPONSE_METRICSENTRY"]._serialized_options = b"8\001"
44
+ _globals["_NODEINFO_INPUTSPECSENTRY"]._loaded_options = None
45
+ _globals["_NODEINFO_INPUTSPECSENTRY"]._serialized_options = b"8\001"
46
+ _globals["_NODEINFO_OUTPUTSPECSENTRY"]._loaded_options = None
47
+ _globals["_NODEINFO_OUTPUTSPECSENTRY"]._serialized_options = b"8\001"
48
+ _globals["_LOADPLUGINSRESPONSE_FAILEDPLUGINSENTRY"]._loaded_options = None
49
+ _globals["_LOADPLUGINSRESPONSE_FAILEDPLUGINSENTRY"]._serialized_options = b"8\001"
50
+ _globals["_PROCESSINGMODE"]._serialized_start = 7495
51
+ _globals["_PROCESSINGMODE"]._serialized_end = 7675
52
+ _globals["_EXECUTIONSTAGE"]._serialized_start = 7678
53
+ _globals["_EXECUTIONSTAGE"]._serialized_end = 7836
54
+ _globals["_DTYPE"]._serialized_start = 7839
55
+ _globals["_DTYPE"]._serialized_end = 8020
56
+ _globals["_TRAINERTYPE"]._serialized_start = 8022
57
+ _globals["_TRAINERTYPE"]._serialized_end = 8122
58
+ _globals["_TRAINSTATUS"]._serialized_start = 8124
59
+ _globals["_TRAINSTATUS"]._serialized_end = 8244
60
+ _globals["_POINTTYPE"]._serialized_start = 8246
61
+ _globals["_POINTTYPE"]._serialized_end = 8359
62
+ _globals["_TENSOR"]._serialized_start = 48
63
+ _globals["_TENSOR"]._serialized_end = 124
64
+ _globals["_CONTEXT"]._serialized_start = 126
65
+ _globals["_CONTEXT"]._serialized_end = 234
66
+ _globals["_PIPELINECONFIG"]._serialized_start = 236
67
+ _globals["_PIPELINECONFIG"]._serialized_end = 274
68
+ _globals["_DATACONFIG"]._serialized_start = 276
69
+ _globals["_DATACONFIG"]._serialized_end = 310
70
+ _globals["_OPTIMIZERCONFIG"]._serialized_start = 312
71
+ _globals["_OPTIMIZERCONFIG"]._serialized_end = 351
72
+ _globals["_SCHEDULERCONFIG"]._serialized_start = 353
73
+ _globals["_SCHEDULERCONFIG"]._serialized_end = 392
74
+ _globals["_CALLBACKSCONFIG"]._serialized_start = 394
75
+ _globals["_CALLBACKSCONFIG"]._serialized_end = 433
76
+ _globals["_PIPELINEMETADATA"]._serialized_start = 435
77
+ _globals["_PIPELINEMETADATA"]._serialized_end = 561
78
+ _globals["_PIPELINEINFO"]._serialized_start = 564
79
+ _globals["_PIPELINEINFO"]._serialized_end = 734
80
+ _globals["_TRAININGCONFIG"]._serialized_start = 736
81
+ _globals["_TRAININGCONFIG"]._serialized_end = 774
82
+ _globals["_TRAINRUNCONFIG"]._serialized_start = 776
83
+ _globals["_TRAINRUNCONFIG"]._serialized_end = 814
84
+ _globals["_BOUNDINGBOX"]._serialized_start = 816
85
+ _globals["_BOUNDINGBOX"]._serialized_end = 909
86
+ _globals["_BOUNDINGBOXES"]._serialized_start = 911
87
+ _globals["_BOUNDINGBOXES"]._serialized_end = 967
88
+ _globals["_POINT"]._serialized_start = 969
89
+ _globals["_POINT"]._serialized_end = 1056
90
+ _globals["_POINTS"]._serialized_start = 1058
91
+ _globals["_POINTS"]._serialized_end = 1102
92
+ _globals["_INPUTBATCH"]._serialized_start = 1105
93
+ _globals["_INPUTBATCH"]._serialized_end = 1468
94
+ _globals["_INPUTBATCH_EXTRAINPUTSENTRY"]._serialized_start = 1397
95
+ _globals["_INPUTBATCH_EXTRAINPUTSENTRY"]._serialized_end = 1468
96
+ _globals["_TENSORSPEC"]._serialized_start = 1470
97
+ _globals["_TENSORSPEC"]._serialized_end = 1564
98
+ _globals["_TRAINRESPONSE"]._serialized_start = 1567
99
+ _globals["_TRAINRESPONSE"]._serialized_end = 1889
100
+ _globals["_TRAINRESPONSE_LOSSESENTRY"]._serialized_start = 1796
101
+ _globals["_TRAINRESPONSE_LOSSESENTRY"]._serialized_end = 1841
102
+ _globals["_TRAINRESPONSE_METRICSENTRY"]._serialized_start = 1843
103
+ _globals["_TRAINRESPONSE_METRICSENTRY"]._serialized_end = 1889
104
+ _globals["_PARAMSPEC"]._serialized_start = 1891
105
+ _globals["_PARAMSPEC"]._serialized_end = 2012
106
+ _globals["_CALLBACKTYPEINFO"]._serialized_start = 2014
107
+ _globals["_CALLBACKTYPEINFO"]._serialized_end = 2111
108
+ _globals["_OPTIMIZERPARAMSSCHEMA"]._serialized_start = 2113
109
+ _globals["_OPTIMIZERPARAMSSCHEMA"]._serialized_end = 2180
110
+ _globals["_SCHEDULERPARAMSSCHEMA"]._serialized_start = 2182
111
+ _globals["_SCHEDULERPARAMSSCHEMA"]._serialized_end = 2249
112
+ _globals["_LISTAVAILABLEPIPELINEESREQUEST"]._serialized_start = 2251
113
+ _globals["_LISTAVAILABLEPIPELINEESREQUEST"]._serialized_end = 2323
114
+ _globals["_LISTAVAILABLEPIPELINEESRESPONSE"]._serialized_start = 2325
115
+ _globals["_LISTAVAILABLEPIPELINEESRESPONSE"]._serialized_end = 2405
116
+ _globals["_GETPIPELINEINFOREQUEST"]._serialized_start = 2407
117
+ _globals["_GETPIPELINEINFOREQUEST"]._serialized_end = 2454
118
+ _globals["_GETPIPELINEINFORESPONSE"]._serialized_start = 2456
119
+ _globals["_GETPIPELINEINFORESPONSE"]._serialized_end = 2531
120
+ _globals["_CREATESESSIONREQUEST"]._serialized_start = 2533
121
+ _globals["_CREATESESSIONREQUEST"]._serialized_end = 2555
122
+ _globals["_CREATESESSIONRESPONSE"]._serialized_start = 2557
123
+ _globals["_CREATESESSIONRESPONSE"]._serialized_end = 2600
124
+ _globals["_SETSESSIONSEARCHPATHSREQUEST"]._serialized_start = 2602
125
+ _globals["_SETSESSIONSEARCHPATHSREQUEST"]._serialized_end = 2706
126
+ _globals["_SETSESSIONSEARCHPATHSRESPONSE"]._serialized_start = 2708
127
+ _globals["_SETSESSIONSEARCHPATHSRESPONSE"]._serialized_end = 2803
128
+ _globals["_CLOSESESSIONREQUEST"]._serialized_start = 2805
129
+ _globals["_CLOSESESSIONREQUEST"]._serialized_end = 2846
130
+ _globals["_CLOSESESSIONRESPONSE"]._serialized_start = 2848
131
+ _globals["_CLOSESESSIONRESPONSE"]._serialized_end = 2887
132
+ _globals["_RESOLVECONFIGREQUEST"]._serialized_start = 2889
133
+ _globals["_RESOLVECONFIGREQUEST"]._serialized_end = 2985
134
+ _globals["_RESOLVECONFIGRESPONSE"]._serialized_start = 2987
135
+ _globals["_RESOLVECONFIGRESPONSE"]._serialized_end = 3032
136
+ _globals["_GETPARAMETERSCHEMAREQUEST"]._serialized_start = 3034
137
+ _globals["_GETPARAMETERSCHEMAREQUEST"]._serialized_end = 3082
138
+ _globals["_GETPARAMETERSCHEMARESPONSE"]._serialized_start = 3084
139
+ _globals["_GETPARAMETERSCHEMARESPONSE"]._serialized_end = 3133
140
+ _globals["_VALIDATECONFIGREQUEST"]._serialized_start = 3135
141
+ _globals["_VALIDATECONFIGREQUEST"]._serialized_end = 3201
142
+ _globals["_VALIDATECONFIGRESPONSE"]._serialized_start = 3203
143
+ _globals["_VALIDATECONFIGRESPONSE"]._serialized_end = 3276
144
+ _globals["_LOADPIPELINEWEIGHTSREQUEST"]._serialized_start = 3279
145
+ _globals["_LOADPIPELINEWEIGHTSREQUEST"]._serialized_end = 3426
146
+ _globals["_LOADPIPELINEWEIGHTSRESPONSE"]._serialized_start = 3428
147
+ _globals["_LOADPIPELINEWEIGHTSRESPONSE"]._serialized_end = 3497
148
+ _globals["_SETTRAINRUNCONFIGREQUEST"]._serialized_start = 3499
149
+ _globals["_SETTRAINRUNCONFIGREQUEST"]._serialized_end = 3590
150
+ _globals["_SETTRAINRUNCONFIGRESPONSE"]._serialized_start = 3592
151
+ _globals["_SETTRAINRUNCONFIGRESPONSE"]._serialized_end = 3666
152
+ _globals["_TRAINREQUEST"]._serialized_start = 3669
153
+ _globals["_TRAINREQUEST"]._serialized_end = 3837
154
+ _globals["_GETTRAINSTATUSREQUEST"]._serialized_start = 3839
155
+ _globals["_GETTRAINSTATUSREQUEST"]._serialized_end = 3882
156
+ _globals["_GETTRAINSTATUSRESPONSE"]._serialized_start = 3884
157
+ _globals["_GETTRAINSTATUSRESPONSE"]._serialized_end = 3961
158
+ _globals["_GETTRAININGCAPABILITIESREQUEST"]._serialized_start = 3963
159
+ _globals["_GETTRAININGCAPABILITIESREQUEST"]._serialized_end = 3995
160
+ _globals["_GETTRAININGCAPABILITIESRESPONSE"]._serialized_start = 3998
161
+ _globals["_GETTRAININGCAPABILITIESRESPONSE"]._serialized_end = 4275
162
+ _globals["_SAVEPIPELINEREQUEST"]._serialized_start = 4277
163
+ _globals["_SAVEPIPELINEREQUEST"]._serialized_end = 4390
164
+ _globals["_SAVEPIPELINERESPONSE"]._serialized_start = 4392
165
+ _globals["_SAVEPIPELINERESPONSE"]._serialized_end = 4476
166
+ _globals["_LOADPIPELINEREQUEST"]._serialized_start = 4478
167
+ _globals["_LOADPIPELINEREQUEST"]._serialized_end = 4566
168
+ _globals["_LOADPIPELINERESPONSE"]._serialized_start = 4568
169
+ _globals["_LOADPIPELINERESPONSE"]._serialized_end = 4656
170
+ _globals["_SAVETRAINRUNREQUEST"]._serialized_start = 4658
171
+ _globals["_SAVETRAINRUNREQUEST"]._serialized_end = 4744
172
+ _globals["_SAVETRAINRUNRESPONSE"]._serialized_start = 4746
173
+ _globals["_SAVETRAINRUNRESPONSE"]._serialized_end = 4853
174
+ _globals["_RESTORETRAINRUNREQUEST"]._serialized_start = 4855
175
+ _globals["_RESTORETRAINRUNREQUEST"]._serialized_end = 4978
176
+ _globals["_RESTORETRAINRUNRESPONSE"]._serialized_start = 4980
177
+ _globals["_RESTORETRAINRUNRESPONSE"]._serialized_end = 5072
178
+ _globals["_GETPIPELINEINPUTSREQUEST"]._serialized_start = 5074
179
+ _globals["_GETPIPELINEINPUTSREQUEST"]._serialized_end = 5120
180
+ _globals["_GETPIPELINEINPUTSRESPONSE"]._serialized_start = 5123
181
+ _globals["_GETPIPELINEINPUTSRESPONSE"]._serialized_end = 5324
182
+ _globals["_GETPIPELINEINPUTSRESPONSE_INPUTSPECSENTRY"]._serialized_start = 5250
183
+ _globals["_GETPIPELINEINPUTSRESPONSE_INPUTSPECSENTRY"]._serialized_end = 5324
184
+ _globals["_GETPIPELINEOUTPUTSREQUEST"]._serialized_start = 5326
185
+ _globals["_GETPIPELINEOUTPUTSREQUEST"]._serialized_end = 5373
186
+ _globals["_GETPIPELINEOUTPUTSRESPONSE"]._serialized_start = 5376
187
+ _globals["_GETPIPELINEOUTPUTSRESPONSE"]._serialized_end = 5583
188
+ _globals["_GETPIPELINEOUTPUTSRESPONSE_OUTPUTSPECSENTRY"]._serialized_start = 5508
189
+ _globals["_GETPIPELINEOUTPUTSRESPONSE_OUTPUTSPECSENTRY"]._serialized_end = 5583
190
+ _globals["_GETPIPELINEVISUALIZATIONREQUEST"]._serialized_start = 5585
191
+ _globals["_GETPIPELINEVISUALIZATIONREQUEST"]._serialized_end = 5654
192
+ _globals["_GETPIPELINEVISUALIZATIONRESPONSE"]._serialized_start = 5656
193
+ _globals["_GETPIPELINEVISUALIZATIONRESPONSE"]._serialized_end = 5726
194
+ _globals["_INFERENCEREQUEST"]._serialized_start = 5728
195
+ _globals["_INFERENCEREQUEST"]._serialized_end = 5829
196
+ _globals["_INFERENCERESPONSE"]._serialized_start = 5832
197
+ _globals["_INFERENCERESPONSE"]._serialized_end = 6092
198
+ _globals["_INFERENCERESPONSE_OUTPUTSENTRY"]._serialized_start = 5977
199
+ _globals["_INFERENCERESPONSE_OUTPUTSENTRY"]._serialized_end = 6044
200
+ _globals["_INFERENCERESPONSE_METRICSENTRY"]._serialized_start = 1843
201
+ _globals["_INFERENCERESPONSE_METRICSENTRY"]._serialized_end = 1889
202
+ _globals["_PLUGINMANIFEST"]._serialized_start = 6094
203
+ _globals["_PLUGINMANIFEST"]._serialized_end = 6132
204
+ _globals["_PLUGININFO"]._serialized_start = 6134
205
+ _globals["_PLUGININFO"]._serialized_end = 6221
206
+ _globals["_PORTSPEC"]._serialized_start = 6223
207
+ _globals["_PORTSPEC"]._serialized_end = 6336
208
+ _globals["_PORTSPECLIST"]._serialized_start = 6338
209
+ _globals["_PORTSPECLIST"]._serialized_end = 6390
210
+ _globals["_NODEINFO"]._serialized_start = 6393
211
+ _globals["_NODEINFO"]._serialized_end = 6758
212
+ _globals["_NODEINFO_INPUTSPECSENTRY"]._serialized_start = 6603
213
+ _globals["_NODEINFO_INPUTSPECSENTRY"]._serialized_end = 6679
214
+ _globals["_NODEINFO_OUTPUTSPECSENTRY"]._serialized_start = 6681
215
+ _globals["_NODEINFO_OUTPUTSPECSENTRY"]._serialized_end = 6758
216
+ _globals["_LOADPLUGINSREQUEST"]._serialized_start = 6760
217
+ _globals["_LOADPLUGINSREQUEST"]._serialized_end = 6847
218
+ _globals["_LOADPLUGINSRESPONSE"]._serialized_start = 6850
219
+ _globals["_LOADPLUGINSRESPONSE"]._serialized_end = 7026
220
+ _globals["_LOADPLUGINSRESPONSE_FAILEDPLUGINSENTRY"]._serialized_start = 6974
221
+ _globals["_LOADPLUGINSRESPONSE_FAILEDPLUGINSENTRY"]._serialized_end = 7026
222
+ _globals["_LISTLOADEDPLUGINSREQUEST"]._serialized_start = 7028
223
+ _globals["_LISTLOADEDPLUGINSREQUEST"]._serialized_end = 7074
224
+ _globals["_LISTLOADEDPLUGINSRESPONSE"]._serialized_start = 7076
225
+ _globals["_LISTLOADEDPLUGINSRESPONSE"]._serialized_end = 7145
226
+ _globals["_GETPLUGININFOREQUEST"]._serialized_start = 7147
227
+ _globals["_GETPLUGININFOREQUEST"]._serialized_end = 7210
228
+ _globals["_GETPLUGININFORESPONSE"]._serialized_start = 7212
229
+ _globals["_GETPLUGININFORESPONSE"]._serialized_end = 7276
230
+ _globals["_LISTAVAILABLENODESREQUEST"]._serialized_start = 7278
231
+ _globals["_LISTAVAILABLENODESREQUEST"]._serialized_end = 7325
232
+ _globals["_LISTAVAILABLENODESRESPONSE"]._serialized_start = 7327
233
+ _globals["_LISTAVAILABLENODESRESPONSE"]._serialized_end = 7393
234
+ _globals["_CLEARPLUGINCACHEREQUEST"]._serialized_start = 7395
235
+ _globals["_CLEARPLUGINCACHEREQUEST"]._serialized_end = 7441
236
+ _globals["_CLEARPLUGINCACHERESPONSE"]._serialized_start = 7443
237
+ _globals["_CLEARPLUGINCACHERESPONSE"]._serialized_end = 7492
238
+ _globals["_CUVISAISERVICE"]._serialized_start = 8362
239
+ _globals["_CUVISAISERVICE"]._serialized_end = 10857
240
+ # @@protoc_insertion_point(module_scope)