中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

靜態(tài)頁面網(wǎng)站怎么做獨立網(wǎng)站怎么做

靜態(tài)頁面網(wǎng)站怎么做,獨立網(wǎng)站怎么做,做新網(wǎng)站 備案證明交接,電信專線可以做網(wǎng)站嗎Python 深度學(xué)習(xí)項目:手寫數(shù)字識別 為了使機器更加智能,開發(fā)者們正在深入研究機器學(xué)習(xí)和深度學(xué)習(xí)技術(shù)。人類通過不斷練習(xí)和重復(fù)來學(xué)習(xí)執(zhí)行某項任務(wù),從而記住如何完成這些任務(wù)。然后,大腦中的神經(jīng)元會自動觸發(fā),他們能夠…

在這里插入圖片描述
Python 深度學(xué)習(xí)項目:手寫數(shù)字識別

為了使機器更加智能,開發(fā)者們正在深入研究機器學(xué)習(xí)和深度學(xué)習(xí)技術(shù)。人類通過不斷練習(xí)和重復(fù)來學(xué)習(xí)執(zhí)行某項任務(wù),從而記住如何完成這些任務(wù)。然后,大腦中的神經(jīng)元會自動觸發(fā),他們能夠快速執(zhí)行已經(jīng)學(xué)到的任務(wù)。深度學(xué)習(xí)與此也非常相似。它使用不同類型的神經(jīng)網(wǎng)絡(luò)架構(gòu)來解決不同類型的問題,例如——對象識別、圖像和聲音分類、對象檢測、圖像分割等。

什么是手寫數(shù)字識別?

手寫數(shù)字識別是指計算機識別手寫數(shù)字的能力。這是一項對機器來說較為困難的任務(wù),因為手寫數(shù)字并不完美,可能有許多不同的書寫風(fēng)格。手寫數(shù)字識別為這個問題提供了解決方案,它使用數(shù)字的圖像來識別圖像中的數(shù)字。

關(guān)于 Python 深度學(xué)習(xí)項目

在本文中,我們將使用 MNIST 數(shù)據(jù)集實現(xiàn)一個手寫數(shù)字識別應(yīng)用程序。我們將使用一種特殊的深度神經(jīng)網(wǎng)絡(luò),即卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks)。最終,我們將構(gòu)建一個 GUI,你可以在這個界面上繪制數(shù)字,并立即識別它們。

預(yù)備知識

這個有趣的 Python 項目要求你具備 Python 編程的基本知識、使用 Keras 庫的深度學(xué)習(xí)知識,以及使用 Tkinter 庫構(gòu)建 GUI 的知識。

安裝必要的庫

使用以下命令安裝該項目所需的庫:

pip install numpy, tensorflow, keras, pillow
MNIST 數(shù)據(jù)集

這可能是機器學(xué)習(xí)和深度學(xué)習(xí)愛好者中最受歡迎的數(shù)據(jù)集之一。MNIST 數(shù)據(jù)集包含 60,000 張用于訓(xùn)練的手寫數(shù)字圖像(從 0 到 9),以及 10,000 張用于測試的圖像。因此,MNIST 數(shù)據(jù)集有 10 個不同的類別。手寫數(shù)字圖像以 28×28 矩陣的形式表示,每個單元格包含灰度像素值。

下載項目的完整源代碼
實現(xiàn)手寫數(shù)字識別項目

以下是實現(xiàn)手寫數(shù)字識別項目的步驟:

  1. 導(dǎo)入庫并加載數(shù)據(jù)集

    首先,我們將導(dǎo)入訓(xùn)練模型所需的所有模塊。Keras 庫中已經(jīng)包含了一些數(shù)據(jù)集,MNIST 就是其中之一。因此,我們可以輕松地導(dǎo)入數(shù)據(jù)集并開始使用它。mnist.load_data() 方法返回我們訓(xùn)練數(shù)據(jù)、其標簽以及測試數(shù)據(jù)和其標簽。

    import keras
    from keras.datasets import mnist
    from keras.models import Sequential
    from keras.layers import Dense, Dropout, Flatten
    from keras.layers import Conv2D, MaxPooling2D
    from keras import backend as K
    # 訓(xùn)練和測試數(shù)據(jù)集
    (x_train, y_train), (x_test, y_test) = mnist.load_data()
    print(x_train.shape, y_train.shape)
    
  2. 預(yù)處理數(shù)據(jù)

    圖像數(shù)據(jù)不能直接輸入到模型中,因此我們需要執(zhí)行一些操作來處理數(shù)據(jù),使其準備好用于我們的神經(jīng)網(wǎng)絡(luò)。訓(xùn)練數(shù)據(jù)的維度是 (60000,28,28)。CNN 模型需要一個額外的維度,因此我們將矩陣重塑為 (60000,28,28,1) 的形狀。

    x_train = x_train.reshape(x_train.shape[0], 28, 28, 1)
    x_test = x_test.reshape(x_test.shape[0], 28, 28, 1)
    input_shape = (28, 28, 1)
    # 將類向量轉(zhuǎn)換為二進制類矩陣
    y_train = keras.utils.to_categorical(y_train, num_classes)
    y_test = keras.utils.to_categorical(y_test, num_classes)
    x_train = x_train.astype('float32')
    x_test = x_test.astype('float32')
    x_train /= 255
    x_test /= 255
    print('x_train shape:', x_train.shape)
    print(x_train.shape[0], '訓(xùn)練樣本')
    print(x_test.shape[0], '測試樣本')
    
  3. 創(chuàng)建模型

    現(xiàn)在我們將在這個 Python 數(shù)據(jù)科學(xué)項目中創(chuàng)建我們的 CNN 模型。CNN 模型通常包含卷積層和池化層。它在處理以網(wǎng)格結(jié)構(gòu)表示的數(shù)據(jù)時效果更好,這也是為什么 CNN 用于圖像分類問題時表現(xiàn)良好的原因。Dropout 層用于停用一些神經(jīng)元,在訓(xùn)練過程中減少模型的過擬合。然后,我們將使用 Adadelta 優(yōu)化器編譯模型。

    batch_size = 128
    num_classes = 10
    epochs = 10
    model = Sequential()
    model.add(Conv2D(32, kernel_size=(3, 3),activation='relu',input_shape=input_shape))
    model.add(Conv2D(64, (3, 3), activation='relu'))
    model.add(MaxPooling2D(pool_size=(2, 2)))
    model.add(Dropout(0.25))
    model.add(Flatten())
    model.add(Dense(256, activation='relu'))
    model.add(Dropout(0.5))
    model.add(Dense(num_classes, activation='softmax'))
    model.compile(loss=keras.losses.categorical_crossentropy,optimizer=keras.optimizers.Adadelta(),metrics=['accuracy'])
    
  4. 訓(xùn)練模型

    Keras 的 model.fit() 函數(shù)將開始模型的訓(xùn)練。它需要訓(xùn)練數(shù)據(jù)、驗證數(shù)據(jù)、訓(xùn)練輪數(shù)(epochs)和批量大小(batch size)。

    訓(xùn)練模型需要一些時間。訓(xùn)練完成后,我們將權(quán)重和模型定義保存在 ‘mnist.h5’ 文件中。

    hist = model.fit(x_train, y_train,batch_size=batch_size,epochs=epochs,verbose=1,validation_data=(x_test, y_test))
    print("模型已成功訓(xùn)練")
    model.save('mnist.h5')
    print("將模型保存為 mnist.h5")
    
  5. 評估模型

    我們的數(shù)據(jù)集中有 10,000 張圖像,這些圖像將用于評估我們的模型效果如何。測試數(shù)據(jù)沒有參與訓(xùn)練,因此對于我們的模型來說是全新的數(shù)據(jù)。MNIST 數(shù)據(jù)集平衡性很好,我們可以達到約 99% 的準確率。

    score = model.evaluate(x_test, y_test, verbose=0)
    print('測試損失:', score[0])
    print('測試準確率:', score[1])
    
  6. 創(chuàng)建用于預(yù)測數(shù)字的 GUI

    為了創(chuàng)建 GUI,我們在一個新文件中構(gòu)建了一個交互式窗口,你可以在畫布上繪制數(shù)字,并通過一個按鈕識別數(shù)字。Tkinter 庫包含在 Python 標準庫中。我們創(chuàng)建了一個 predict_digit() 函數(shù),該函數(shù)接收圖像作為輸入,然后使用訓(xùn)練好的模型來預(yù)測數(shù)字。

    然后,我們創(chuàng)建了 App 類,該類負責(zé)構(gòu)建我們的應(yīng)用程序的 GUI。我們創(chuàng)建了一個畫布,可以在捕獲鼠標事件時進行繪制,通過一個按鈕觸發(fā) predict_digit() 函數(shù)并顯示結(jié)果。

    以下是我們的 gui_digit_recognizer.py 文件的完整代碼:

    from keras.models import load_model
    from tkinter import *
    import tkinter as tk
    import win32gui
    from PIL import ImageGrab, Image
    import numpy as npmodel = load_model('mnist.h5')def predict_digit(img):# 將圖像調(diào)整為 28x28 像素img = img.resize((28,28))# 將 RGB 轉(zhuǎn)換為灰度img = img.convert('L')img = np.array(img)# 重塑以支持模型輸入并歸一化img = img.reshape(1,28,28,1)img = img/255.0# 預(yù)測類別res = model.predict([img])[0]return np.argmax(res), max(res)class App(tk.Tk):def __init__(self):tk.Tk.__init__(self)self.x = self.y = 0# 創(chuàng)建元素self.canvas = tk.Canvas(self, width=300, height=300, bg = "white", cursor="cross")self.label = tk.Label(self, text="思考中..", font=("Helvetica", 48))self.classify_btn = tk.Button(self, text = "識別", command = self.classify_handwriting) self.button_clear = tk.Button(self, text = "清除", command = self.clear_all)# 網(wǎng)格結(jié)構(gòu)self.canvas.grid(row=0, column=0, pady=2, sticky=W, )self.label.grid(row=0, column=1,pady=2, padx=2)self.classify_btn.grid(row=1, column=1, pady=2, padx=2)self.button_clear.grid(row=1, column=0, pady=2)#self.canvas.bind("<Motion>", self.start_pos)self.canvas.bind("<B1-Motion>", self.draw_lines)def clear_all(self):self.canvas.delete("all")def classify_handwriting(self):HWND = self.canvas.winfo_id() # 獲取畫布的句柄rect = win32gui.GetWindowRect(HWND) # 獲取畫布的坐標im = ImageGrab.grab(rect)digit, acc = predict_digit(im)self.label.configure(text= str(digit)+', '+ str(int(acc*100))+'%')def draw_lines(self, event):self.x = event.xself.y = event.yr=8self.canvas.create_oval(self.x-r, self.y-r, self.x + r, self.y + r, fill='black')app = App()
    mainloop()
    
截圖
  • Python 機器學(xué)習(xí)項目輸出為數(shù)字 2
  • Python 機器學(xué)習(xí)項目輸出為數(shù)字 5
  • Python 項目輸出為數(shù)字 6

總結(jié)

在本文中,我們成功構(gòu)建了一個 Python 深度學(xué)習(xí)項目——手寫數(shù)字識別應(yīng)用。我們構(gòu)建并訓(xùn)練了卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)在圖像分類方面非常有效。隨后,我們構(gòu)建了一個 GUI,你可以在畫布上繪制數(shù)字,然后對其進行分類并顯示結(jié)果。

參考資料

資料名稱鏈接
Keras 官方文檔https://keras.io/
TensorFlow 官方文檔https://tensorflow.google.cn/
MNIST 數(shù)據(jù)集介紹http://yann.lecun.com/exdb/mnist/
手寫數(shù)字識別教程https://data-flair.training/blogs/handwritten-digit-recognition/
Python GUI 開發(fā)概述https://docs.python.org/3/library/tkinter.html
Tkinter 詳細介紹https://www.tutorialspoint.com/python/python_gui_programming.htm
深度學(xué)習(xí)入門https://deeplearning.ai/
卷積神經(jīng)網(wǎng)絡(luò)入門https://cs231n.github.io/convolutional-networks/
機器學(xué)習(xí)基礎(chǔ)https://www.coursera.org/courses?query=machine%20learning
數(shù)據(jù)預(yù)處理技巧https://machinelearningmastery.com/preparing-data-for-deep-learning/
Python 項目示例https://github.com/data-flair-training-deep-learning/
手寫數(shù)字識別研究論文https://arxiv.org/abs/1509.06322
圖像識別技術(shù)綜述https://www.sunfounder.com/learn/opencv-101
http://www.risenshineclean.com/news/62464.html

相關(guān)文章:

  • 做推送的網(wǎng)站有哪些微信推廣怎么弄
  • 太原seo網(wǎng)站排名網(wǎng)絡(luò)推廣員是什么
  • 做網(wǎng)站美工工資多少合肥推廣外包公司
  • 做網(wǎng)站需要團隊還是一個人中國seo排行榜
  • wordpress 頁面 錨企業(yè)seo案例
  • python網(wǎng)站開發(fā)實踐網(wǎng)絡(luò)推廣方案設(shè)計
  • 幫客戶做網(wǎng)站的公司百度產(chǎn)品大全
  • 網(wǎng)站建設(shè) 上市公司深圳關(guān)鍵詞排名seo
  • 湘潭網(wǎng)站建設(shè) 技精磐石網(wǎng)絡(luò)網(wǎng)站發(fā)布與推廣
  • 可以做宣傳海報的網(wǎng)站今天國內(nèi)新聞
  • 重慶網(wǎng)站設(shè)計好的公司百度業(yè)務(wù)員聯(lián)系電話
  • 政府網(wǎng)站集約化平臺推廣策略都有哪些
  • 產(chǎn)品眾籌網(wǎng)站開發(fā)怎么自己做個網(wǎng)站
  • 怎么設(shè)置自己做的網(wǎng)站google網(wǎng)站
  • ps做圖賺錢網(wǎng)站trinseo公司
  • 門面設(shè)計裝修效果圖廣州seo優(yōu)化外包公司
  • 鹽山縣招聘網(wǎng)站建設(shè)seoheuni
  • 怎么在網(wǎng)站標題做logo小程序
  • 紅包網(wǎng)站開發(fā)百度點擊軟件找名風(fēng)
  • 鎮(zhèn)江專業(yè)網(wǎng)站制作最有效的網(wǎng)絡(luò)推廣方式和策略
  • 免費加盟游戲代理搜索引擎優(yōu)化公司
  • 音樂在線制作網(wǎng)站網(wǎng)絡(luò)推廣產(chǎn)品公司
  • 免費畫圖網(wǎng)站東莞seo網(wǎng)絡(luò)推廣專
  • 怎樣優(yōu)古網(wǎng)絡(luò)公司網(wǎng)站后臺中國最好的網(wǎng)絡(luò)營銷公司
  • 奢侈品 網(wǎng)站建設(shè)方案上海最新事件
  • 何做百度推廣網(wǎng)站國內(nèi)優(yōu)秀網(wǎng)頁設(shè)計賞析
  • 鶴崗做網(wǎng)站公司每天4元代發(fā)廣告
  • 深圳網(wǎng)站建設(shè)ppchsj個人博客搭建
  • 網(wǎng)站源碼搭建教程河南疫情最新消息
  • 網(wǎng)站制作器軟件下載新品上市怎么推廣詞