>本文詳細介紹了使用卷積神經網絡(CNN)和MNIST數據集構建用於手寫數字識別的KERAS模型。 讓我們重新提示它以清晰並改善流程。
>用keras 構建手寫數字識別器
>本教程演示了創建一個模型,使用Python的Keras庫識別手寫數字,這是一種簡化建築和培訓神經網絡的高級API。我們將利用卷積神經網絡(CNN)和廣泛使用的MNIST數據集的力量。
理解方法
我們的模型採用CNN,這是一種特別有效的圖像分類體系結構。與傳統的神經網絡不同,CNNS在3D陣列(X,Y坐標和顏色)中處理數據,使其非常適合圖像數據。 MNIST數據集包含60,000個培訓和10,000個手寫數字的測試示例,為培訓提供了必要的標籤數據。
>人工神經網絡(ANN)和CNNS > ANN是一個數學模型,通過隱藏的圖層將輸入數據轉換為輸出,每個層代表概率。 培訓涉及根據錯誤調整權重和偏見,從而使網絡學習模式。 CNNS為圖像處理提供了重要的優勢。它們的3D陣列結構意味著每個隱藏層節點僅連接到一個小輸入區域,與傳統ANN相比,效率大大提高。 關鍵CNN層包括卷積層(特徵提取),合併層(功能降低),變平層(降低維度)和最終分類層。
>
加載培訓和測試數據。 可視化樣品數字有助於理解數據結構:
mnist.load_data()
from keras.datasets import mnist import matplotlib.pyplot as plt (x_train, y_train), (x_test, y_test) = mnist.load_data() image_index = 35 plt.imshow(x_train[image_index], cmap='Greys') plt.show()
數據預處理
在創建模型之前,數據需要預處理:
-
重塑:圖像被重塑為(m x n x 1)格式,使用
.reshape()
>。 。
- 歸一化:像素值(0-255)通過除以255將其標準化為0-1。 >
-
一個hot編碼:>使用
y_train
>使用y_test
將因變量(to_categorical()
, )轉換為二進制類矩陣,以兼容模型的輸出。
from keras.datasets import mnist import matplotlib.pyplot as plt (x_train, y_train), (x_test, y_test) = mnist.load_data() image_index = 35 plt.imshow(x_train[image_index], cmap='Greys') plt.show()
型號設計和訓練
>我們的CNN模型是依次構建的:
- 卷積層:>從輸入圖像中提取特徵。
- 池層:降低維度和計算成本。
-
輟學層:防止過度擬合。
> - 扁平層:>將多維輸出轉換為1D陣列。
- 執行最終分類。
img_rows, img_cols = 28, 28 x_train = x_train.reshape(x_train.shape[0], img_rows, img_cols, 1) / 255 x_test = x_test.reshape(x_test.shape[0], img_rows, img_cols, 1) / 255 y_train = to_categorical(y_train, num_classes=10) y_test = to_categorical(y_test, num_classes=10)進行訓練,指定時期和批量尺寸。訓練有素的模型可保存以供以後使用。
>
sparse_categorical_crossentropy
使用自定義圖像進行測試.fit()
from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D model = Sequential([ Conv2D(32, (3, 3), activation='relu', input_shape=(img_rows, img_cols, 1)), Conv2D(64, (3, 3), activation='relu'), MaxPooling2D((2, 2)), Dropout(0.25), Flatten(), Dense(128, activation='relu'), Dropout(0.5), Dense(10, activation='softmax') # 10 output classes (digits 0-9) ])
為了測試模型,我們加載自定義手寫數字圖像,預處理(轉換為灰度,重塑,歸一化),加載保存的模型並使用>進行分類。
>
.predict()
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.fit(x_train, y_train, batch_size=128, epochs=10, validation_data=(x_test, y_test)) model.save("test_model.h5")
結論
本教程提供了對使用Keras和CNN構建手寫數字識別模型的基本理解。 儘管實現高精度(例如,> 99%),但通過模型參數調整,數據增強和探索更高級的CNN體系結構進行了進一步的改進。 提供的常見問題解答提供了對所涉及概念的進一步見解。
以上是KERAS的初學者指南:30分鐘內數字識別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

與這些頂級開發人員新聞通訊有關最新技術趨勢的了解! 這個精選的清單為每個人提供了一些東西,從AI愛好者到經驗豐富的後端和前端開發人員。 選擇您的收藏夾並節省時間搜索REL

該教程通過使用AWS服務來指導您通過構建無服務器圖像處理管道。 我們將創建一個部署在ECS Fargate群集上的next.js前端,與API網關,Lambda函數,S3桶和DynamoDB進行交互。 Th

該試點程序是CNCF(雲本機計算基礎),安培計算,Equinix金屬和驅動的合作,簡化了CNCF GitHub項目的ARM64 CI/CD。 該計劃解決了安全問題和績效


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境