RaspberryPi4 TensorFlow
RaspberryPi4에 TensorFlow를 설치합니다.
여기를 참고로 설치
python3 가상 환경을 만듭니다.
$ mkdir tf_pi
$ cd tf_pi
$ sudo python3 -m pip install virtualenv
$ virtualenv env
$ source env/bin/activate
(env) pi@raspberrypi:~/tf_pi $
(env) pi@raspberrypi:~/tf_pi $ sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install keras_applications==1.0.8 --no-deps
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install keras_preprocessing==1.1.0 --no-deps
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install h5py==2.9.0
(env) pi@raspberrypi:~/tf_pi $ sudo apt-get install -y openmpi-bin libopenmpi-dev
(env) pi@raspberrypi:~/tf_pi $ sudo apt-get install -y libatlas-base-dev
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install -U six wheel mock
(env) pi@raspberrypi:~/tf_pi $ wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.0.0/tensorflow-2.0.0-cp37-none-linux_armv7l.whl
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip uninstall tensorflow
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install tensorflow-2.0.0-cp37-none-linux_armv7l.whl
이하의 에러가 출력되었을 경우는 tensorflow-2.0.0-cp37-none-linux_armv7l.whl을 삭제해 wget로 재취득해 pip를 실행한다.
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them
grpcio>=1.8.6 from htps //w w. Piue ls. rg / shimp / grp shio / grp shio 1.28. whl#샤256=412아486f22257d975f06992d0888아3f9c후85f2943d9f33177b660c6b3에435에6 (from tensorflow==2.0.0):
Expected sha256 412a486f22257d975f06992d0888a3f9cfa85f2943d9f33177b660c6b3e435e6
Got 63d8a1fadb114e20c636f7006b1262ceb8d1816ded8e34dd48bfea0718ce83bd
가상 환경을 종료하고 다시 시작합니다.
(env) pi@raspberrypi:~/tf_pi $ deactivate
pi@raspberrypi:~/tf_pi $ source env/bin/activate
(env) pi@raspberrypi:~/tf_pi $ python3
>>>import tensorflow
>>>tensorflow.__version__
'2.0.0'
가상 환경에 OpenCV 설치
가상 환경을 시작하고 다음 단계로 설치하면 OK.
htps : // 코 m / 미소라고 d / ms / 28235 또는 32d68cf9 6b3f
pi@raspberrypi:~/tf_pi $ source env/bin/activate
CMAKE_INSTALL_PREFIX=/home/tf_pi/envにする。
最後の部分は、sudo 無しで実行する。
(env) pi@raspberrypi:~/tf_pi$ make install
가상 환경에 python3 picamera 모듈 설치
(env) pi@raspberrypi~/tf_pi $ easy_install3 --user -U picamera
가상 환경에 pillow, lxml, jupyter, matplotlib, cython, python-tk를 설치합니다.
(env) pi@raspberrypi:~/tf_pi$ python3 -m pip install pillow lxml jupyter matplotlib cython python-tk
Protobuf 설치
$ sudo apt-get install protobuf-compiler
$ protoc --version
libprotoc 3.6.1
tensorflow의 저장소를 github에서 clone합니다.
(env) pi@raspberrypi:~/tf_pi$git clone --depth 1 https://github.com/tensorflow/models.git
パスを追加する。
(env) pi@raspberrypi:~/tf_pi$ vi ~/.bashrc
export PYTHONPATH=$PYTHONPATH:/home/pi/tf_pi/models/research:/home/pi/tf_pi/models/research/slim:/home/pi/tf_pi/models/research/object_detection
모델을 컴파일합니다.
(env) pi@raspberrypi:~/tf_pi$ cd models/research
(env) pi@raspberrypi:~/tf_pi$ protoc object_detection/protos/*.proto --python_out=.
SSDLite-MobileNet 모델 다운로드
(env) pi@raspberrypi:~/tf_pi$ cd models/research/object_detection
(env) pi@raspberrypi:~/tf_pi$ wget http://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz
(env) pi@raspberrypi:~/tf_pi$ tar -xzvf ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz
TensorFlow 모델 목록
오류 등
일단 파일 경로 등은 하드 코딩되어 있습니다.
여기 샘플을 움직이게했다.
ModuleNotFoundError: No module named 'utils'
PYTHONPATH에 다음을 추가하여 해결
/home/pi/tf_pi/models/research/object_detection
AttributeError: module 'tensorflow' has no attribute 'gfile'
/home/pi/tf_pi/models/research/object_detection/utils/label_map_util.py의 138 행 수정
- with tf.gfile.GFile(path, 'r') as fid:
+ with tf.io.gfile.GFile(path, 'r') as fid:
tensorflow.python.framework.errors_impl.NotFoundError: /home/pi/tf_pi/TensorFlow-Object-Detection-on-the-Raspberry-Pi/data/mscoco_label_map.pbtxt; No such file
- PATH_TO_LABELS = os.path.join(CWD_PATH,'data','mscoco_label_map.pbtxt')^M
+ PATH_TO_LABELS = os.path.join('/home/pi/tf_pi/models/research/object_detection/data/mscoco_label_map.pbtxt')
tensorflow.python.framework.errors_impl.NotFoundError:/home/pi/tf_pi/TensorFlow-Object-Detection-on-the-Raspberry-Pi/ssdlite_mobilenet_v2_coco_2018_05_09/frozen_inference_graph.pb;
- PATH_TO_CKPT = os.path.join(CWD_PATH,MODEL_NAME,'frozen_inference_graph.pb')
+ PATH_TO_CKPT = os.path.join('/home/pi/tf_pi/models/research/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09/frozen_inference_graph.pb')
이 시점에서의 결론
tensorflow v2계와 V1계로 API의 사양 차이가 있어 이번 시험한 샘플은 움직이지 않았다.
그래서 tensorflow2.0.0을 제거하고 tensorflow1.14를 설치하여 샘플이 움직였다.
이번, 역기로 고친 부분을 앞으로는 제대로 된 형태로 대책해 가려고 한다.
tensorflow1.14 설치
(env) pi@raspberrypi:~/tf_pi$ python3 -m pip uninstall tensorflow
(env) pi@raspberrypi:~/tf_pi$ wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.14.0-buster/tensorflow-1.14.0-cp37-none-linux_armv7l.whl
(env) pi@raspberrypi:~/tf_pi$ python3 -m pip install tensorflow-1.14.0-cp37-none-linux_armv7l.whl
(env) pi@raspberrypi:~/tf_pi$
참고
htps : // 기주 b. 코 m / 에 d ぇ ぇ ct 로에 cs / 천사 rF
htps : // まgぴ. 등 sp 베 ry 피. 오 rg / ar chi c ぇ s / 천식 rf ぉ
htps : // 기주 b. 코 m / l에 ぉ t 등 / 천사 rf ぉ
Reference
이 문제에 관하여(RaspberryPi4 TensorFlow), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/misoragod/items/80047c1a5ad4084d3118
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ mkdir tf_pi
$ cd tf_pi
$ sudo python3 -m pip install virtualenv
$ virtualenv env
$ source env/bin/activate
(env) pi@raspberrypi:~/tf_pi $
(env) pi@raspberrypi:~/tf_pi $ sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install keras_applications==1.0.8 --no-deps
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install keras_preprocessing==1.1.0 --no-deps
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install h5py==2.9.0
(env) pi@raspberrypi:~/tf_pi $ sudo apt-get install -y openmpi-bin libopenmpi-dev
(env) pi@raspberrypi:~/tf_pi $ sudo apt-get install -y libatlas-base-dev
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install -U six wheel mock
(env) pi@raspberrypi:~/tf_pi $ wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.0.0/tensorflow-2.0.0-cp37-none-linux_armv7l.whl
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip uninstall tensorflow
(env) pi@raspberrypi:~/tf_pi $ python3 -m pip install tensorflow-2.0.0-cp37-none-linux_armv7l.whl
(env) pi@raspberrypi:~/tf_pi $ deactivate
pi@raspberrypi:~/tf_pi $ source env/bin/activate
(env) pi@raspberrypi:~/tf_pi $ python3
>>>import tensorflow
>>>tensorflow.__version__
'2.0.0'
pi@raspberrypi:~/tf_pi $ source env/bin/activate
CMAKE_INSTALL_PREFIX=/home/tf_pi/envにする。
最後の部分は、sudo 無しで実行する。
(env) pi@raspberrypi:~/tf_pi$ make install
(env) pi@raspberrypi~/tf_pi $ easy_install3 --user -U picamera
(env) pi@raspberrypi:~/tf_pi$ python3 -m pip install pillow lxml jupyter matplotlib cython python-tk
$ sudo apt-get install protobuf-compiler
$ protoc --version
libprotoc 3.6.1
(env) pi@raspberrypi:~/tf_pi$git clone --depth 1 https://github.com/tensorflow/models.git
パスを追加する。
(env) pi@raspberrypi:~/tf_pi$ vi ~/.bashrc
export PYTHONPATH=$PYTHONPATH:/home/pi/tf_pi/models/research:/home/pi/tf_pi/models/research/slim:/home/pi/tf_pi/models/research/object_detection
(env) pi@raspberrypi:~/tf_pi$ cd models/research
(env) pi@raspberrypi:~/tf_pi$ protoc object_detection/protos/*.proto --python_out=.
(env) pi@raspberrypi:~/tf_pi$ cd models/research/object_detection
(env) pi@raspberrypi:~/tf_pi$ wget http://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz
(env) pi@raspberrypi:~/tf_pi$ tar -xzvf ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz
- with tf.gfile.GFile(path, 'r') as fid:
+ with tf.io.gfile.GFile(path, 'r') as fid:
tensorflow.python.framework.errors_impl.NotFoundError: /home/pi/tf_pi/TensorFlow-Object-Detection-on-the-Raspberry-Pi/data/mscoco_label_map.pbtxt; No such file
- PATH_TO_LABELS = os.path.join(CWD_PATH,'data','mscoco_label_map.pbtxt')^M
+ PATH_TO_LABELS = os.path.join('/home/pi/tf_pi/models/research/object_detection/data/mscoco_label_map.pbtxt')
- PATH_TO_CKPT = os.path.join(CWD_PATH,MODEL_NAME,'frozen_inference_graph.pb')
+ PATH_TO_CKPT = os.path.join('/home/pi/tf_pi/models/research/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09/frozen_inference_graph.pb')
(env) pi@raspberrypi:~/tf_pi$ python3 -m pip uninstall tensorflow
(env) pi@raspberrypi:~/tf_pi$ wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.14.0-buster/tensorflow-1.14.0-cp37-none-linux_armv7l.whl
(env) pi@raspberrypi:~/tf_pi$ python3 -m pip install tensorflow-1.14.0-cp37-none-linux_armv7l.whl
(env) pi@raspberrypi:~/tf_pi$
Reference
이 문제에 관하여(RaspberryPi4 TensorFlow), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/misoragod/items/80047c1a5ad4084d3118텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)