[Обоснование модели] Количественная оценка Cambrian MLU resnet50 и процесс автономного рассуждения

искусственный интеллект
[Обоснование модели] Количественная оценка Cambrian MLU resnet50 и процесс автономного рассуждения

  «Это второй день моего участия в первом испытании обновления 2022 года. Подробную информацию о мероприятии см.:Вызов первого обновления 2022 г."

欢迎关注我的公众号 [极智视界]

Привет всем, я очень мудрая перспектива. В этой статье описывается процесс квазирования и оффлайн рассуждения в Cambrian MLU.

  В основном это включает в себя создание среды Cambricon pytorch, квантование resnet50 и автономное рассуждение resnet50. Серия resnet является стандартной моделью, и другие модели также могут быть выполнены со ссылкой на этот процесс.

1. Конфигурация среды Cambricon Pytorch

  Об этом писала статья раньше "[Обмен опытом] Компиляция исходного кода Cambrian MLU270 pytorch-mlu", вы можете обратиться к компиляции и созданию среды Cambricon Pytorch.

После сборки среды Cambricon Pytorch в соответствии с процессом убедитесь, что среда нормальная, откройте ${PYTORCH_HOME}/build/lib (/opt/cambricon/pytorch/src/pytorch/build/lib), если компиляция генерирует libtorch_python. so и libtorch.so и другие файлы, это означает, что Cambricon PyTorch успешно скомпилирован:

2. количественные рассуждения resnet50

2.1 Квантование модели

cd $HOME/pytorch/tools
./quanti_model.sh

  где содержимое в quanti_model.sh:

python quantification_tool.py -model_name resnet50 -data_scale 1.0 -mean 0.485 0.456 0.456 -std 0.229 0.224 0.225 -resize 224 -crop 224 -used_images_num 5 -quantize_mode int8 -save_model_path /opt/cambricon/pytorch/models/int8 -save_name resnet50-19c8e357
  • Описание параметра:
    • -model_name: название модели;
    • -data_scale: максимальное и минимальное масштабирование;
    • -mean: среднее значение параметра квантования;
    • -std: квантованная дисперсия параметра;
    • -resize: настройка размера изображения при препроцессинге;
    • -crop: обрезать размер изображения;
    • -used_images_num: количество изображений, используемых при квантовании;
    • -quantize_mode: точность квантования;
    • -save_model_path: путь сохранения после квантования модели;
    • -save_name: имя модели после квантования;

  Взгляните на вывод терминала:

2.2 Переход на оффлайн модель

  Установите python3-tk

sudo apt install python3-tk

  Выполните преобразование модели в автономном режиме:

cd $HOME/pytorch/tools

python genoff_test_resnet50.py

  Содержимое genoff_test_resnet5.py:

import sys
import torch
import torch.nn as nn
from torchvision.models.resnet import resnet50

net = resnet50(pretrained=False, progress=True)
net.load_state_dict(torch.load('/opt/cambricon/pytorch/models/int8/resnet50-19c8e357.pth',map_location='cpu'),strict=False)
net.eval().float().mlu()
net.set_core_number(16)
example_mlu = torch.randn(16,3,224,224,dtype=torch.float).mlu()
net = torch.jit.trace(net,example_mlu, check_trace=False)
net(example_mlu)
net.save('/opt/cambricon/pytorch/models/resnet50_int8_offline',True)

2.3 Рассуждение в автономном режиме

  Выполнение автономного вывода:

cd $HOME/pytorch/tools

./inference_resnet50.sh

  Среди них содержимое inference_resnet50.sh:

/opt/cambricon/pytorch/src/pytorch/test/offline_examples/build/clas_offline_multicore/clas_offline_multicore -offlinemodel /opt/cambricon/pytorch/models/resnet50_int8_offline.cambricon -images file_list_for_release -labels synset_words.txt -simple_compile 2 -input_format 0
  • Описание параметра:
    • -offlinemodel: путь к оффлайн модели;
    • -images: текстовый файл списка изображений;
    • -labels: файл этикеток;
    • -simple_compile: включить функцию простой компиляции, Cambricon Runtime автоматически выделяет оптимальные программные и аппаратные ресурсы в соответствии с параметрами core_number и batch_size автономной модели;
    • -input_format: укажите порядок каналов входного изображения при запуске сети и выполните соответствующую предварительную обработку входного изображения в соответствии с этим параметром. Поддерживает порядок каналов входных изображений RGB, RGBA и ARGB. 0 означает RGB, 1 означает RGBA, 2 означает ARGB;

  Окончательный результат вывода выглядит следующим образом:

  Выше был описан процесс квантования int8 resnet50, переноса автономной модели и автономного рассуждения, когда передним интерфейсом Cambrian MLU является Cambricon Pytorch, что также должно быть полезно для количественного анализа других моделей в Cambrian.


【Передача по общему номеру】 "[Обоснование модели] Количественная оценка Cambrian MLU resnet50 и процесс автономного рассуждения