arm平台安装onnx出现的问题记录

arm平台安装onnx==1.6.0 报错如下.

	  CMake Warning at CMakeLists.txt:394 (find_package):
      By not providing "Findpybind11.cmake" in CMAKE_MODULE_PATH this project has
      asked CMake to find a package configuration file provided by "pybind11",
      but CMake did not find one.
    
      Could not find a package configuration file provided by "pybind11"
      (requested version 2.2) with any of the following names:
    
        pybind11Config.cmake
        pybind11-config.cmake
    
      Add the installation prefix of "pybind11" to CMAKE_PREFIX_PATH or set
      "pybind11_DIR" to a directory containing one of the above files.  If
      "pybind11" provides a separate development package or SDK, be sure it has
      been installed.
      /// 下面的不是重点. 错误在上面.
	--
    -- ******** Summary ********
    --   CMake version         : 3.10.2
    --   CMake command         : /usr/bin/cmake
    --   System                : Linux
    --   C++ compiler          : /usr/bin/c++
    --   C++ compiler version  : 7.5.0
    --   CXX flags             :  -Wnon-virtual-dtor
    --   Build type            : Release
    --   Compile definitions   :
    --   CMAKE_PREFIX_PATH     :
    --   CMAKE_INSTALL_PREFIX  : /usr/local
    --   CMAKE_MODULE_PATH     :
    --
    --   ONNX version          : 1.6.0
    --   ONNX NAMESPACE        : onnx
    --   ONNX_BUILD_TESTS      : OFF
    --   ONNX_BUILD_BENCHMARKS : OFF
    --   ONNX_USE_LITE_PROTO   : OFF
    --   ONNXIFI_DUMMY_BACKEND : OFF
    --   ONNXIFI_ENABLE_EXT    : OFF
    --
    --   Protobuf compiler     : /usr/bin/protoc
    --   Protobuf includes     : /usr/include
    --   Protobuf libraries    : /usr/lib/aarch64-linux-gnu/libprotobuf.so;-lpthread
    --   BUILD_ONNX_PYTHON     : ON
    --     Python version      :
    --     Python executable   : /home/firefly/Desktop/AI1.6.1/vvv/bin/python3.6
    --     Python includes     : /usr/include/python3.6m
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /tmp/pip-install-pc9fr36z/onnx_966c7d1f68e74990b7a6797c009e08b1/.setuptools-cmake-build
    Scanning dependencies of target gen_onnx_proto
    Scanning dependencies of target onnxifi_loader
    Scanning dependencies of target onnxifi_dummy
    [  1%] Running gen_proto.py on onnx/onnx.in.proto
    [  3%] Building C object CMakeFiles/onnxifi_dummy.dir/onnx/onnxifi_dummy.c.o
    [  4%] Building C object CMakeFiles/onnxifi_loader.dir/onnx/onnxifi_loader.c.o
    /tmp/pip-install-pc9fr36z/onnx_966c7d1f68e74990b7a6797c009e08b1/onnx/onnxifi_dummy.c: In function ‘onnxGetExtensionFunctionAddress’:
    /tmp/pip-install-pc9fr36z/onnx_966c7d1f68e74990b7a6797c009e08b1/onnx/onnxifi_dummy.c:173:21: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
               *function = &onnxGetExtensionFunctionAddress;
                         ^
    /tmp/pip-install-pc9fr36z/onnx_966c7d1f68e74990b7a6797c009e08b1/onnx/onnxifi_dummy.c:176:21: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
               *function = &onnxSetIOAndRunGraph;
                         ^
    [  6%] Linking C static library libonnxifi_loader.a
    Processing /tmp/pip-install-pc9fr36z/onnx_966c7d1f68e74990b7a6797c009e08b1/onnx/onnx.in.proto
    Writing /tmp/pip-install-pc9fr36z/onnx_966c7d1f68e74990b7a6797c009e08b1/.setuptools-cmake-build/onnx/onnx-ml.proto
    Writing /tmp/pip-install-pc9fr36z/onnx_966c7d1f68e74990b7a6797c009e08b1/.setuptools-cmake-build/onnx/onnx-ml.proto3
    generating /tmp/pip-install-pc9fr36z/onnx_966c7d1f68e74990b7a6797c009e08b1/.setuptools-cmake-build/onnx/onnx_pb.py
    [  8%] Running C++ protocol buffer compiler on /tmp/pip-install-pc9fr36z/onnx_966c7d1f68e74990b7a6797c009e08b1/.setuptools-cmake-build/onnx/onnx-ml.proto
    [  9%] Linking C shared library libonnxifi_dummy.so
    [  9%] Built target onnxifi_loader
    Scanning dependencies of target onnxifi_wrapper
    [ 11%] Building C object CMakeFiles/onnxifi_wrapper.dir/onnx/onnxifi_wrapper.c.o
    [ 11%] Built target onnxifi_dummy
    Writing mypy to onnx/onnx_ml_pb2.pyi
    [
<think>好的,我现在需要帮助用户了解如何在云平台上部署ONNX模型。用户还提到了需要教程和最佳实践,所以我得整理这方面的信息。 首先,我应该回忆一下ONNX的相关知识。根据引用[1],ONNX提供了跨平台的能力,方便模型集成到不同操作系统的应用中。而ONNX Runtime由微软开发,支持多种硬件,如CPU、GPU,甚至是AMD和ARM架构,这对云平台部署很重要,因为云环境可能有不同的硬件配置。 接下来,用户的问题是关于云平台的具体部署步骤和最佳实践。我需要分步骤来解答。可能包括环境准备、模型转换、部署方式、优化策略以及监控和维护。 然后,考虑到云平台的不同,比如AWS、Azure、GCP,或者阿里云,每个平台可能有不同的工具和服务。但为了通用性,或许应该提到容器化部署,比如使用Docker和Kubernetes,这样不依赖于特定云服务商。引用[3]提到ONNX模型本身只是网络结构和权重,需要推理支持,所以需要运行时的环境,比如ONNX Runtime。 另外,模型优化是关键。可能涉及量化(Quantization)和模型压缩,引用[2]提到ONNX Runtime支持多种硬件,优化性能可能需要使用这些技术。同时,多硬件兼容性也是最佳实践的一部分。 还要考虑安全性,比如API的安全措施,HTTPS和身份验证。监控部分需要日志记录和性能指标,确保模型在云上稳定运行。 最后,生成相关问题,可能需要涵盖部署工具、优化方法、性能提升、安全措施以及多框架支持等。 需要注意的是,确保所有数学公式和代码块按照用户的格式要求处理,比如行内公式用$...$,独立公式用$$...$$,并且正确使用引用标注。回答结构要清晰,步骤分明,帮助用户逐步解决问题。</think>### ONNX模型云平台部署分步指南 #### 一、部署前准备 1. **模型格式转换** 将训练好的模型转换为ONNX格式,支持PyTorch/TensorFlow等框架导出: ```python # PyTorch示例 import torch.onnx torch.onnx.export(model, dummy_input, "model.onnx") ``` 验证模型有效性: ```bash python -m onnxruntime.tools.check_onnx_model model.onnx ``` 2. **云环境选择** - 硬件配置:根据模型复杂度选择CPU/GPU实例(推荐使用NVIDIA T4/A100 GPU加速) - 容器化准备:创建包含ONNX Runtime的Docker镜像[^2] ```dockerfile FROM python:3.8-slim RUN pip install onnxruntime-gpu COPY model.onnx /app/ ``` #### 二、部署实施 1. **服务封装** 创建REST API服务层: ```python from fastapi import FastAPI import onnxruntime as ort app = FastAPI() sess = ort.InferenceSession("model.onnx") @app.post("/predict") def predict(input_data: dict): return {"result": sess.run(None, input_data)[0]} ``` 2. **弹性部署方案** | 云平台 | 推荐服务 | 特点 | |----------|-----------------|--------------------------| | AWS | SageMaker | 自动扩展/内置监控 | | Azure | Kubernetes服务 | 深度集成ONNX Runtime | | GCP | AI Platform | TPU支持/流量管理 | 3. **性能优化实践** - 启用并行推理:设置`session_options.intra_op_num_threads = 8` - 量化压缩:使用`onnxruntime.quantization`模块实现FP16/INT8量化 - 缓存机制:对高频请求建立结果缓存池 #### 三、安全与监控 1. **安全防护** - 启用HTTPS加密传输 - 配置API网关的请求频率限制 - 使用JWT令牌身份验证 2. **监控体系** ```mermaid graph TD A[Prometheus指标收集] --> B[Grafana可视化] C[ELK日志分析] --> D[异常告警] ``` #### 四、最佳实践要点 1. 使用ONNX Runtime 1.12+版本,其CUDA EP性能提升40% 2. 对图像类模型启用IO Binding减少内存拷贝 3. 采用蓝绿部署方式实现无缝更新
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值