itlab-vision / dl-benchmark

Deep Learning Inference benchmark. Supports OpenVINO™ toolkit, Caffe, TensorFlow, TensorFlow Lite, ONNX Runtime, OpenCV DNN, MXNet, PyTorch, Apache TVM, ncnn, etc.

Home Page:http://hpc-education.unn.ru/dli

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Не работает логирование через logging в скрипте вывода PyTorch

valentina-kustikova opened this issue · comments

По какой-то причине у нас с @a-sidorova в скрипте вывода PyTorch не работает стандартное логирование средствами logging. Признаки - на консоли просто нет ничего, но скрипт явно отрабатывает и записывает json-файл с метриками производительности. Пример команды запуска ниже, модель из OMZ.

python inference_pytorch.py --model_name resnet50 --weights /home/itmm/Documents/kustikova_v/public/resnet-50-pytorch/resnet50-19c8e357.pth --input /home/itmm/Documents/kustikova_v/data/ --labels labels/image_net_labels.json --batch_size 4 --input_names data --input_shapes data[4,3,224,224] -ni 1 --task classification --mean [123.675,116.28,103.53] --input_scale [58.395,57.12,57.375]

Смогла полечить это локально через перезагрузку пакета (ниже), но не выкладываю в основной репозиторий.

from importlib import reload
reload(log)

В скриптах вывода TensorFlow, MXNet, TensorFlow lite данная проблема не наблюдается. Делала со всеми пробные запуски.

@valentina-kustikova укажите пожалуйста версию python и приложите вывод pip freeze

@valentina-kustikova укажите пожалуйста версию python и приложите вывод pip freeze

Python 3.9.0
addict==2.4.0
certifi==2023.7.22
charset-normalizer==3.3.2
defusedxml==0.7.1
filelock==3.13.1
fsspec==2023.10.0
idna==3.4
Jinja2==3.1.2
jstyleson==0.0.2
MarkupSafe==2.1.3
mpmath==1.3.0
networkx==3.1
numpy==1.26.1
nvidia-cublas-cu12==12.1.3.1
nvidia-cuda-cupti-cu12==12.1.105
nvidia-cuda-nvrtc-cu12==12.1.105
nvidia-cuda-runtime-cu12==12.1.105
nvidia-cudnn-cu12==8.9.2.26
nvidia-cufft-cu12==11.0.2.54
nvidia-curand-cu12==10.3.2.106
nvidia-cusolver-cu12==11.4.5.107
nvidia-cusparse-cu12==12.1.0.106
nvidia-nccl-cu12==2.18.1
nvidia-nvjitlink-cu12==12.3.52
nvidia-nvtx-cu12==12.1.105
opencv-python==4.8.1.78
openvino==2023.1.0
openvino-dev==2023.1.0
openvino-telemetry==2023.2.1
Pillow==10.1.0
PyYAML==6.0.1
requests==2.31.0
scipy==1.10.1
sympy==1.12
texttable==1.7.0
torch==2.1.0
torchaudio==2.1.0
torchvision==0.16.0
tqdm==4.66.1
triton==2.1.0
typing_extensions==4.8.0
urllib3==2.0.7

@valentina-kustikova в pytorch не конфигурируется logging должным образом. Просто используется import logging as log. Это может давать такие сайд-эффекты.
Зафиксим это.

@n-berezina-nn, спасибо!

@valentina-kustikova можете попробовать с моего форка или с PR? https://github.com/itlab-vision/dl-benchmark/pull/441/files
Если Ваша проблема решится, то сделаю аналогичный фикс для остальных скриптов.

@valentina-kustikova можете попробовать с моего форка или с PR? https://github.com/itlab-vision/dl-benchmark/pull/441/files Если Ваша проблема решится, то сделаю аналогичный фикс для остальных скриптов.

@n-berezina-nn, клонировала ваш репозиторий и запустила скрипт инференса PyTorch, вывода на консоль по-прежнему нет. Запуск делаю в виртуальной среде, настройки присылала выше.

git clone https://github.com/n-berezina-nn/dl-benchmark/tree/master
cd dl-benchmark/src/inference/
python inference_pytorch.py --model_name resnet50 --weights /home/itmm/Documents/kustikova_v/public/resnet-50-pytorch/resnet50-19c8e357.pth --input /home/itmm/Documents/kustikova_v/data/ --labels labels/image_net_labels.json --batch_size 4 --input_names data --input_shapes data[4,3,224,224] -ni 1 --task classification --mean [123.675,116.28,103.53] --input_scale [58.395,57.12,57.375]

@valentina-kustikova обновите пожалуйста репозиторий. следующая итерация )

@valentina-kustikova обновите пожалуйста репозиторий. следующая итерация )

@n-berezina-nn, вывод заработал, ниже результат. Единственное - раньше в начале строки печатался уровень лога, например, [INFO].

Get device for inference
Inference will be executed on CPU
Loading model resnet50 from module
Loading model with weights from file /home/itmm/Documents/kustikova_v/public/resnet-50-pytorch/resnet50-19c8e357.pth
Inference will be executed on baseline model
Shape for input layer data: [4, 3, 224, 224]
Preparing input data: ['/home/itmm/Documents/kustikova_v/data/']
Starting inference (max 1 iterations or 0 sec) on CPU
Computing performance metrics
Write report to /home/itmm/Documents/kustikova_v/origin-natalia/dl-benchmark/src/inference/pytorch_inference_report.json
Converting output tensor to print results
Inference results
Top 5 results:
Result for image 1
        0.9278084 Granny Smith
        0.0129410 orange
        0.0059574 lemon
        0.0042141 necklace
        0.0025712 banana
Result for image 2
        0.9805019 junco, snowbird
        0.0049154 goldfinch, Carduelis carduelis
        0.0039196 chickadee
        0.0038097 water ouzel, dipper
        0.0028983 brambling, Fringilla montifringilla
Result for image 3
        0.9278084 Granny Smith
        0.0129410 orange
        0.0059574 lemon
        0.0042141 necklace
        0.0025712 banana
Result for image 4
        0.4759621 liner, ocean liner
        0.1025402 breakwater, groin, groyne, mole, bulwark, seawall, jetty
        0.0690002 container ship, containership, container vessel
        0.0524496 dock, dockage, docking facility
        0.0473782 pirate, pirate ship
Performance results:
{
    "iterations_num": 1,
    "execution_time": 0.082,
    "first_inference_time": 0.08158,
    "latency_avg": 0.08158,
    "latency_median": 0.08158,
    "latency_std": 0.0,
    "latency_max": 0.08158,
    "latency_min": 0.08158,
    "batch_throughput": 49.032,
    "throughput": 49.032
}

@valentina-kustikova да, решаю эту проблему сейчас и смоки тоже немного попадали.

@valentina-kustikova PR #441 можно смотреть

виноват вероятнее всего оказался logging.basicConfig

@valentina-kustikova PR #441 можно смотреть

виноват вероятнее всего оказался logging.basicConfig

@n-berezina-nn, проверила, работает, закрываю пулл-реквест. Спасибо!