Butiran artikel ini membina model keras untuk pengiktirafan digit tulisan tangan menggunakan rangkaian saraf konvolusi (CNN) dan dataset MNIST. Mari kita tegangkannya untuk kejelasan dan aliran yang lebih baik.
Membina pengiktirafan digit tulisan tangan dengan keras
Tutorial ini menunjukkan mencipta model untuk mengenali digit tulisan tangan menggunakan Python's Keras Library, API peringkat tinggi yang memudahkan bangunan dan latihan saraf. Kami akan memanfaatkan kuasa rangkaian saraf konvensional (CNNs) dan dataset MNIST yang digunakan secara meluas.
Memahami pendekatan
Model kami menggunakan CNN, seni bina yang sangat cekap untuk klasifikasi imej. Tidak seperti rangkaian saraf tradisional, data proses CNNS dalam pelbagai 3D (x, y koordinat dan warna), menjadikannya sesuai untuk data imej. Dataset MNIST, yang mengandungi 60,000 latihan dan 10,000 contoh ujian digit tulisan tangan, menyediakan data berlabel yang diperlukan untuk latihan.
Rangkaian Neural Buatan (ANNS) dan CNNS
Ann adalah model matematik yang mengubah data input ke dalam output melalui lapisan tersembunyi, setiap lapisan yang mewakili kebarangkalian. Latihan melibatkan penyesuaian berat dan bias berdasarkan kesilapan, yang membolehkan rangkaian mempelajari corak.
CNNS menawarkan kelebihan yang signifikan untuk pemprosesan imej. Struktur array 3D mereka bermakna setiap nod lapisan tersembunyi menghubungkan ke rantau input kecil, meningkatkan kecekapan secara dramatik berbanding dengan ANN tradisional. Lapisan CNN utama termasuk lapisan konvolusi (pengekstrakan ciri), lapisan penyatuan (pengurangan ciri), lapisan rata (pengurangan dimensi), dan lapisan klasifikasi akhir.
Bekerja dengan dataset MNIST
Dataset MNIST tersedia dalam Keras. Kami memuatkan data latihan dan ujian menggunakan . Menggambarkan digit sampel membantu memahami struktur data:
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()
Preprocessing data
Sebelum penciptaan model, data memerlukan pra -proses:
- membentuk semula: imej semula (M x n x 1) Format menggunakan
.reshape()
. - Normalisasi: Nilai piksel (0-255) dinormalisasi kepada 0-1 dengan membahagikan 255.
- Pengekodan satu-panas: Pembolehubah bergantung (
, y_train
) ditukar kepada matriks kelas binari menggunakany_test
untuk keserasian dengan output model.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()
Reka bentuk dan latihan model
Model CNN kami dibina secara berurutan:
- Lapisan Convolutional: Ciri -ciri ekstrak dari imej input.
- lapisan penyatuan: mengurangkan dimensi dan kos pengiraan.
- Lapisan dropout: menghalang overfitting.
- Lapisan rata: Menukar output multi-dimensi ke array 1D.
- Lapisan padat: Lakukan klasifikasi akhir.
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)Model ini dikumpulkan menggunakan
kehilangan (untuk label integer), pengoptimasi Adam, dan ketepatan sebagai metrik. Latihan dilakukan dengan menggunakan sparse_categorical_crossentropy
, menentukan zaman dan saiz batch. Model terlatih disimpan untuk kegunaan kemudian. .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) ])
ujian dengan imej tersuai
Untuk menguji model, kami memuat imej digit tulisan tangan tersuai, pra -prosesnya (tukar ke skala kelabu, membentuk semula, menormalkan), memuatkan model yang disimpan, dan gunakan untuk mendapatkan klasifikasi. .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")
Tutorial ini memberikan pemahaman asas untuk membina model pengiktirafan digit tulisan tangan menggunakan Keras dan CNNS. Walaupun mencapai ketepatan yang tinggi (mis., & Gt; 99%), penambahbaikan selanjutnya mungkin melalui penalaan parameter model, pembesaran data, dan meneroka seni bina CNN yang lebih maju. Soalan Lazim yang disediakan menawarkan pandangan lanjut mengenai konsep yang terlibat.
Atas ialah kandungan terperinci Panduan Pemula ke Keras: Pengiktirafan Digit dalam 30 Minit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Tinggal maklumat mengenai trend teknologi terkini dengan surat berita pemaju teratas ini! Senarai ini menawarkan sesuatu untuk semua orang, dari peminat AI ke pemaju backend dan frontend yang berpengalaman. Pilih kegemaran anda dan menjimatkan masa mencari rel

Tutorial ini membimbing anda melalui membina saluran paip pemprosesan imej tanpa pelayan menggunakan perkhidmatan AWS. Kami akan membuat frontend next.js yang digunakan pada kluster ECS Fargate, berinteraksi dengan Gateway API, Fungsi Lambda, Bucket S3, dan DynamoDB. Th

Program perintis ini, kerjasama antara CNCF (Yayasan Pengkomputeran Native Cloud), pengkomputeran ampere, equinix metal, dan digerakkan, menyelaraskan ARM64 CI/CD untuk projek GitHub CNCF. Inisiatif ini menangani kebimbangan keselamatan dan prestasi lim


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

Pelayar Peperiksaan Selamat
Pelayar Peperiksaan Selamat ialah persekitaran pelayar selamat untuk mengambil peperiksaan dalam talian dengan selamat. Perisian ini menukar mana-mana komputer menjadi stesen kerja yang selamat. Ia mengawal akses kepada mana-mana utiliti dan menghalang pelajar daripada menggunakan sumber yang tidak dibenarkan.

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft
