Tensorflow Lite 버전이 공개 되어 어느정도 크기 인지 성능은 어느정도 인지

안드로이드에서는 어떤지 궁금해서 다운받아 테스트 해보았습니다.

 

라이센스는

http://www.apache.org/licenses/LICENSE-2.0

입니다.


소스 GitHub 위치는

https://github.com/amitshekhariitbhu/Android-TensorFlow-Lite-Example

에 있습니다.

 

설명은 Git 설치, GitHub 회원가입, Android studioGit 설정이

완료되어 있는 상태에서 진행합니다.

안되어 있다면 아래 링크를 참고 하세요.

[GitHub] GitHub 회원 가입하기

 

[Git] Git 설치 하기 (Windows 용 - Git-2.20.1-64-bit)

 

[Git] Git 무설치 버전 windows 설치 하기

 

[안드로이드] Android studio에 github 환경 설정 하기

 


1. 안드로이드 스튜디오에 소스 받기

 

안드로이드 스튜디오를 실행합니다.



3번째 Check out project from Version Control에서

Git를 선택 합니다.

 

Git가 있는 URL과 다운받을 local Directory 위치를

입력하는 창이 나옵니다.



GitHub에 접속합니다.



[Clone or download]를 클릭하면 하단에 url이 나타납니다.

여기서 url 옆에 있는 아이콘을 클릭하여 클립보드에 저장합니다.

그냥 url을 드래그해서 복사해도 됩니다.



저장된 주소를 URL 입력란에 Ctrl + V로 붙여 넣기 합니다.

 

이제 주소가 맞는지 [Test] 버튼을 클릭합니다.



하단에 연결이 성공했다고 하니 안심하고

[Clone] 버튼을 누릅니다.

신규로 디렉토리를 생성할것인가 물어보는데



[Yes]를 선택해서 디렉토리를 생성하도록 합니다.

 

프로젝트 import 방법에 대한 창이 나옵니다.



여기서는 default가 상단 라디오버튼이 선택되어 있습니다.

기존에 소스가 있는 경우입니다.

당연히 처음 받는 소스이니 두번째 라디오 버튼

Import project from external model을 선택하고 [Finish] 버튼을 클릭 합니다.

 


열심히 다운로드가 진행 됩니다.

오류가 발생했습니다.

버전에 맞지 않나보네요.



우측 파란색 글씨를 눌러 android-27을 설치 합니다.



이번엔 26이 없다고 하네요



설치하라고 파란색 글씨를 또 눌러줍니다.



영차영차 열심히 설치를 알아서 계속 진행합니다.

이번엔 Gradle Plugin을 업데이트 해야 한답니다.



그래 여기까지 왔는데 이거 하나 못하겠냐

[Update]를 눌러 줍니다.

한참 sync를 맞추고 완료가 되었습니다.



우측 빨간글씨는

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.

명칭이 변경 되었지요.

그냥 무시하고

 


2. 실행

 

실행을 해보겠습니다.

 

실행버튼을 누르고 카메라를 사용해야 하니 가상디바이스가 아닌

실제 핸드폰을 연결해서 테스트 합니다.




3. 결과

 

가까이 있는 키보드하고 종이컵을 찍어서 테스트 해보았습니다.

 

tesorflow light android


그런대로 결과가 나오는 군요.

책상이 좀 지져분 해서인지 인식률이 낮게 나옵니다.

 


4. APK


바이러스 업습니다.

심심하면 한번 다운받아서 한번 테스트 해보세요.


tensorflow_lite.apk


- copy coding -


단일 응용 프로그램이 아닌 경우에는 환경 설정이 제일 어려운 일입니다.

동일한 방법으로 했는데 왜 난 안될까?

포기했다가 다시 설치하면 되는 경우도 있고

이것 저것 다 따라해서 뭐때문에 된건지 모를는 경우도 있고...

어째든 오류환경을 구성하고 테스트를 진행해 보았습니다.

Windows 10에서는 오류환경 구성이 잘 안되서 Windows 7을 기준으로 설명 합니다.

 

1. 오류 발생

 

jupyter notebook을 실행하고 tensorflow import해서 코딩을 하면


