«Это второй день моего участия в первом испытании обновления 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 и процесс автономного рассуждения》