# 使用SNPE（RVC4）进行手动转换

RVC4转换基于高通神经处理SDK……SNPE工具。 我们提供了一个包含所有必要工具的Docker镜像。 安装ModelConverter并运行：

```bash
modelconverter shell rvc4
```

## 概述

这与从 luxonis/modelconverter-rvc4:latest 镜像启动一个新的Docker容器并以交互式终端会话（-it）运行，并使用 --rm 标志确保退出会话后自动移除容器是一样的：

```bash
docker run --rm -it \
    -v $(pwd)/shared_with_container:/app/shared_with_container/ \
    luxonis/modelconverter-rvc4:latest
```

在接下来的部分中，我们将逐步解释转换过程。

> 在为RVC4选择特定的SNPE构建之前，请查看
> [转换故障排除中的SNPE兼容性表](https://docs.luxonis.com/software-v3/ai-inference/conversion/troubleshooting.md)
> ，以确保它与您计划部署的DepthAI和Luxonis OS版本匹配。

## 转换为DLC

首先，将模型转换为深度学习容器（DLC）格式。 支持以下源模型格式：

 * ONNX
 * TensorFlow Lite

如果从 ONNX 转换，请运行：

```bash
snpe-onnx-to-dlc --input_network <指向 .onnx 模型的路径>
```

如果从 TFLite 转换，请运行：

```bash
snpe-tflite-to-dlc --input_network <指向 .tflite 模型的路径>
```

请注意，无需事先简化模型，因为SNPE会自动处理。

> 请查阅
> `snpe-onnx-to-dlc --help`
> 或
> `snpe-tflite-to-dlc --help`
> 获取完整的转换选项列表，或访问官方
> [文档](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2/tools.html#snpe-onnx-to-dlc)
> 。

## 量化（可选）

第二步，转换后的模型被量化为UINT8精度。此步骤是可选的，如果不需要量化，可以跳过。

```bash
snpe-dlc-quant --input_dlc <指向 .dlc 模型的路径>
```

> 请查阅
> `snpe-dlc-quant --help`
> 获取完整的量化选项列表，或访问官方
> [文档](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2/tools.html#snpe-dlc-quant)
> 。

## 图准备

第三步，模型准备在DSP/HTP加速器上运行。

```bash
snpe-dlc-graph-prepare --input_dlc <指向（未）量化 .dlc 模型的路径> --htp_socs sm8550
```

> 请查阅
> `snpe-dlc-graph-prepare --help`
> 获取完整的图准备选项列表，或访问官方
> [文档](https://docs.qualcomm.com/bundle/publicresource/topics/80-63442-2/tools.html#snpe-dlc-graph-prepare)
> 。
