色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

通過一些簡單的應用實踐對AI應用有更深入的了解

8g3K_AI_Thinker ? 來源:未知 ? 作者:李倩 ? 2018-06-25 15:24 ? 次閱讀

又是一個很有熱度的周末,除了炎熱的天氣,還有火熱的世界杯。今天人工智能頭條為大家準備的技術(shù)干貨,讓大家可以在空調(diào)下,吃瓜看球兩不耽誤就可以輕松完成AI應用實踐入門。多少次,在我們查找很多資源、技術(shù)指導后,實操時還是會被一個報錯而終止了前進的道路。小編也曾經(jīng)歷過這樣的心路歷程,所以一份好的指南對于剛開始實踐操作的同學來說簡直太有愛了,不僅節(jié)約了很多時間,操作和思路也都是清晰的。如果你是剛?cè)腴T的AI小白,想通過一些簡單的應用實踐對AI應用有更深入的了解,現(xiàn)在就開始和我們一起開始吧!

作者簡介:鄒欣,現(xiàn)任微軟亞洲研究院研發(fā)經(jīng)理,負責必應搜索客戶端、必應輸入法、必應詞典、微軟小娜等產(chǎn)品。曾出版《移山之道》、《編輯之美》(合作)、《構(gòu)建之法》三部書籍。

下面為大家介紹鄒欣老師的AI應用開發(fā)實踐系列教程之手寫識別應用入門,本次教程學習主要分三步:

從零開始搭建你的開發(fā)環(huán)境,無論是Windows 還是 MAC OS 環(huán)境

簡單的 MNIST 模型訓練

入門手寫體識別應用實踐

這波操作大家放心可以輕松完成,教程中不僅介紹了每步需要做什么,還為你準備了有參考價值的命令行、代碼、各安裝軟件版本號的明確說明、需要下載或者訪問的鏈接以及截圖和教程視頻,可以說非常全面、到位了。

▌為你的 Windows 搭建開發(fā)環(huán)境并開始訓練第一個模型

(1)準備工作:一臺能聯(lián)網(wǎng)的電腦,使用 win10 64 位操作系統(tǒng),請確保鼠標、鍵盤、顯示器都是好的

(2)安裝步驟:

安裝 Git

安裝 VS,等待時間看網(wǎng)絡狀況,沒準可以看半場球反正不用擔心不用著急。

安裝 python

安裝 CUDA 和 cuDNN:這是教程中最繁瑣的一步,這一步直接拉高教程的平均難度。

配置機器學習環(huán)境:這是教程中最簡單的一步,為了方便用戶配置環(huán)境,微軟提供了一鍵安裝工具!簡直業(yè)界良心!

安裝 VS Tools For AI插件

(3)離線模型的訓練:注意在此過程中使用最新的 mnist.py 文件

文章鏈接:

https://blog.csdn.net/softwareteacher/article/details/80770079

▌為你的 MAC OS 搭建開發(fā)環(huán)境并開始訓練第一個模型

(1)準備工作:一臺能聯(lián)網(wǎng)的電腦,使用 MAC OS 操作系統(tǒng),請確保鼠標、鍵盤、顯示器都是好的

(2)安裝步驟:

安裝 VS,同樣時間長的小伙伴們不妨考慮去看半場球啊!

安裝 python

安裝 Tools for AI 插件

安裝 Git

下載機器學習示例庫

(3)模型訓練:也是小編的第一個模型!在教程中孩子特別補充講解了如何在遠程 Linux 上進行訓練。

文章鏈接:

https://blog.csdn.net/softwareteacher/article/details/80770239

▌AI應用開發(fā)實踐—手寫識別應用入門

敲重點!!!環(huán)境搭建和模型訓練都搞定后,接下來終于可以上手應用實踐了,以下為手寫識別應用教程全文,enjoy!

