dl-benchmark
dl-benchmark copied to clipboard
Некорректная работа параметра raw_output в инференс скриптах
Параметр 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')