Vengineerの妄想

人生を妄想しています。

モデルはKerasで書いて、Google ColabでTPUを使いましょう!


Google Colab。クラウトでCPUとGPUが使える、超お得な環境。

調べて見たら、ハードウェア仕様は、ここにありました。

 ・GPU: 1xTesla K80 , having 2496 CUDA cores, compute 3.7,  12GB(11.439GB Usable) GDDR5  VRAM

 ・CPU: 1xsingle core hyper threaded i.e(1 core, 2 threads) Xeon Processors @2.3Ghz (No Turbo Boost) , 45MB Cache

 ・RAM: ~12.6 GB Available

 ・Disk: ~320 GB Available 

 For every 12hrs or so Disk, RAM, VRAM, CPU cache etc data that is on our alloted virtual machine will get erased 

Colabの「ランタイム」=> 「ランタイムのタイプを変更」=> ハードウェアアクセラレータを選択すると、
 ・None
 ・GPU
 ・TPU
と出てきて、TPUも利用できるようです。

そこで、Keras Modelで無料なTPUを使うというのが、How to Train a Keras Model 20x Faster with a TPU for Free

そう、そうなんです。Kerasでモデル書いておけば、CPU、GPUだけでなく、TPUでも多少の変更でTPUで動くんですよ。

Google Colabならそれも無料で。。。

[keras_to_tpu_modelメソッドでKeras ModelをTPU Modelに変換していますね。kertas_to_tpu_modelは、ここにあるように、
  from tensorflow.contrib.tpu.python.tpu.keras_support import tpu_model as keras_to_tpu_model

になっていて、tpu_modelは、ここで定義されています。

ということで、モデルは Keras で書きましょう!

そして、学習済みのパラメータをファイルに書き込み、そのパラメータとモデルを使って、TensorFlow Liteに変換して、
Edge TPUで実行しよう!