手寫體識別的應用已經(jīng)非常流行了,如輸入法,圖片中的文字識別等。但對于大多數(shù)開發(fā)人員來說,如何實現(xiàn)這樣的一個應用,還是會感覺無從下手。本文從簡單的 MNIST 訓練出來的模型開始,和大家一起入門手寫體識別。

在本教程結(jié)束后,會得到一個能用的 AI應用,也許是你的第一個AI應用。雖然離實際使用還有較大的距離(具體差距在文章后面會分析),但會讓你對AI應用有一個初步的認識,有能力逐步搭建出能夠?qū)嶋H應用的模型。

原文鏈接:

https://blog.csdn.net/softwareteacher/article/details/80770347

▌準備工作

使用 win10 64 位操作系統(tǒng)的計算機

參考上一篇博客 AI應用開發(fā)實戰(zhàn) - 從零開始配置環(huán)境。在電腦上訓練并導出 MNIST 模型。

▌一. 思路

通過上一篇文章搭建環(huán)境的介紹后,就能得到一個能識別單個手寫數(shù)字的模型了,并且識別的準確度會在 98%,甚至 99% 以上了。那么我們要怎么使用這個模型來搭建應用呢?

大致的步驟如下:

實現(xiàn)簡單的界面,將用戶用鼠標或者觸屏的輸入變成圖片。

將生成的模型包裝起來,成為有公開數(shù)據(jù)接口的類。

將輸入的圖片進行規(guī)范化,成為數(shù)據(jù)接口能夠使用的格式。

最后通過模型來推理 (inference) 出圖片應該是哪個數(shù)字,并顯示出來。

是不是很簡單?

▌二.動手

步驟一:獲取手寫的數(shù)字

提問:那我們要怎么獲取手寫的數(shù)字呢?

回答:我們可以寫一個簡單的 WinForm 畫圖程序,讓我們可以用鼠標手寫數(shù)字,然后把圖片保存下來。

首先,我們打開 Visual Studio,選擇文件->新建->項目。

在彈出的窗口里選擇 Visual C#->Windows窗體應用,項目名稱不妨叫做 DrawDigit,解決方案名稱不妨叫做 MnistForm,點擊確定。

此時,Visual Studio 也自動彈出了一個窗口的設計圖。

在 DrawDigit 項目上點擊右鍵,選擇屬性,在生成一欄將平臺目標從 Any CPU 改為 x 64。

否則,DrawDigit(首選32位)與它引用的 MnistForm(64位)的編譯平臺不一致會引發(fā) System.BadImageFormatException 的異常。

然后我們對這個窗口做一些簡單的修改:

首先我們打開 VS 窗口左側(cè)的工具箱,這個窗口程序需要以下三種組件:

1. PictureBox:用來手寫數(shù)字,并且把數(shù)字保存成圖片

2. Label:用來顯示模型的識別結(jié)果

3. Button:用來清理PictureBox的手寫結(jié)果

那經(jīng)過一些簡單的選擇與拖動還有調(diào)整大小,這個窗口現(xiàn)在是這樣的:

一些注意事項

這些組件都可以通過右鍵->查看屬性,在屬性里修改它們的設置

為了方便把 PictureBox 里的圖片轉(zhuǎn)化成 Mnist 能識別的格式,PictureBox 的需要是正方形

可以給這些控件起上有意義的名稱。

可以調(diào)整一下 label 控件大小、字體等,讓它更美觀。

經(jīng)過一些簡單的調(diào)整,這個窗口現(xiàn)在是這樣的:

現(xiàn)在來讓我們愉快地給這些組件添加事件!

還是在屬性窗口,我們選擇某個組件,右鍵->查看屬性,點擊閃電符號,給組件綁定對應的事件。每次綁定后,會跳到代碼部分,生成一個空函數(shù)。點回設計視圖繼續(xù)操作即可。

