Google Coral Edge TPU

Google Coral Edge TPU通過代理店Gravitylink向け全球銷商!

複数のEdge TPUで複数のモデルを実行する

2019-09-25 15:35:58 | Google AIY
Edge TPUには、モデルのパラメーターデータをローカルに保存するために使用される少量のRAMが含まれており、外部メモリからデータを取得する場合と比較して、より高速な推論速度を実現します。 通常、2つ目のモデルを実行するにはRAM内のモデルのパラメーターデータを交換する必要があるため、パイプライン全体が遅くなるため、Edge TPUごとに1つのモデルのみを実行する場合にパフォーマンスが最高になります。 このページで説明するように、1つの解決策は、異なるEdge TPUで各モデルを単純に実行することです。

または、モデルを同時コンパイルすることにより、パラメーターデータのスワップのオーバーヘッドコストを削減できます。 同時コンパイルにより、Edge TPUは複数のモデルのパラメーターデータをRAMに一緒に格納できます。つまり、通常、小さなモデルでのみうまく機能します。 このオプションの詳細については、パラメーターデータのキャッシュと同時コンパイルについてお読みください。 それ以外の場合、複数のEdge TPUに複数のモデルを配布する場合は、ここで読み続けてください。

パフォーマンスに関する考慮事項
システムにさらにEdge TPUを追加する前に、次のパフォーマンスの問題を検討してください:
  • Pythonは、CPUに制限された操作の実際のマルチスレッドをサポートしていません(Pythonグローバルインタープリターロック(GIL)について読んでください)。 ただし、Edge TPU Python API(TensorFlow Lite Python APIは除く)を最適化し、すべてのEdge TPU操作に対してPythonのマルチスレッド環境内で動作するようにしました。これらはIOに制限されており、パフォーマンスが向上します。 ただし、複数のモデルを実行する場合、これらの操作はPythonでマルチスレッド化できないため、イメージのダウンスケーリングなどのCPUに制限された操作は、おそらくパフォーマンスに影響することに注意してください。

  • 複数のUSBアクセラレータを使用する場合、特に大規模モデルを実行している場合、ホストUSBバスの速度によって最終的に推論速度がボトルネックになります。

  • USBハブを介して複数のUSBアクセラレータを接続する場合、各USBポートがデフォルトの動作周波数を使用する場合は少なくとも500mA、最大周波数を使用する場合は900mAを提供できることを確認してください(USBアクセラレータのパフォーマンス設定を参照)。 そうしないと、デバイスが適切に機能するのに十分な電力を消費できない可能性があります。

  • 外部USBハブを使用する場合は、USBアクセラレーターをプライマリポートのみに接続してください。 一部のUSBハブには、互換性のないセカンダリポートを備えたサブハブが含まれています。APIはこれらのポートでEdge TPUコンテキストを確立できません。 たとえば、lsusb -tと入力すると、次のようにポートが印刷されます。 最初の2つのUSBポート(usbfs)は正常に機能しますが、最後の1つは機能しません。
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/7p, 5000M | Port 3: Dev 36, If 0, Class=Hub, Driver=hub/4p, 5000M    | Port 1: Dev 51, If 0, Class=Vendor Specific Class, Driver=usbfs, 5000M  # WORKS    | Port 2: Dev 40, If 0, Class=Hub, Driver=hub/4p, 5000M        | Port 1: Dev 41, If 0, Class=Vendor Specific Class, Driver=usbfs, 5000M  # WORKS        |__ Port 2: Dev 39, If 0, Class=Vendor Specific Class, Driver=usbfs, 5000M  # DOESN'T WORK
TensorFlow Lite Python APIを使用する

TensorFlow Lite Python APIを使用して推論を実行し、複数のEdge TPUがある場合、load_delegate()関数を使用して各 Interpreterが使用するEdge TPUを指定できます。