ModuleNotFoundError: No module named 'tensorflow'


오류가 발생 합니다.


tensorflow module not found error



2. 문제 해결

 

몇가지 작업들을 해보았는데 방법도 복잡하고 해결이 안되기도 했습니다.

해결된 방법만 소개를 합니다.

 

anaconda prompt를 관리자 권한으로 오픈 합니다.



tensorflow가 설치된 가상환경(저는 tensorflow로 했습니다.)으로 이동합니다.

>activate tensorflow

 

conda 커널을 설치 합니다.

>conda install nb_conda





설치가 완료 되었습니다.


 

3. 실행


콘다커널을 설치하고 나면 가상환경 이름으로 Jupyter Notebook(tensorflow)이 생성 됩니다.



새로 생성된 주피터 노트북을 이용하여 코딩을 진행 합니다.



모두들 좋은 결과 얻기를 바랍니다.


- copy coding -

아래 내용은 이전에 설명한 Tensorflow 개발환경 구성과 연결된 내용입니다. 혼란을 주고 있어 안내드립니다.

[텐서플로우] Windows 용 Tensorflow 개발환경 구성 (Version 1.12.0)

 

그리고 최신 Tensorflow2 관련 해서는 다음 링크를 참고 하세요.

[텐서플로우] 아나콘다(Anaconda)에 TensorFlow2 설치

 

아나콘다를 설치 하면 주피터 노트북(Jupyter Notebook)도 같이 설치가 됩니다.

 

주피터 노트북은 프로그램을 작성하면서 주석도 기입하고 codeline 별로 실행도 할 수 있는

유용한 툴이라고 하는데 기본적인 파일 생성, 실행, 편집, 삭제 기능을 알아 보겠습니다.

 

 

 

 

1. Jupyter Notebook 실행

 

 

 

 

시작버튼에서 주피터 노트북을 찾아 선택합니다.

 

 

 

 

검은색 콘솔 창이 나타나고 잠시 후 웹 브라우저에 주피터 노트북이 나옵니다.

 

 

 

 

자세히 보면 하단에 리스트된 내용이 [내 컴퓨터(PC)]의 디렉토리 정보가 나타나는걸 알 수 있습니다.

 

 

2. 파일 생성

 

주피터 노트북 화면의 우측 상단에 있는 [New] 버튼을 선택하면 메뉴 창이 열립니다.

 

 

 

 

실제 프로젝트라면 폴더를 만들고 그 안에 파일을 만들어야 겠지만

여기서는 간단히 설명만 하기 때문에 그냥 [Python 3]을 선택 합니다.

 

 

 

 

현재는 파일명이 Untitled1으로 되어있는데 [Untitled1]라고 쓰인 이름 선택하면 파일명을 변경할 수 있습니다.

 

 

 

 

그냥 Test라고 적고 [Rename] 버튼을 선택 했습니다.

 

 

 

 

파일명이 Test로 변경 되어 있습니다.

 

 

3. 코딩

 

코딩을 시작 하는데 라인이 하나밖에 없습니다.

 

 

 

 

[+] 표시를 클릭해서 라인을 하나씩 추가해주며 코딩을 진행 합니다.

 

 

 

 

라인 하나에 한문장만 기입 하는게 아니라 부분별 테스트를 진행할 블록 단위라고 생각하면 됩니다.

 

 

4. 실행

 

첫번째 블록을 선택하고 [Run]을 클릭하면서 실행 테스트를 진행 합니다.

 

 

 

 

 

[Run]을 클릭 할때 마다 한 블럭씩 실행을 진행 됩니다.

 

 

 

마지막 라인을 넘어가면 결과 확인이 가능 합니다.

 

 

5. 기타

 

5.1 이동

 

이동할 라인을 선택하고 화살표를 이용해서 코드의 위치를 변경할 수 있습니다.

 

 

 

 

다른 기능들은 아이콘을 보면 아시겠지만

저장, 삭제, 복사, 붙여넣기 등등의 기능들 입니다.

 

5.2 편집

 

저장 후 다음에 다시 편집을 하려면 주피터 노트북 메인 화면에서 파일을 찾습니다.

 

 

 

 

 

찾았으면 선택을 해야겠죠?

그럼 상단에 안보이던 버튼들이 나타납니다.

상단으로 가볼까요?

 

 

jupyter notebook

 

 

여기서 [View]를 선택해야 편집화면으로 이동이 됩니다.

삭제는 당연히 쓰레기통을 누르면 파일이 삭제 됩니다.

 

지금까지 기본적인 사용법이었습니다.

 

좀더 많은 기능은 사용하시면서 익히시기 바랍니다.

 

 

- copy coding -


Tensorflow를 테스트하기 위해 개발환경을 구성해 봅니다.

 

작업 순서는 다음과 같습니다.

 

1. 아나콘다 설치

- conda, pip 업데이트

- msgpack 설치

2. 프로젝트 생성

- conda create -n tensorflow pip python=3.6

3. 프로젝트 실행

- conda activate tensorflow

4. 텐서플로우 설치

- CPU 버전

pip install --ignore-installed --upgrade tensorflow

- GPU 버전

pip install --ignore-installed --upgrade tensorflow-gpu

5. 설치 확인




1. 아나콘다 설치

 

Tensorflow 개발에 필요한 툴을 하나씩 설치 해도 되겠지만 모든 환경을 통합해 놓은 아나콘다를 설치해 보도록 합니다.

 

1.1 아나콘다 다운로드 및 설치

 

아나콘다 사이트에 접속하여 설치 파일을 다운로드 받습니다.


https://www.anaconda.com/download/


tensorflow install


현재 윈도우즈용으로 Anaconda 5.3.1 버전은 Python 3.7이포함되어 있습니다.

Anaconda 5.2.0 버전이 Phthon 3.6을 포함하고 있으니 이것을 다운받아 설치 합니다.

설치는 그냥 [Next]만 누르는 수준이라 간단 합니다.

간단히 보려면 아나콘다 설치 과정을 설명한 다음 글을 참고 합니다.


아나콘다 설치 윈도우즈 7, 10 (Anaconda Version 5.2.0) - 2018년12


1.2 아나콘다 업데이트

 

Anaconda Prompt를 이용하여 업데이트를 진행합니다.

시작버튼에서 아나콘다 메뉴를 펼쳐 Anaconda Prompt에 마우스 우측버튼을 클릭하고 관리자 모드로 실행합니다.

 


프롬프트에 다음을 입력하여 conda를 업데이트 합니다.

 

>conda update -n base conda

 




업데이트 대상 리스트를 보여주고 진행 여부를 물어봅니다.

y를 입력하거나 그냥 엔터를 칩니다.(대부분 비슷한 방법으로 설치가 진행됩니다.)



업데이트가 완료 되었습니다.

 

1.3 msgpack 설치

 

>pip install msgpack



1.4 pip 업그레이드


(Windows 10에서의 설치 과정을 하나 가져왔습니다.)


>python -m pip install --upgrade pip




설치가 완료 되었습니다.

msgpack을 설치 하지 않은경우 안내 메시지가 출력 됩니다.

distributed 1.21.8 requires msgpack, which is not installed.

1.3 처럼 설치하면 오류가 나타나지 않습니다.



2. 가상환경 생성


tensorflow란 이름으로 python 3.6 버전을 사용하는 텐서플로우를 위한 신규 가상환경을 생성 합니다.

>conda create -n tensorflow python=3.6






3. 가상환경 활성화


생성된 tensorflow 가상환경을 활성화 합니다.

>conda activate tensorflow



프롬프트가 (base)에서 (tensorflow)로 변경 되었습니다.


 

4. 텐서플로우 설치

 

pip 명령어를 사용해 신규 가상환경에 텐스플로우를 설치 합니다.


- CPU 버전

>pip install --ignore-installed --upgrade tensorflow





5. 설치 확인


python으로 설치를 확인 합니다.



그러나 실행은 되는데 오류가 있습니다.

 

Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

텐서플로우를 소스컴파일 하면 사라진다고 하는데 사용 하는데는 문제가 없다고 하니 당분간 그냥 사용합니다


- copy coding -


1···789101112

+ Recent posts