Build from Source
Dieses Projekt unterstützt Python und kann einfach aus dem Quellcode kompiliert werden, oder eine einfache CMake-Kompilierung ohne Python-Abhängigkeit.
Python-Paket
Das Paket enthält alle benutzerdefinierten Operatoren und einige Python-Skripte zur Manipulation der ONNX-Modelle.
- Installieren Sie Visual Studio mit C++-Entwicklungstools unter Windows oder gcc (>8.0) für Linux oder xcode für macOS und CMake auf Unix-ähnlichen Plattformen. (Hinweise: Unter Windows, wenn CMake, das in Visual Studio gebündelt ist, verwendet wurde, geben Sie bitte das Set VSDEVCMD=%ProgramFiles(x86)%\Microsoft Visual Studio<VERSION_YEAR><Edition>\Common7\Tools\VsDevCmd.bat an)
- Wenn Sie unter Windows arbeiten, stellen Sie sicher, dass lange Dateinamen sowohl für das Betriebssystem als auch für Git aktiviert sind:
git config --system core.longpaths true - Bereiten Sie die Python-Umgebung vor und installieren Sie die Pip-Pakete aus der requirements.txt.
pip install .zum Erstellen und Installieren des Pakets.
ODERpip install -e .zum Installieren des Pakets im Entwicklungsmodus, was für Entwickler freundlicher ist, da Codeänderungen in Python wirksam werden, ohne die Dateien an einen anderen Speicherort auf der Festplatte kopieren zu müssen. (Hinweise: debug=1 in setup.cfg macht den C++-Code in einem Python-Prozess debuggbar.)
Test
- ‘pip install -r requirements-dev.txt’ zum Installieren von Pip-Paketen für die Entwicklung.
- führen Sie
pytest testim Stammverzeichnis des Projekts aus.
Eine vollständige Liste der verifizierten Build-Konfigurationen finden Sie hier
Java-Paket
Führen Sie bash ./build.sh -DOCOS_BUILD_JAVA=ON aus, um das Jar-Paket in out/ zu erstellen
Android-Paket
- Voraussetzungen: Android Studio
Verwenden Sie ./tools/android/build_aar.py, um ein Android AAR-Paket zu erstellen.
iOS-Paket
Verwenden Sie ./tools/ios/build_xcframework.py, um ein iOS xcframework-Paket zu erstellen.
Web-Assembly
ONNXRuntime-Extensions wird als statische Bibliothek kompiliert und mit ONNXRuntime verknüpft, da es in WASM keinen guten Mechanismus für dynamisches Verknüpfen gibt. Hier sind zwei zusätzliche Argumente –-use_extensions und –extensions_overridden_path zum Kompilieren von onnxruntime, um den Footprint von ONNXRuntime-Extensions im ONNXRuntime-Paket zu berücksichtigen.
Die C++-Shared-Bibliothek
Für alle anderen Fälle führen Sie build.bat oder bash ./build.sh aus, um die Bibliothek zu erstellen. Standardmäßig wird die DLL oder die Bibliothek im Verzeichnis out/<OS>/<FLAVOR> generiert. Es gibt einen Unit-Test, der hilft, den Build zu überprüfen.
VC Runtime statische Verknüpfung Wenn Sie die Binärdatei mit statischer Verknüpfung der VC Runtime erstellen möchten, fügen Sie beim Ausführen von build.bat den Parameter _-DCMAKE_MSVC_RUNTIME_LIBRARY=”MultiThreaded$<$
Copyright-Richtlinien
Überprüfen Sie diesen Link https://docs.opensource.microsoft.com/releasing/general-guidance/copyright-headers/ für den Copyright-Header von Quelldateien.
ONNX Runtime mit onnxruntime-extensions für Java-Paket erstellen
Die folgenden Schritte werden nur für die Windows-Plattform gezeigt. Andere Plattformen wie Linux und MacOS können ähnlich konfiguriert werden.
Der Android-Build wurde ebenfalls unterstützt. Informationen zu den Argumenten für den Build eines AAR-Pakets finden Sie hier.
Benötigte Werkzeuge
- Installieren Sie Visual Studio 2022 (mit CMake, Git, Desktop C++)
- Installieren Sie Miniconda für Python-Unterstützung (für den ONNX Runtime-Build)
- OpenJDK: https://docs.microsoft.com/en-us/java/openjdk/download (OpenJDK 11.0.15 LTS)
- Gradle: https://gradle.org/releases/ (v6.9.2)
Befehle
Starten Sie **Developer PowerShell für VS 2022** in Windows Terminal
. $home\miniconda3\shell\condabin\conda-hook.ps1
conda activate base
$env:JAVA_HOME="C:\Program Files\Microsoft\jdk-11.0.15.10-hotspot"
# clone ONNXRuntime
git clone -b rel-1.12.0 https://github.com/microsoft/onnxruntime.git onnxruntime
# clone onnxruntime-extensions
git clone https://github.com/microsoft/onnxruntime-extensions.git onnxruntime_extensions
# build JAR package in this folder
mkdir ortall.build
cd ortall.build
python ..\onnxruntime\tools\ci_build\build.py --config Release --cmake_generator "Visual Studio 17 2022" --build_java --build_dir . --use_extensions --extensions_overridden_path "..\onnxruntime-extensions"
Abhängigkeiten
Die folgende Matrix listet die Versionen der einzelnen Abhängigkeiten von onnxruntime-extensions auf. Dies sind die Konfigurationen, die regelmäßig und umfassend von unserer CI verifiziert werden.
| Python | 3.8 | 3.9 | 3.10 | 3.11 |
|---|---|---|---|---|
| Onnxruntime | 1.12.1 (4. August 2022) | 1.13.1 (24. Oktober 2022) | 1.14.1 (2. März 2023) | 1.15.0 (24. Mai 2023) |