load_delegate()に1つのエントリdeviceを持つ辞書を渡すだけで、使用するEdge TPUデバイスを指定できます。 受け入れられる値は次のいずれかです:
  • usb:デフォルトのUSB接続Edge TPUを使用します。
  • sb:<index>:列挙されたデバイスインデックスによって示されるUSB接続のEdge TPUを使用します。
  • pci:デフォルトのPCIe接続エッジTPUを使用します。
  • pci:<index>:列挙されたデバイスインデックスによって示されるPCIe接続のEdge TPUを使用します。
interpreter_1 = Interpreter(model_1_path,  experimental_delegates=[load_delegate('libedgetpu.so.1.0', {"device": "usb:0"})]) 
interpreter_2 = Interpreter(model_2_path,  experimental_delegates=[load_delegate('libedgetpu.so.1.0', {"device": "usb:1"})])
この方法で個別のEdge TPUを指定しない場合、両方のモデルが同じEdge TPUで実行されます。これは、上記の概要で説明したように低速です。

TensorFlow Lite C ++ APIを使用する

TensorFlow Lite C ++ APIを使用して推論を実行し、複数のEdge TPUがある場合、EdgeTpuManager :: OpenDevice() を介してEdgeTpuContextを作成するときに各Interpreter が使用するEdge TPUを指定できます。

OpenDevice()メソッドにはdevice_typeのパラメーターが含まれており、次の2つの値のいずれかを受け入れます。
  • DeviceType.kApexUsb:デフォルトのUSB接続Edge TPUを使用します。
  • DeviceType.kApexPci:デフォルトのPCIe接続Edge TPUを使用します。
たとえば、2つのUSBアクセラレータが接続されている場合、次のようにそれぞれがUSBアクセラレータの1つを使用する2つのインタープリターを指定する必要があります。

同じタイプの複数のEdge TPUがある場合、2番目のパラメーター device_path を指定する必要があります。 使用可能な各Edge TPUの特定のデバイスパスを取得するには、EdgeTpuManager.EnumerateEdgeTpu()を呼び出します。

この方法で個別のEdge TPUを指定しない場合、両方のモデルが同じEdge TPUで実行されます。これは、上記の概要で説明したように低速です。

例については、two_models_two_tpus_threaded.cc を参照してください。

edgetpu.h のAPIの詳細も参照してください。

Edge TPU Python APIを使用する

Edge TPU Python APIを使用して推論を実行しており、複数のEdge TPUがある場合、Edge TPU APIは各推論エンジン(ClassificationEngineやDetectionEngineなど)を異なるEdge TPUに自動的に割り当てます。 したがって、上記のTensorFlow Lite APIとは異なり、同じ数の推論エンジンとEdge TPUがあれば、余分なコードを書く必要はありません。

たとえば、2つのEdge TPUと2つのモデルがある場合、通常どおり推論エンジンを作成するだけで、別々のEdge TPUで各モデルを実行できます:
# Each engine is automatically assigned to a different Edge TPU engine_a = ClassificationEngine(classification_model) engine_b = DetectionEngine(detection_model)
その後、それらは別々のEdge TPUで自動的に実行されます。

Edge TPUが1つだけの場合、このコードは引き続き機能し、両方が同じEdge TPUを使用します。
ただし、複数のEdge TPU(N)があり、N + 1(またはそれ以上)モデルがある場合は、追加の推論エンジンごとに使用するEdge TPUを指定する必要があります。 そうしないと、エンジンがEdge TPUデバイスにマップされないというエラーが表示されます。

たとえば、2つのEdge TPUと3つのモデルがある場合、3番目のエンジンを他の1つと同じEdge TPUで実行するように設定する必要があります(どちらを決定するか)。 次のコードは、device_path 引数をengine_b で使用されるものと同じデバイスに指定することにより、engine_cでこれを行う方法を示しています。
# The second engine is purposely assigned to the same Edge TPU as the first engine_a = ClassificationEngine(classification_model) engine_b = DetectionEngine(detection_model) engine_c = DetectionEngine(other_detection_model, engine_b.device_path())
ListEdgeTpuPaths()から利用可能なEdge TPUデバイスパスのリストを取得することもできます。
サンプルコードについては、two_models_inference.py を参照してください。

