日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

谷歌翻译api_翻译:TensorFlow on Android APP 示例

發布時間:2023/12/19 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 谷歌翻译api_翻译:TensorFlow on Android APP 示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文翻譯自原文:

Android TensorFlow Machine Learning Example?blog.mindorks.com

翻譯部分借助谷歌或有道翻譯幫助,再經過我人工修改完成,其中有誤之處還請多指正。

以下正文開始。


TensorFlow是谷歌提供的用于機器學習的開源軟件庫。

我(指作者)在互聯網上搜索了很多,但是沒有找到一個簡單的方法或者例子來在Android上構建使用TensorFlow的APP。在瀏覽了許多資源之后,我學會了如何構建它。然后,我決定把整個過程寫出來,這樣就不會占用你們的時間了。

作者新作:TensorFlow-Lite on Android 示例:

https://github.com/amitshekhariitbhu/Android-TensorFlow-Lite-Example?github.com

本文所用的分類器例子,源于谷歌官方的TensorFlow示例。

本文是為那些已經熟悉機器學習,并已了解如何構建機器學習模型的人準備的(對于本文的例子,我將使用一個預先訓練好的模型)。很快,我將寫一系列關于機器學習的文章,這樣每個人都可以學習如何建立機器學習的模型。

作者修改:現在已經不需要按下面那些步驟來構建TensorFlow調用庫,因為該庫現在可以通過Maven直接下載。Check this pull request

讓我們從Android的構建過程開始

以下是我們應該知道的:

TensorFlow的核心是用C++編寫。為了構建Android,我們必須使用 JNI (Java本地接口/Java Native Interface) 來調用C++函數,如loadModel,getprediction等。我們需要一個.so文件,它是一個C++編譯產生的二進制文件,還有一個.jar文件,它由調用本地C++函數的JAVA API組成。然后,我們將調用JAVA API來輕松完成任務。因此,我們需要 .jar (Java API) 和 .So (C++編譯) 文件我們必須有預先訓練好的一個模型文件和用于說明分類標簽的文件(可以是txt)

我們將建立如下的對象檢測APP:

構建.jar和.So文件

git clone --recurse-submodules https://github.com/tensorflow/tensorflow.git注意:--recurse-submodules命令很重要,它拉取了倉庫的子模塊。

從 here 下載 Android NDK(Android Studio 3.x支持自動下載NDK)。

用Android Studio下載Android SDK,或者可以給Android Studio手動指定SDK路徑。

從 here 安裝Bazel。Bazel是構建Tensorflow的官方構建工具。

現在,配置工程文件的環境,我們可以在之前克隆的TensorFlow的根目錄中找到WORKSPACE文件。

# 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)

下面是我們的SDK和NDK路徑:

android_sdk_repository(name = "androidsdk",api_level = 23,build_tools_version = "25.0.1",# Replace with path to Android SDK on your systempath = "/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 --host_crosstool_top=@bazel_tools//tools/cpp:toolchain --cpu=armeabi-v7a在這里要用我們想要的測試機型的架構來替換armeabi-v7a,如aarch64等。

執行bazel-bin后,動態庫將輸出于如下的路徑:

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

要構建Java版本可以執行如下輸出:

bazel build //tensorflow/contrib/android:android_tensorflow_inference_java

jar文件最后可以輸出在:

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

(推薦使用TensorFlow官網所推薦的構建命令來進行構建,不必按照如下命令來執行,因為此文寫于2018年,當時TF版本約為1.4左右,現在的TF版本已經是2.4了。)

現在我們有jar和so文件了。(作者)已經構建了so文件和jar文件,可以直接從下面的倉庫中使用。(作者)在Github創建了這個完整的示例應用程序倉庫:

https://github.com/MindorksOpenSource/AndroidTensorFlowMachineLearningExample?github.com

但是,我們仍然需要準備預先訓練好的模型和標簽文件。

本例中,我們將使用谷歌所提供的一個預訓練好的pb模型對給定圖像進行目標檢測。

可以從這里下載模型:

here?storage.googleapis.com

解壓縮這個zip文件,我們將得到

imagenet_comp_graph_label_strings.txt (標簽文件)tensorflow_inception_graph.pb (預訓練好的模型)

現在,在Android Studio中創建一個Android示例Project,把上面那兩個文件放入assets文件夾中。

libandroid_tensorflow_inference_java.jar放在libs文件夾中,右鍵單擊并選擇添加為庫。

compile files('libs/libandroid_tensorflow_inference_java.jar')

在主目錄中創建jniLibs文件夾,并把libtensorflow_inference.so放在jniLibs/armeabi-v7a/文件夾中。

現在,我們能調用TensorFlow Java API了。TensorFlow Java API 通過TensorFlowInferenceInterface類公開了所有必需的方法。

現在,我們必須使用模型路徑調用TensorFlow Java API并加載它,然后就可以輸入圖像來進行預測了。

要查看整個APP運行的內容,請克隆整個項目(鏈接在前面給了),構建然后運行即可。

作者更新:使用TensorFlow為Android創建自定義模型:

Creating Custom Model For Android Using TensorFlow?blog.mindorks.com

總結

以上是生活随笔為你收集整理的谷歌翻译api_翻译:TensorFlow on Android APP 示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。