Теперь это возможно! с большим количеством взлома еще.
Теперь можно запускать ноутбуки OpenVINO на Apple M1/M2! Однако вам нужно скомпилировать его из исходного кода и создать свои собственные колеса с помощью моего пользовательского файла requirements.txt.
Пойдем! Во-первых, давайте создадим колеса!
Сложность заключается в том, чтобы очень внимательно следовать всем шагам. Убедитесь, что Python взят из brew, а все зависимости предустановлены. На этапе сборки также убедитесь, что у вас нет ошибок. После того, как вы выполнили все шаги. Вы должны ожидать колеса в каталоге «wheels».
Кроме того, я бы рекомендовал использовать виртуальную среду Python, чтобы изолировать любые проблемы с зависимостями.
python3.10 -m venv openvino_build source openvino_build/bin/activate
После того, как все прошло хорошо, вы должны увидеть их в папке build.
(openvino_build) rlo@Raymonds-MacBook-Pro-3 wheels % ls -lastrh total 41048 0 drwxr-xr-x 57 rlo staff 1.8K Nov 27 11:43 .. 29656 -rw-r--r-- 1 rlo staff 14M Nov 27 11:43 openvino-2022.3.0-8846-cp310-cp310-macosx_13_0_arm64.whl 0 drwxr-xr-x 4 rlo staff 128B Nov 27 11:43 . 11392 -rw-r--r-- 1 rlo staff 5.6M Nov 27 11:43 openvino_dev-2022.3.0-8846-py3-none-any.whl
На этом этапе вы готовы к установке. Сначала мы должны установить пакет openvino, затем мы установим openvino-dev. Примечание: здесь важен порядок установки.
pip install openvino-2022.3.* pip install openvino_dev*
Далее новые зависимости и изменения.
Я значительно изменил файл requirements.txt, чтобы обойти некоторые проблемы с зависимостями. Например, я удалил строку openvino-dev, а также удалил закрепление версии torch==1.8.1, а также tensorflow теперь называется tensorflow-macos. У NNCF также произошел сбой некоторых жестких зависимостей, поэтому в данный момент он будет отключен.
#rlo@Raymonds-MacBook-Pro-3 openvino_notebooks % cat requirements.txt #openvino-dev[onnx,tensorflow2]==2022.2.0 gdown pytube>=12.1.0 yaspin librosa==0.8.1 # PyTorch/ONNX notebook requirements fastseg ipywidgets # Upgrade onnx version to avoid 220 YOLOV5 pytorch to onnx model export issue on Windows onnx>=1.11.0,<1.12.0 torch; sys_platform == 'darwin' torchvision; sys_platform == 'darwin' --find-links https://download.pytorch.org/whl/torch_stable.html torch==1.8.1+cpu; sys_platform =='linux' or platform_system == 'Windows' torchvision==0.9.1+cpu; sys_platform =='linux' or platform_system == 'Windows' torchmetrics==0.6.2 # PaddlePaddle notebook requirements # For 103 PaddlePaddle MO conversion tutorial and 206 PaddleGAN/AnimeGAN demo paddlepaddle==2.3.* paddlehub<=2.2.0 # paddle2onnx 0.9.7 fails export in 206 and 207 paddle2onnx>=0.6,<=0.9.6 ppgan # BERT quantization notebook requirements transformers # NNCF notebook requirements #git+https://github.com/openvinotoolkit/nncf.git@f62b6629c71822b5241e175e0a03c3acb42ae01e#egg=nncf[tf,torch] #tensorflow>=2.5,<=2.9.1 #tensorflow_datasets==4.2.0 # CT scan training/inference requirements monai==0.9.1 pytorch_lightning # Jupyter requirements jupyterlab # The packages below are not directly required. They are dependencies of # other dependencies that are pinned to a specific version to avoid # compatibility issues or vulnerabilities seaborn>=0.11.0 geffnet==0.9.8 matplotlib<3.4 jedi==0.17.2 setuptools>=56.0.0 Pillow>=8.3.2 ipykernel==5.* ipython==7.16.3 # not directly required, pinned to avoid a vulnerability pygments>=2.7.4 # not directly required, pinned by Snyk to avoid a vulnerability nltk>=3.6.4 # not directly required, pinned by Snyk to avoid a vulnerability rsa>=4.7 # not directly required, pinned by Snyk to avoid a vulnerability scikit-learn>=0.24.2 # not directly required, pinned by Snyk to avoid a vulnerability paddlenlp==2.0.8 # workaround for "cannot import name '_C_ops'" error with paddlehub parasail<=1.2.4 # higher version causes paddle issues nest-asyncio<=1.5.4 jupyter-client<=7.2.0
Затем мы должны установить это, иначе ONNX выдаст ошибки.
brew install protobuf brew link --overwrite protobuf
Затем нам понадобятся automake и libtool, когда мы создадим несколько колес во время установки (мне потребовалось некоторое время, чтобы понять).
brew install automake brew install libtool
Теперь запустите файл requirements.txt. Это займет некоторое время (выпейте кофе сейчас).
pip install -r requirements.txt
Окончательно!
Successfully installed Flask-Babel-2.0.0 aiohttp-3.8.3 aiosignal-1.3.1 anyio-3.6.2 argon2-cffi-21.3.0 argon2-cffi-bindings-21.2.0 astor-0.8.1 async-timeout-4.0.2 attrs-22.1.0 audioread-3.0.0 babel-2.11.0 bce-python-sdk-0.8.74 beautifulsoup4-4.11.1 bleach-5.0.1 cffi-1.15.1 click-8.1.3 colorama-0.4.6 colorlog-6.7.0 cycler-0.11.0 decorator-5.1.1 dill-0.3.6 entrypoints-0.4 fastseg-0.1.2 flask-2.2.2 frozenlist-1.3.3 fsspec-2022.11.0 future-0.18.2 gdown-4.5.4 geffnet-0.9.8 gunicorn-20.1.0 imageio-2.22.4 imageio-ffmpeg-0.4.7 ipykernel-5.5.6 ipython-7.16.3 ipywidgets-8.0.2 itsdangerous-2.1.2 jedi-0.17.2 jinja2-3.1.2 joblib-1.2.0 jsonschema-4.17.1 jupyter-client-7.2.0 jupyter-core-5.0.0 jupyter-server-1.23.3 jupyterlab-3.5.0 jupyterlab-pygments-0.2.2 jupyterlab-server-2.16.3 jupyterlab-widgets-3.0.3 kiwisolver-1.4.4 librosa-0.8.1 llvmlite-0.39.1 matplotlib-3.3.4 monai-0.9.1 multidict-6.0.2 multiprocess-0.70.14 nbclassic-0.4.8 nbclient-0.7.0 nbconvert-7.2.5 nbformat-5.7.0 nest-asyncio-1.5.4 nltk-3.7 notebook-6.5.2 notebook-shim-0.2.2 numba-0.56.4 onnx-1.11.0 paddle2onnx-0.8.1 paddlehub-2.2.0 paddlenlp-2.0.8 paddlepaddle-2.3.2 pandocfilters-1.5.0 parasail-1.2.4 pooch-1.6.0 ppgan-0.1.2 pytorch_lightning-1.6.5 resampy-0.4.2 scikit-image-0.19.3 scikit-learn-1.1.3 seaborn-0.12.1 seqeval-1.2.2 soundfile-0.11.0 terminado-0.17.0 torchmetrics-0.6.2 torchvision-0.14.0 visualdl-2.4.1 yarl-1.8.1 yaspin-2.2.0
Результаты и ограничения
Я обновлю это снова, указав больше ограничений, которые я обнаружил. Но так далеко. Работает (вроде бы)…
Если вы обнаружите какие-либо ошибки или проблемы, вы можете сообщить о проблеме здесь и посмотреть, что сообщество может сделать, чтобы помочь.
GitHub — openvinotoolkit/openvino_contrib: Репозиторий дополнительных модулей OpenVINO
Этот репозиторий предназначен для разработки так называемых «дополнительных модулей, дополненных функциональностью. Новые модули…github.com»