注:USBで接続されたすべてのEdge TPUは同等に扱われます。 モデルを配布する際に優先順位付けはありません。 ただし、USBアクセラレータを開発ボードに接続すると、システムは常にUSBデバイスを使用する前にオンボード(PCIe)エッジTPUを優先します。

続きを読む

Coral Dev Board は、小さなフォームファクターで高速機械学習(ML)推論を実行する必要がある場合に理想的なシングルボードコンピューターです。 Dev Boardを使用して組み込みシステムのプロトタイプを作成し、オンボードCoral System-on-Module(SoM)をカスタムPCBハードウェアと組み合わせて実稼働環境に拡張できます。

Coral USB Accelerator は、システムにEdge TPUコプロセッサーを追加するUSBデバイスです。 USBソケットが含まれているため、任意のLinuxベースのシステムに接続して、加速ML推論を実行できます。

オンボードのEdge TPUは、Googleが設計した小さなASICであり、低電力コストで高性能なML推論を提供します。 たとえば、MobileNet v2などの最先端のモバイルビジョンモデルを400 FPSで電力効率の高い方法で実行できます。

Google AIY Vision Kit:Rpiを画像認識デバイスに変える

2019-09-20 17:17:23 | Google AIY
Googleは、Raspberry Pi機器を画像認識デバイスに変えることができるAIY(AI自分)ビジョンキットを発売しました。 ビジョンキットはGoogleのTensorFlow機械学習モデルを搭載しており、まもなくデバイスを制御するためのAndroidアプリが付属します。



AIY音声プロジェクトも導入しました。これにより、メーカーはGoogle Assistant SDKを使用して、Raspberry Piを音声制御アシスタントに変えることができました。


Vision Kit は「オンデバイスニューラルネットワークアクセラレーション」を特長としており、Raspberry Piベースのボックスでクラウドで処理せずにコンピュータービジョンを実行できます。 AIY Voice Kitは、自然言語処理をクラウドに依存しています。


キットには、最大1000種類のオブジェクトを認識できるオブジェクト認識アプリケーション、顔とその表情を認識するオブジェクト認識アプリケーション、人、猫、犬を検出する3つのアプリケーションがあります。 それだけで多くのいたずらをすることができますが、独自のニューラルネットワークを実行することもできます。

VisionBonnetボードはGoogleによって開発され、IntelのMovidius MA2450ビジョン処理チップを搭載しています。 このチップは、Vision Kitの秘密のソースです。 Raspberry Pi 3に依存する場合よりもコンピュータービジョンの実行が60倍速くなります。VisionBonnetは、キットに付属のケーブルでRaspberry Pi Zero Wに接続されます。




Googleは、開発者がこれらのニューラルネットワークを構築し、猫/犬/人の検出器にウサギを認識させるなどの新しいタスクに適用することを望んでいます。 この目標を達成するために、TensorFlowでモデルを再トレーニングするためのモデルをコンパイルするツールが提供されています。

Vision Kitは、Googleディストリビュータ Gravitylink から89.99ドルで入手できます。


Google Mini PCIe Acceleratorを導入する

2019-09-19 17:09:08 | Google AIY
Google Mini PCIe Acceleratorを導入する


Mini PCIeまたはM.2インターフェイスを使用して、Edge TPUをレガシーシステムと新しいシステムに統合します。



