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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

iPhone 11 训练神经网络的开源项目火了,准确率可与 i7 MacBook Pro 持平

發布時間:2023/11/22 综合教程 72 生活家
生活随笔 收集整理的這篇文章主要介紹了 iPhone 11 训练神经网络的开源项目火了,准确率可与 i7 MacBook Pro 持平 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前幾天有人發布了一個可以在 iOS設備上直接訓練神經網絡的開源項目MNIST-CoreML-Training,引起熱議。

項目使用 MNIST 手寫數字數據集部署圖像分類模型,不需要在其他 ML框架中訓練,而是基于 Core ML直接本地訓練出一個卷積神經網絡(LeNet CNN)模型。項目作者還將之和其他設備模型做了對比。在模型架構和訓練參數相同的情況下,同時在 iphone 11上運行 Core ML和在 i7 MacBook Pro 上運行 TensorFlow 2.0,兩種方式的準確率都超過了0.98,前者訓練時間大概為248秒,后者為158秒。

雖然用時上還有一定差距。但該項目和實驗被認為證明了 ios 設備計算性能的提升,也探索了移動設備在本地訓練的可能性。目前移動設備本地訓練還難以完美實現,但想要在移動端部署 AI 應用還是有很多途徑的,今天就來看看移動端的 AI 開發。

iOS的 Core ML 和 Andorid 的 NNAPI

在移動端實現卷積神經網絡,一般可以先在 GPU 或 TPU 上訓練模型,之后再壓縮部署到移動端。早前,有人基于開源的計算機視覺庫 OpenCV 和開源訓練模型 Caffe,在Android 端實現車牌識別。Caffe 便是在 GPU 機器上訓練,然后部署到商品集群或移動設備,在CPU和GPU之間切換,Caffe 模型還曾被用來在Android 上做性別識別卷積神經訓練。

當然,也已經有項目基于移動設備內置的一些 ML 框架,省去了在 GPU 和 TPU 上提前訓練模型的步驟,直接在移動端部署。如 ios 內置的 Core ML,主要解決訓練模型部署在移動端的問題,是一個模型轉換工具,開頭提到的 MNIST-CoreML-Training 就是基于它實現的。

Android 系統中也有類似的工具——NNAPI。NNAPI 是一個 Android C API,它為構建和訓練 ML框架,如TensorFlow Lite、Caffe 2提供基礎功能層,類似 ios 中的 Core ML。NNAPI 通過機器學習庫、框架和工具調用,這些工具可以幫助開發者脫離設備訓練模型,并完成部署。應用一般不會直接使用 NNAPI,而是直接使用更高級的 ML 框架。

圖(NNAPI 高級系統架構)

使用TensorFlow Lite 部署深度學習模型

Android設備基于NNAPI,還需要通過一些 ML 框架實現 AI 應用開發。被項目作者拿來做對比的 TensorFlow 早在2017年就衍生出 TensorFlow Lite,就可以用來在 Android 上部署深度學習模型。

TensorFlow Lite是一種用于移動端的開源深度學習框架,最早由谷歌在2017年11月發布。TensorFlow Lite 可以在 CPU、GPU 上運行,也可以直接通過 NNAPI 運行,算上是應用較多的移動端 ML 框架。

早在2018年,同樣有人使用 MNIST 數據庫,在 Android 設備上搭建 TensorFlow Lite,實現移動端手寫數字識別。而除了手寫數字識別,TensorFlow Lite 現在還支持構建圖像、物體識別模型,智能回復、姿勢評估的模型。下面是 TensorFlow Lite 給出的使用流程。

  • 選擇并使用一個模型:

TensorFlow Lite 提供系列預訓練模型(pre-trained models)。開發者選擇模型之后,可以通過 transfer learning 重新訓練,以執行其他任務。開發者也可以設計并訓練自己的 TensorFlow Lite 模型。

  • 轉換模型:

TensorFlow Lite 支持部分 TensorFlow 運算符,TensorFlow 模型在被 TensorFlow Lite 使用前,必須轉換成規定的特殊格式。

TensorFlow Lite轉換器以 Python API 的形式提供。下面的例子說明了將一個 TensorFlowSavedModel轉換成 TensorFlow Lite 格式的過程舉例:

importtensorflowastfconverter=tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)tflite_model=converter.convert()open("converted_model.tflite","wb").write(tflite_model)
  • 使用模型推理:

推理是通過模型運行數據以獲得預測的過程。這個過程需要模型、解釋器和輸入數據。TensorFlow Lite 解釋器是一個庫,它接收模型文件,執行模型文件在輸入數據上定義的運算符,并提供對輸出的訪問。

該解釋器適用于多個平臺,提供了一個簡單的 API,用于從 Java、Swift、Objective-C、C++ 和 Python 運行 TensorFlow Lite 模型。

下面的代碼顯示了從 Java 調用解釋器的方式:

try(Interpreterinterpreter=newInterpreter(tensorflow_lite_model_file)){interpreter.run(input,output);}
  • 優化模型:

TensorFlow Lite 提供優化模型大小和性能的工具,通常對準確性影響甚微。優化模型可能需要稍微復雜的訓練,轉換或集成。

  • 創建 Android 應用程序示例

如果想使用 TensorFlow Lite 快速編寫 Android 代碼, 官方推薦使用Android 圖像分類代碼例子作為起始點。下面介紹如何在 Android上 使用 TensorFlow Lite。

可以在build.gradle依賴中指定,使用 JCenter 中的 TensorFlow Lite AAR:

dependencies{implementation'org.tensorflow:tensorflow-lite:0.0.0-nightly'}

這個 AAR 包含了Android ABIs中的所有的二進制文件,可以通過只包含需要支持的 ABIs 減少應用程序的二進制文件大小。

官方推薦大部分開發者刪簡x86,x86_64,和arm32的 ABIs。開發者可以通過如下的Gradle 配置實現,這個配置只包括了armeabi-v7a和arm64-v8a,該配置能涵蓋住大部分的現代 Android 設備:

android{defaultConfig{ndk{abiFilters'armeabi-v7a','arm64-v8a'}}}

在本地構建 TensorFlow Lite,可參照自定義 AAR 構建說明,創建 AAR 并將其納入 APP 中。

總結

以上是生活随笔為你收集整理的iPhone 11 训练神经网络的开源项目火了,准确率可与 i7 MacBook Pro 持平的全部內容,希望文章能夠幫你解決所遇到的問題。

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