์•ˆ๋…•ํ•˜์„ธ์š”. 

 

๋งŒ์•ฝ, ์ฒ˜์Œ ์ด ๊ธ€์„ ๋ณด์‹ ๋‹ค๋ฉด ์•„๋ž˜ ๊ธ€์„ ๋จผ์ € ์ฝ์–ด๋ณด์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

 

1ํŽธ : Coral Board ๋Œ€์‹  ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  : https://coding-yoon.tistory.com/85?category=866905

2ํŽธ : USB Accelerator(Edge TPU) ํ™˜๊ฒฝ์„ค์ • : https://coding-yoon.tistory.com/87?category=866905

3ํŽธ : Coral Edge TPU ์˜ˆ์ œ ๋Œ๋ฆฌ๊ธฐ : https://coding-yoon.tistory.com/88

 

 

์ด ๊ทธ๋ฆผ์„ ์ดํ•ดํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋!

Edge TPU๋Š” CNN๊ณผ ๊ฐ™์€ Deep feed-forward ์‹ ๊ฒฝ๋ง์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

8๋น„ํŠธ Edge TPU ์šฉ์œผ๋กœ ์ปดํŒŒ์ผ ๋œ TensorFlow Lite ๋ชจ๋ธ๋งŒ ์ง€์›ํ•˜๋ฉฐ, 32๋น„ํŠธ TensorFlow๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 

 

Tensor Lite๋กœ ์ง์ ‘ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ฌ ์ˆ˜ ์—†๊ณ , Transfer Learning(์ „์ด ํ•™์Šต)์„ ํ†ตํ•ด ๋ชจ๋ธ์„ ํ–ฅ์ƒน์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

TensorFlow(.pb)๋‚˜ Keras(.h5)(32bit)๋ฅผ  ํ†ตํ•ด ํ•™์Šต๋œ ๋ชจ๋ธ์„ TensorFlow Lite Converter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TensorFlow ํŒŒ์ผ์—์„œ TensorFlow Lite (.tflite)๋กœ ๋ชจ๋ธ์„ ๋ณ€ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. 

 

 

<์ฐธ๊ณ > 

์ €๋Š” Coral๋กœ ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ ๊ฐœ์ธ์ ์œผ๋กœ Keras๋ฅผ ์ถ”์ฒœ๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. 

 

Edge TPU๊ฐ€ ๋ชจ๋“  ์—ฐ์‚ฐ์„ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ Edge TPU๊ฐ€ ์ง€์›ํ•˜๋Š” ์—ฐ์‚ฐ๋“ค์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค. 

 

๋ชจ๋ฐ”์ผ๋„ท๊ณผ ๊ฐ™์€ ๊ฒฝ๋Ÿ‰ ๋ชจ๋ธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ๋“ค์„ ์ง€์›ํ•˜๋ฉฐ, ์˜ˆ์ œ๋“ค ๋˜ํ•œ Keras๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์™€ ํ•™์Šต์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค๋ฉด Depthwise Seperable Convolution์„ ์ฐพ์„ ์ˆ˜ ์žˆ๊ณ , ๊ฒฝ๋Ÿ‰ ๋ชจ๋ธ : MobileNet,  Xception ๋“ฑ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

https://coding-yoon.tistory.com/77?category=825914

 

[๋”ฅ๋Ÿฌ๋‹] Depthwise Separable Covolution with Pytorch( feat. Convolution parameters VS Depthwise Separable Covolution paramet

์•ˆ๋…•ํ•˜์„ธ์š”. Google Coral์—์„œ ํ•™์Šต๋œ ๋ชจ๋ธ์„ ํ†ตํ•ด ์ถ”๋ก ์„ ํ•  ์ˆ˜ ์žˆ๋Š” Coral Board & USB Accelator ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” Coral Board๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ๋ผ์ฆˆ๋ฒ ๋ฆฌํŒŒ์ด4์— USB Accelator๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ƒ๊ฐ์ž…๋‹ˆ..

coding-yoon.tistory.com

Coral์—์„œ ๋งŒ๋“  ์˜ˆ์ œ๋“ค

 

 

์šฐ์„ , TensorFlow๋‚˜ Keras๋กœ ํ•™์Šต๋œ ๋ชจ๋ธ์„ ์ €์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 

 

TensorFlow๋กœ ํ•™์Šตํ–ˆ๋‹ค๋ฉด, (.pb)ํŒŒ์ผ,

Keras๋กœ ํ•™์Šตํ–ˆ๋‹ค๋ฉด (.h5)ํŒŒ์ผ

 

 

ํ•™์Šต๋œ ๋ชจ๋ธ(32bit)์„ TensorFlow Lite Converter(8bit)๋กœ ๋ณ€ํ™˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

 

๋ณ€ํ™˜ํ•œ ๋ชจ๋ธ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

์ด์ œ ๋ชจ๋ธ์ด ์ค€๋น„๊ฐ€ ๋๋‚ฌ์Šต๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ถˆ๋Ÿฌ์˜ค๊ธฐ

Operation name

Runtime version*

Known limitations

Add

All

 

AveragePool2d

All

No fused activation function.

Concatenation

All

No fused activation function.
If any input is a compile-time constant tensor, there must be only 2 inputs, and this constant tensor must be all zeros (effectively, a zero-padding op).

Conv2d

All

Must use the same dilation in x and y dimensions.

DepthwiseConv2d

โ‰ค12

Dilated conv kernels are not supported.

โ‰ฅ13

Must use the same dilation in x and y dimensions.

ExpandDims

โ‰ฅ13

 

FullyConnected

All

Only the default format is supported for fully-connected weights. Output tensor is one-dimensional.

L2Normalization

All

 

Logistic

All

 

Maximum

All

 

MaxPool2d

All

No fused activation function.

Mean

โ‰ค12

No reduction in batch dimension. Supports reduction along x- and/or y-dimensions only.

โ‰ฅ13

No reduction in batch dimension. If a z-reduction, the z-dimension must be multiple of 4.

 

์ง€์›ํ•˜๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค. ์ง€์›ํ•˜๋Š” ์—ฐ์‚ฐ์„ ๋” ๋ณด๊ณ  ์‹ถ์œผ์‹œ๋ฉด ์•„๋ž˜ ์ฃผ์†Œ๋ฅผ ๋‹ฌ์•„๋†“์„ํ…Œ๋‹ˆ ๋ณด์‹œ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

 

ํŒŒ๋ž€์ƒ‰ Input_data๊ฐ€ ์ถ”๋ก ํ•˜๊ณ ์ž ํ•˜๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. 

 

input์ชฝ์ด ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ ธ input_tensor๋กœ ๋”ฐ๋กœ ํ•จ์ˆ˜ํ™”๋ฅผ ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค.

Coral ๊ณต์‹ GitHub์˜ˆ์ œ๋ฅผ ๋”ฐ๋ผํ–ˆ์Šต๋‹ˆ๋‹ค.

 

output์ชฝ์€ ๊ทธ๋ ‡๊ฒŒ ๊ธธ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— tensorflow lite ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€๋ฅผ ๋”ฐ๋ผํ–ˆ์Šต๋‹ˆ๋‹ค.

 

์ถ”๋ก ์„ ์‹œ์ž‘ํ•˜๋Š” ์ฝ”๋“œ๋Š” Interpreter.invoke()์ž…๋‹ˆ๋‹ค.

 

์ถ”๋ก ์„ ์™„๋ฃŒํ•˜๋ฉด output_data์— ์ถ”๋ก  ๊ฐ’์ด ๋‹ด๊ฒจ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

๋‹ค์Œ ๊ธ€์€ ๊ฐ„๋‹จํ•œ ๋ชจ๋ธ์„ ํ•˜๋‚˜ ๋ถˆ๋Ÿฌ์™€ ์‹ค์ œ๋กœ ์ถ”๋ก ์„ ํ•œ ๋ฒˆ ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 

 

https://coral.ai/docs/edgetpu/models-intro/#compatibility-overview

https://www.tensorflow.org/tutorials/keras/save_and_load?hl=ko

https://www.tensorflow.org/lite/convert/python_api

https://coral.ai/docs/edgetpu/tflite-python/#load-tensorflow-lite-and-run-an-inference

https://www.tensorflow.org/api_docs/python/tf/lite/Interpreter

728x90
๋ฐ˜์‘ํ˜•
18์ง„์ˆ˜