もっと詳しく知る: Google Coral Edge TPU  (https://store.gravitylink.com/global)

特徴
Google Edge TPU MLアクセラレーター
標準のハーフミニPCIeカード
ホストCPUでDebian Linuxおよびその他のバリアントをサポート

概要
Coral Mini PCIe Acceleratorは、既存のシステムおよび製品にEdge TPUコプロセッサーを提供するPCIeモジュールです。

Edge TPUは、低電力要件で高性能ML推論を提供するGoogleによって設計された小さなASICです:各TOPSに0.5ワット(ワットあたり2 TOPS)を使用して、1秒間に4兆回の操作(テラ操作)(TOPS)を実行できます )。 たとえば、MobileNet v2などの最先端のモバイルビジョンモデルを400 FPSで電力効率の高い方法で実行できます。 このオンデバイス処理により、待ち時間が短縮され、データのプライバシーが向上し、一定の高帯域幅接続の必要性がなくなります。

Mini PCIe Acceleratorは、標準のMini PCIeスロットに収まるように設計されたハーフサイズのMini PCIeカードです。 このフォームファクタにより、ARMおよびx86プラットフォームに簡単に統合できるため、組み込みプラットフォーム、ミニPC、産業用ゲートウェイなどの製品にローカルMLアクセラレーションを追加できます。

必要条件
Coral Mini PCIe Acceleratorは、次の仕様のホストコンピューターに接続する必要があります。
  • 互換性のあるミニPCIeモジュールスロットを備えたLinuxコンピューター
  • Debian 6.0以降、またはその派生物(Ubuntu 10.0+など)
  • ARMv8命令セットを備えたx86-64またはARM32 / 64のシステムアーキテクチャ

次元
合計サイズ:30 x 26.80 x 2.5 mm
PCBサイズ:30 x 26.80 x 1.0 mm
上面コンポーネントの高さ(最大):1.5 mm
底面コンポーネントの高さ:0 mm
詳細な機械仕様については、PCI Express Mini Card Electromechanical Specificationを参照してください。

ソフトウェアと操作
ホストシステムは、Debian Linux 6.0以降、またはその派生物を実行し、Edge TPUランタイムとAPIライブラリがインストールされている必要があります。

PCIeカーネルドライバーは、バージョン4.19以降、ソースを使用してkernel.orgに既にアップストリーム化されています。 以前のバージョンの場合、dkmsドライバーは、https://packages.cloud.google.com/apt coral-edgetpu-stable main のガスケットdkms debパッケージから入手できます。

熱限界と動作周波数
Edge TPUスタックアップの熱抵抗と最大許容温度は次のとおりです。
  • 熱抵抗(シールド缶の上部への接合部):11°C / W
  • 最大Edge TPUジャンクション温度:100°C
  • Mini PCIe Acceleratorには、システムから熱を放散する熱ソリューションは含まれていません。 Edge TPUから最大のパフォーマンスを維持するには、Edge TPUが最大Edge TPU温度よりも十分に低く動作するようにシステムを設計することが重要です。 Edge TPUが高温になりすぎると、動作周波数が徐々に低下し、永久的な損傷を避けるためにリセットされる場合があります。
PCIeドライバーには、Edge TPUからの温度測定値に基づいて、電力調整メカニズム(動的周波数スケーリングとも呼ばれます)および緊急シャットダウンメカニズムが含まれています。デフォルトでは、このシステムはEdge TPUダイ温度を5秒ごとにチェックし、次のように応答します。
  • Edge TPUが85°C未満の場合、「最大」動作周波数で続行します。
  • Edge TPUが85°Cに達したら、動作周波数を50%下げます(「最大」から「通常」に)。
  • Edge TPUが90°Cに達した場合、動作周波数をさらに50%下げます(「通常」から「低」に)。
  • Edge TPUが95°Cに達した場合、動作周波数をさらに50%下げます(「低」から「最低」に)。
  • Edge TPUが100°Cに達したら、Edge TPUをリセットします。 動作周波数を下げることで、Edge TPUの推論速度は遅くなりますが、消費電力が少なくなり、ハードウェアリセットのしきい値に到達することを回避できます。
Edge TPUがリセットされず、Edge TPUの温度がより低いレベルに戻る限り、システムは逆の方法で動作周波数を復元します。EdgeTPUが85°Cを下回ると、最終的に最大動作周波数に戻ります。


