dali_backend
dali_backend copied to clipboard
how to use the numpy data in the DALI
I use your NVIDIA hardware decoder, nvdecode, to decode the video and generate data in numpy format. How to use dali's gpu accelerated pre-processing, I use Dali.fn.decoders. image, and the error is as follows: Error in thread 1: [/opt/dali/dali/operators/decoder/host/host_decoder.cc:30] Assert on "input.ndim() == 1" failed: Input must be 1D encoded jpeg string. If I remove decoders and directly use dali.fn.resize(device='gpu'), an error will be reported. Data on cpu cannot be operated by gpu
what shoud i do, my data.shape is (1620, 1920)
Hi @1124676457 ,
thanks for reaching out. Could you post your DALI Pipeline code? Or at least some relevant part of it?
嗨@1124676457 ,
感谢您伸出援手。你能发布你的DALI管道代码吗?或者至少是其中的一些相关部分?
@dali.pipeline_def(batch_size=1, num_threads=4, device_id=0) def pipe(): images = dali.fn.external_source(device="cpu",name="DALI_INPUT_0") images = images / 255 images = dali.fn.decoders.image(images, device="mixed", output_type=types.RGB) images = dali.fn.resize(images, device='gpu',resize_x=1024, resize_y=576) images = dali.fn.reshape(images,device='gpu', src_dims=[2,0,1], layout="CHW") images = dali.fn.expand_dims(images, axes=[0], new_axis_names="N") #images = images / 255
return images
the decode code is this, the worker.frame is the nvdecode's result, shape is (1620,1920): while True: if worker.updated: c += 1 time_connect = time.time() worker.updated = False output = triton(worker.frame)
@1124676457 ,
your DALI Pipeline looks correct. It suggests, that maybe you're sending the data to the Triton in an improper way. The typical sending pattern for the pipeline you've posted is using either np.fromfile(filename, dtype=np.uint8)
or open(filename, 'rb')
function to open JPEG binary and sending it to the DALI Backend. Should you like to post the client code, I'll take a look and I can point to a problem.
Please refer to these examples that illustrate the usage pattern that is the most common with the pipeline you've presented: https://github.com/triton-inference-server/dali_backend/blob/3639bebcb9ad6022a3522772c4e34fba4ec43dc5/qa/L0_inception_ensemble/ensemble_client.py#L53 https://github.com/triton-inference-server/dali_backend/blob/3639bebcb9ad6022a3522772c4e34fba4ec43dc5/client/dali_grpc_client.py#L133 https://github.com/triton-inference-server/dali_backend/blob/3639bebcb9ad6022a3522772c4e34fba4ec43dc5/docs/examples/resnet50_trt/client.py#L30