在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):onnx/onnx开源软件地址(OpenSource Url):https://github.com/onnx/onnx开源编程语言(OpenSource Language):C++ 52.6%开源软件介绍(OpenSource Introduction):Open Neural Network Exchange (ONNX) is an open ecosystem that empowers AI developers to choose the right tools as their project evolves. ONNX provides an open source format for AI models, both deep learning and traditional ML. It defines an extensible computation graph model, as well as definitions of built-in operators and standard data types. Currently we focus on the capabilities needed for inferencing (scoring). ONNX is widely supported and can be found in many frameworks, tools, and hardware. Enabling interoperability between different frameworks and streamlining the path from research to production helps increase the speed of innovation in the AI community. We invite the community to join us and further evolve ONNX. Use ONNXLearn about the ONNX spec
Programming utilities for working with ONNX GraphsContributeONNX is a community project. We encourage you to join the effort and contribute feedback, ideas, and code. You can participate in the Special Interest Groups and Working Groups to shape the future of ONNX. Check out our contribution guide to get started. If you think some operator should be added to ONNX specification, please read this document. DiscussWe encourage you to open Issues, or use Slack (If you have not joined yet, please use this link to join the group) for more real-time discussion. Follow UsStay up to date with the latest ONNX news. [Facebook] [Twitter] InstallationOfficial Python packagesONNX released packages are published in PyPi.
Weekly packages are published in test pypi to enable experimentation and early testing. Conda packagesA binary build of ONNX is available from Conda, in conda-forge:
You can also use the onnx-dev docker image for a Linux-based installation without having to worry about dependency versioning. Build ONNX from SourceBefore building from source uninstall any existing versions of onnx Generally speaking, you need to install protobuf C/C++ libraries and tools before proceeding forward. Then depending on how you installed protobuf, you need to set environment variable CMAKE_ARGS to "-DONNX_USE_PROTOBUF_SHARED_LIBS=ON" or "-DONNX_USE_PROTOBUF_SHARED_LIBS=OFF". For example, you may need to run the following command: Linux: export CMAKE_ARGS="-DONNX_USE_PROTOBUF_SHARED_LIBS=ON" Windows: set CMAKE_ARGS="-DONNX_USE_PROTOBUF_SHARED_LIBS=ON" The ON/OFF depends on what kind of protobuf library you have. Shared libraries are files ending with *.dll/*.so/*.dylib. Static libraries are files ending with *.a/*.lib. This option depends on how you get your protobuf library and how it was built. And it is default OFF. You don't need to run the commands above if you'd prefer to use a static protobuf library. WindowsIf you are building ONNX from source, it is recommended that you also build Protobuf locally as a static library. The version distributed with conda-forge is a DLL, but ONNX expects it to be a static library. Building protobuf locally also lets you control the version of protobuf. The tested and recommended version is 3.16.0. The instructions in this README assume you are using Visual Studio. It is recommended that you run all the commands from a shell started from "x64 Native Tools Command Prompt for VS 2019" and keep the build system generator for cmake (e.g., cmake -G "Visual Studio 16 2019") consistent while building protobuf as well as ONNX. You can get protobuf by running the following commands: git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git checkout v3.16.0
cd cmake
cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX=<protobuf_install_dir> -Dprotobuf_MSVC_STATIC_RUNTIME=OFF -Dprotobuf_BUILD_SHARED_LIBS=OFF -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_EXAMPLES=OFF .
msbuild protobuf.sln /m /p:Configuration=Release
msbuild INSTALL.vcxproj /p:Configuration=Release Then it will be built as a static library and installed to <protobuf_install_dir>. Please add the bin directory(which contains protoc.exe) to your PATH. set PATH=<protobuf_install_dir>/bin;%PATH% Please note: if your protobuf_install_dir contains spaces, do not add quotation marks around it. Alternative: if you don't want to change your PATH, you can set ONNX_PROTOC_EXECUTABLE instead. set CMAKE_ARGS=-DONNX_PROTOC_EXECUTABLE=<full_path_to_protoc.exe> Then you can build ONNX as:
LinuxFirst, you need to install protobuf. The minimum Protobuf compiler (protoc) version required by ONNX is 3.0.0. Please note that old protoc versions might not work with Ubuntu 18.04 (and newer) users may choose to install protobuf via apt-get install python3-pip python3-dev libprotobuf-dev protobuf-compiler In this case, it is required to add A more general way is to build and install it from source. See the instructions below for more details. Installing Protobuf from sourceDebian/Ubuntu: git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git checkout v3.16.0
git submodule update --init --recursive
mkdir build_source && cd build_source
cmake ../cmake -Dprotobuf_BUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_POSITION_INDEPENDENT_CODE=ON -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
make install CentOS/RHEL/Fedora: git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git checkout v3.16.0
git submodule update --init --recursive
mkdir build_source && cd build_source
cmake ../cmake -DCMAKE_INSTALL_LIBDIR=lib64 -Dprotobuf_BUILD_SHARED_LIBS=OFF -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_SYSCONFDIR=/etc -DCMAKE_POSITION_INDEPENDENT_CODE=ON -Dprotobuf_BUILD_TESTS=OFF -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
make install Here "-DCMAKE_POSITION_INDEPENDENT_CODE=ON" is crucial. By default static libraries are built without "-fPIC" flag, they are not position independent code. But shared libraries must be position independent code. Python C/C++ extensions(like ONNX) are shared libraries. So if a static library was not built with "-fPIC", it can't be linked to such a shared library. Once build is successful, update PATH to include protobuf paths. Then you can build ONNX as:
Mac
Once build is successful, update PATH to include protobuf paths. Then you can build ONNX as:
Verify InstallationAfter installation, run
to verify it works. Common Build OptionsFor full list refer to CMakeLists.txt Environment variables
CMake variables
Common Errors
TestingONNX uses pytest as test driver. In order to run tests, you will first need to install pytest:
After installing pytest, use the following command to run tests.
DevelopmentCheck out the contributor guide for instructions. LicenseCode of ConductONNX Open Source Code of Conduct |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论