序文 ディープラーニングは、画像処理、音声認識、自然言語処理の分野で大きな成功を収めていますが、通常は強力なサーバー上で実行されます。スマートフォンがインターネット経由でサーバーにリモート接続する場合も、ディープラーニング技術を使用できますが、速度が遅く、デバイスが良好なネットワーク接続環境にある場合にのみ機能するため、ディープラーニングモデルをスマート端末に移行する必要があります。 スマート端末の CPU とメモリのリソースは限られているため、コンピューティング パフォーマンスとメモリ使用率を向上させるには、サーバー側モデルを量子化し、低精度アルゴリズムをサポートする必要があります。 TensorFlow リリースでは、Android、iOS、Raspberry Pi ハードウェア プラットフォームのサポートが追加され、それらのデバイスで画像分類などの操作を実行できるようになりました。これにより、スマートフォンで動作し、クラウドを常に利用可能にする必要がない機械学習モデルの作成が可能になり、新しいアプリが前面に出てきます。 この記事では主に、「花の名前認識」APPアプリケーションに基づいてTensorFlowモデルをAndroidシステムに適用する方法、サーバー側でTensorFlowモデルをトレーニングしてモデルファイルをスマート端末に移行する方法、TensorFlow Android開発環境とアプリケーション開発APIを構築する方法について説明します。 花の名前アプリ 「花に名前をつけよう」アプリは、AlexNet モデル、Flowers データ、Android プラットフォームを使用して構築されました。 TensorFlow モデルは 5 種類の花のデータでトレーニングされます。次の図に示すように: デイジー タンポポ バラ: バラ ひまわり: ひまわり チューリップ: サーバー上でモデルをトレーニングした後、モデル ファイルを Android プラットフォームに移行し、モバイル フォンに APP をインストールします。効果は以下の図に示されています。インターフェースの上部にはモデル認識の信頼度が表示され、インターフェースの中央には認識される花が表示されます。 TensorFlow モデルを花名認識アプリに適用する方法には、主にモデルの選択と適用、モデル ファイルの変換、Android 開発という重要な手順が含まれます。次の図に示すように: モデルトレーニングとモデルファイル この章では、AlexNet モデルを使用して Flowers データをトレーニングします。 AlexNet は 2012 年に ImageNet で最高スコアを達成し、トップ 5 の精度は 80.2% でした。これは、従来の機械学習分類アルゴリズムとしては非常に印象的です。モデル構造は次のとおりです。 この記事では、トレーニングに TensorFlow 公式 Slim (https://github.com/tensorflow/models/tree/master/slim) AlexNet モデルを使用します。
スマート端末上のモデルファイルのサイズを縮小するために、TensorFlow ではモデルファイルを量子化するのが一般的な方法です。この記事の AlexNet CheckPoint ファイルの Freeze および Quantize 処理後のファイルサイズの変化は次の図に示されています。 量子化演算の主なアイデアは、モデルの推論段階で 32 ビット浮動小数点演算の代わりに同等の 8 ビット整数演算を使用することです。置き換えられた演算には、畳み込み演算、行列乗算、活性化関数、プーリング演算などが含まれます。量子化ノードの入力と出力は浮動小数点数ですが、内部演算は量子化計算によって 8 ビット整数 (0 ~ 255) に変換されます。浮動小数点数と 8 ビット量子化整数の対応関係は次の図に示されています。 量子化 ReLU 演算の基本的な考え方は次の図に示されています。 TensorFlow Androidアプリ開発環境構築 Android システムで推論に TensorFlow モデルを使用するには、libtensorflow_inference.so と libandroid_tensorflow_inference_java.jar の 2 つのファイルが必要です。これら 2 つのファイルは、以下に示すように、TensorFlow ソース コードをダウンロードし、bazel を使用してコンパイルできます。
TensorFlow は、Android 開発用のサンプル フレームワークを提供します。以下は、AlexNet モデルに基づくアプリです。対応するソース コードを変更してコンパイルし、Android インストール パッケージを生成します。
TensorFlow モバイルアプリケーション開発 API Android システムで TensorFlow Inference 操作を実行するには、libandroid_tensorflow_inference_java.jar の JNI インターフェースを呼び出す必要があります。主なインターフェースは次のとおりです。
要約する この記事では、「花を見て名前を識別する」アプリをベースに、Androidスマート端末におけるTensorFlowの応用技術について説明します。まず、AlexNet モデル構造を確認し、AlexNet スリム モデルに基づいて Flowers データをトレーニングしました。次に、トレーニングした CheckPoint データをフリーズおよび量子化して、スマート端末で使用される推論モデルを生成しました。次に、TensorFlow Android アプリケーション開発環境の構築を紹介し、Android 上で TensorFlow のダイナミック リンク ライブラリと Java 開発キットをコンパイルして生成します。最後に、Inference API の使用方法を紹介します。 参考文献
|
<<: Facebookの詐欺行為と戦う方法を学び、CopyCatchアルゴリズムがLockstepをどのように解決するかを見てみましょう
>>: 機械学習を学ぶ前に、まずは確率論の基礎知識を習得する必要があります。
年末です。大学生は期末試験の週で、労働者は KPI の達成に急いでいます。期限のない年末(DDL)は...
データ侵害疲労は長年の課題です。最高情報セキュリティ責任者 (CISO) は、絶え間ない問題解決...
最近、自律型ドローンがドローン競技会で人間のトッププレイヤーに勝利しました。この自律型ドローンは、チ...
この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...
最近、TCP/IP プロトコルの学習に時間を費やしました。主な理由は、TCP/IP に関する私の理解...
Microsoft は、生成型人工知能ベースのデジタル アシスタント Copilot をより多くのソ...
全国的に人材不足が進む中、テクノロジーは雇用者が厳しい市場で最高の人材を見つけるのに役立ちますが、人...
現在の AI の世界は電力を大量に消費し、計算能力が制限されています。モデル開発の軌跡は急速でしたが...
現在、JavaScript および TypeScript リポジトリで開発およびテストが行われて...
GenAI は 2024 年の最大のテクノロジー トレンドとなり、新しいツールのレビュー、インフラス...
数日前、バービー・ハイモアがインターネットで話題になって以来、ネットユーザーたちは、MidJourn...
[[387788]]簡単に言えば、ロボットに「聞く」機能を持たせるには、音声信号を電気信号に変換し、...
科学技術の継続的な進歩により、インテリジェント製品は徐々に日常生活に統合され、人工知能は現代の発展の...