序文 ディープラーニングは、画像処理、音声認識、自然言語処理の分野で大きな成功を収めていますが、通常は強力なサーバー上で実行されます。スマートフォンがインターネット経由でサーバーにリモート接続する場合も、ディープラーニング技術を使用できますが、速度が遅く、デバイスが良好なネットワーク接続環境にある場合にのみ機能するため、ディープラーニングモデルをスマート端末に移行する必要があります。 スマート端末の 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をどのように解決するかを見てみましょう
>>: 機械学習を学ぶ前に、まずは確率論の基礎知識を習得する必要があります。
マルチモーダル大規模モデルに検出およびセグメンテーション モジュールを統合すると、画像の切り取りが簡...
[[412621]] 【51CTO.com クイック翻訳】 1. はじめに画像分類は、画像がどのクラ...
機械学習運用 (MLOps) とは、運用環境での機械学習モデルの展開、管理、監視を簡素化するために使...
[[426834]]国慶節のゴールデンウィークが近づいてきました。旅行の計画はお決まりですか?昨今...
俳優や声優(声優)の保護に取り組む日本俳優協会は6月14日、「生成型人工知能技術の活用に関する提言」...
人工知能という用語が最初に使われたのは、より正確には「狭義の AI」と呼ぶべきものでした。これは強力...
ほとんどの人は本物と偽物を区別できると自信を持っていますが、ディープフェイクの台頭により、この能力は...
[[432745]]パーソナライズ医療の需要の高まりは、ヘルスケア市場における人工知能の成長を推進す...
GPT-4 は計算能力を大量に消費するため、Microsoft でも処理できません。今年、数多くの ...
導入ハードウェアの性能向上と顔データ量の増加に伴い、顔認識はますます成熟し、商業的な用途もますます増...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
[[264296]]これは非常に興味深いスピーチです。これはMWCでソフトバンクの孫正義氏が行った...