組件類型 事件
pictureBox1 在Mouse下雙擊MouseDown、MouseUp、MouseMove來生成對應的響應事件函數(shù)。
button1 如上,在Action下雙擊Click。
Form1 如上,在Behavior下雙擊Load

然后我們開始補全對應的函數(shù)體內(nèi)容。

注意,如果在上面改變了控件的名稱,下面的代碼需要做對應的更改。

廢話少說上代碼!

usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Drawing.Drawing2D;//用于優(yōu)化繪制的結(jié)果usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingMnistModel;namespaceDrawDigit{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privateBitmapdigitImage;//用來保存手寫數(shù)字privatePointstartPoint;//用于繪制線段,作為線段的初始端點坐標privateMnistmodel;//用于識別手寫數(shù)字privateconstintMnistImageSize=28;//Mnist模型所需的輸入圖片大小privatevoidForm1_Load(objectsender,EventArgse){//當窗口加載時,繪制一個白色方框model=newMnist();digitImage=newBitmap(pictureBox1.Width,pictureBox1.Height);Graphicsg=Graphics.FromImage(digitImage);g.Clear(Color.White);pictureBox1.Image=digitImage;}privatevoidclean_click(objectsender,EventArgse){//當點擊清除時,重新繪制一個白色方框,同時清除label1顯示的文本digitImage=newBitmap(pictureBox1.Width,pictureBox1.Height);Graphicsg=Graphics.FromImage(digitImage);g.Clear(Color.White);pictureBox1.Image=digitImage;label1.Text="";}privatevoidpictureBox1_MouseDown(objectsender,MouseEventArgse){//當鼠標左鍵被按下時,記錄下需要繪制的線段的起始坐標startPoint=(e.Button==MouseButtons.Left)?e.Location:startPoint;}privatevoidpictureBox1_MouseMove(objectsender,MouseEventArgse){//當鼠標在移動,且當前處于繪制狀態(tài)時,根據(jù)鼠標的實時位置與記錄的起始坐標繪制線段,同時更新需要繪制的線段的起始坐標if(e.Button==MouseButtons.Left){Graphicsg=Graphics.FromImage(digitImage);PenmyPen=newPen(Color.Black,40);myPen.StartCap=LineCap.Round;myPen.EndCap=LineCap.Round;g.DrawLine(myPen,startPoint,e.Location);pictureBox1.Image=digitImage;g.Dispose();startPoint=e.Location;}}privatevoidpictureBox1_MouseUp(objectsender,MouseEventArgse){//當鼠標左鍵釋放時//同時開始處理圖片進行推理//暫時不處理這里的代碼}}}

步驟二:把模型包裝成一個類

將模型包裝成一個 C# 是整個過程中比較麻煩的一步。所幸的是,Tools for AI 對此提供了很好的支持。進一步了解,可以看這里(https://github.com/Microsoft/vs-tools-for-ai/blob/master/docs/zh-hans/docs/model-inference.md)。

首先,我們在解決方案 MnistForm 下點擊鼠標右鍵,選擇添加->新建項目,在彈出的窗口里選擇 AI Tools->Inference->模型推理類庫,名稱不妨叫做 MnistModel,點擊確定,于是我們又多了一個項目。

然后自己配置好這個項目的名稱、位置,點擊確定。

然后彈出一個模型推理類庫創(chuàng)建向?qū)В@個時候就需要我們選擇自己之前訓練好的模型了~

首先在模型路徑里選擇保存的模型文件的路徑。這里我們使用在AI應用開發(fā)實戰(zhàn) - 從零開始配置環(huán)境博客中訓練并導出的模型

note:模型可在 /samples-for-ai/examples/tensorflow/MNIST 目錄下找到,其中 output 文件夾保存了檢查點文件,export 文件夾保存了模型文件。

對于TensorFlow,我們可以選擇檢查點的 .meta 文件,或者是保存的模型的 .pb 文件

這里我們選擇在AI應用開發(fā)實戰(zhàn) - 從零開始配置環(huán)境這篇博客最后生成的 export 目錄下的檢查點的 SavedModel.pb 文件,這時程序?qū)⒆詣优渲煤门渲猛评斫涌冢娤聢D:

類名可以自己定義,因為我們用的是 MNIST,那么類名就叫 Mnist 好了,然后點擊確定。

這樣,在解決方案資源管理器里,在解決方案 MnistForm 下,就多了一個 MnistModel:

雙擊 Mnist.cs,我們可以看到項目自動把模型進行了封裝,生成了一個公開的 infer 函數(shù)。

然后我們在 MnistModel 上右擊,再選擇生成,等待一會,這個項目就可以使用了~

步驟三:連接兩個部分

這一步差不多就是這么個感覺:

I have an apple , I have a pen. AH~ , Applepen

首先,我們來給 DrawDigit 添加引用,讓它能使用 MnistModel。在 DrawDigit 項目的引用上點擊鼠標右鍵,點擊添加引用,在彈出的窗口中選擇 MnistModel,點擊確定。

然后,由于 MNIST 的模型的輸入是一個 28×28 的白字黑底的灰度圖,因此我們首先要對圖片進行一些處理。

首先將圖片轉(zhuǎn)為 28×28 的大小。

然后將 RGB 圖片轉(zhuǎn)化為灰階圖,將灰階標準化到 [-0.5,0.5] 區(qū)間內(nèi),轉(zhuǎn)換為黑底白字。

最后將圖片用 mnist 模型要求的格式包裝起來,并傳送給它進行推理。

于是,我們在 pictureBox1_MouseUp 中添加上這些代碼,并且在文件最初添加上 using MnistModel;:

