Skip to content

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

@KirillYashin

Description

@KirillYashin

Параметр 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')

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions