AI Development/TensorFlow | TFLite

AI Development/TensorFlow | TFLite

[TFLite] TensorFlow Lite 개념

TensorFlow Lite 개념 TensorFlow Lite는 모바일과 IoT 기기에 딥러닝 모델을 배포하고 추론하기 위해 구글에서 만든 라이브러리이다. 간단히 말하자면, TFLite를 이용하여 TensorFlow 모델을 안드로이드, iOS, 임베디드 기기에서 사용할 수 있도록 모델을 변환할 수 있다. 이러한 기기에서 사용하기 위해서는 컴퓨팅 리소스가 제한적이기 때문에 이를 위해 TFLite는 모델을 경량화해준다고 보면 된다. TFLite는 모델을 변환하는 Converter와 변환된 모델을 실제로 동작시키는 Interpreter로 이루어져있다. Converter는 파이썬 개발환경에서 사용하고, Interpreter는 사용하려는 기기와 동일한 환경에서 사용된다. 그리고 중요한 특징 중 하나는 양자화를 지..

AI Development/TensorFlow | TFLite

[TensorFlow Lite] MobileNet v1 모델의 tflite 파일 구조

https://github.com/tensorflow/models/blob/master/research/slim/nets/mobilenet_v1.md GitHub - tensorflow/models: Models and examples built with TensorFlow Models and examples built with TensorFlow. Contribute to tensorflow/models development by creating an account on GitHub. github.com 위 GitHub 에서 다운 받은 mobilenet_v1_1.0_224_quantized_1_metadata_1.tflite 을 netron 에서 확인해보았다. 아래와 같이 구성되어 있으며, type이 ..

AI Development/TensorFlow | TFLite

[TensorFlow] Windows 환경에서 TensorFlow 1.14 버전 Bazel 빌드하기 with C++

환경구축 [설치되었다고 가정] Windows 10 CUDA 10.0 / cuDNN 7.5.0 Visual Studio 2015 Microsoft Visual C++ 2015 Redistributable (x86 and x64) 14.0.24215 Microsoft Build Tools 2015 Update 3 [포스팅에서 설치할 것] TensorFlow 1.14 MSYS2 Bazel 0.25.0 Python3.6 ( TensorFlow 빌드 종속성 때문에 설치하는 것) 1. Python 다운로드 TensorFlow 를 소스 빌드 하기 위해서는 Python Dependency 가 필요하기 때문에 Python 을 설치한다. Python 버전은 3.5.x 또는 3.6.x 버전 64비트 이면 상관 없다. htt..

AI Development/TensorFlow | TFLite

[TensorFlow] TensorFlow 소스 빌드 (Ubuntu 16.04 + GPU + CUDA 10.0 + python + cuDNN 7.3.1)

Python 공식 홈페이지에서 제공하는 우분투 환경에서 파이썬을 사용하기 위해 CUDA 10.0 버전을 기반으로 TensorFlow 를 소스빌드 하는 과정에 대한 포스팅이다. 참고로 윈도우 환경에서 소스빌드 하고 싶다면 아래 링크 참고 https://www.pytorials.com/install-tensorflow-gpu-windows/ 참고로 공식적으로 빌드된 pip 패키지를 통해서 다운 받고 싶다면 아래 명령어 실행 $ pip install tensorflow TensorFlow 를 직접 소스 빌드하는 방법은 아래와 같다. 구성환경 TensorFlow 1.12 GPU version CUDA 10.0 cuDNN 7.3.1 Computer Capability > 3.0 64 bit Python (32 b..

AI Development/TensorFlow | TFLite

[TensorFlow] Graph 에서 dropout 을 제거하는 방법

흔히들 드롭 아웃을 적용하여 네트워크를 설계하는데 다른 플랫폼에서 고정된 그래프를 사용하고자 할 때 다음과 같은 오류가 발생한다고 한다. Invalid argument: No OpKernel was registered to support Op 'RandomUniform' with these attrs. Registered devices: [CPU], Registered kernels: [[Node: dropout/random_uniform/RandomUniform = RandomUniform[T=DT_INT32, dtype=DT_FLOAT, seed=0, seed2=0](dropout/Shape)]] 이 때 만들어진 pb 파일을 이용하여 드롭 아웃을 제거하는 과정을 거친다. How to remove dr..

AI Development/TensorFlow | TFLite

[TensorFlow] .ckpt vs .pb vs .pbtxt 차이점

간단하게 말하자면 아래와 같다. ckpt 파일 모델의 변수(가중치)인 체크포인트 파일 pb 파일 모델의 변수 + 구조 (즉, 전체 그래프) 로 이루어진 바이너리 파일 pbtxt 파일 pb 파일을 읽을 수 있는 텍스트 파일, 즉 모델 구조 파악 가능 더욱 자세히 말하자면 아래와 같다 ... ckpt 파일 텐서플로우에서 학습된 모델의 구조를 제외한 변수들을 담고 있는 파일이다. 즉, 모델의 가중치만 담고있는 파일이다. 그래서 모델에 대한 메타정보를 담고있기 때문에 재학습이 가능하다는 특징이 있다. 하지만, 실제 모델을 돌릴 때 필요 없는 정보들이 너무 많아서 파일의 크기가 무겁다는 단점이 있다. 체크포인트의 저장은 다음과 같이 이루어지며, iteration 별로 체크포인트 파일을 생성 할 수 있다. #/mo..

AI Development/TensorFlow | TFLite

[TensorFlow] 함수 내부에서 TensorFlow Graph 실행하기

텐서플로우 내부에서 코드를 예쁘게 구조화 하여 그래프(Graph)를 실행할 수 있다. 구현할 때, 몇가지 방법이 있다. 1. Tensor 이름 전달하기 with tf.Session(graph=graph) as sess: feed = {"Placeholder:0": 3} print(sess.run("Add:0", feed_dict=feed)) 위와 같이 Placeholder:0 이라는 텐서 자체를 feed 에 넘겨주는 것 대신, def build_graph(): g = tf.Graph() with g.as_default(): a = tf.placeholder(tf.int8, name="a") b = tf.add(a, tf.constant(1, dtype=tf.int8), name="b") return g ..

AI Development/TensorFlow | TFLite

[TensorFlow] pb 파일 TensorBoard에 띄우기 (TF 1.x 버전용)

import_pb_to_tensorboard.py # Copyright 2017 The TensorFlow Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distribute..

AI Development/TensorFlow | TFLite

[TensorFlow] Anaconda 가상환경 이용하여 TensorFlow GPU 설치

아나콘다 설치 후 1. 가상환경 생성conda create -n 가상환경이름 python=3.6 2. 가상환경 Activationsource activate 가상환경이름 3. TensorFlow GPU 설치conda install -c anaconda tensorflow-gpu (2019년 3월 5일 기준 )이렇게 설치하면 현재 아나콘다 패키지에 나와있는 최신 버전인 TensorFlow 1.12 버전으로 설치되며CUDA 9.2, cuDNN 7.2.1 로 설정된다.필자는 CUDA 10.0 버전이 설치된 상태에서 가상환경을 위와 같이 설정하였다. 텐서플로우 GPU 버전 패키지 확인 https://anaconda.org/anaconda/tensorflow-gpu/files 3-1. TensorFlow GPU ..

AI Development/TensorFlow | TFLite

[Tensorflow] Tensorflow GPU 버전 설치하기

3일의 삽질이 끝났다... 나중에 참고하려고 써보는 포스팅이다. 버전이 참 중요하다고 새삼느꼈다. 수많은 버전 충돌로 인한 에러를 충분히 겪고 쓰는 포스팅이 많은 사람들에게 도움이 되길 바라며... 설치 환경 - Windows 10 / 64 bits - Anoconda 4.3 - Visual Studio 2015 새로 설치한 환경 - CUDA 8.0 - cuDNN 6- Tensorflow 1.4 설치 순서는 아래와 같다.아나콘다 - 비주얼 스튜디오(필요시) - CUDA - CuDNN - Tensorflow * 참고로 Tensorflow 1.5 버전은 CUDA 9.0 이 필요하고,* Tensorflow 1.3 버전 부터는 cuDNN 6 버전이 필요하다. * Tensorflow 1.5 버전이 릴리즈 되었다고..

AI Development/TensorFlow | TFLite

[Tensorflow] windows 환경에서 tensorflow에 opencv 설치하기

필자는 python 3.5 버전을 사용하고 있다. 1. 자신 환경에 맞는 whl 파일 다운받기 http://www.lfd.uci.edu/~gohlke/pythonlibs/ ctrl + f 로 opencv 를 찾아서 누르면 파일 목록이 나온다. 필자는 python 3.5 버전, windows 64bits 를 사용중이어서 아래 표시한 파일을 다운받았다. OpenCV, a real time computer vision library.opencv_python‑2.4.13.2‑cp27‑cp27m‑win32.whlopencv_python‑2.4.13.2‑cp27‑cp27m‑win_amd64.whlopencv_python‑3.1.0‑cp27‑cp27m‑win32.whlopencv_python‑3.1.0‑cp27‑cp..

AI Development/TensorFlow | TFLite

[Tensorflow] Windows 환경에서의 Anaconda를 이용한 Tensorflow CPU 버전 설치하기 (에러해결법)

참고자료 1 : http://daddynkidsmakers.blogspot.kr/2017/05/windows-10-tensorflow.html 설치환경 - Windows 10, 64bits- Intel core 사용중 (추후 GPU 구입 예정)* 보통 딥러닝을 하기 위한 CUDA 라이브러리를 사용하기 위해 성능이 좋은 GPU가 사용된다. 참고로 NVIDA GPU가 아니라면 CUDA 라이브러리를 쓸 수 없다. 하지만 간단한 예제 프로그래밍은 CPU로도 가능하며, GPU 와 설치방법이 다르다. (아주 약간) - Python 3.5 버전 (다운로드 : https://www.python.org/downloads/release/python-353/ )- Anaconda 4.2.0 버전 (다운로드 : https:/..

AI Development/TensorFlow | TFLite

[Tensorflow] 선형회귀분석

참고자료 : 텐서플로 첫걸음 2장 1. 변수 간의 관계에 대한 모델 선형회귀분석(Linear Regression)은 변수들 사이의 관계를 분석하는 데 사용하는 통계학적 방법이다. 선형회귀분석은 독립변수 X, 상수항 b, 종속변수 y 사이의 관계를 모델링하는 방법이다. 두 변수 사이의 관계일 경우 단순회귀라고 하며 여러개의 변수를 다루는 다중회귀도 있다. 텐서플로우를 이용하여 y = W * x + b 형태의 간단한 선형회귀분석 모델을 만들어볼 수 있다. 먼저 2차원 좌표계에 데이터를 생성하고 샘플 데이터에 들어맞는 최적의 직선을 텐서플로우를 이용하여 찾을 수 있다. import numpy as np num_points = 1000 vectors_set = [] for i in range(num_points..

AI Development/TensorFlow | TFLite

[Tensorflow] 윈도우 아나콘다 가상환경 설정하기 (matplotlib.externals 에러 해결법)

참고자료 1 : http://wandlab.blogspot.kr/2016/11/python3-anaconda3.html참고자료 2 : https://gzupark.github.io/articles/Why-Anaconda-How-to-control-Anaconda/ 아나콘다 가상환경 설정하기 1. conda create -n 가상환경이름 단순히 가상환경의 이름으로 가상환경이 생성된다. 2. conda create -n 가상환경이름 python=3.x 가상환경의 이름으로 python 3.x 버전을 사용 가능하게 환경이 생성된다. 3. conda create -n 가상환경이름 python=3.x 패키지명 ex : conda create -n tensorflow python=3.5 anaconda anacond..

AI Development/TensorFlow | TFLite

[Tensorflow] pip 명령어

1. 패키지 검색pip search 키워드 2. 패키지 설치pip install 패키지 3. 패키지 삭제pip uninstall 4. 패키지 업데이트pip install --upgrade 패키지 5. 설치된 패키지 확인pip show 패키지 6. 설치된 전체 패키지 확인pip list

AI Development/TensorFlow | TFLite

[Tensorflow] _getfullpathname: embedded null character

_getfullpathname: embedded null character 에러 시 C:\Anaconda3\lib\site-packages\matplotlib\font_manager.py 위치에 있는 font_manager.py 파일을 아래와 같이 변경 try: for j in range(winreg.QueryInfoKey(local)[1]): try: key, direc, any = winreg.EnumValue( local, j) if not is_string_like(direc): continue if not os.path.dirname(direc): direc = os.path.join(directory, direc) # direc = os.path.abspath(direc).lower() # i..

AI Development/TensorFlow | TFLite

[Tensorflow] 텐서플로우 수학함수, 행렬 연산 함수

참고자료 : 텐서플로 첫걸음 [한빛미디어] 텐서플로우 자주쓰는 수학함수 함수 설명 tf.add 덧셈 tf.sub 뺄셈 tf.mul 곱셈 tf.div 나눗셈의 몫 tf.mod 나눗셈의 나머지 tf.abs 절댓값을 리턴 tf.neg 음수를 리턴 tf.sign 부호를 리턴 (음수는 -1, 양수는 1, 0은 0) tf.inv 역수를 리턴 (예: 3의 역수는 1/3) tf.square 제곱을 계산 tf.round 반올림 값을 리턴 tf.sqrt 제곱근을 계산 tf.pow 거듭제곱 값을 계산 tf.exp 지수 값을 계산 tf.log 로그 값을 계산 tf.maximum 최댓값을 리턴 tf.minimum 최솟값을 리턴 tf.cos 코사인 함수 값을 계산 tf.sin 사인 함수 값을 계산 텐서플로우 자주쓰는 행렬 연산 ..

꾸준희
'AI Development/TensorFlow | TFLite' 카테고리의 글 목록