개요

라즈베리파이 3B+에서는 별다른 과정없이 pip3 install을 통해 Tensorflow 1.12.0, 1.13.0, 1.14.0을 손쉽게 설치할 수 있었다. 그러나, 라즈베리파이 4B 버전에서는 기존 Tensorflow 1.12.0, 1.13.0, 1.14.0 버전과 호환이 되지 않는 문제가 발생하였다. 그래서 이것을 해결하기 위해 어떠한 과정을 거쳤는지 본 문서를 통해 정리할려고 한다.

 

최종 설치 환경

Model : RaspberryPi 4 B

OS : Raspian 11 (bullseye) depends on Linux debian

Kernel : 5.10.110-v7l+

Python : 3.7.6

Tensorflow : 2.4.0

 

먼저, 어떠한 문제가 발생하였는지를 설명한다.

 

발생 문제

가장 먼저, 라즈베리파이 4B에 다음과 같은 명령어를 통해 Tensorflow 1.14.0 버전을 설치하였었다.

# 패키지 저장소 업데이트
$ sudo apt update

# Python3 관련 의존 패키지 설치
$ sudo apt install python3-pip python3-dev

# Python3의 패키지 관리 시스템 업그레이드
$ sudo pip3 install --upgarde pip

# 의존 패키지 설치
$ sudo apt-get install libatlas-base-dev

# Python3에 Tensorflow 1.14.0 설치
$ sudo pip3 install tensorflow==1.14.0

 

위와 같은 명령어를 차례대로 입력한 뒤 라즈베리파이 4B 버전에 Tensorflow 1.14.0 버전을 설치완료하였으며, 아래 명령어를 통해 Tensorflow 버전이 출력되는 것을 볼 수 있었다.

 

그러나 Tensorflow 버전이 출력되기 전에 앞서 2022-09-22 15:35:16.828383: E tensorflow/core/platform/hadoop/hadoop_file_system.cc:132] HadoopFileSystem load error: libhdfs.so: cannot open shared object file: No such file or directory 와 같은 에러가 출력되었다.

 

해당 에러를 대수롭지 않게 여기고 테스트로 AI(DNN) 모델을 올려볼려고 하였으나, 

 

위와 같은 에러가 발생하여서 AI 모델을 불러오는 것을 실패하였다.

 

이제 이러한 문제를 해결하기 위해 어떠한 과정을 거쳤는지 설명한다.

 

문제 해결을 위한 Tensorflow 2.4.0 설치 과정

구글링해보니 ARM용 Tensorflow 패키지를 다운로드 받으면 해결할 수 있다고 한다. (라즈베리파이3B+ 썼을땐 pip3 install만하면 잘 되던게 왜 갑자기..)

 

https://github.com/lhelontra/tensorflow-on-arm/releases/

 

위 링크를 통해 확인해보니 ARM용 Tensorflow 패키지가 따로 있었으며, 필자는 2.4.0 버전을 설치하여서 문제를 해결하였다. 또한, ARM용 Tensorflow는 Python 3.5나 3.7 버전과 호환되는 것을 확인할 수 있었다. (사실 필자의 라즈베리파이에는 Python 3.9가 깔려있었어서 Python3.7로 다운그레이드 한다고도 애먹었었는데 그 과정을 설명한 자료는 링크로만 남겨둔다..ㅠ)

 

아래 명령어를 통해 기존에 설치된 Tensorflow 1.14.0 버전을 ARM용 Tensorflow 2.4.0 버전으로 업그레이드 시켜주었다. 기존의 1.14.0 버전은 삭제하지 않아도 자동적으로 2.4.0 으로 pip가 업그레이드 해준다.

 

$ sudo pip3 install --upgrade https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.4.0/tensorflow-2.4.0-cp37-none-linux_armv7l.whl

 

설치가 완료된 뒤 다시 Tensorflow 버전을 출력해보았을 때 1.14.0 버전과 다르게 에러가 뜨지 않고 2.4.0 만 출력되는 것을 확인할 수 있었다.

 

 

Tensorflow 2.4.0 버전을 통해 AI(DNN) 모델도 정상적으로 올라가는 것 또한 확인할 수 있었다.

 

 

Ref

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기