社会的利益のための2,602のAIの使用、およびそれらから学んだこと

2019-09-18 16:06:25 | Google AIY
(來源:Google Blog)

過去数年間、Google AIの中核研究とエンジニアリングを、洪水の予測、クジラの保護、famineの予測など、社会にプラスの影響を与えるプロジェクトに適用してきました。人工知能は大きな社会的、人道的、環境的な問題に対処する信じられないほどの可能性を秘めていますが、この可能性を達成するためには、これらの分野ですでに進歩している組織がアクセスできる必要があります。したがって、2018年10月に開始されたGoogle AIインパクトチャレンジは、世界中の組織に、AIを使用して社会的課題に対処する方法についてのアイデアを提出するための公募でした。



「人工知能による社会的利益の促進」は、AIを使用して大きな問題に対処するさまざまな組織に光を当てます。また、社会的利益のためにAIを使用することに関連する機会と課題に関するいくつかの傾向を特定します。学んだことの一部を次に示します。詳細についてはレポートをご覧ください。

AIはグローバルに関連しています

6大陸と119か国から2,602件の応募があり、教育から環境に至るまで、幅広い問題分野に取り組むプロジェクトがありました。一部の応募者はAIの経験がありましたが、非営利組織の55%と非営利の社会的企業の40%がAIの以前の経験を報告していませんでした。



同様のプロジェクトは共有リソースの恩恵を受けることができます

すべてのアプリケーションを確認したところ、多くの人が同じ問題に取り組んでおり、同じアプローチを使用していることさえわかりました。たとえば、AIを使用して農業害虫を特定および管理することを提案する30以上のアプリケーションを受け取りました。レポートには、一般的なプロジェクトの提出物のリストが含まれています。これにより、人々は、同様の問題を解決するために働いている他の人々と協力し、リソースを共有することができます。

社会的利益のためにAIを使用するために専門家である必要はありません

新しい機械学習ライブラリや、TensorflowやML Kitなどの他のオープンソースツールがAIの実装に必要な技術的専門知識を減らすため、AIはよりアクセスしやすくなっています。組織はAIの深いバックグラウンドを持つ人を必要としなくなり、ゼロから始める必要はありません。すべてのセクターおよび組織の種類にわたって、提出物の70%以上が既存のAIフレームワークを使用して提案された課題に取り組んでいます。

成功するプロジェクトは、技術的能力とセクターの専門知識を兼ね備えています

プロジェクトを最初から最後まで成功裏に設計および実装するために、社会部門とAIの技術的な専門知識の両方を持つ組織はほとんどありませんでした。最も包括的なアプリケーションは、深いセクターの専門知識を持つ非営利団体と、技術的な経験を持つ学術機関またはテクノロジー企業との間にパートナーシップを確立しました。

MLだけが答えではありません

一部の問題は、AIの代替方法を使用することで対処できます。その結果、実行がより速く、より簡単に、より安価になります。たとえば、いくつかの組織は、機械学習を使用して、十分なサービスを受けていない集団を法的知識とツールに一致させることを提案しました。 AIは役立つかもしれませんが、適切に設計されたWebサイトを通じて同様の結果を達成できます。 AIが大きな問題の解決に与える影響を見てきましたが、より単純なアプローチも除外すべきではありません。

社会的利益のためのAIを取り巻く世界的な勢いが増しており、多くの組織がすでにさまざまな社会的課題に対処するためにAIを使用しています。より多くの社会部門組織がAIの可能性を認識しているため、私たち全員がより良い世界のために彼らの仕事を支援する上で果たすべき役割を持っています。

Google Coral Edge TPU代理店Gravitylink! 


これらのデバイスはまだ正式に発表されていないようで、最初にHacksterによって発見されました。これらは新しいGoogle Coralブランド(それ自体はまだ「ベータ版」)の下で導入されており、149.99ドルで販売されている開発ボード、74.99ドルで販売されているUSBアクセラレータ、および24.99ドルで入手可能な5メガピクセルのカメラを含みます。 

