рдпрд╣ рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдмрд╛рд░ рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИ!рд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░! рдкреНрд░рд┐рдп рджреЛрд╕реНрддреЛрдВ, рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ Gensub.com/aidonchuk/retinanet-examples рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкрд░ рдЖрдзрд╛рд░рд┐рдд TensorRT, RetinaNet рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдпрд╣ рдПрдирд╡реАрдбрд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЯрд░реНрдирдХреА рдХрд╛ рдПрдХ рдХрд╛рдВрдЯрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд▓реНрдж рд╕реЗ рдЬрд▓реНрдж рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛)ред
рдУрдбреЗрд╕рд╛рдИ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ
рдЪреИрдирд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рддреЗ рд╣реБрдП , рдореИрдВ TensorRT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдШреЗрд░реЗ рдореЗрдВ рдЖрддрд╛ рд╣реВрдВ, рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдкреНрд░рд╢реНрди рджреЛрд╣рд░рд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ TensorRT, рд░реЗрдЯрд┐рдирд╛рдиреЗрдЯ, рдпреВрдиреЗрдЯ рдФрд░ рдбреЙрдХрдЯрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддреЗрдЬреА рд╕реЗ рдмрдЪрд╛рд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдпрдерд╛рд╕рдВрднрд╡ рд╡реНрдпрд╛рдкрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдХрд╛рд░реНрдп рд╡рд┐рд╡рд░рдгрдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рд░реНрдп рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ: рд╣рдореЗрдВ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд░реЗрдЯрд┐рдирд╛рдиреЗрдЯ / рдпреВрдиреЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкрд╛рдЗрдЯреЛрд░рдЪ 1.3 + рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░реЗрдВ, рдкреНрд░рд╛рдкреНрдд рд╡рдЬрди рдХреЛ ONNX рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ, рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ TensorRet рдЗрдВрдЬрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕ рдкреВрд░реЗ рдХрд╛рдо рдХреЛ docker рдореЗрдВ рдЪрд▓рд╛рдПрдВ, рдЕрдзрд┐рдорд╛рдирддрдГ Ubuntu 18 рдФрд░ рдЕрддреНрдпрдВрдд рдПрдЖрд░рдПрдо (рдЬреЗрдЯрд╕рди) * рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рдЕрдзрд┐рдорд╛рдирддрдГ, рдЬрд┐рд╕рд╕реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рдореИрдиреНрдпреБрдЕрд▓ рддреИрдирд╛рддреА рдХреЛ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдирддреАрдЬрддрди, рд╣рдо рди рдХреЗрд╡рд▓ рд░реЗрдЯрд┐рдирд╛рдиреЗрдЯ / рдпреВрдиреЗрдЯ рдХреЗ рдирд┐рд░реНрдпрд╛рдд рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдВрдЯреЗрдирд░ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдмрд▓реНрдХрд┐ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЧреАрдХрд░рдг, рд╡рд┐рднрд╛рдЬрди рдХреЗ рдкреВрд░реНрдг рд╡рд┐рдХрд╛рд╕ рдФрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рднреА рддреИрдпрд╛рд░ рд╣реЛрдВрдЧреЗред
рдЪрд░рдг 1. рдкрд░реНрдпрд╛рд╡рд░рдг рдХреА рддреИрдпрд╛рд░реАрдпрд╣рд╛рдВ рдпрд╣ рдиреЛрдЯ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВрдиреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рдорд╢реАрди рдкрд░ рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдФрд░ рддреИрдирд╛рддреА рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдбрд┐рдмрдХреНрд╕ рдкрд░ рднреАред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдмрдирд╛рдирд╛ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ рд╡рд╣ рд╣реИ рдЕрдЬрдЧрд░ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рдХреНрдпреВрдбрд╛ 10.2 (рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдПрдХрд▓ рдПрдирд╡реАрдбрд┐рдпрд╛ рдЪрд╛рд▓рдХ рддрдХ рд╕реАрдорд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдирдпрд╛ рд╕реНрдерд╛рдкрд┐рдд рдЙрдмрдВрдЯреВ 18 рд╣реИред рдХреНрдпреВрдбрд╛ 10.2 (рдбрд┐рдм) рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдореИрдВ рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреВрдВрдЧрд╛, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рдЕрдм рдбреЙрдХрдЯрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ, рдбреЙрдХ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЧрд╛рдЗрдб рдЖрд╕рд╛рдиреА рд╕реЗ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ
www.digitalocean.com/community/tutorials/docker-ubuntu-18-04-1-en , 19+ рд╕рдВрд╕реНрдХрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реИ - рдЗрд╕реЗ рд░рдЦреЗрдВред рдЦреИрд░, рдмрд┐рдирд╛ рд╕реВрджреЛ рдХреЗ рдбреЙрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рди рднреВрд▓реЗрдВ, рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛрдЧрд╛ред рд╕рдм рдХреБрдЫ рдмрджрд▓ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕ рддрд░рд╣ рдХрд░рддреЗ рд╣реИрдВ:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.imtqy.com/nvidia-docker/gpgkey | sudo apt-key add - curl -s -L https://nvidia.imtqy.com/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit sudo systemctl restart docker
рдФрд░ рдЖрдкрдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА
github.com/NVodia/nvidia-docker рдкрд░ рднреА рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдирд╛ рд╣реИ ред
рдЕрдм git рдХреНрд▓реЛрди
github.com/aidonchuk/retinanet-examples рдХрд░реЗрдВ ред
рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЕрд╡рд╢реЗрд╖ рд╣реИ, рдПрдирд╡реАрдбрд┐рдпрд╛-рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдбреЙрдХрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдирдЬреАрд╕реА рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдкрдВрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдФрд░ рд▓реЙрдЧ рдЗрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдпрд╣рд╛рдВ рдЬрд╛рддреЗ рд╣реИрдВ
ngc.nvidia.com , рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░реЗрдВ рдФрд░ рд╣рдо NGC рдХреНрд▓рд╛рдЙрдб рдХреЗ рдЕрдВрджрд░ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рдмрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ SETUP рджрдмрд╛рдПрдВ рдпрд╛ рдЗрд╕ рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗрдВ
ngc.nvidia.com/setup/api-key ред "рдЬрдирд░реЗрдЯ рдХреБрдВрдЬреА" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдореИрдВ рдЗрд╕реЗ рдмрдЪрд╛рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЕрдиреНрдпрдерд╛ рдЕрдЧрд▓реА рдмрд╛рд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдЗрд╕реЗ рдПрдХ рдирдП рд╡реНрд╣реАрд▓рдмреНрд░реЛ рдкрд░ рддреИрдирд╛рдд рдХрд░рддреЗ рд╣реБрдП, рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рджреЛрд╣рд░рд╛рдПрдВред
рдкреВрд░рд╛ рд╣реБрдЖ:
docker login nvcr.io Username: $oauthtoken Password: <Your Key> -
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рд╕рд┐рд░реНрдл рдХреЙрдкреАред рдЦреИрд░, рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдкрд░реНрдпрд╛рд╡рд░рдг рддреИрдирд╛рдд рд╣реИ!
рдЪрд░рдг 2. рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдЕрд╕реЗрдВрдмрд▓ рдХрд░рдирд╛рд╣рдорд╛рд░реЗ рдХрд╛рдо рдХреЗ рджреВрд╕рд░реЗ рдЪрд░рдг рдореЗрдВ, рд╣рдо рдбреЙрдХрдЯрд░ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рдЗрдирд╕рд╛рдЗрдб рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдВрдЧреЗред
рдЖрдЗрдП рд░реЗрдЯрд┐рдирд╛-рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рдЬрд╛рдПрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ
docker build --build-arg USER=$USER --build-arg UID=$UID --build-arg GID=$GID --build-arg PW=alex -t retinanet:latest retinanet/
рд╣рдо рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕рдореЗрдВ рдлреЗрдВрдХрдХрд░ рдбреЙрдХрдЯрд░ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реИ рдпрджрд┐ рдЖрдк рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдШреБрдбрд╝рд╕рд╡рд╛рд░ VOLUME рдкрд░ рдХреБрдЫ рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЕрдиреНрдпрдерд╛ рдЬрдбрд╝ рдФрд░ рджрд░реНрдж рд╣реЛрдЧрд╛ред
рдбреЙрдХрдЯрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЪрд▓реЛ рдбреЙрдХрдлрд╛рдЗрд▓ рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВ:
FROM nvcr.io/nvidia/pytorch:19.10-py3 ARG USER=alex ARG UID=1000 ARG GID=1000 ARG PW=alex RUN useradd -m ${USER} --uid=${UID} && echo "${USER}:${PW}" | chpasswd RUN apt-get -y update && apt-get -y upgrade && apt-get -y install curl && apt-get -y install wget && apt-get -y install git && apt-get -y install automake && apt-get install -y sudo && adduser ${USER} sudo RUN pip install git+https://github.com/bonlime/pytorch-tools.git@master COPY . retinanet/ RUN pip install --no-cache-dir -e retinanet/ RUN pip install /workspace/retinanet/extras/tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl RUN pip install tensorboardx RUN pip install albumentations RUN pip install setproctitle RUN pip install paramiko RUN pip install flask RUN pip install mem_top RUN pip install arrow RUN pip install pycuda RUN pip install torchvision RUN pip install pretrainedmodels RUN pip install efficientnet-pytorch RUN pip install git+https://github.com/qubvel/segmentation_models.pytorch RUN pip install pytorch_toolbelt RUN chown -R ${USER}:${USER} retinanet/ RUN cd /workspace/retinanet/extras/cppapi && mkdir build && cd build && cmake -DCMAKE_CUDA_FLAGS="--expt-extended-lambda -std=c++14" .. && make && cd /workspace RUN apt-get install -y openssh-server && apt install -y tmux && apt-get -y install bison flex && apt-cache search pcre && apt-get -y install net-tools && apt-get -y install nmap RUN apt-get -y install libpcre3 libpcre3-dev && apt-get -y install iputils-ping RUN mkdir /var/run/sshd RUN echo 'root:pass' | chpasswd RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd ENV NOTVISIBLE "in users profile" RUN echo "export VISIBLE=now" >> /etc/profile CMD ["/usr/sbin/sshd", "-D"]
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╛рда рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдЕрдкрдиреЗ рд╕рднреА рдкрд╕рдВрджреАрджрд╛ рд▓реЛрдЧреЛрдВ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ, рд░реЗрдЯрд┐рдирд╛рдиреЗрдЯ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЙрдмрдВрдЯреВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдЙрдкрдХрд░рдг рд╡рд┐рддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдУрдкрдирд╢ рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рд╕рд┐рд░реНрдл рдПрдирд╡реАрдбрд┐рдпрд╛ рдЗрдореЗрдЬ рдХреА рд╡рд┐рд░рд╛рд╕рдд рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдордиреЗ NGC рдХреНрд▓рд╛рдЙрдб рдореЗрдВ рдПрдХ рд▓реЙрдЧрд┐рди рдмрдирд╛рдпрд╛ рдФрд░ рдЬрд┐рд╕рдореЗрдВ Pytorch1.3, TensorRT6.xxx рдФрд░ рдХрд╛рдореЗрдЪреНрдЫрд╛ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЕрдкрдиреЗ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП cpp рд╕реНрд░реЛрдд рдХреЛрдб рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╕реНрдЯреЗрдЬ 3. рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рдФрд░ рдбрд┐рдмрдЧ рдХрд░рдирд╛рдЪрд▓реЛ рдХрдВрдЯреЗрдирд░ рдФрд░ рд╡рд┐рдХрд╛рд╕ рдкрд░реНрдпрд╛рд╡рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдореБрдЦреНрдп рдорд╛рдорд▓реЗ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдирд╡реАрдбрд┐рдпрд╛ рдбреЙрдХрд░ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдкреВрд░рд╛ рд╣реБрдЖ:
docker run --gpus all --net=host -v /home/<your_user_name>:/workspace/mounted_vol -d -P --rm --ipc=host -it retinanet:latest
рдЕрдм рдХрдВрдЯреЗрдирд░ ssh <curr_user_name> @localhost рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред рдПрдХ рд╕рдлрд▓ рд▓реЙрдиреНрдЪ рдХреЗ рдмрд╛рдж, PyCharm рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЦреЛрд▓реЗрдВред рдЕрдЧрд▓рд╛, рдЦреБрд▓рд╛
Settings->Project Interpreter->Add->Ssh Interpreter
рдЪрд░рдг 1
рдЪрд░рдг 2
рдЪрд░рдг 3
рд╣рдо рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдм рдХреБрдЫ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ,
Interpreter -> /opt/conda/bin/python
- рдпрд╣ Python3.6 рдореЗрдВ ln рд╣реЛрдЧрд╛ рдФрд░
Sync folder -> /workspace/retinanet
рд╣рдо рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрди рджрдмрд╛рддреЗ рд╣реИрдВ, рд╣рдо рдЗрдВрдбреЗрдХреНрд╕рд┐рдВрдЧ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╣реИ, рдкрд░реНрдпрд╛рд╡рд░рдг рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ!
рдорд╣рддреНрд╡рдкреВрд░реНрдг !!! рдЕрдиреБрдХреНрд░рдордг рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рдбреЙрдХрдЯрд░ рд╕реЗ рд░реЗрдЯрд┐рдирд╛рдиреЗрдЯ рдХреЗ рд▓рд┐рдП рд╕рдВрдХрд▓рд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рдХрд╛рд▓реЗрдВред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд░реВрдЯ рдореЗрдВ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдореЗрдВ, рдЪрдпрди рдХрд░реЗрдВ
Deployment->Download
рдПрдХ рдлрд╛рдЗрд▓ рдФрд░ рджреЛ рдмрд┐рд▓реНрдб рдлреЛрд▓реНрдбрд░, retinanet.egg-info рдФрд░ _so рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ

рдпрджрд┐ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рддреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рджреЗрдЦрддрд╛ рд╣реИ рдФрд░ рд╣рдо рд░реЗрдЯрд┐рдирд╛рдиреЗрдЯ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред
рдЪрд░рдг 4. рдбреЗрдЯрд╛ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдирд╛ рдФрд░ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдирд╛рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд▓рд┐рдП, рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ
рдкрд░реНрдпрд╡реЗрдХреНрд╖рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдПрдХ рдЕрдЪреНрдЫрд╛ рдФрд░ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЙрдкрдХрд░рдг, рдЖрдЦрд┐рд░реА рд╕рдордп рдореЗрдВ рдЬрд╛рдо рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдмрди рдЧрдпрд╛ред
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдиреЗ рдПрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рддреБрд░рдВрдд рд╣рдорд╛рд░реЗ рд░реЗрдЯрд┐рдирд╛рдиреЗрдЯ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЗрд╕реЗ COCO рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд░реВрдкрд╛рдВрддрд░рдг рдЙрдкрдХрд░рдг рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
markup_utils/supervisly_to_coco.py
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╢реНрд░реЗрдгреА рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЕрдкрдиреА рдЦреБрдж рдХреА рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрдкрдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рд╢реНрд░реЗрдгреА рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)
categories = [{'id': 1, 'name': '1'}, {'id': 2, 'name': '2'}, {'id': 3, 'name': '3'}, {'id': 4, 'name': '4'}]
рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рдореВрд▓ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдЖрдк рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЗ рд▓рд┐рдП COCO / VOC рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдХреБрдЫ рднреА рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛
retinanet/dataset.py
рдЯреБрдЯреНрдбрд╛ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рд╡реГрджреНрдзрд┐
рдЕрд▓реНрдмреБрдореЗрдВрдЯреЗрд╢рди.реНрд░реЗрдбрдереЗрдбреЛрдХреНрд╕.рдЖрдИрдПрди / рд▓реЗрдЯреЗрд╕реНрдЯ рдФрд░ рд╣рд╛рд░реНрдб-рд╡рд╛рдпрд░реНрдб рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рд╕реАрдУрд╕реАрдУ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рджреЗрдВред рдпрджрд┐ рдЖрдк рдмрдбрд╝реЗ рдЪрд┐рддреНрд░реЛрдВ рдореЗрдВ рдЫреЛрдЯреА рд╡рд╕реНрддреБрдУрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЫреЛрдЯрд╛ рдбреЗрдЯрд╛рд╕реЗрдЯ рд╣реИ =), рдФрд░ рдХреБрдЫ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рдкрд░ рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЯреНрд░реЗрди рдХрд╛ рд▓реВрдк рднреА рдХрдордЬреЛрд░ рд╣реЛрддрд╛ рд╣реИ, рд╢реБрд░реВ рдореЗрдВ рдпрд╣ рдЪреМрдХрд┐рдпреЛрдВ рдХреЛ рдирд╣реАрдВ рдмрдЪрд╛рддрд╛ рдерд╛, рдпрд╣ рдХреБрдЫ рднрдпрд╛рдирдХ рд╢реЗрдбреНрдпреВрд▓рд░ рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рдерд╛ред рд▓реЗрдХрд┐рди рдЕрдм рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдмреИрдХрдмреЛрди рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИ рдФрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ
/opt/conda/bin/python retinanet/main.py
рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде:
train retinanet_rn34fpn.pth --backbone ResNet34FPN --classes 12 --val-iters 10 --images /workspace/mounted_vol/dataset/train/images --annotations /workspace/mounted_vol/dataset/train_12_class.json --val-images /workspace/mounted_vol/dataset/test/images_small --val-annotations /workspace/mounted_vol/dataset/val_10_class_cropped.json --jitter 256 512 --max-size 512 --batch 32
рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ:
Initializing model... model: RetinaNet backbone: ResNet18FPN classes: 2, anchors: 9 Selected optimization level O0: Pure FP32 training. Defaults for this optimization level are: enabled : True opt_level : O0 cast_model_type : torch.float32 patch_torch_functions : False keep_batchnorm_fp32 : None master_weights : False loss_scale : 1.0 Processing user overrides (additional kwargs that are not None)... After processing overrides, optimization options are: enabled : True opt_level : O0 cast_model_type : torch.float32 patch_torch_functions : False keep_batchnorm_fp32 : None master_weights : False loss_scale : 128.0 Preparing dataset... loader: pytorch resize: [1024, 1280], max: 1280 device: 4 gpus batch: 4, precision: mixed Training model for 20000 iterations... [ 1/20000] focal loss: 0.95619, box loss: 0.51584, 4.042s/4-batch (fw: 0.698s, bw: 0.459s), 1.0 im/s, lr: 0.0001 [ 12/20000] focal loss: 0.76191, box loss: 0.31794, 0.187s/4-batch (fw: 0.055s, bw: 0.133s), 21.4 im/s, lr: 0.0001 [ 24/20000] focal loss: 0.65036, box loss: 0.30269, 0.173s/4-batch (fw: 0.045s, bw: 0.128s), 23.1 im/s, lr: 0.0001 [ 36/20000] focal loss: 0.46425, box loss: 0.23141, 0.178s/4-batch (fw: 0.047s, bw: 0.131s), 22.4 im/s, lr: 0.0001 [ 48/20000] focal loss: 0.45115, box loss: 0.23505, 0.180s/4-batch (fw: 0.047s, bw: 0.133s), 22.2 im/s, lr: 0.0001 [ 59/20000] focal loss: 0.38958, box loss: 0.25373, 0.184s/4-batch (fw: 0.049s, bw: 0.134s), 21.8 im/s, lr: 0.0001 [ 71/20000] focal loss: 0.37733, box loss: 0.23988, 0.174s/4-batch (fw: 0.049s, bw: 0.125s), 22.9 im/s, lr: 0.0001 [ 83/20000] focal loss: 0.39514, box loss: 0.23878, 0.181s/4-batch (fw: 0.048s, bw: 0.133s), 22.1 im/s, lr: 0.0001 [ 94/20000] focal loss: 0.39947, box loss: 0.23817, 0.185s/4-batch (fw: 0.050s, bw: 0.134s), 21.6 im/s, lr: 0.0001 [ 105/20000] focal loss: 0.37343, box loss: 0.20238, 0.182s/4-batch (fw: 0.048s, bw: 0.134s), 22.0 im/s, lr: 0.0001 [ 116/20000] focal loss: 0.19689, box loss: 0.17371, 0.183s/4-batch (fw: 0.050s, bw: 0.132s), 21.8 im/s, lr: 0.0001 [ 128/20000] focal loss: 0.20368, box loss: 0.16538, 0.178s/4-batch (fw: 0.046s, bw: 0.131s), 22.5 im/s, lr: 0.0001 [ 140/20000] focal loss: 0.22763, box loss: 0.15772, 0.176s/4-batch (fw: 0.050s, bw: 0.126s), 22.7 im/s, lr: 0.0001 [ 148/20000] focal loss: 0.21997, box loss: 0.18400, 0.585s/4-batch (fw: 0.047s, bw: 0.144s), 6.8 im/s, lr: 0.0001 Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.52674 Average Precision (AP) @[ IoU=0.50 | area= all | maxDets=100 ] = 0.91450 Average Precision (AP) @[ IoU=0.75 | area= all | maxDets=100 ] = 0.35172 Average Precision (AP) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.61881 Average Precision (AP) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.00000 Average Precision (AP) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = -1.00000 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 1 ] = 0.58824 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets= 10 ] = 0.61765 Average Recall (AR) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.61765 Average Recall (AR) @[ IoU=0.50:0.95 | area= small | maxDets=100 ] = 0.61765 Average Recall (AR) @[ IoU=0.50:0.95 | area=medium | maxDets=100 ] = -1.00000 Average Recall (AR) @[ IoU=0.50:0.95 | area= large | maxDets=100 ] = -1.00000 Saving model: 148
рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдкреВрд░реЗ рд╕реЗрдЯ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦреЛ
retinanet/main.py
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡реЗ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдЪрд▓рд╛рдПрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВред рдЕрдиреБрдорд╛рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЗрд╕рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
retinanet/infer_example.py
рдпрд╛ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
/opt/conda/bin/python retinanet/main.py infer retinanet_rn34fpn.pth --images /workspace/mounted_vol/dataset/test/images --annotations /workspace/mounted_vol/dataset/val.json --output result.json --resize 256 --max-size 512 --batch 32
рдлреЛрдХрд▓ рд▓реЙрд╕ рдФрд░ рдХрдИ рдмреИрдХрдмреЛрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рд╣реИрдВ, рдФрд░ рдЙрдирдХреЗ
retinanet/backbones/*.py
рд▓реЗрдЦрдХ рдиреЗрдордкреНрд▓реЗрдЯ рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рджреЗрддреЗ рд╣реИрдВ:

рдЯрд╛рд░реНрдЪрд╡рд┐рдЬрди рд╕реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рдмреИрдХрдмреЛрди ResNeXt50_32x4dFPN рдФрд░ ResNeXt101_32x8dFPN рднреА рд╣реИред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╣рдордиреЗ рдкрддрд╛ рд▓рдЧрд╛ рд▓рд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ
рдирд┐рд░реНрдпрд╛рдд рдФрд░ рд▓реЙрдЧрд┐рдВрдЧ рдореЛрдб рдХреЛ
рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреЛ рдЬрд░реВрд░ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЪрд░рдг 5. Resnet рдПрдирдХреЛрдбрд░ рдХреЗ рд╕рд╛рде Unet рдореЙрдбрд▓ рдХрд╛ рдирд┐рд░реНрдпрд╛рдд рдФрд░ рдирд┐рд╖реНрдХрд╛рд╕рдирдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рд╢рд╛рдпрдж рджреЗрдЦрд╛ рдерд╛, рдбреЙрдХрдлреЗрд░реАрд▓ рдореЗрдВ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдЧрдП рдереЗ, рдФрд░ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЕрджреНрднреБрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп
github.com/qubvel/seactation_models.pytorch ред рдЖрдк рдпреВрдиреЗрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ TensorRT рдЗрдВрдЬрди рдореЗрдВ рдкрд╛рдЗрд░реЙрдЪ рдЪреМрдХрд┐рдпреЛрдВ рдХреЗ рдЖрдХреНрд░рдордг рдФрд░ рдирд┐рд░реНрдпрд╛рдд рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
ONNX рд╕реЗ TensoRT рддрдХ рдпреВрдиреЗрдЯ рдЬреИрд╕реЗ рдореЙрдбрд▓ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЕрдкрд╕рдкреНрд▓реЗ рдЖрдХрд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдпрд╛ ConvTranspose2D рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП:
import torch.onnx.symbolic_opset9 as onnx_symbolic def upsample_nearest2d(g, input, output_size):
рдЗрд╕ рд░реВрдкрд╛рдВрддрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк ONNX рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рддреЗ рд╕рдордп рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА TensorRT рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 7 рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рдереА, рдФрд░ рд╣рдореЗрдВ рдмрд╣реБрдд рдХрдо рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
рдирд┐рд╖реНрдХрд░реНрд╖рдЬрдм рдореИрдВрдиреЗ рдбреЙрдХрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рдореБрдЭреЗ рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрджреЗрд╣ рдерд╛ред рдореЗрд░реА рдПрдХ рдЗрдХрд╛рдИ рдореЗрдВ, рдЕрдм рдХрдИ рдХреИрдорд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛рдлреА рд╣реИред

рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдиреЗ VOLUME рдкрд░ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░реЗрдХреНрд╢рди рдФрд░ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдмрдбрд╝реЗ рдУрд╡рд░рд╣реЗрдб рдХрд╛ рдЦреБрд▓рд╛рд╕рд╛ рдХрд┐рдпрд╛, рд╕рд╛рде рд╣реА рдПрдХ рдЕрдЬреНрдЮрд╛рдд рдФрд░ рднрдпрд╛рдирдХ рдЬреАрдЖрдИрдПрд▓, рдФрд░ рдПрдХ рдлреНрд░реЗрдо рдХреА рд╢реВрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рдж рд╕реЗ, рдЪрд╛рд▓рдХ рдСрдкрд░реЗрд╢рди рдФрд░ рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдПрдХ рдлреНрд░реЗрдо рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдирд╛
рдХрдард┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЛрдб рдореЗрдВ рдкрд░рдорд╛рдгреБ рд╕рдВрдЪрд╛рд▓рди рд╣реИрдВ, рджреЗрд░реА рдСрдирд▓рд╛рдЗрди рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред
рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ =)
рдкреБрдирд╢реНрдЪ рдпрд╣ рд╡рд┐рднрд╛рдЬрди рдФрд░ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рдЯреНрд░реЗрди рд▓реВрдк рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ!
BlagodranostiрдУрдбреЗрд╕рд╛рдИ рд╕рдореБрджрд╛рдп рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ!
N01z3 , DL рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рдЕрдкрдиреА рдЕрдореВрд▓реНрдп рд╕рд▓рд╛рд╣ рдФрд░ рдЕрд╕рд╛рдзрд╛рд░рдг рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХрддрд╛ рдХреЗ рд▓рд┐рдП DL рд▓реЗрдиреЗ рдХреА рдХрд╛рдордирд╛ рдХреА!
рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЕрдиреБрдХреВрд▓рд┐рдд рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ!
рдФрд░реЛрд░рд╛рдп, llc