# # SPDX-FileCopyrightText: Copyright (c) 1993-2024 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # import numpy as np from torchvision import transforms from PIL import Image import tritonclient.http as httpclient from tritonclient.utils import triton_to_np_dtype def rn50_preprocess(img_path="img1.jpg"): img = Image.open(img_path) preprocess = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ]) return preprocess(img).numpy() transformed_img = rn50_preprocess() # Setup a connection with the Triton Inference Server. triton_client = httpclient.InferenceServerClient(url="localhost:8000") # Specify the names of the input and output layer(s) of our model. test_input = httpclient.InferInput("input", transformed_img.shape, datatype="FP32") test_input.set_data_from_numpy(transformed_img, binary_data=True) test_output = httpclient.InferRequestedOutput("output", binary_data=True, class_count=1000) # Querying the server results = triton_client.infer(model_name="resnet50", inputs=[test_input], outputs=[test_output]) test_output_fin = results.as_numpy('output') print(test_output_fin[:5])