Skip to content

Commit 8cf3fbf

Browse files
IREE inference
1 parent ec4106e commit 8cf3fbf

File tree

5 files changed

+477
-0
lines changed

5 files changed

+477
-0
lines changed

src/inference/README.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
1. ncnn.
1818
1. PaddlePaddle.
1919
1. Spektral.
20+
1. IREE.
2021

2122
## Вывод глубоких моделей с использованием Inference Engine
2223

@@ -1482,6 +1483,82 @@ python inference_ncnn.py --model <model_name> \
14821483
--batch_size <batch_size>
14831484
```
14841485

1486+
## Вывод глубоких моделей с использованием IREE
1487+
1488+
#### Аргументы командной строки
1489+
1490+
Название скрипта:
1491+
1492+
```bash
1493+
inference_iree.py
1494+
```
1495+
1496+
Обязательные аргументы:
1497+
1498+
- `-m / --model` - путь до vmfb-файла, содержащего скомпилированную модель.
1499+
- `-fn / --function_name` - название функции, которая будет вызвана IREE для исполнения модели.
1500+
- `-i / --input` - путь до изображения или директории с изображениями
1501+
(расширения файлов `.jpg`, `.png`, `.bmp` и т.д.).
1502+
- `-is / --input_shape` - размеры входного тензора сети в формате
1503+
BxCxWxH, B - размер пачки, C - количество каналов изображений,
1504+
W - ширина изображений, H - высота изображений.
1505+
1506+
Опциональные аргументы:
1507+
1508+
- `-b / --batch_size` - количество изображений, которые будут обработаны
1509+
за один проход сети. По умолчанию равно `1`.
1510+
- `-ni / --number_iter` - количество прямых проходов по сети.
1511+
По умолчанию выполняется один проход по сети.
1512+
- `--time` - время выполнения инференса в секундах. Этот параметр можно
1513+
задать вместо задать вместо параметра `-ni / --number_iter`. Если
1514+
одновременно указать и `-ni / --number_iter` и `--time`,
1515+
то будет учитываться тот параметр, при котором инферес работает дольше.
1516+
- `--layout` - формат входных тензоров. По умолчанию `NHWС`.
1517+
- `--channel_swap` - порядок перестановки цветовых каналов изображения.
1518+
Загрузка изображений осуществляется в формате BGR (порядок
1519+
соответствует `(0, 1, 2)`), а большинство нейронных сетей принимают
1520+
на вход изображения в формате RGB, поэтому по умолчанию порядок
1521+
`(2, 1, 0)`.
1522+
- `--norm` - флаг необходимости нормировки изображений.
1523+
Среднее и среднеквадратическое отклонение, которые принимаются
1524+
на вход указываются в следующих двух аргументах.
1525+
- `--mean` - среднее значение интенсивности, которое вычитается
1526+
из изображений в процессе нормировки. По умолчанию
1527+
данный параметр принимает значение `0 0 0`.
1528+
- `--std` - среднеквадратическое отклонение интенсивности, на которое
1529+
делится значение интенсивности каждого пикселя входного изображения
1530+
в процессе нормировки. По умолчанию данный параметр принимает значение `1 1 1`.
1531+
- `-t / --task` - название задачи. Текущая реализация поддерживает
1532+
решение задачи классификации (`classification`). По умолчанию принимает значение `feedforward`.
1533+
- `-nt / --number_top` - количество лучших результатов, выводимых
1534+
при решении задачи классификации. По умолчанию выводится `10` наилучших
1535+
результатов.
1536+
- `-l / --labels`- путь до файла в формате JSON с перечнем меток
1537+
при решении задачи. По умолчанию принимает значение
1538+
`image_net_labels.json`, что соответствует меткам набора данных
1539+
ImageNet.
1540+
- `-d / --device` - оборудование, на котором выполняется вывод сети.
1541+
Поддерживается вывод на CPU (значение параметра `CPU`). По умолчанию принимает значение `CPU`.
1542+
- `--raw_output` - работа скрипта без логов. По умолчанию не установлен.
1543+
- `--report_path` - путь до файла с отчетом в формате `.json`.
1544+
1545+
1546+
#### Примеры запуска
1547+
1548+
**Командная строка для решения задачи классификации изображений**
1549+
1550+
```bash
1551+
python3 inference_iree.py \
1552+
-t classification -i <path_to_image>/<image_name> \
1553+
-m <path_to_model>/<model_name>.vmfb \
1554+
--function_name main_graph \
1555+
--input_shape 1 3 224 224 \
1556+
--labels <path_to_labels>/image_net_synset.txt
1557+
```
1558+
1559+
Результат выполнения: набор наиболее вероятных классов, которым принадлежит
1560+
изображение.
1561+
14851562
<!-- LINKS -->
14861563
[execution_providers]: https://onnxruntime.ai/docs/execution-providers
14871564
[gluon_modelzoo]: https://cv.gluon.ai/model_zoo/index.html
@@ -1492,3 +1569,4 @@ python inference_ncnn.py --model <model_name> \
14921569
[dgl]: https://www.dgl.ai/pages/start.html
14931570
[ogb]: https://ogb.stanford.edu/
14941571
[tensorflow-gpu]: https://www.tensorflow.org/install/pip
1572+
[iree]: https://iree.dev/

0 commit comments

Comments
 (0)