Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TVM] Model converters, tvm_pytorch features and inference tvm #436

Merged
merged 58 commits into from
Dec 6, 2023

Conversation

ismukhin
Copy link
Contributor

@ismukhin ismukhin commented Nov 8, 2023

TODO:

  • Конвертер из ONNX
  • Конвертер из PyTorch
  • Конвертер из MXNet
  • Конвертер из Caffe
  • Скрипт инференса для TVM
  • Скрипт инференса для Caffe (Python 3.7.x)
  • Smoke тесты

@ismukhin ismukhin marked this pull request as draft November 8, 2023 15:31
@@ -116,3 +119,6 @@ def prepare_output(result, task, output_names, not_softmax=False):
else:
result = softmax(result.asnumpy())
return {output_names[0]: result}
if task == 'detection':
print(result.asnumpy())
return {output_names[0]: result.asnumpy()}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Предлагаю все изменения с моделями детектирования вынести в отдельный пулл-реквест.

@valentina-kustikova
Copy link
Contributor

@FenixFly, @n-berezina-nn, посмотрите, пожалуйста, текущие изменения, чтобы мы могли залить в основную ветку.

target = self.tvm.target.Target(target_str)
dev = self.tvm.cpu(0)
else:
raise ValueError('Another devices are not supported at this moment')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
raise ValueError('Another devices are not supported at this moment')
raise ValueError(f'Device {device} is not supported. Supported devices: CPU')

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправлено

dest='input_name')
parser.add_argument('-d', '--device',
help='Specify the target device to infer on CPU or '
'NVIDIA_GPU (CPU by default)',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Судя по дальнейшему коду поддерживается только CPU. Если это так, то тогда имеет смысл убрать упоминание об NVIDIA GPU из help.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправлено

scripted_model = self.torch.jit.trace(model, input_data).eval()
return scripted_model
else:
log.info(f'Loading model {model_name} from module')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

большая вложенность кода. возможно имеет смысл разбить на несколько вспомогательных методов.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Разбил на методы


elif ((model_path is not None) and (weights is not None)):
log.info(f'Deserializing network from file ({model_path}, {weights})')
with warnings.catch_warnings():
Copy link
Collaborator

@n-berezina-nn n-berezina-nn Nov 27, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Зачем нужно искуственно подавлять warnings? они часто содержат полезную информацию и не влияют на результат. Если для этого нет причин, кроме кажущейся красоты логов, я бы предложила это убрать.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Убрал подавление warnings

@spartanezka
Copy link
Collaborator

Предлагаю использовать один универсальный ланчер tvm с входным параметром типа конвертера, так как в этих ланчерах мало уникальных изменений

FenixFly
FenixFly previously approved these changes Nov 27, 2023
@valentina-kustikova
Copy link
Contributor

@spartanezka, @FenixFly, @n-berezina-nn, посмотрите, пожалуйста, еще раз. Спасибо!

@valentina-kustikova
Copy link
Contributor

@ismukhin, поняла, что надо еще обновить src/inference/README.md и шаблонные конфиги бенчмарка, поскольку появились новые скрипты запуска с использованием TVM.

Copy link
Contributor

@valentina-kustikova valentina-kustikova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Разобрались с проблемой для модели resnet-50-pytorch при запуске вывода на пачке >1.

@valentina-kustikova valentina-kustikova merged commit 0aed8aa into itlab-vision:master Dec 6, 2023
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants