Executar carga de trabalho de inferência no Servidor de Inferência NVIDIA Triton
Agora estamos prontos para executar o script do Python de exemplo no Servidor Triton. Se você examinar o diretório demo
, verá uma coleção de pastas e arquivos.
Na pasta demo/app
, há dois scripts Python. O primeiro, frame_grabber.py
, usa o Servidor de Inferência Triton. O segundo, frame_grabber_onnxruntime.py
, pode ser usado de forma autônoma. A pasta utils
dentro do diretório app
contém scripts do Python para habilitar a interpretação do tensor de saída do modelo.
Ambos os scripts Python estão definidos para inspecionar arquivos de imagem que estão colocados no diretório image_sink
. No images-sample
, você encontra uma coleção de imagens que copiamos por meio da linha de comando para o image_sink
para processamento. Os scripts do Python excluem automaticamente os arquivos do image_sink
após a conclusão da inferência.
Na pasta model-repo
, você encontrará uma pasta para o nome do modelo (gtc_onnx), que contém o arquivo de configuração do modelo para o servidor de Inferência Triton e o arquivo de rótulo. Também há uma pasta que indica a versão do modelo, que contém o modelo ONNX (Open Neural Network Exchange) que o servidor usa para inferência.
Se o modelo detectar os objetos nos quais foi treinado, o script Python criará uma anotação dessa inferência com uma caixa delimitadora, um nome de marca e uma pontuação de confiança. O script salva a imagem na pasta images-annotated
com um nome exclusivo usando um carimbo de data/hora, que podemos baixar para exibir localmente. Dessa forma, você poderá copiar as mesmas imagens várias vezes para o image_sink
, mas terá novas imagens anotadas criadas a cada execução para fins de ilustração.
Executar uma carga de trabalho de inferência no Servidor de Inferência NVIDIA Triton
Para começar a inferência, vamos abrir duas janelas no Terminal do Windows e iniciar
ssh
na máquina virtual de cada janela.Na primeira janela, execute o seguinte comando, mas primeiro altere o espaço reservado <your username> com seu nome de usuário para a máquina virtual:
sudo docker run --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 --rm -p8000:8000 -p8002:8002 -v/home/<your username>/demo/model-repo:/models nvcr.io/nvidia/tritonserver:20.11-py3 tritonserver --model-repository=/models
Na segunda janela, copie o comando a seguir, alterando <your username> com os seus valores e defina <probability threshold> para o nível de confiança desejado entre 0 e 1. Por padrão, esse valor está definido como 0,6.
python3 demo/app/frame_grabber.py -u <your username> -p .07
Na terceira janela, copie e cole este comando para copiar os arquivos de imagem da pasta
images_sample
para a pastaimage_sink
:cp demo/images_sample/* demo/image_sink/
Se você voltar para a segunda janela, verá a execução do modelo, incluindo as estatísticas do modelo e a inferência retornada na forma de um dicionário do Python.
Aqui está uma exibição de exemplo do que você deverá ver na segunda janela à medida que o script é executado:
Se você quiser ver uma lista das imagens anotadas, execute este comando:
ls demo/annotated_images
Para baixar as imagens em seu computador local, primeiro vamos criar uma pasta para receber as imagens. Em uma janela de linha de comando, use o comando
cd
para navegar até o diretório no qual você deseja colocar a nova pasta e execute:mkdir annotated_img_download scp <your usename>@x.x.x.x:/home/<your username>/demo/images_annotated/* annotated_img_download/
Esse comando copia todos os arquivos da máquina virtual do Ubuntu para o dispositivo local para exibição.