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.0.3.tar.gz (21.0 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.0.3-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: trism_cv-0.0.3.tar.gz
  • Upload date:
  • Size: 21.0 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.0.3.tar.gz
Algorithm Hash digest
SHA256 aea8accb3fb64b08a2117cc360d1c874477799e82ec82b7aac996f287260ed66
MD5 a9f0466436a02a81a5832354c346a32b
BLAKE2b-256 a48d9e53fd9f02e7690978a743cc9f0d752652a86168790472592e7b3bb73697

See more details on using hashes here.

File details

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

File metadata

  • Download URL: trism_cv-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 20.1 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.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f4a7a382ea8e33f1c8f4843ce744689e6d66e514b3ac8421336f20ba224a39ff
MD5 b6e082ceba0955087540bf3cf0563d26
BLAKE2b-256 cbd02399242e2e8e9d88e3980e70982e2798d16d5287bb9cf7939659d04eb561

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