ultralytics 8.3.44 improve Triton Inference Server metadata (#17921)
Signed-off-by: Glenn Jocher <glenn.jocher@ultralytics.com> Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
This commit is contained in:
parent
530e6b9342
commit
c284a9e974
4 changed files with 20 additions and 2 deletions
|
|
@ -48,6 +48,16 @@ from ultralytics import YOLO
|
||||||
# Load a model
|
# Load a model
|
||||||
model = YOLO("yolo11n.pt") # load an official model
|
model = YOLO("yolo11n.pt") # load an official model
|
||||||
|
|
||||||
|
# Retreive metadata during export
|
||||||
|
metadata = []
|
||||||
|
|
||||||
|
|
||||||
|
def export_cb(exporter):
|
||||||
|
metadata.append(exporter.metadata)
|
||||||
|
|
||||||
|
|
||||||
|
model.add_callback("on_export_end", export_cb)
|
||||||
|
|
||||||
# Export the model
|
# Export the model
|
||||||
onnx_file = model.export(format="onnx", dynamic=True)
|
onnx_file = model.export(format="onnx", dynamic=True)
|
||||||
```
|
```
|
||||||
|
|
@ -107,7 +117,13 @@ The Triton Model Repository is a storage location where Triton can access and lo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"""
|
parameters {
|
||||||
|
key: "metadata"
|
||||||
|
value: {
|
||||||
|
string_value: "%s"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
""" % metadata[0]
|
||||||
|
|
||||||
with open(triton_model_path / "config.pbtxt", "w") as f:
|
with open(triton_model_path / "config.pbtxt", "w") as f:
|
||||||
f.write(data)
|
f.write(data)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
# Ultralytics YOLO 🚀, AGPL-3.0 license
|
||||||
|
|
||||||
__version__ = "8.3.43"
|
__version__ = "8.3.44"
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -462,6 +462,7 @@ class AutoBackend(nn.Module):
|
||||||
from ultralytics.utils.triton import TritonRemoteModel
|
from ultralytics.utils.triton import TritonRemoteModel
|
||||||
|
|
||||||
model = TritonRemoteModel(w)
|
model = TritonRemoteModel(w)
|
||||||
|
metadata = model.metadata
|
||||||
|
|
||||||
# Any other format (unsupported)
|
# Any other format (unsupported)
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,7 @@ class TritonRemoteModel:
|
||||||
self.np_input_formats = [type_map[x] for x in self.input_formats]
|
self.np_input_formats = [type_map[x] for x in self.input_formats]
|
||||||
self.input_names = [x["name"] for x in config["input"]]
|
self.input_names = [x["name"] for x in config["input"]]
|
||||||
self.output_names = [x["name"] for x in config["output"]]
|
self.output_names = [x["name"] for x in config["output"]]
|
||||||
|
self.metadata = eval(config.get("parameters", {}).get("metadata", {}).get("string_value", "None"))
|
||||||
|
|
||||||
def __call__(self, *inputs: np.ndarray) -> List[np.ndarray]:
|
def __call__(self, *inputs: np.ndarray) -> List[np.ndarray]:
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue