Google Coral, 간단한 코랄 FAQ
1. Edge TPU 는 무엇인가?
Edge TPU는 저전력 디바이스용 고성능 ML 추론이 가능한 구글 설계의 작은 ASIC Unit이다. 예를 들어 MobileNet V2 등 첨단 모바일 비전 모델을 거의 400 FPS로 분석할 수 있어 전력 효율이 높다.
2. Edge TPU는 어떤 기계학습 프레임워크를 지원하는가?
TensorFlow Lite만 지원한다.
3. Edge TPU는 어떤 형태의 신경망(Neural Network)을 지원하는가?
1세대 Edge TPU는 합성곱 신경망 (Convolutional Neural Network, CNN) 등 DFF(Deep feed forward, DFF)를 실행할 수 있어 다양한 시각 기반 ML 애플리케이션에 적합하다
4. Edge TPU의 Tensor Flow Lite 모델을 작성하려면 어떻게 해야 하나?
모델을 TensorFlow Lite로 변환해야 하며 양자화 대응 트레이닝 또는 트레이닝 후 정수-양자화를 사용하여 모델을 양자화해야 한다. 트레이닝 후 양자화와 호환성되는 모델을 만들려면 TensorFlow 1.15이상을 사용해야 하며, 입/출력을 모두 uint8로 지정해야 한다. 최신 버전의 TensorFlow 2.X는 floor만 지원하기 때문에 사용할 수 없다.
이미지 분류를 개발하는 경우 Cloud AutoML Vision을 사용해 Edge TPU와 호환되는 모델을 작성할 수 있고 그래픽 UI 를 제공한다.
5. Tensor Flow 2.0은 사용할 수 없는 것인가?
TensorFlow 2.0과 Keras API를 사용하면 모델을 구축하고 러닝이 가능하다. 단, 모델을 TensorFlow Lite 형식으로 변환해야 하며, TensorFlow 1.15부터 TensorFlow Lite 컨버터를 사용해 트레이닝 후 양자화를 실행해야 한다. TensorFlow 2.0의 TFLite Converter가 양자화 과정 중 uint8 입/출력을 지원하지 않고 있기 때문이다. 즉, TensorFlow 2.0 자체는 Edge TPU를 지원하지 않고 있다 표현하는게 맞다.
6. Edge TPU의 처리능력은 어느 정도인가?
1초당 4조건을 실행 할 수 있다. TOPS에 0.5W(1W 당 2TOPS)를 사용한다.
7. Edge TPU는 ML 트레이닝을 가속해 실행할 수 있는가?
가능하지만, 최종 Layer의 반복된 트레이닝만 가능하다. TensorFlow 모델은 Edge TPU에서 고속화 하기 위해 컴파일 해야 하므로, 모든 레이어의 가중치를 갱신할 수 없다.
8. Dev Board와 USB Accelerator의 차이점은?
Coral Dev Board는 SOC와 Edge TPU가 SoM에 통합된 싱글보드로 하나의 완전한 시스템이다. SoM을 제거하고 커넥터를 통해 다른 하드웨어와 연결할 수도 있다.
Coral USB Accelerator는 Edge TPU를 보조 프로세서로 기존 시스템에 악세서리 형태로 추가하는 디바이스다. USB 3.0으로 연결되며, 특정 운영체제(Debian Linux 계열)의 경우 USB만 연결하는것으로 사용 준비 상태가 된다.
9. Edge TPU 칩만 구입 가능한가?
불가능하다. 현재 Stand-alone의 Edge TPU ASIC은 별도 판매하고 있지 않지만 USB 3.0 또는 PCIe 인터페이스를 사용해 기존 하드웨어의 보조 프로세서로 Edge TPU를 사용할 수 있도록 도와준다.