StebsV2
StebsV2

Reputation: 63

Tensorflow Object Detection Api M1 Macbook Conflict Error

Machine: MacBook Air M1 2020

OS: macOs BigSur 11.4

Python version of venv: Python 3.8.6

Tensorflow version: ATF Apple Tensorflow 0.1a3

Pip version: 21.2.4

I have installed Tensorflow from github using this guide.


Now, my pip list is this.

Package                 Version
----------------------- ---------
absl-py                 0.13.0
appnope                 0.1.2
astunparse              1.6.3
backcall                0.2.0
cached-property         1.5.2
cachetools              4.2.2
certifi                 2021.5.30
charset-normalizer      2.0.4
cycler                  0.10.0
Cython                  0.29.24
debugpy                 1.4.1
decorator               5.0.9
entrypoints             0.3
flatbuffers             2.0
gast                    0.5.2
google-auth             1.35.0
google-auth-oauthlib    0.4.5
google-pasta            0.2.0
grpcio                  1.33.2
h5py                    2.10.0
idna                    3.2
ipykernel               6.2.0
ipython                 7.26.0
ipython-genutils        0.2.0
jedi                    0.18.0
jupyter-client          7.0.1
jupyter-core            4.7.1
Keras-Preprocessing     1.1.2
kiwisolver              1.3.1
Markdown                3.3.4
matplotlib              3.4.3
matplotlib-inline       0.1.2
nest-asyncio            1.5.1
numpy                   1.18.5
oauthlib                3.1.1
opt-einsum              3.3.0
packaging               21.0
parso                   0.8.2
pexpect                 4.8.0
pickleshare             0.7.5
Pillow                  8.3.1
pip                     21.2.4
prompt-toolkit          3.0.20
protobuf                3.17.3
ptyprocess              0.7.0
pyasn1                  0.4.8
pyasn1-modules          0.2.8
Pygments                2.10.0
pyparsing               2.4.7
python-dateutil         2.8.2
pyzmq                   22.2.1
requests                2.26.0
requests-oauthlib       1.3.0
rsa                     4.7.2
setuptools              57.4.0
six                     1.16.0
tensorboard             2.6.0
tensorboard-data-server 0.6.1
tensorboard-plugin-wit  1.8.0
tensorflow-addons       0.1a3
tensorflow-estimator    2.6.0
tensorflow-hub          0.12.0
tensorflow              0.1a3
termcolor               1.1.0
tornado                 6.1
traitlets               5.0.5
typeguard               2.12.1
typing-extensions       3.10.0.0
urllib3                 1.26.6
wcwidth                 0.2.5
Werkzeug                2.0.1
wheel                   0.37.0
wrapt                   1.12.1

I want install Object Detection Api from Tensorflow in that link.


I cloned the repo and them I follow the guide. (Python Package Installation)


When I execute this command

python -m pip install --use-feature=2020-resolver .

It starts to download, and start a print very long errors.

At the end of the operations, it gives me this error.

  Using cached scipy-1.2.3.tar.gz (23.3 MB)
Collecting pandas
  Using cached pandas-1.3.2-cp38-cp38-macosx_11_0_arm64.whl
Collecting tf-models-official>=2.5.1
  Using cached tf_models_official-2.6.0-py2.py3-none-any.whl (1.8 MB)
Collecting kaggle>=1.3.9
  Using cached kaggle-1.5.12-py3-none-any.whl
Collecting py-cpuinfo>=3.3.0
  Using cached py_cpuinfo-8.0.0-py3-none-any.whl
Requirement already satisfied: numpy>=1.15.4 in /Users/stefan/Desktop/Studio/TFOD/tf-m1/lib/python3.8/site-packages (from tf-models-official>=2.5.1->object-detection==0.1) (1.18.5)
Collecting opencv-python-headless
  Using cached opencv_python_headless-4.5.3.56-cp38-cp38-macosx_11_0_arm64.whl (10.7 MB)
Collecting tf-models-official>=2.5.1
  Using cached tf_models_official-2.5.1-py2.py3-none-any.whl (1.6 MB)
Collecting tensorflow-datasets
  Using cached tensorflow_datasets-4.4.0-py3-none-any.whl (4.0 MB)
Collecting google-api-python-client>=1.6.7
  Downloading google_api_python_client-2.18.0-py2.py3-none-any.whl (7.4 MB)
     |████████████████████████████████| 7.4 MB 3.4 MB/s 
Collecting oauth2client
  Using cached oauth2client-4.1.3-py2.py3-none-any.whl (98 kB)
Collecting tensorflow-model-optimization>=0.4.1
  Using cached tensorflow_model_optimization-0.6.0-py2.py3-none-any.whl (211 kB)
Collecting pyyaml>=5.1
  Downloading PyYAML-5.4.1.tar.gz (175 kB)
     |████████████████████████████████| 175 kB 31.3 MB/s 
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting gin-config
  Using cached gin_config-0.4.0-py2.py3-none-any.whl (46 kB)
Collecting sacrebleu
  Using cached sacrebleu-2.0.0-py3-none-any.whl (90 kB)
INFO: pip is looking at multiple versions of <Python from Requires-Python> to determine which version is compatible with other requirements. This could take a while.
INFO: pip is looking at multiple versions of object-detection to determine which version is compatible with other requirements. This could take a while.
ERROR: Cannot install object-detection because these package versions have conflicting dependencies.

The conflict is caused by:
    tf-models-official 2.6.0 depends on tensorflow-text>=2.5.0
    tf-models-official 2.5.1 depends on tensorflow-addons

To fix this you could try to:
1. loosen the range of package versions you've specified
2. remove package versions to allow pip attempt to solve the dependency conflict

ERROR: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/user_guide/#fixing-conflicting-dependencies

Upvotes: 4

Views: 3841

Answers (3)

jeffhale
jeffhale

Reputation: 4032

Things should work better if you upgrade to OS Monterey and install conda from miniforge and the packages listed below.

As of Oct. 25, 2021 macOS 12 Monterey is generally available.

Upgrade your machine to Monterey.

If you have conda installed, uninstall it.

Then follow the instructions from Apple here.

Cleaned up below:

Download and install Conda from Miniforge:

chmod +x ~/Downloads/Miniforge3-MacOSX-arm64.sh
sh ~/Downloads/Miniforge3-MacOSX-arm64.sh
source ~/miniforge3/bin/activate

In a conda environment, install the TensorFlow dependencies, base TensorFlow, and TensorFlow metal:

conda install -c apple tensorflow-deps
pip install tensorflow-macos
pip install tensorflow-metal

You should be good to go.

Upvotes: 0

StebsV2
StebsV2

Reputation: 63

I successfully install it with.

python -m pip install --force --no-dependencies . 

My list of commands for install correctly tf2.0 for m1

conda create —-name=tf-m1
conda activate tf-m1
conda install python=3.8.6 -y
sh Desktop/PATH TO GITHUB DIR OF TENSORFLOW MAC(i used 0.1a3)/install_venv.sh /Users/stefan/miniforge3/envs/tf-m1
python -m pip install --upgrade pip
pip install ipykernel jupyter
python -m ipykernel install --user --name=tensorflow-m1.0
Tensorflow Test : ok  (import tensorflow as tf; print(tf.__version__))

NOW USE CONDA INSTALL

conda install -c conda-forge matplotlib -y
conda install -c conda-forge scikit-learn -y
conda install -c conda-forge opencv -y
conda install -c conda-forge pandas -y

Tensorflow Test : ok

cd Desktop/PATH/
mkdir -p Tensorflow/models
git clone https://github.com/tensorflow/models Tensorflow/models
cd Tensorflow/models/research && protoc object_detection/protos/*.proto --python_out=. && cp object_detection/packages/tf2/setup.py . && python -m pip install --force --no-dependencies . 

Object detection api have some dependencies i had installed. (Pyarrow and apache-beam are not supported at the moment, but I think this isn't essential for general working of api)

pip install tf-slim
pip install pycocotools
pip install lxml
pip install lvis
pip install contextlib2
pip install --no-dependencies tf-models-official
pip install avro-python3
pip install pyyaml
Pip install gin-config

I don't know if is it the perfect installation of Tensorflow and TensorFlow object-detection-api, but at the moment this worked for me.

Upvotes: 2

Gramatton
Gramatton

Reputation: 385

I have the same issue installing the Object Detection API for Tensorflow 2 (OD API) from sources on my MacBook Air M1 2020. It starts to lookup/download all available dependencies with very long errors and after several hours the process drains all available RAM and forces the laptop to reboot. I think the problem is with incompatible dependencies for arm64. I tried to build/install OD API for Tensorflow 1 instead and it worked! I successfully trained a model with TensorFlow 2 and GPU enabled.

Use the tf1 folder when you installing the OD API instead of tf2:

cd models/research
# Compile protos.
protoc object_detection/protos/*.proto --python_out=.
# Install TensorFlow Object Detection API.
cp object_detection/packages/tf1/setup.py .
python -m pip install --use-feature=2020-resolver .

or just use this guide for installing OD API: https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/tf1.md

By the way,

Upvotes: 2

Related Questions