privatevoidpictureBox1_MouseUp(objectsender,MouseEventArgse){//當鼠標左鍵釋放時//開始處理圖片進行推理if(e.Button==MouseButtons.Left){BitmapdigitTmp=(Bitmap)digitImage.Clone();//復制digitImage//調(diào)整圖片大小為Mnist模型可接收的大小:28×28using(Graphicsg=Graphics.FromImage(digitTmp)){g.InterpolationMode=InterpolationMode.HighQualityBicubic;g.DrawImage(digitTmp,0,0,MnistImageSize,MnistImageSize);}//將圖片轉(zhuǎn)為灰階圖,并將圖片的像素信息保存在list中varimage=newList(MnistImageSize*MnistImageSize);for(varx=0;x>();batch.Add(image);//將圖片傳送給mnist模型進行推理varresult=model.Infer(batch);//將推理結(jié)果輸出label1.Text=result.First().First().ToString();}}

最后讓我們嘗試一下運行~

▌三.效果展示

現(xiàn)在我們就有了一個簡單的小程序,可以識別手寫的數(shù)字了。

趕緊試試效果怎么樣~

▌注意

1.路徑中不能有中文字符,否則可能找不到模型。

▌進階

那么,如果要識別多個連寫的數(shù)字,或支持字母該怎么做呢?大家多用用也會發(fā)現(xiàn),如果數(shù)字寫得很小,或者沒寫到正中,識別起來正確率也會不高。要解決這些問題,做成真正的產(chǎn)品,就不止這一個模型了。比如在多個數(shù)字識別中,可能要根據(jù)經(jīng)驗來切分圖,或者訓練另一個模型來檢測并分割數(shù)字。要支持字母,則需要重新訓練一個包含手寫字母的模型,并準備更多的字母的數(shù)據(jù)。要解決字太小的問題,還要檢測一下字的大小,做合適的放大等等。

我們可以看到,一個訓練出來的模型本身到一個實際的應用之間還有不少的功能要實現(xiàn)。希望我們這一系列的介紹,能夠幫助大家將機器學習的概念帶入到傳統(tǒng)的編程領(lǐng)域中,做出更聰明的產(chǎn)品。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3552

    瀏覽量

    88824
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    31000

    瀏覽量

    269333
  • 機器學習
    +關(guān)注

    關(guān)注

    66

    文章

    8422

    瀏覽量

    132743

原文標題:一邊吃瓜看球,一邊完成AI應用實踐——手寫體識別入門

文章出處:【微信號:AI_Thinker,微信公眾號:人工智能頭條】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    如何學習ARM?

    ,編寫一些小型的程序,并進行調(diào)試和測試。通過實踐項目,可以加深對 ARM 處理器架構(gòu)的理解和應用。 5.深入研究高級主題: 如果你對 ARM 處理器
    發(fā)表于 10-11 10:42

    【「大模型啟示錄」閱讀體驗】對大模型更深入的認知

    內(nèi)容讓我對大模型技術(shù)的發(fā)展了更全面的認識。我意識到,大模型不僅僅是一些算法和代碼的堆砌,它們背后有著深刻的科技變革和產(chǎn)業(yè)競爭。 書中對大模型與不同行業(yè)結(jié)合的討論,更是讓我眼前亮。我從未想過,大模型
    發(fā)表于 12-20 15:46

    一些簡單資料

    一些簡單資料,共享,希望大家共同進步!
    發(fā)表于 11-24 09:40

    嵌入式開發(fā)中的一些硬件相關(guān)的概念哪些

    做嵌入式系統(tǒng)開發(fā),經(jīng)常要接觸硬件。做嵌入式開發(fā)對數(shù)字電路和模擬電路要有定的了解。這樣才能深入的研究下去。下面我們簡單的介紹嵌入式開發(fā)中的一些
    發(fā)表于 02-24 08:56

    了解MOSFET的一些原理

    電機的驅(qū)動,如下圖1所示,要做好驅(qū)動電路,必須得了解清楚MOSFET的一些原理,才不會出錯。圖1 H橋全橋驅(qū)
    發(fā)表于 09-13 08:14

    介紹PMIC硬件電路相關(guān)的一些知識

    PMIC 電源管理集成電路(Power Management IC)在之前項目中,驅(qū)動最小系統(tǒng),對于PMIC這塊兒很懵懂,故抽時間查看一些優(yōu)秀博文及資料,加強對電源管理的理解。本文介紹 PMIC 硬件電路相關(guān)的一些知識,在此作一些
    發(fā)表于 11-17 07:24

    模擬電路的一些簡單的特性

    準備分析模擬電路的一些簡單的特性 偶是本科和研究生都是學儀器工程的,偶老師在這個方面也是很厲害的。師兄多人在這個行業(yè),1人在NI做硬件工程師
    發(fā)表于 11-21 15:13 ?871次閱讀

    對3525A運用的一些了解

    最近在用3525A做個硬開關(guān)PWM式的半橋電源,以前對3525A只是用PFM方式進行了一些運用,而沒有用過PWM方式進行控制,所以在測試中遇到很多問題,也讓我對其更深一步的
    發(fā)表于 05-13 10:47 ?5299次閱讀
    對3525A運用的<b class='flag-5'>一些</b><b class='flag-5'>了解</b>

    了解物聯(lián)網(wǎng)的技術(shù)矩陣和產(chǎn)業(yè)概念

    了解物聯(lián)網(wǎng)的技術(shù)矩陣后,我們便可以更深入地去理解物聯(lián)網(wǎng)產(chǎn)業(yè)中的一些概念。
    的頭像 發(fā)表于 01-11 14:44 ?4182次閱讀

    歸納AI領(lǐng)域一些方向的重要技術(shù)進展

    2017年人工智能行業(yè)延續(xù)了2016年蓬勃發(fā)展的勢頭,那么在過去的年里AI行業(yè)從技術(shù)發(fā)展角度哪些重要進展?未來又有哪些發(fā)展趨勢?本文從大家比較關(guān)注的若干領(lǐng)域作為代表,來歸納AI領(lǐng)域
    的頭像 發(fā)表于 01-11 17:05 ?4048次閱讀
    歸納<b class='flag-5'>AI</b>領(lǐng)域<b class='flag-5'>一些</b>方向的重要技術(shù)進展

    如何生成簡單脈寬調(diào)制所需的基本步驟帶你了解一些基本nhet模塊的操作

    本文的主要內(nèi)容是告訴你 如何生成簡單脈寬調(diào)制所需的基本步驟帶你了解一些基本nhet模塊的操作   本節(jié)展示如何計算輸出信號的PWM頻率和占空比。為了做這,定的假設關(guān)于頻率的裝置和n
    發(fā)表于 04-17 10:01 ?17次下載
    如何生成<b class='flag-5'>簡單</b>脈寬調(diào)制所需的基本步驟帶你<b class='flag-5'>了解</b><b class='flag-5'>一些</b>基本nhet模塊的操作

    貝葉斯統(tǒng)計的實踐案例讓你更快的對貝葉斯算法更多的了解

    為了大家可以對貝葉斯算法更多的了解,為大家整理過篇關(guān)于貝葉斯算法的文章。今天將為大家介紹利用貝葉斯統(tǒng)計的實踐案例。通項目
    的頭像 發(fā)表于 07-16 17:15 ?1.5w次閱讀

    微軟通過AI和機器學習深入了解用戶體驗

    繼上月邀請少量用戶測試之后,微軟現(xiàn)在正擴大 Windows 10 21H1 功能更新預覽版的測試范圍,并利用人工智能和機器學習來更深入了解用戶體驗和需求。目前微軟已經(jīng)在 Insider 項目中廣泛部署 21H1 版本更新,將收集更多數(shù)據(jù)并進行更精確的測試。
    的頭像 發(fā)表于 03-04 11:26 ?1677次閱讀

    一些簡單趣味小電子制作教程

    一些簡單趣味小電子制作教程
    發(fā)表于 09-26 14:05 ?28次下載

    我們?yōu)槭裁葱枰?b class='flag-5'>了解一些先進封裝?

    我們?yōu)槭裁葱枰?b class='flag-5'>了解一些先進封裝?
    的頭像 發(fā)表于 11-23 16:32 ?591次閱讀
    我們?yōu)槭裁葱枰?b class='flag-5'>了解</b><b class='flag-5'>一些</b>先進封裝?
    主站蜘蛛池模板: 破苞流血哭泣 magnet| 久久精品电影| 中文字幕偷乱免费视频在线| 亚洲XXX午休国产熟女屁| 日韩娇小性hd| 欧美成人免费观看久久| 麻婆豆腐传媒视频免费| 久久视热频国只有精品| 精品麻豆一卡2卡三卡4卡乱码| 国模大胆一区二区三区| 国产亚洲精品久久综合阿香 | 草比比过程图| 扒开老师大腿猛进AAA片邪恶| caoporn免费视频在线| 9久高清在线不卡免费无吗视频| 99久久国语露脸精品国产| 99久久e免费热视频百度| 99re5久久热在线| 99视频这里只有精品国产| 9久爱午夜视频| 成年人视频在线免费播放| 大胸女晃奶动态图| 国产精品av免费观看| 国产亚洲精品久久久久久无码网站| 国内精品七七久久影院| 久久操韩国自偷拍| 麻豆精品无码久久久久久久久| 女性酥酥影院| 任你躁精品一区二区三区| 色-情-伦-理一区二区三区| 我把寡妇日出水好爽| 亚洲精品色婷婷在线蜜芽| 伊人久久中文大香线蕉综合| 4399亚洲AV无码V无码网站 | 辣文肉高h粗暴| 嫩小xxxxbbbb| 日韩午夜影院| 亚洲精品乱码久久久久久v | 美女张开让男生桶| 日本老师xxxxx18| 校园全肉高h湿一女多男|