diff --git a/examples/add_sub/client.py b/examples/add_sub/client.py index 80fc4133..b45d677d 100644 --- a/examples/add_sub/client.py +++ b/examples/add_sub/client.py @@ -1,82 +1,40 @@ -# Copyright 2020-2021, NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# * Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# * Neither the name of NVIDIA CORPORATION nor the names of its -# contributors may be used to endorse or promote products derived -# from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY -# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR -# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -import sys - -import numpy as np -import tritonclient.http as httpclient from tritonclient.utils import * +import tritonclient.http as httpclient +import numpy as np -model_name = "add_sub" -shape = [4] +triton_url = "localhost:8000" +model_name = "openpom_model" -with httpclient.InferenceServerClient("localhost:8000") as client: - input0_data = np.random.rand(*shape).astype(np.float32) - input1_data = np.random.rand(*shape).astype(np.float32) +smiles = ["CC(=O)OC1=CC=CC=C1C(=O)O"] +input_data = np.array([s.encode("utf-8") for s in smiles], dtype=np.bytes_).reshape(len(smiles), 1) + +with httpclient.InferenceServerClient(triton_url) as client: inputs = [ httpclient.InferInput( - "INPUT0", input0_data.shape, np_to_triton_dtype(input0_data.dtype) - ), - httpclient.InferInput( - "INPUT1", input1_data.shape, np_to_triton_dtype(input1_data.dtype) - ), + name="SMILES", + shape=input_data.shape, + datatype="BYTES" + ) ] + inputs[0].set_data_from_numpy(input_data) + print("Input dtype:", input_data.dtype) # + print("Input shape:", input_data.shape) #(1, 1) + print("Input content:", input_data) + print("input_data[0, 0]:", input_data[0, 0], type(input_data[0, 0])) - inputs[0].set_data_from_numpy(input0_data) - inputs[1].set_data_from_numpy(input1_data) outputs = [ - httpclient.InferRequestedOutput("OUTPUT0"), - httpclient.InferRequestedOutput("OUTPUT1"), + httpclient.InferRequestedOutput("OUTPUT", binary_data=True) ] + print("Type of outputs[0]:", type(outputs[0])) + print("Outputs:", outputs) - response = client.infer(model_name, inputs, request_id=str(1), outputs=outputs) - - result = response.get_response() - output0_data = response.as_numpy("OUTPUT0") - output1_data = response.as_numpy("OUTPUT1") - - print( - "INPUT0 ({}) + INPUT1 ({}) = OUTPUT0 ({})".format( - input0_data, input1_data, output0_data - ) + response = client.infer( + model_name=model_name, + inputs=inputs, + outputs=outputs ) - print( - "INPUT0 ({}) - INPUT1 ({}) = OUTPUT1 ({})".format( - input0_data, input1_data, output1_data - ) - ) - - if not np.allclose(input0_data + input1_data, output0_data): - print("add_sub example error: incorrect sum") - sys.exit(1) - - if not np.allclose(input0_data - input1_data, output1_data): - print("add_sub example error: incorrect difference") - sys.exit(1) - print("PASS: add_sub") - sys.exit(0) + embeddings = response.as_numpy("OUTPUT") + print("shape:", embeddings.shape) + print("embedding vector: \n", embeddings[0])