ONNX Runtime是由微软开发的一个高性能、可扩展、跨平台的推理引擎,用于运行ONNX(Open Neural Network Exchange)格式的机器学习模型。ONNX是一个跨平台、可扩展的开源模型交换格式,被许多常见的深度学习框架支持,用于导出模型。ONNX Runtime对ONNX模型进行了最原生的支持,并提供了简单易用的API,使得用户能够方便地进行模型推理。
ONNX Runtime支持多种运行后端,包括CPU、GPU、TensorRT、DML等,这意味着用户可以在不同的硬件平台上高效运行模型。此外,ONNX Runtime还支持多种编程语言,如C++、Python、Java等,为开发者提供了更广泛的选择。
随着人工智能的快速发展,越来越多的深度学习模型被应用到实际场景中。然而,由于深度学习框架众多,模型格式不统一,这给模型的部署和推理带来了挑战。ONNX Runtime的出现,为这一问题提供了解决方案。通过统一模型格式,并使用一套高效代码进行推理,ONNX Runtime使得模型的部署和推理变得更加便捷和高效。
此外,ONNX Runtime还具有一定的训练能力。例如,ONNX Runtime Training于2021年4月发布,可加快PyTorch对模型训练的速度,并可通过CUDA加速,目前多用于Linux平台。
许多业界领先的企业正在积极将自己的技术与ONNX Runtime实现集成和整合,以使自己的服务能够完整支持ONNX规范,并实现性能的最优化。同时,由于其自身只包含推理功能,ONNX Runtime的源码相对较为简洁易懂,通过阅读其源码,可以非常清晰地理解深度学习框架的一些核心功能原理,如op注册、内存管理、运行逻辑等。
总的来说,ONNX Runtime是一个强大而灵活的推理引擎,它为用户提供了高效、便捷的模型推理和训练能力,推动了人工智能技术的发展和应用。
ONNX Runtime与树莓派的结合为机器学习模型在边缘计算设备上的部署和推理提供了强大的支持。ONNX Runtime作为一个高性能的推理引擎,能够高效运行ONNX格式的机器学习模型,而树莓派则作为一款低成本、高性能的边缘计算设备,为机器学习应用的部署提供了理想的硬件平台。
在树莓派上安装ONNX Runtime,可以使得机器学习模型在树莓派上直接进行推理,无需将数据传回云端进行处理,从而大大减少了数据传输的延迟和成本。这对于一些实时性要求较高的应用,如智能家居、智能安防等,具有非常重要的意义。
同时,树莓派的开源性和可扩展性也为ONNX Runtime的应用提供了广阔的空间。开发者可以根据自己的需求,通过编写代码来调用ONNX Runtime的API,实现各种复杂的机器学习功能。此外,树莓派还支持多种传感器和接口,使得机器学习模型能够与环境进行交互,实现更加智能化的应用。
在将ONNX Runtime与树莓派结合时,需要注意一些技术细节。首先,需要确保树莓派的硬件性能和操作系统版本能够满足ONNX Runtime的要求。其次,需要正确安装和配置ONNX Runtime,以便能够正确加载和运行ONNX格式的模型。最后,还需要对模型进行优化和调试,以确保其在树莓派上的推理性能达到最佳状态。
总的来说,ONNX Runtime与树莓派的结合为机器学习在边缘计算领域的应用提供了强大的支持,为开发者提供了更加灵活和高效的解决方案。随着技术的不断发展,相信未来这种结合将会得到更广泛的应用和推广。
似乎树莓派64位系统的 wheels 包还没有,有的话后续会更新一下,先拉源码编译一下。Python用的是 3.11版本的。
查看系统:
uname -a
Linux raspberrypi 6.1.0-rpi8-rpi-2712 #1 SMP PREEMPT Debian 1:6.1.73-1+rpt1 (2024-01-25) aarch64 GNU/Linux
cmake 版本最低要求是 3.26
cmake_minimum_required(VERSION 3.26)
可以用下面命令查看:
cmake --version
1、一些依赖安装
sudo apt-get install libssl-dev
如果买的pi内存比较小,可以先申请扩大一下虚拟内存
sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile
# 将 CONF_SWAPSIZE=100 改成如 CONF_SWAPSIZE=2048 就是 分配2GB的虚拟内存,具体看SD剩余空间
sudo dphys-swapfile setup
sudo dphys-swapfile swapon
# 重启系统
sudo reboot
2、安装cmake
wget https://github.com/Kitware/CMake/archive/refs/tags/v3.28.0.tar.gz
tar -zxvf CMake-3.28.0.tar.gz
cd CMake-3.28.0/
mkdir build && cd build
../bootstrap && make
sudo make install
3、安装 pybind
git clone https://github.com/pybind/pybind11.git
cd pybind11/
mkdir build
cd build/
cmake ..
make -j4
sudo make install
4、编译 onnxruntime
./build.sh --config RelWithDebInfo --build_shared_lib --parallel --compile_no_warning_as_error --skip_submodule_sync --cmake_extra_defines CMAKE_OSX_ARCHITECTURES="arm64" --build_wheel
漫长编译完成后,会生成 wheel 安装包,在 build/Linux/RelWithDebInfo/dist 目录下,安装wheel包:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple onnxruntime-1.18.0-cp311-cp311-linux_aarch64.whl
安装成功: