<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                {% raw %} # 十六、移動和嵌入式平臺上的 TensorFlow 模型 TensorFlow 模型還可用于在移動和嵌入式平臺上運行的應用。 TensorFlow Lite 和 TensorFlow Mobile 是資源受限移動設備的兩種 TensorFlow。與 TensorFlow Mobile 相比,TensorFlow Lite 支持功能的子集。由于較小的二進制大小和較少的依賴項,TensorFlow Lite 可以獲得更好的表現。 要將 TensorFlow 集成到您的應用中,首先,使用我們在整本書中提到的技術訓練模型,然后保存模型。現在可以使用保存的模型在移動應用中進行推理和預測。 要了解如何在移動設備上使用 TensorFlow 模型,在本章中我們將介紹以下主題: * 移動平臺上的 TensorFlow * Android 應用中的 TFMobile * Android 上的 TFMobile 演示 * iOS 上的 TFMobile 演示 * TensorFlow Lite * Android 上的 TFLite 演示 * iOS 上的 TFLite 演示 # 移動平臺上的 TensorFlow TensorFlow 可以集成到移動應用中,用于涉及以下一項或多項機器學習任務的許多用例: * 語音識別 * 圖像識別 * 手勢識別 * 光學字符識別 * 圖像或文本分類 * 圖像,文本或語音合成 * 對象識別 要在移動應用上運行 TensorFlow,我們需要兩個主要成分: * 經過訓練和保存的模型,可用于預測 * TensorFlow 二進制文件,可以接收輸入,應用模型,生成預測,并將預測作為輸出發送 高級架構如下圖所示: ![](https://img.kancloud.cn/3d/0f/3d0f861f048dbaad690d07f21356371e_339x221.png) 移動應用代碼將輸入發送到 TensorFlow 二進制文件,該二進制文件使用訓練的模型來計算預測并將預測發回。 # Android 應用中的 TFMobile TensorFlow 生態系統使其能夠通過接口類`TensorFlowInferenceInterface`,和 jar 文件`libandroid_tensorflow_inference_java.jar`中的 TensorFlow Java API 在 Android 應用中使用。您可以使用 JCenter 中的 jar 文件,從`ci.tensorflow.org`下載預編譯的 jar,也可以自己構建。 推理接口已作為 JCenter 包提供,可以通過將以下代碼添加到`build.gradle`文件中包含在 Android 項目中: ```py allprojects { repositories { jcenter() } } dependencies { compile 'org.tensorflow:tensorflow-android:+' } ``` [您可以按照此鏈接中的說明使用 Bazel 或 Cmake 自行構建它們,而不是使用 JCenter 中的預構建二進制文件](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/android/README.md)。 在 Android 項目中配置 TF 庫后,您可以通過以下四個步驟調用 TF 模型: 1. 加載模型: ```py TensorFlowInferenceInterface inferenceInterface = new TensorFlowInferenceInterface(assetManager, modelFilename); ``` 1. 將輸入數據發送到 TensorFlow 二進制文件: ```py inferenceInterface.feed(inputName, floatValues, 1, inputSize, inputSize, 3); ``` 1. 運行預測或推理: ```py inferenceInterface.run(outputNames, logStats); ``` 1. 接收 TensorFlow 二進制文件的輸出: ```py inferenceInterface.fetch(outputName, outputs); ``` # Android 上的 TFMobile 演示 在本節中,我們將學習如何重新創建 TensorFlow 團隊在其官方倉庫中提供的 Android 演示應用。 Android 演示將在您的 Android 設備上安裝以下四個應用: * `TF Classify`:這是一個對象識別應用,用于識別設備攝像頭輸入中的圖像,并在其中一個預定義的類中對其進行分類。它不會學習新類型的圖片,但會嘗試將它們分類為已經學過的類別之一。該應用使用 Google 預訓練的初始模型構建。 * `TF Detect`:這是一個物體檢測應用,可檢測設備相機輸入中的多個物體。在連續圖像進紙模式下移動相機時,它會繼續識別對象。 * `TF Stylize`:這是一個樣式轉移應用,可將選定的預定義樣式之一傳輸到設備相機的輸入。 * `TF Speech`:這是一個語音識別應用,用于識別您的語音,如果它與應用中的某個預定義命令匹配,則它會在設備屏幕上突出顯示該特定命令。 示例演示僅適用于 API 級別大于 21 的 Android 設備,并且該設備必須具有支持`FOCUS_MODE_CONTINUOUS_PICTURE`的現代相機。如果您的設備相機不支持此功能,[則必須添加作者提交給 TensorFlow 的路徑](https://github.com/tensorflow/tensorflow/pull/15489/files)。。 在您的設備上構建和部署演示應用的最簡單方法是使用 Android Studio。要以這種方式構建它,請按照下列步驟操作: 1. 安裝 Android Studio。[我們通過此鏈接的說明在 Ubuntu 16.04 上安裝了 Android Studio](https://developer.android.com/studio/install.html)。 2. 查看 TensorFlow 倉庫,并應用上一篇技巧中提到的補丁。我們假設您檢查了主目錄中`tensorflow`文件夾中的代碼。 1. 使用 Android Studio,在路徑`~/tensorflow/tensorflow/examples/Android`中打開 Android 項目。您的屏幕看起來與此類似: ![](https://img.kancloud.cn/ce/53/ce53bf2ded03536dd2279b5533ebdfaf_1165x770.png) 1. 從左側欄中展開 Gradle Scripts 選項,然后打開`build.gradle`文件。 2. 在`build.gradle`文件中,找到`def nativeBuildSystem`定義并將其設置為`'none'`。在我們檢出的代碼版本中,此定義位于第 43 行: ```py def nativeBuildSystem = 'none' ``` 1. 構建演示并在真實或模擬設備上運行它。我們在這些設備上測試了應用: ![](https://img.kancloud.cn/1c/4f/1c4f68d6c376d37c391a9e0441a26799_625x494.png) 1. 您還可以構建 apk 并在虛擬或實際連接的設備上安裝 apk 文件。一旦應用安裝在設備上,您將看到我們之前討論的四個應用: ![](https://img.kancloud.cn/82/c4/82c4e65674dcce03fc0940981559cafe_435x853.png) Android 模擬器中的 TF 示例應用 [您還可以按照此鏈接中的說明使用 Bazel 或 Cmake 從源構建整個演示應用](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android)。 # iOS 應用中的 TFMobile TensorFlow 通過以下步驟支持 iOS 應用: 1. 通過在項目的根目錄中添加名為`Profile`的文件,在您的應用中包含 TFMobile。將以下內容添加到`Profile`: ```py target 'Name-Of-Your-Project' pod 'TensorFlow-experimental' ``` 1. 運行`pod install`命令下載并安裝 TensorFlow 實驗艙。 2. 運行`myproject.xcworkspace`命令打開工作區,以便將預測代碼添加到應用邏輯中。 要為 iOS 項目創建自己的 TensorFlow 二進制文件,請按照[此鏈接中的說明](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/ios)。 在 iOS 項目中配置 TF 庫后,可以通過以下四個步驟調用 TF 模型: 1. 加載模型: ```py PortableReadFileToProto(file_path, &tensorflow_graph); ``` 1. 創建會話: ```py tensorflow::Status s = session->Create(tensorflow_graph); ``` 1. 運行預測或推理并獲得輸出: ```py std::string input_layer = "input"; std::string output_layer = "output"; std::vector<tensorflow::Tensor> outputs; tensorflow::Status run_status = session->Run( {{input_layer, image_tensor}}, {output_layer}, {}, &outputs); ``` 1. 獲取輸出數據: ```py tensorflow::Tensor* output = &outputs[0]; ``` # iOS 上的 TFMobile 演示 要在 iOS 上構建演示,您需要 Xcode 7.3 或更高版本。請按照以下步驟構建 iOS 演示應用: 1. 查看主目錄中`tensorflow`文件夾中的 TensorFlow 代碼。 2. 打開終端窗口并從主文件夾執行以下命令以下載 InceptionV1 模型,提取標簽和圖文件,并將這些文件移動到示例應用代碼中的數據文件夾中: ```py $ mkdir -p ~/Downloads $ curl -o ~/Downloads/inception5h.zip \ https://storage.googleapis.com/download.tensorflow.org/models/inception5h.zip \ && unzip ~/Downloads/inception5h.zip -d ~/Downloads/inception5h $ cp ~/Downloads/inception5h/* \ ~/tensorflow/tensorflow/examples/ios/benchmark/data/ $ cp ~/Downloads/inception5h/* \ ~/tensorflow/tensorflow/examples/ios/camera/data/ $ cp ~/Downloads/inception5h/* \ ~/tensorflow/tensorflow/examples/ios/simple/data/ ``` 1. 導航到其中一個示例文件夾并下載實驗窗格: ```py $ cd ~/tensorflow/tensorflow/examples/ios/camera $ pod install ``` 1. 打開 Xcode 工作區: ```py $ open tf_simple_example.xcworkspace ``` 1. 在設備模擬器中運行示例應用。示例應用將顯示“運行模型”按鈕。相機應用需要連接 Apple 設備,而其他兩個也可以在模擬器中運行。 # TensorFlow Lite 在編寫本書時,TFLite 是該版塊中的新手,并且仍處于開發人員視圖中。 TFLite 是 TensorFlow Mobile 和 TensorFlow 的一個非常小的子集,因此使用 TFLite 編譯的二進制文件非常小,并提供卓越的表現。除了減小二進制文件的大小,TensorFlow 還采用了各種其他技術,例如: * 內核針對各種設備和移動架構進行了優化 * 計算中使用的值是量化的 * 激活函數是預融合的 * 它利用設備上可用的專用機器學習軟件或硬件,例如 Android NN API 在 TFLite 中使用模型的工作流程如下: 1. **獲取模型**:您可以訓練自己的模型或選擇可從不同來源獲得的預訓練模型,并按原樣使用預訓練或使用您自己的數據再訓練,或在修改某些部分后再訓練該模型。只要您在文件中使用擴展名為`.pb`或`.pbtxt`的訓練模型,就可以繼續執行下一步。我們在前面的章節中學習了如何保存模型。 2. **檢查模型**:模型文件只包含圖的結構,因此需要保存檢查點文件。檢查點文件包含模型的序列化變量,例如權重和偏差。我們在前面的章節中學習了如何保存檢查點。 3. **凍結模型**:合并檢查點和模型文件,也稱為凍結圖。 TensorFlow 為此步驟提供`freeze_graph`工具,可以按如下方式執行: ```py $ freeze_graph --input_graph=mymodel.pb --input_checkpoint=mycheckpoint.ckpt --input_binary=true --output_graph=frozen_model.pb --output_node_name=mymodel_nodes ``` 1. **轉換模型**:需要使用 TensorFlow 提供的`toco`工具將步驟 3 中的凍結模型轉換為 TFLite 格式: ```py $ toco --input_file=frozen_model.pb --input_format=TENSORFLOW_GRAPHDEF --output_format=TFLITE --input_type=FLOAT --input_arrays=input_nodes --output_arrays=mymodel_nodes --input_shapes=n,h,w,c ``` 1. 現在,在步驟 4 中保存的`.tflite`模型可以在使用 TFLite 二進制文件進行推理的 Android 或 iOS 應用中使用。在您的應用中包含 TFLite 二進制文件的過程不斷發展,因此我們建議讀者按照[此鏈接中的信息](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite/g3doc)在您的 Android 或 iOS 應用中包含 TFLite 二進制文件。 通常,您可以使用`graph_transforms:summarize_graph`工具修剪在步驟 1 中獲得的模型。 修剪后的模型將僅具有在推理或預測時從輸入到輸出的路徑。僅刪除訓練或調試所需的任何其他節點和路徑(例如保存檢查點),從而使最終模型的大小非常小。 官方 TensorFlow 倉庫附帶 TFLite 演示,該演示使用預訓練的`mobilenet`對來自 1001 類別中的設備相機的輸入進行分類。演示應用顯示前三個類別的概率。 # Android 上的 TFLite 演示 要在 Android 上構建 TFLite 演示,請按照下列步驟操作: 1. 安裝 Android Studio。[我們通過此鏈接的說明在 Ubuntu 16.04 上安裝了 Android Studio](https://developer.android.com/studio/install.html)。 2. 查看 TensorFlow 倉庫,并應用上一篇技巧中提到的補丁。我們假設您檢查了主目錄中`tensorflow`文件夾中的代碼。 1. 使用 Android Studio,從路徑`~/tensorflow/tensorflow/contrib/lite/java/demo`打開 Android 項目。如果它抱怨缺少 SDK 或 Gradle 組件,請安裝這些組件并同步 Gradle。 2. 構建項目并使用`API?? > 21`在虛擬設備上運行它。 我們收到了以下警告,但構建成功了。 如果構建失敗,您可能希望解決警告: `Warning:The Jack toolchain is deprecated and will not run. To enable support for Java 8 language features built into the plugin, remove 'jackOptions { ... }' from your build.gradle file, and add` `android.compileOptions.sourceCompatibility 1.8` `android.compileOptions.targetCompatibility 1.8` `Future versions of the plugin will not support usage of 'jackOptions' in build.gradle.` `To learn more, go to https://d.android.com/r/tools/java-8-support-message.html` `Warning:The specified Android SDK Build Tools version (26.0.1) is ignored, as it is below the minimum supported version (26.0.2) for Android Gradle Plugin 3.0.1.` `Android SDK Build Tools 26.0.2 will be used.` `To suppress this warning, remove "buildToolsVersion '26.0.1'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.` 您還可以使用 Bazel 從源代碼構建整個演示應用,[其中包含此鏈接中的說明](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite)。 # iOS 上的 TFLite 演示 要在 iOS 上構建演示,您需要 Xcode 7.3 或更高版本。請按照以下步驟構建 iOS 演示應用: 1. 查看主目錄中`tensorflow`文件夾中的 TensorFlow 代碼。 2. 根據[此鏈接](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/lite/g3doc)中的說明構建適用于 iOS 的 TFLite 二進制文件。 3. 導航到示例文件夾并下載 pod: ```py $ cd ~/tensorflow/tensorflow/contrib/lite/examples/ios/camera $ pod install ``` 1. 打開 Xcode 工作區: ```py $ open tflite_camera_example.xcworkspace ``` 1. 在設備模擬器中運行示例應用。 # 總結 在本章中,我們學習了在移動應用和設備上使用 TensorFlow 模型。 TensorFlow 提供了兩種在移動設備上運行的方式:TFMobile 和 TFLite。我們學習了如何為 iOs 和 Android 構建 TFMobile 和 TFLite 應用。我們在本章中使用了 TensorFlow 演示應用作為示例。鼓勵讀者探索這些演示應用的源代碼,并使用 TFMobile 和 TFLite 通過使用 TensorFlow 構建的機器學習模型為自己的移動應用提供支持。 在下一章中,我們將學習如何在 R 統計軟件中使用 TensorFlow 和 RStudio 發布的 R 包。 {% endraw %}
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看