1

TensorflowはAndroidアプリでテンソルフローを使用する例として、tutorialを提供しています。Android用Tensorflowの例

私は正常にアプリケーションを構築し、自分のデバイスで起動しました。私もコードを読んだ。

ここからどこに行くのかわかりません!私はトレーニングデータを与えられた精度を計算するテンソルフローコードを持っています。

どのように私は自分のアンドロイドアプリでそのモデルを使用しますか?テンソルフローの説明はビルドの指示を超えていません。

助けてください!

答えて

0

いくつかの良いチュートリアルが用意されており、手順を順を追って説明します。 (Androidのデモアプリケーションと互換性を持たせるために)strip_unusedツールを使用して

  • プロセスあなたTensorFlowモデルを:

    我々は画像分類の問題について話していると仮定すると、あなただけに必要とすべきです。

  • 削除したTensorFlow .pbモデルと新しいラベルの.txtをAndroidのassetsフォルダにコピーします。
  • Androidデモアプリをもう一度ビルドします。

詳細については、this blog postを参照してください。ここで、これを行う方法を書きました。

3

まず、モデルを.pb(protobuf)ファイルに保存する必要があります。 アプリケーションでは、この.pbファイルをロードする必要があります。これを実現するにはtf/python/tools freeze_graph.freeze_graph()

また、すべてのC++実装が含まれているlibtensorflow_inference.soが必要になります。

最後に、libandroid_tensorflow_inference_java.jarが必要です。

inferenceInterface.initializeTensorFlow(getAssets(), MODEL_FILE); 

inferenceInterface.fillNodeFloat(INPUT_NODE, INPUT_SIZE, inputFloats); 

inferenceInterface.runInference(new String[] {OUTPUT_NODE}); 

inferenceInterface.readNodeFloat(OUTPUT_NODE, resu); 

ここの素晴らしいチュートリアルがあります:アプリケーションのためのhttps://omid.al/posts/2017-02-20-Tutorial-Build-Your-First-Tensorflow-Android-App.html

GitHubのレポ:私にとってhttps://github.com/omimo/TFDroid

これは理解をたくさん助けあなたが書くことができ、これらにより

Androidでのtfの基本。

0

アンドロイド

ためTensorFlowを構築するために完了し、詳細な方法は
git clone --recurse-submodules https://github.com/tensorflow/tensorflow.git 

注:--recurse-サブモジュールサブモジュールを引くことが重要です。

ここからBazelをインストールしてください。 BazelはTensorFlowの主要構築システムです。 これで、WORKSPACEを編集すると、以前にクローン化したTensorFlowのルートディレクトリでWORKSPACEファイルを見つけることができます。

当社のSDKとNDKパスと以下のように
# Uncomment and update the paths in these entries to build the Android demo. 
#android_sdk_repository(
# name = "androidsdk", 
# api_level = 23, 
# build_tools_version = "25.0.1", 
# # Replace with path to Android SDK on your system 
# path = "<PATH_TO_SDK>", 
#) 
# 
#android_ndk_repository(
# name="androidndk", 
# path="<PATH_TO_NDK>", 
# api_level=14) 

android_sdk_repository(
    name = "androidsdk", 
    api_level = 23, 
    build_tools_version = "25.0.1", 
    # Replace with path to Android SDK on your system 
    path = "/Users/amitshekhar/Library/Android/sdk/", 
) 
android_ndk_repository(
    name="androidndk", 
    path="/Users/amitshekhar/Downloads/android-ndk-r13/", 
    api_level=14) 

その後の.soファイルを作成。

bazel build -c opt //tensorflow/contrib/android:libtensorflow_inference.so \ 
    --crosstool_top=//external:android/crosstool \ 
    [email protected]_tools//tools/cpp:toolchain \ 
    --cpu=armeabi-v7a 

armeabi-v7aを希望するターゲットアーキテクチャに置き換えます。 Javaのカウンターパートを構築するには

bazel-bin/tensorflow/contrib/android/libtensorflow_inference.so 

: ライブラリがに配置されます

bazel build //tensorflow/contrib/android:android_tensorflow_inference_java 

我々がでJARファイルを見つけることができます。

bazel-bin/tensorflow/contrib/android/libandroid_tensorflow_inference_java.jar 

今、私たちは、両方の瓶を持っています。だからファイル。私はすでに.soファイルとjarの両方をビルドしていますが、projectから直接使用できます。

libandroid_tensorflow_inference_java.jarをlibsフォルダに置き、右クリックしてライブラリとして追加します。

compile files('libs/libandroid_tensorflow_inference_java.jar') 

メインディレクトリにjniLibsフォルダを作成し、jniLibs/armeabi-v7a /フォルダに入れlibtensorflow_inference.so。

ここで、TensorFlow Java APIを呼び出すことができます。

TensorFlow Java APIは、TensorFlowInferencefaceクラスを使用して、必要なすべてのメソッドを公開しています。

ここで、モデルパスでTensorFlow Java APIを呼び出してロードする必要があります。

私は完全なブログhereを書きました。

関連する問題