Keras: Memahami Asas dengan Contoh Terperinci

Linda Hamilton
Lepaskan: 2024-10-21 06:11:30
asal
869 orang telah melayarinya

Keras: Understanding the Basics with a Detailed Example

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!

1. Apakah Keras?

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.

2. Mengapa Menggunakan Keras?

  • Kemudahan Penggunaan: Keras direka bentuk agar mudah dibaca dan difahami, yang menjadikannya bagus untuk pemula.
  • Modular: Ia sangat modular, bermakna anda boleh menyusun model seperti blok binaan.
  • Sokongan berbilang hujung belakang: Keras boleh dijalankan di atas TensorFlow, Theano atau CNTK, menjadikannya fleksibel.
  • Prototaip Pantas: Anda boleh membina, menyusun dan melatih model pembelajaran mendalam hanya dalam beberapa baris kod.

3. Apa itu MNIST?

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]
Salin selepas log masuk
Salin selepas log masuk

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.


4. Membina Rangkaian Neural Mudah dengan Keras (Langkah demi Langkah)

Mari kita bina rangkaian saraf ringkas menggunakan Keras untuk mengelaskan digit tulisan tangan ini. Kami akan melaluinya langkah demi langkah.

Langkah 1: Pasang TensorFlow (Keras disertakan bersama TensorFlow)

Pertama sekali, anda perlu memasang TensorFlow, kerana Keras adalah sebahagian daripada TensorFlow dalam versi terkini. Anda boleh memasangnya melalui pip:

pip install tensorflow
Salin selepas log masuk
Salin selepas log masuk

Langkah 2: Import Perpustakaan yang Diperlukan

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
Salin selepas log masuk
Salin selepas log masuk

Di sini, tensorflow.keras ialah API Keras dalam TensorFlow.

Langkah 3: Muatkan Set Data MNIST

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]
Salin selepas log masuk
Salin selepas log masuk

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.

Langkah 4: Praproses Data

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
Salin selepas log masuk
Salin selepas log masuk

Langkah 5: Bina Model

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
Salin selepas log masuk
Salin selepas log masuk
  • Leperkan: Lapisan Ratakan menukar imej 2D 28x28 kepada tatasusunan 1D sebanyak 784 nilai.
  • Padat: Lapisan Padat ialah lapisan bersambung sepenuhnya. Di sini kita mempunyai 128 neuron dalam lapisan tersembunyi dan 10 neuron dalam lapisan keluaran (kerana kita mempunyai 10 kelas digit). Kami menggunakan ReLU sebagai fungsi pengaktifan untuk lapisan tersembunyi dan softmax untuk lapisan keluaran.

Langkah 6: Susun Model

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()
Salin selepas log masuk
  • Adam pengoptimum: Ini ialah pengoptimum yang popular untuk melatih model pembelajaran mendalam.
  • Sparse categorical crossentropy: Fungsi kehilangan ini digunakan untuk masalah klasifikasi berbilang kelas seperti kami.
  • Ketepatan: Kami akan menggunakan ketepatan sebagai metrik untuk menilai prestasi model.

Langkah 7: Latih Model

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
Salin selepas log masuk

Langkah 8: Nilaikan Model

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)
])
Salin selepas log masuk

Ini akan memberi kita ketepatan model pada set data ujian.


5. Apa yang Berlaku di Sebalik Tabir?

Ringkasnya:

  1. Prapemprosesan Data: Kami menormalkan data untuk menjadikan latihan lebih cekap.
  2. Definisi Model: Kami membina rangkaian saraf suapan hadapan mudah menggunakan API Berjujukan.
  3. Kompilasi: Kami memilih fungsi kehilangan dan pengoptimum yang betul untuk membimbing pembelajaran model.
  4. Latihan: Model belajar memetakan imej kepada digit melalui berbilang laluan melalui set data.
  5. Penilaian: Akhirnya, kami menyemak sejauh mana model digeneralisasikan kepada data yang tidak kelihatan.

6. Ke Mana Nak Pergi Dari Sini?

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!