dl-benchmark icon indicating copy to clipboard operation
dl-benchmark copied to clipboard

Некорректная работа параметра raw_output в инференс скриптах

Open KirillYashin opened this issue 2 months ago • 0 comments

Параметр raw_output неправильно обрабатывается. В скриптах инференса он задается так: parser.add_argument('--raw_output', help='Raw output without logs.', default=False, type=bool, dest='raw_output') По умолчанию он стоит в False. но при попытке запустить инференс скрипт с параметром --raw_output false, значение этого параметра становится True, так как по сути проверятеся наличие непустой строки, а не ее содержание. Возможное решение: from distutils.util import strtobool parser.add_argument('--feature', dest='feature', type=lambda x: bool(strtobool(x))) Проблема решения в том, что distutils deprecated, начиная с python 3.12.

Данная бага ничего не ломает, так как в скриптах вида src/benchmark/frameworks/framework/framework_process параметр raw_output либо передается с значением true, либо не передается вообще (а во всех инференс скриптах он по умолчанию False): if raw_output: common_params = NcnnProcess._add_argument_to_cmd_line( common_params, '--raw_output', 'true')

KirillYashin avatar Apr 13 '24 06:04 KirillYashin