快捷方式

常见问题

本页汇总了常见问题,并提供了采用 ExecuTorch 时常遇到问题的指导。

如果此处未涵盖特定问题,请考虑在 GitHub 的 IssuesDiscussions 中搜索或创建问题。

安装

缺少 /usr/include/python3.x

很可能需要安装 python-dev 库。请运行

sudo apt install python<version>-dev

如果您使用 Ubuntu,或者使用等效的安装命令。

导出

缺少 out 变体: { _ }

模型可能包含 torch 自定义运算符。自定义运算符需要 Executorch 实现,并且需要在导出时加载。请参阅ExecuTorch 自定义运算符文档,了解具体操作方法。

RuntimeError: op _ 的 PyTorch 转换函数未实现

模型可能包含 ExecuTorch 尚不支持的运算符。在这种情况下,请考虑在 GitHub 上搜索或创建问题。

运行时

ExecuTorch 错误码定义在 executorch/core/runtime/error.h 中。

推理缓慢 / 性能故障排除

如果从源代码构建运行时,请确保构建在发布模式下完成。对于 CMake 构建,可以通过传递 -DCMAKE_BUILD_TYPE=Release 来实现。

确保模型已委托。如果未针对特定加速器,请使用 XNNPACK 委托以提高 CPU 性能。未委托的运算符通常会回退到 ExecuTorch 可移植库,该库设计为备用,不适用于性能敏感的运算符。要针对 XNNPACK,请将 XnnpackPartitioner 传递给 to_edge_transform_and_lower。有关更多信息,请参阅使用 XNNPACK 后端构建和运行 ExecuTorch

线程数对 CPU 性能有显著影响。最佳线程数可能取决于模型和应用程序。默认情况下,ExecuTorch 目前会使用与核心数一样多的线程。考虑将线程数设置为核心数 / 2,或者在移动 CPU 上直接设置为 4。

可以使用以下函数设置线程数。请确保在加载或运行模型之前完成此操作。

::executorch::extension::threadpool::get_threadpool()->_unsafe_reset_threadpool(num_threads);

为了更深入地研究模型性能,ExecuTorch 支持运算符级别的性能分析。有关更多信息,请参阅使用 ExecuTorch 开发者工具对模型进行性能分析

缺少日志

ExecuTorch 提供了用于路由运行时日志的钩子。默认情况下,日志会发送到 stdout/stderr,但用户可以覆盖 et_pal_emit_log_message 将日志路由到自定义目标。Android 和 iOS 扩展还提供开箱即用的日志路由到相应的平台日志。有关更多信息,请参阅运行时平台抽象层 (PAL)

设置输入错误: 0x10 / 尝试调整有界 Tensor 大小…

这通常意味着提供的输入与模型导出期间使用的示例输入的形状不匹配。如果模型预计处理可变大小的输入(动态形状),请确保模型导出指定了适当的边界。有关指定动态形状的更多信息,请参阅表达动态性

错误 0x14(运算符缺失)

这通常意味着选择性构建配置不正确。请确保运算符库是从当前版本的模型生成的,并且相应的 et_operator_library 是应用级别 executorch_generated_lib 的依赖项,并且生成的库已链接到应用程序中。

如果 ExecuTorch 可移植库尚未实现给定 ATen 运算符,也可能发生此问题。在这种情况下,请考虑在 GitHub 上搜索或创建问题。

错误 0x20(未找到)

此错误可能由于多种原因发生,但最常见的是缺少后端目标。请确保已链接相应的后端目标。对于 XNNPACK,即 xnnpack_backend。如果后端已链接但仍不可用,请尝试使用 --whole-archive 进行链接:-Wl,--whole-archive libxnnpack_backend.a -Wl,--no-whole-archive

重复内核注册中止

这表现为崩溃调用堆栈包含 ExecuTorch 内核注册,并因 et_pal_abort 而失败。这通常意味着应用程序中链接了多个 gen_operators_lib 目标。每个目标只能有一个生成的运算符库,尽管每个模型可以有自己的 gen_selected_ops/generate_bindings_for_kernels 调用。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源