Не работает логирование через 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, проверила, работает, закрываю пулл-реквест. Спасибо!