LoginSignup
uchinoyuki
@uchinoyuki (Yuki Uchino)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

M1 Macを用いてobject detection apiで物体検出 Tensorflow2

上のサイトを参考に物体検出の自前データを作成して、実際に物体検出を行いたいと考えています。
最終的には上のサイトの最後まで実装できるようになりたいです。
前回質問した際にどこで詰まっているのか分かりにくかったので改めて質問させていただきました。

自前データの学習は、以下の4つのステップとなります。
・教師データの準備
・アノテーション
・学習
・テスト

教師データはリンク先のフリー素材があったのですが今回は適当に拾ってきた画像を用いました。
(まずは作業を行うことができるかどうかの確認をしたかったので、今回はデータの量や質は無視しました。)

アノテーションを行うためにMacOS対応のVottをダウンロードします。
手順通りにアノテーションを行い、タグ付けが終了したデータをエクスポートしました。

tfrecord-viewerを使うとブラウザでアノテーションした内容が手軽に確認できるそうなのでインストール。
次にアノテーションしたデータを確認するために必要なライブラリをインストールしました。

pip install flask 
pip install pillow

tfrecord-viewerのインストール。

git clone -b tf2 https://github.com/karaage0703/tfrecord-viewer
cd tfrecord-viewer
python tfviewer.py ../data/train/*.tfrecord

dataやtrainというファイルは勝手にインストールされるのかと思いましたが用意されていませんでした。
参照先がよくわからない状態でしたがエクスポートした時に作成されたファイルを参照しました。

python tfviewer.py ../test1-TFRecords-export/*tfrecord

コマンドを実行するとサーバが立つと書いてあったのですが、エラーが出てしまいました。

zsh: illegal hardware instruction

エラーの内容を調べてみるとM1 Macでtensorflowを使用すると起きるエラーのようです。
一つ目の質問内容はこのエラーの解決方法です。
以下のサイトにM1 Macでtensorflowを使用できるようになる方法が書いてあったので参考にしました。
しかしこのサイトを参考にすることでこのエラーを解決することができるのか疑問に思ったので質問させていただきました。

このサイトの手順通りに進めて最後にtensorflowをインストールできたか確認するためにtensorflowをimportしました。しかしエラーが出て実行することができませんでした。

>>> import tensorflow as tf
Traceback (most recent call last):
  File "/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/__init__.py", line 22, in <module>
    from . import multiarray
  File "/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/multiarray.py", line 12, in <module>
    from . import overrides
  File "/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/overrides.py", line 7, in <module>
    from numpy.core._multiarray_umath import (
ImportError: dlopen(/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so, 0x0002): Library not loaded: @rpath/libcblas.3.dylib
  Referenced from: /Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so
  Reason: tried: '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/../../../../libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/../../../../libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/bin/../lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/bin/../lib/libcblas.3.dylib' (no such file), '/usr/local/lib/libcblas.3.dylib' (no such file), '/usr/lib/libcblas.3.dylib' (no such file)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/tensorflow/__init__.py", line 41, in <module>
    from tensorflow.python.tools import module_util as _module_util
  File "/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/tensorflow/python/__init__.py", line 41, in <module>
    from tensorflow.python.eager import context
  File "/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/tensorflow/python/eager/context.py", line 29, in <module>
    import numpy as np
  File "/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/__init__.py", line 150, in <module>
    from . import core
  File "/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/__init__.py", line 48, in <module>
    raise ImportError(msg)
ImportError: 

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

We have compiled some common reasons and troubleshooting tips at:

    https://numpy.org/devdocs/user/troubleshooting-importerror.html

Please note and check the following:

  * The Python version is: Python3.8 from "/Users/uchinoyuuki/miniforge3/envs/python38/bin/python3"
  * The NumPy version is: "1.21.1"

and make sure that they are the versions you expect.
Please carefully study the documentation linked above for further help.

Original error was: dlopen(/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so, 0x0002): Library not loaded: @rpath/libcblas.3.dylib
  Referenced from: /Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so
  Reason: tried: '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/../../../../libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/python3.8/site-packages/numpy/core/../../../../libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/bin/../lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/lib/libcblas.3.dylib' (no such file), '/Users/uchinoyuuki/miniforge3/envs/python38/bin/../lib/libcblas.3.dylib' (no such file), '/usr/local/lib/libcblas.3.dylib' (no such file), '/usr/lib/libcblas.3.dylib' (no such file)

二つ目の質問内容はこのエラーの解決方法です。
エラーが多すぎて何が間違っているのかよく分かりません。。。
必要なものをインストールする際には問題は発生せず、普通にインストールできていました。

Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.

エラーの文章の中にnumpyがエラーの主な原因であると書かれていました。調べてみた感じバージョンの問題?ではないかと考えています。しかし解決方法がわかりません。

まず一つ目の質問のエラーの解決方法を教えていただきたいです。
次に自分で考えた解決方法がそもそも正しいのかどうか。
もし自分で考えた解決方法が正しければエラーの解決方法を教えていただきたいです。
また、それが間違えているようでしたら正しい解決方法を教えていただきたいです。

ここのエラーを調べた方がいい、こうすれば解決できるなどアドバイスがありましたらお願いします。

0

2Answer

Your answer might help someone💌