Hai dev,
Jika anda baharu dalam pembelajaran mendalam, anda berkemungkinan terjumpa nama Keras. Tetapi apakah sebenarnya, dan bagaimana ia berfungsi? Dalam siaran ini, saya akan menerangkan segala-galanya dari bawah dan menunjukkan kepada anda contoh langkah demi langkah menggunakan Keras untuk membina model pembelajaran mendalam yang ringkas. Saya akan menerangkan konsep utama seperti set data MNIST juga, supaya anda boleh mengikutinya dengan mudah!
Keras ialah sumber terbuka API rangkaian saraf peringkat tinggi yang ditulis dalam Python. Ia membolehkan pembangun membina model pembelajaran mendalam dengan cepat dan mudah menggunakan antara muka yang mesra pengguna. Keras terletak di atas rangka kerja pembelajaran mendalam yang lebih kompleks seperti TensorFlow, membolehkan anda menumpukan pada membina model anda tanpa terperangkap oleh kerumitan asas.
Dataset MNIST ialah salah satu set data paling terkenal dalam pembelajaran mesin. Ia mengandungi 70,000 imej digit tulisan tangan (0-9). Setiap imej ialah gambar skala kelabu, bersaiz 28x28 piksel. Matlamatnya adalah untuk mengklasifikasikan imej ini ke dalam salah satu daripada sepuluh digit kategori.
Berikut ialah contoh beberapa digit daripada set data MNIST:
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
Apabila bekerja dengan Keras, anda akan sering melihat set data MNIST digunakan dalam tutorial kerana ia mudah, difahami dengan baik dan bagus untuk menguji model baharu.
Mari kita bina rangkaian saraf ringkas menggunakan Keras untuk mengelaskan digit tulisan tangan ini. Kami akan melaluinya langkah demi langkah.
Pertama sekali, anda perlu memasang TensorFlow, kerana Keras adalah sebahagian daripada TensorFlow dalam versi terkini. Anda boleh memasangnya melalui pip:
pip install tensorflow
Kami akan mengimport TensorFlow dan perpustakaan khusus Keras yang kami perlukan untuk membina dan melatih model.
import tensorflow as tf from tensorflow.keras import layers, models
Di sini, tensorflow.keras ialah API Keras dalam TensorFlow.
Keras menyediakan akses mudah kepada set data seperti MNIST. Kami akan memuatkan set data dan membahagikannya kepada set latihan dan ujian.
[0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
Dalam langkah ini, train_images dan train_labels memegang data latihan, manakala test_images dan test_labels memegang data ujian.
Setiap imej dalam train_images ialah imej skala kelabu 28x28 piksel dan train_labels mengandungi label digit (0-9) yang sepadan dengan setiap imej.
Seterusnya, kita perlu menormalkan nilai piksel imej untuk menjadikan latihan model lebih cekap. Setiap nilai piksel dalam imej adalah antara 0 dan 255. Kami akan menskalakan nilai ini menjadi antara 0 dan 1 dengan membahagikan imej dengan 255.
pip install tensorflow
Sekarang mari bina rangkaian saraf kita menggunakan Keras. Kami akan mencipta model Berjujukan, yang membolehkan kami menyusun satu lapisan di atas lapisan yang lain.
import tensorflow as tf from tensorflow.keras import layers, models
Seterusnya, kita perlu menyusun model. Di sinilah kami menentukan pengoptimum, fungsi kehilangan dan metrik penilaian.
# Load the MNIST dataset mnist = tf.keras.datasets.mnist (train_images, train_labels), (test_images, test_labels) = mnist.load_data()
Kini, kami bersedia untuk melatih model itu! Kami akan melatihnya selama 5 zaman (iaitu, model akan meneliti keseluruhan set data latihan sebanyak 5 kali).
# Normalize pixel values to be between 0 and 1 train_images = train_images / 255.0 test_images = test_images / 255.0
Setelah model dilatih, kami boleh menilai prestasinya pada data ujian.
# Build the model model = models.Sequential([ layers.Flatten(input_shape=(28, 28)), # Flatten the 28x28 images into a 1D vector of 784 pixels layers.Dense(128, activation='relu'), # Add a fully-connected (Dense) layer with 128 neurons layers.Dense(10, activation='softmax') # Output layer with 10 neurons (one for each digit 0-9) ])
Ini akan memberi kita ketepatan model pada set data ujian.
Ringkasnya:
Keras memudahkan proses membina dan melatih rangkaian saraf, menjadikannya titik permulaan yang ideal untuk pemula. Sebaik sahaja anda selesa dengan model asas, anda boleh bereksperimen dengan seni bina yang lebih kompleks seperti rangkaian neural convolutional (CNN) dan rangkaian neural berulang (RNN).
Jangan ragu untuk menyelam lebih dalam ke dalam dunia pembelajaran mendalam dengan Keras, bereksperimen dengan model yang berbeza dan tolak sempadan perkara yang mungkin!
Apa pendapat anda tentang Keras setakat ini?
Atas ialah kandungan terperinci Keras: Memahami Asas dengan Contoh Terperinci. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!