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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

TensorFlow.NET 在工业部署中的应用

發布時間:2023/12/4 asp.net 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TensorFlow.NET 在工业部署中的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

深度學習訓練的模型 如何快速地在工業應用中進行部署,這一直是工業領域深度學習技術應用的痛點。

我們來看下TIOBE 2020年7月 的 TOP 10 編程語言排行榜:

從上圖中可以看到,Python 占據了 第 3 名,C# 在 第 5 名。

在深度學習的科研和開發中,目前是以 Python 語言為主流,但是在傳統的工業生產環境中,依然是 微軟.NET 的天下,其中主要的開發語言為 C#

那么,如何解決不同語言框架開發之間的兼容,如何快速有效地進行模型部署,接下來,我們介紹 Google 官方推薦 .NET 開發者使用的,同時也是 微軟 ML.NET 的底層深度學習框架之一的,來自 SciSharp 的 TensorFlow.NET 。

我們通過圖文的方式,來逐一看下 TensorFlow.NET 在工業應用中的各種優勢。

1. 模型部署 無縫對接

當前生成環境的工業軟件主要有以下特點:

  • 封閉性和保密性,數據敏感,無法接入外部互聯網;

  • 整體軟件基礎架構自主開發;

  • 運行速度和穩定性要求高,離線單機設備多;

  • 總結自己在工業中的深度學習應用案例,模型部署主要有以下 3 種方式,我們分別列舉其部署方式和優缺點。其中,采用 TensorFlow.NET 的方式可以直接在 .NET [ C# ] 環境下,集成 GPU 訓練和推理,代碼塊可以直接嵌入現有的工業軟件框架,實現模型部署無縫對接

    1.1 Python GPU 訓練 + 推理

    原理簡述

    訓練:Python GPU版本 TensorFlow

    推理:Python CPU or GPU版本 TensorFlow

    模型部署:Python 加載模型,通過 Post 通訊,接收圖像進行推理,返回 Json 格式結果

    優缺點

    優點:服務器/客戶端分離,支持多客戶端并行運算

    缺點:需要安裝和運行Python和.NET 2種框架,部署流程和架構復雜

    圖示說明

    通訊方式:


    1.2 Python GPU 訓練 + TensorFlowSharp CPU 推理

    原理簡述

    訓練:Python GPU版本 TensorFlow

    推理:CPU版本 TensorFlowSharp

    模型部署:TensorFlowSharp 加載Python訓練出的模型,并直接進行推理

    優缺點

    優點:客戶端單一的 .NET 環境,部署簡單,代碼結構簡潔

    缺點:TensorFlowSharp目前社區已不維護,無新版本支持,且無GPU版本支持 無法進行訓練

    圖示說明

    附:TensorFlowSharp 的GPU版本擴展

    如果需要使用帶 GPU 的 TensorFlowSharp,就需要自己通過 C++ 編譯帶 Cuda 的 DLL,編譯流程如下:

    (或參考Google官網的流程:https://www.tensorflow.org/install/source_windows)

  • 安裝 Python 和 TensorFlow 軟件包依賴項

  • 安裝 對應版本的 Bazel

  • 安裝 MSYS2

  • 安裝 Visual C++ 生成工具 2015

  • 安裝 GPU 環境支持

  • 下載 TensorFlow 源代碼

  • 編譯腳本修改 適合自己的系統環境

  • 使用編譯腳本進行編譯

  • 將編譯后的DLL重命名為TensorFlowSharp默認的 libtensorflow.dll,并進行替換即可

  • 上述流程整體還是較復雜的,其中編譯腳本修改的環節,可能會出現很多坑,需要自己去摸索。

    1.3 TensorFlow.NET GPU 訓練 + 推理

    終于來到我們的重點推薦框架,來自 SciSharp 社區的 TensorFlow.NET ,該框架同時支持 CPU 和 GPU 版本的模型訓練和推理,同時作者和社區成員們也在持續努力維護中,目前 TensorFlow 2.x 對應的框架已經在開發中。

    原理簡述

    訓練:GPU 版本 TensorFlow.NET

    推理:CPU or GPU 版本 TensorFlow.NET

    模型部署:TensorFlow.NET GPU版本 訓練出的模型直接調用

    優缺點

    優點:

  • TensorFlow在.NET環境下的GPU支持

  • 模型訓練和部署 可以在同1套程序中集成,無需外部通訊

  • Google官方推薦.NET開發者使用,同時作為ML.NET的底層深度學習框架

  • 圖示說明

    通過TensorFlow.NET,你可以輕松打造1套可視化交互式的深度學習集成軟件,支持GPU訓練和推理,同時通過DLL引用即可快速完成工業生產部署,所有的操作都在統一的.NET環境進行,可以將各操作類庫標準化封裝,部署便利性和穩定性極高。

    下述是作者基于TensorFlow.NET開發的一套機器視覺的深度學習通用平臺,集成了OpenCV的大量算子和深度學習模塊,同時實現大量可視化操作,可以直接交付現場生產環境使用,達到深度學習無基礎快速應用的目的。

    2. 較Python性能大幅提升

    我們通過一個相同數據集的1000輪的線性回歸的例子的運行,我們對比 C# 和 Python 的運行速度和內存占用,發現 C# 的速度大約是 Python 的2倍,而內存的使用,C# 只占到 Python 的1/4 ,可以說 TensorFlow 的 C# 版本在速度和性能上同時超過了 Python 版本,因此,在工業現場或者實際應用時,TensorFlow.NET 除了部署上的便利,更有性能上的杰出優勢。

    下述2個圖是具體的對比運行示意圖:


    3. GPU環境無需部署 一鍵使用

    詳細文章請訪問路徑:https://github.com/SciSharp/TensorFlow.NET-Tutorials/blob/master/%E4%B8%89%E3%80%81%E5%B7%A5%E4%B8%9A%E5%BA%94%E7%94%A8%E4%B8%8E%E6%A1%88%E4%BE%8B-1.%20TensorFlow.NET%20%E5%88%9D%E6%8E%A2.md

    (或掃下述二維碼轉至)

    你是否踩過GPU環境部署中Cuda和cuDNN的坑,是否為如何進行深度學習GPU訓練軟件的移植和快速應用而煩惱,那么本文就是為了解決這些問題而制作的,一鍵部署GPU,最大化體現.NET優勢,徹底解決GPU環境配置的繁瑣問題,讓你專注于深度學習算法和模型的開發

    本文主要適用于下述情況:

    • 一鍵部署深度學習訓練軟件,無需安裝復制的Cuda、cuDNN和配置環境變量等;

    • 希望將GPU加速的訓練軟件整體打包、移植使用,軟件安裝綠色簡便化;

    • GPU訓練版本軟件開發完交付客戶,避免因客戶PC配置差異導致的軟件無法正常使用;

    • 簡單地復制粘貼,即可一鍵完成GPU訓練環境部署,確保GPU環境安裝“0”差錯;

    • 需要在一臺機器上 同時 跑多個版本TF和多個版本Cuda的開發環境

    原理說明:

    利用.net的封裝優勢,將 tensorflow.dll、TensorFlow.NET.dll 及 NVIDIA GPU 相關必要的 DLL 全部提取,拷貝至應用程序相同目錄下,伴隨可執行文件打包、移植使用,實現 GPU 環境跟隨主程序版本打包應用的效果。

    4. 完整案例:在C#下使用TensorFlow.NET訓練自己的數據集

    本文主要結合代碼來詳細介紹如何使用 SciSharp STACK 的 TensorFlow.NET 來訓練CNN模型,該模型主要實現 圖像的分類 ,可以直接移植該代碼在 CPUGPU 下使用,并針對你們自己本地的圖像數據集進行訓練和推理。

    詳細文章請訪問路徑:

    https://github.com/SciSharp/TensorFlow.NET-Tutorials/blob/master/%E9%99%84%E5%BD%95%EF%BC%9A2.%20%E5%9C%A8C%23%E4%B8%8B%E4%BD%BF%E7%94%A8TensorFlow.NET%E8%AE%AD%E7%BB%83%E8%87%AA%E5%B7%B1%E7%9A%84%E6%95%B0%E6%8D%AE%E9%9B%86.md

    (或掃下述二維碼轉至)

    加入TFUG蘇州

    參與TFUG社區活動,可以是組織者,志愿者,講師(不一定是大牛,只要能分享相關經驗即可)等;也可以是合作伙伴,為社區提供各種資源。

    如果您想作為TFUG蘇州的組織者或志愿者,或者有任何意見或建議,歡迎給我們的公眾號留言!

    微信公眾號:?TFUG蘇州

    Join Us

    If you love TensorFlow, machine learning and willing to share, if you have?other great ideas about our activities,?if you are interested in our community and activities here, please contact us!?

    WeChat:?TFUGSuzhou

    關注我們的公眾號,第一時間獲取最新活動消息

    Gmail: tfugsuzhou@gmail.com?

    微信號:

    總結

    以上是生活随笔為你收集整理的TensorFlow.NET 在工业部署中的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

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