Skip to main content

A lightweight and modular Python package for handling computer vision inference (image/video) with Triton Inference Server.

Project description

⚡ TRISM Inference Client

Perform batch inference on models deployed in a Triton Inference Server using a Python client.


Introduction

TritonModel supports: - Connecting to Triton Server (gRPC or HTTP)

  • Multi-input and multi-output models
  • Automatic batching and data stacking
  • Auto-generating config.pbtxt based on model metadata from Triton

Input Data Structure

The input passed to the run() function is a dict:

data = {
    "input_name_1": [array1, array2, ...],
    "input_name_2": [array1, array2, ...],
}
  • Key: must match the input name defined on the Triton Server.
  • Value: a list of tensors with the same shape (already padded but not stacked). The client will automatically stack, split into batches, and send to the server.

Example Usage

from trism_cv import TritonModel
import numpy as np

# Initialize client & run inference
model = TritonModel(model="model_name", version=1, url="# Triton server address", grpc=True)

# --- Case 1: Batched input ---
# data is a list of images with the same shape (HxWx3)
batched_data = [np.random.rand(640,640,3).astype(np.uint8)] * 3
outputs_batched = model.run({"INPUT": batched_data}, auto_config=True, batch_size=2) #batch_size default=2, can be customized
print("Batched output:", outputs_batched)


# --- Case 2: No batch ---
single_data = [np.random.rand(640, 640, 3).astype(np.float32)]  
outputs_single = model.run({"INPUT": single_data}, auto_config=True, batch_size=1) 
print("Single output:", outputs_single)

Output Format

The TritonModel.run() method can return 4 different formats depending on the model:

Output Type Format Notes
Single-output list[np.ndarray] Each element = output of one input sample
Length = number of input samples.
Multi-output dict[str, list[np.ndarray]] Each key = output name
Each value = list of per-sample outputs
Length = number of input samples.

Example of how to handle the output:

# Single-output
for i, sample in enumerate(outputs):
    print(f"Sample {i} shape:", sample.shape)

# Multi-output
for name, samples in outputs.items():
    for i, sample in enumerate(samples):
        print(f"{name} - sample {i}: shape={sample.shape}")

Auto Configuration (config.pbtxt)

TritonModel can automatically generate the config.pbtxt file by reading metadata from the Triton Server. This helps users:

  • Avoid writing input/output configuration manually
  • Ensure compatibility with the server's model definition

Environment Requirements

  • Python >= 3.9
  • opencv-python
  • numpy
  • tqdm
  • tritonclient
  • trism_cv (custom module)

Quick installation:

pip install opencv-python numpy tqdm tritonclient[grpc]

Notes

  • All inputs must have the same shape for batching.
  • Input keys must match those defined on Triton.
  • The model must be in READY state on the server.
  • Multiple batches can be processed in parallel to increase throughput.

License

GNU AGPL v3.0.
Copyright © 2025 Tien Nguyen Van. All rights reserved.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

trism_cv-0.1.1.tar.gz (22.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

trism_cv-0.1.1-py3-none-any.whl (23.8 kB view details)

Uploaded Python 3

File details

Details for the file trism_cv-0.1.1.tar.gz.

File metadata

  • Download URL: trism_cv-0.1.1.tar.gz
  • Upload date:
  • Size: 22.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.0

File hashes

Hashes for trism_cv-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f3462ba3c2b8861ef6ddbf71ca8567e2b6b5ccad643d6447268cf6ec16375af2
MD5 6f8778ea72f2e8f69f35a949698e6ef4
BLAKE2b-256 caccc363cc72d751dca27b31fb6c3a62424a9d59196c06abca1004a483767d03

See more details on using hashes here.

File details

Details for the file trism_cv-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: trism_cv-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 23.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.0

File hashes

Hashes for trism_cv-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 96ac0751f6bbac6229842637eddb5a75785d266e16f4cb2cffe375c133319b8e
MD5 ae88613c86f98da39479438aed475a12
BLAKE2b-256 d1f518ecb1cb3083e964b975a5a450d8fcaef27f4a50debbbe5486e00b2b1c71

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page