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

歡迎訪問 生活随笔!

生活随笔

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

asp.net

基于.NET下的人工智能系列专题|.NET下的人工智能系列专题|用Keras.NET 做一个图像识别的训练...

發(fā)布時間:2023/12/4 asp.net 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于.NET下的人工智能系列专题|.NET下的人工智能系列专题|用Keras.NET 做一个图像识别的训练... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

? ? .NET Core 的應(yīng)用場景越來越廣,開源社區(qū)也不斷壯大, .NET Core在機器學(xué)習(xí)領(lǐng)域不斷發(fā)展ML.NET外,也通過結(jié)合Tensorflow.NET去完善ML.NET在深度學(xué)習(xí)領(lǐng)域的功能,在ML.NET 1.3開始邁出了非常重要的一步。這不僅是微軟擁抱開源的策略,也是對SciSharp社區(qū)的認可。SciSharp社區(qū)不僅有Tensorlow.NET優(yōu)秀的產(chǎn)品,也有很多對基于Python機器學(xué)習(xí)/深度學(xué)習(xí)庫的封裝,這補充了現(xiàn)階段ML.NET在發(fā)展階段功能不全的缺陷,也讓更成熟的機器學(xué)習(xí)/深度學(xué)習(xí)方案應(yīng)用在.NET Core的生產(chǎn)環(huán)境中。今天我會介紹一下Keras.NET并通過Keras.NET做一個圖像識別的深度學(xué)習(xí)訓(xùn)練。

01

PART

什么是Keras?

? ? Keras是一個用Python編寫通過Tensorflow、PlaidML以及CNTK作為后端的高層神經(jīng)網(wǎng)絡(luò)API。Keras讓你用最簡單的方式快速完成深度學(xué)習(xí)(https://keras-cn.readthedocs.io/en/latest/) 。不少人喜歡用Keras進行模型訓(xùn)練。ScipySharp社區(qū)也對 Keras通過pythonnet進行了封裝(https://github.com/SciSharp/Keras.NET) 。

02

PART

如何用Keras.NET

? ? ??pythonnet是一個運行基礎(chǔ),它作為一個Python和.NET Core的橋接存在, ScipySharp社區(qū)對pythonnet進行了封裝和修改。由于開發(fā)環(huán)境各異,對于pythonnet的引用都略有不同,Windows下使用Python.Runtime.NETStandard / Linux下使用Python.Runtime.Mono / macOS下使用 Python.Runtime.OSX 。補充一點記得設(shè)置好Python的環(huán)境變量,否則你調(diào)用就會出現(xiàn)一堆問題。對于Keras.NET的封裝,也依賴于Numpy.NET

(https://github.com/SciSharp/Numpy.NET)。這里有個比較特別的地方,需要下載源碼,把Keras.NET/Numpy.NET基于不同平臺對應(yīng)的Python.Runtime版本的包添加重新設(shè)置編譯,并在本地通過dll直接引用。還有Numpy.NET有兩個版本,一個是支持Windows的Numpy , 一個是支持Linux/macOS的Numpy.Bare 使用時候不要搞混了。

03

PART

一個經(jīng)典的例子

? ? ?這里做一個貓狗分類的圖像分類的示例,這個示例比較經(jīng)典,也算是一個Keras上的HelloWorld .讓我們來看看如何通過Keras.NET來完成。

01

環(huán)境

環(huán)境,我還是依賴于 JupyterNotebook (如何用JupyterNotebook 支持C#環(huán)境, 可以看我之前的文章

(https://blog.csdn.net/kinfey/article/details/96095690),這里提醒需要把Keras.NET, Numpy.NET添加到ICSharpCore項目當中,否則沒法使用Keras.NET.

02

創(chuàng)建JupyterNotebook

創(chuàng)建JupyterNotebook , 把項目必要的庫進行引用.注意因為我是Linux環(huán)境,在Linux環(huán)境下是Python 3.6.8,所以我這里對應(yīng)的是Python.Runtime.Mono 3.6.0(如果你是其他平臺其他版本記得要切換好,否則是不能使用的), 還有通過Rosyln把本地編譯好的Keras.dll,Numpy.Bare.dll引入。

03

CNN算法定義

CNN算法定義,這個就是佛系了,畢竟這是深度學(xué)習(xí)的一部分,。CNN, 全名卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡稱CNN), 是一種前饋神經(jīng)網(wǎng)絡(luò),人工神經(jīng)元可以相應(yīng)周圍單元,可以進行大型圖像處理。

(http://cs231n.github.io/convolutional-networks/)。CNN網(wǎng)絡(luò)層級由輸入層,卷積層,激活層,池化層,全連接FC層共5個部分組成,通過Keras可以很容易完成這5個部分的層級操作。具體看以下代碼。

04

數(shù)據(jù)整理

數(shù)據(jù)整理,數(shù)據(jù)分為訓(xùn)練數(shù)據(jù),和測試數(shù)據(jù),Keras有對圖像分類支持的接口ImageDataGenerator。

05

訓(xùn)練和保存模型

訓(xùn)練和保存模型,通過FitGenerator對圖像數(shù)據(jù)進行訓(xùn)練,這里你可以根據(jù)實際情況調(diào)整訓(xùn)練參數(shù),訓(xùn)練完后可以保存以h5為后續(xù)的模型。注意,訓(xùn)練需要時間,如果你有GPU是最好的,否則CPU會花不少時間。

這里要提醒一點,因為ICSharpCore還在改進,訓(xùn)練時產(chǎn)生的狀態(tài)只能通過去命令行中查閱,所以要看訓(xùn)練效果可以通過命令行看。

06

測試模型

最后展示一個完整的Jupyter Notebook

轉(zhuǎn)型到機器學(xué)習(xí)/深度學(xué)習(xí)對不少人來說都需要花很多的時間,但在自己熟悉的環(huán)境下學(xué)習(xí)是提升學(xué)習(xí)效率的方法。希望SciSharp社區(qū)能幫到.NETer。? ? ? ? ??

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的基于.NET下的人工智能系列专题|.NET下的人工智能系列专题|用Keras.NET 做一个图像识别的训练...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。