開発ボードとアクセラレータはどちらもGoogleのEdge TPUチップを搭載しています。これは、汗をかくことなくAIモデルを実行するように設計された、あなたの指の爪ほどの大きさのASICプロセッサです。その間、カメラは開発ボードのためのアドオンとしてあります。

Google Edge TPU用に最適化されたTensorFlowモデルのトレーニングと展開

2019-09-17 16:34:10 | Google AIY
エッジコンピューティングデバイスは、ディープラーニングモデルを実行する論理的な目的地になりつつあります。パブリッククラウドはトレーニングに適した環境ですが、推論用のモデルを実行するのはエッジです。ほとんどのエッジデバイスには、使用可能なCPUおよびGPUリソースという形式の制約があるため、推論を高速化するために設計された専用のAIチップがあります。これらのAIアクセラレータは、推論に関係する計算を高速化することでCPUを補完します。これらは、エッジに配置されたニューラルネットワークの前方伝播を最適化するように設計されています。


  • Google Coral Edge TPU,オンラインで購入するにはこちらをご覧ください: https://store.gravitylink.com/global
Google Edge TPUは、推論モードでTensorFlowモデルを実行するために高度に最適化された市場のAIアクセラレーターの1つです。開発者は、Google Coral Dev Board およびCoral USB Accelerator を通じてEdge TPUを開始できます。これら2つのデバイスの構成と仕様の詳細については、以前の記事を参照してください。

CPU、TPU、およびTPUでトレーニングされた典型的なTensorFlowモデルは、Edge TPUに直接展開できません。 Edge TPUが提供する高速化を最大限に活用するには、モデルを変換して最適化する必要があります。

TensorFlow開発者は、モバイル、組み込み、IoTデバイスでTensorFlowモデルを変換および実行するためのツールキットであるTensorFlow Liteに精通しています。 TensorFlow Liteは、リソースに制約のあるモバイルデバイスや組み込みデバイスでモデルを効率的に実行するように設計されています。既存のTensorFlowモデルをTF Liteに変換するワークフローには、Python SDKまたはCLIの使用が含まれます。 SavedModelディレクトリ、フリーズグラフ、Keras HDF5形式のモデルは、SDKまたはCLIを使用してTF Liteに簡単に変換できます。変換されたモデルは、TF Liteインタープリターを備えたモバイルデバイスまたは組み込みデバイスに展開して実行できます。

TensorFlow Liteインタープリターは、モデルファイルを受け取り、入力データに対して定義した操作を実行し、出力へのアクセスを提供するライブラリです。このインタープリターは複数のプラットフォームで機能し、Java、Swift、Objective-C、C ++、PythonからTensorFlow Liteモデルを実行するためのシンプルなAPIを提供します。

残念ながら、Edge TPUは推論用のTF Liteモデルをサポートしていません。開発者は、Edge TPUのTF Liteモデルをさらに最適化することが期待されています。 Googleは、Edge TPU用にTensorFlowモデルを変換および最適化するコマンドラインツールを出荷しました。

TensorFlowは、量子化と呼ばれるモデル最適化手法をサポートしています。これは、Edge TPUで必要です。モデルの量子化とは、基本的にすべての32ビット浮動小数点数(重みやアクティベーション出力など)を最も近い8ビット固定小数点数に変換することを意味します。この手法により、モデルはより小さく、より高速になります。これにより精度が低下しますが、モデルは依然として許容可能なレベルの精度を維持します。

Edge TPUはディープフィードフォワードニューラルネットワークを実行するため、完全に8ビットで量子化されてからEdge TPU用に特別にコンパイルされたTensorFlow Liteモデルのみをサポートします。

この記事では、TensorFlowモデルをEdge TPUでトレーニング、最適化、展開する2つの特定のメカニズムについて説明します。

