Skip to main content

Tiny configuration for Triton Inference Server

Project description

tritony - Tiny configuration for Triton Inference Server

Pypi CI Coverage Status

What is this?

If you see the official example, it is really confusing to use where to start.

Use tritony! You will get really short lines of code like example below.

import argparse
import os
from glob import glob
import numpy as np
from PIL import Image

from tritony import InferenceClient


def preprocess(img, dtype=np.float32, h=224, w=224, scaling="INCEPTION"):
    sample_img = img.convert("RGB")

    resized_img = sample_img.resize((w, h), Image.Resampling.BILINEAR)
    resized = np.array(resized_img)
    if resized.ndim == 2:
        resized = resized[:, :, np.newaxis]

    scaled = (resized / 127.5) - 1
    ordered = np.transpose(scaled, (2, 0, 1))
    
    return ordered.astype(dtype)


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--image_folder", type=str, help="Input folder.")
    FLAGS = parser.parse_args()

    client = InferenceClient.create_with("densenet_onnx", "0.0.0.0:8001", input_dims=3, protocol="grpc")
    client.output_kwargs = {"class_count": 1}

    image_data = []
    for filename in glob(os.path.join(FLAGS.image_folder, "*")):
        image_data.append(preprocess(Image.open(filename)))

    result = client(np.asarray(image_data))

    for output in result:
        max_value, arg_max, class_name = output[0].decode("utf-8").split(":")
        print(f"{max_value} ({arg_max}) = {class_name}")

Release Notes

  • 23.08.30 Support optional with model input, parameters on config.pbtxt
  • 23.06.16 Support tritonclient>=2.34.0
  • Loosely modified the requirements related to tritonclient

Key Features

  • Simple configuration. Only $host:$port and $model_name are required.
  • Generating asynchronous requests with asyncio.Queue
  • Simple Model switching
  • Support async tritonclient

Requirements

$ pip install tritonclient[all]

Install

$ pip install tritony

Test

With Triton

./bin/run_triton_tritony_sample.sh
pytest -s --cov-report term-missing --cov=tritony tests/

Example with image_client.py

# Download Images from https://github.com/triton-inference-server/server.git
python ./example/image_client.py --image_folder "./server/qa/images"

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

tritony-0.0.16.tar.gz (12.8 kB view details)

Uploaded Source

Built Distribution

tritony-0.0.16-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file tritony-0.0.16.tar.gz.

File metadata

  • Download URL: tritony-0.0.16.tar.gz
  • Upload date:
  • Size: 12.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for tritony-0.0.16.tar.gz
Algorithm Hash digest
SHA256 67511eee0695dbf45aa28e27819fe766261f41dbb9fa4dad44a76b368e525aef
MD5 eedc718ce8a6a25eac03daa7f4d4f7ed
BLAKE2b-256 e478550f413eb03b21124548949b65f871152a9ffd61e394461d18c80ff353e1

See more details on using hashes here.

File details

Details for the file tritony-0.0.16-py3-none-any.whl.

File metadata

  • Download URL: tritony-0.0.16-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.8

File hashes

Hashes for tritony-0.0.16-py3-none-any.whl
Algorithm Hash digest
SHA256 187f54fede07e540fa4c855da3c318136763d5e9aa7aba3cac401598b04cd033
MD5 a1301285a149b8b7ecc5267a558e0370
BLAKE2b-256 ea7fa9decaf0f49080231f2e63f7acaa4bd5f433fa62590125551e3266c881b8

See more details on using hashes here.

Supported by

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