Google Cloud Auto ML Vision

AutoMLは、大部分のステップを自動化することにより、モデルのトレーニングプロセスの高速化を試みます。 ユーザーはデータセットをアップロードし、予測が利用可能になるのを待つことが期待されます。 機能エンジニアリングからハイパーパラメーター調整まで、AutoMLはパイプラインの最も複雑なステップに取り組みます。

Googleは、ビジョンコンピューティングにAutoMLを提供する最初の企業の1つです。 Cloud AutoML Visionは、Cloud Storageバケットにアップロードされた画像データセットにアクセスし、推論の準備ができているモデルをトレーニングします。 トレーニングされたモデルは、クラウドでホストしてオンラインで予測したり、エッジで展開してオフラインで推論したりできます。 Cloud AutoML Visionの使用に関する詳細なガイドについては、以前に公開したチュートリアルに従ってください。

Cloud AutoML Visionは、Raspberry Piなどのモバイルデバイスに展開できる標準のTensorFlow Liteモデルを生成できます。 また、Edge TPU用に高度に最適化されたモデルの生成もサポートしています。

モデルがトレーニングされると、ターゲット推論環境向けにさらに最適化できます。 以下のスクリーンショットは、サポートされているデバイスを示しています。

このサービスは、Edge TPUに最適化されたTF LiteモデルをCloud Storageバケットにアップロードします。CloudStorageバケットは、ダウンロードして推論のために展開できます。

もう1つのオプションは、標準のTF Liteモデルをトレーニングし、次のセクションで説明するEdge TPU用にコンパイルすることです。

Cloud AutoML Visionサービスを使用する最大のメリットは、モデルをトレーニングおよび生成するためのコードなしのアプローチです。 データセットのサイズに応じて、モデルは数時間で準備できます。 Googleは、AutoML VisionサービスとEdge TPUを接続する素晴らしい仕事をしました。

Edge TPU SDKおよびCLIと組み合わせた転移学習

もう1つの方法は、強力な転送学習プロセスを使用してモデルをトレーニングし、Edge TPU用にモデルを最適化することです。このアプローチにより、ニューラルネットワークアーキテクチャとハイパーパラメーターの調整をより適切に制御できます。

畳み込みニューラルネットワークをゼロからトレーニングするには、数日から数週間の計算時間がかかり、大量のトレーニングデータが必要になります。しかし、転移学習により、開発者は、同様のタスクについて既にトレーニングされた既存のニューラルネットワークアーキテクチャから開始し、さらにトレーニングを実行して、より小さなトレーニングデータセットを使用して新しいデータポイントを分類するモデルを教えることができます。モデル全体を再トレーニングすることでこれを行うことができます(ネットワーク全体で重みを調整します)が、分類を実行する最終レイヤーを削除するだけで非常に正確な結果を達成し、新しいクラスを認識するために新しいレイヤーをトレーニングすることもできます。
たとえば、既存のMobileNetモデルを使用して再利用し、犬の画像をいずれかの品種に分類するモデルをトレーニングできます。ニューラルネットワークアーキテクチャの90%は同じままなので、トレーニングは数分で完了します。

モデルが転送学習ベースのトレーニングから生成されると、Edge TPU用に最適化されたTF Liteモデルに簡単に変換できます。

Googleは、Edge TPU用に最適化された人気モデルをダウンロード可能にしました。 これらのモデルは、転移学習を実行するためのベースラインとして使用できます。 これらのモデルの一部は、クラウドまたは強力なコンピューティング環境を使用せずに、トレーニングプロセス全体がGoogle Coral Dev Kitで実行されるデバイス上のトレーニングにも使用できます。 Dev Kitには十分な処理能力があるため、転送学習を通じて、より小さなデータセットに基づいてモデルをトレーニングするために活用できます。

GoogleはCloud TPUをエッジに拡張しただけでなく、開発者がEdge TPU用にTensorFlowモデルを変換および最適化することも簡単にしました。