Klasifikasi Imej dengan Jax, Flax, dan Optax
Tutorial ini menunjukkan bangunan, latihan, dan menilai rangkaian saraf konvolusi (CNN) untuk klasifikasi digit MNIST menggunakan Jax, Flax, dan Optax. Kami akan merangkumi segala -galanya dari persediaan persekitaran dan pra -proses data untuk model seni bina, pelaksanaan gelung latihan, visualisasi metrik, dan akhirnya, ramalan pada imej tersuai. Pendekatan ini menyoroti kekuatan sinergistik perpustakaan ini untuk pembelajaran mendalam yang cekap dan berskala.
Objektif Pembelajaran:
- Menguasai integrasi Jax, Flax, dan Optax untuk pembangunan rangkaian saraf yang diselaraskan.
- Belajar untuk preprocess dan memuatkan dataset menggunakan dataset TensorFlow (TFD).
- Melaksanakan CNN untuk klasifikasi imej yang berkesan.
- Visualisasikan kemajuan latihan menggunakan metrik utama (kehilangan dan ketepatan).
- Menilai prestasi model pada imej tersuai.
Artikel ini adalah sebahagian daripada Blogathon Sains Data.
Jadual Kandungan:
- Objektif pembelajaran
- Jax, Flax, dan Optax Powerhouse
- Persediaan Jax: Pemasangan dan Import
- Data MNIST: Memuat dan Pra -proses
- Membina CNN
- Penilaian Model: Metrik dan Penjejakan
- Gelung latihan
- Pelaksanaan Latihan dan Penilaian
- Menggambarkan prestasi
- Meramalkan dengan gambar tersuai
- Kesimpulan
- Soalan yang sering ditanya
Jax, Flax, dan Optax Powerhouse:
Pembelajaran mendalam yang cekap dan berskala menuntut alat yang berkuasa untuk pengiraan, reka bentuk model, dan pengoptimuman. Jax, Flax, dan Optax secara kolektif menangani keperluan ini:
Jax: Kecemerlangan Pengkomputeran Numerik:
Jax menyediakan pengiraan berangka berprestasi tinggi dengan antara muka seperti numpy. Ciri -ciri utamanya termasuk:
- Pembezaan Automatik (AUTOGRAD): Pengiraan kecerunan tanpa usaha untuk fungsi kompleks.
- Kompilasi Just-in-Time (JIT): Pelaksanaan dipercepatkan pada CPU, GPU, dan TPU.
- Vektorisasi: Pemprosesan batch mudah melalui
vmap
. - Percepatan perkakasan: Sokongan asli untuk GPU dan TPU.
Flax: Rangkaian Neural Fleksibel:
Flax, perpustakaan berasaskan JAX, menawarkan pendekatan mesra pengguna dan sangat disesuaikan untuk pembinaan rangkaian saraf:
- Modul Negara: Parameter yang dipermudahkan dan pengurusan negeri.
- Ringkas API: Definisi model intuitif menggunakan
@nn.compact
penghias. - Kesesuaian: Sesuai untuk pelbagai seni bina, dari mudah ke kompleks.
- Integrasi Jax yang lancar: Menggalakkan keupayaan Jax dengan mudah.
Optax: Pengoptimuman Komprehensif:
Optax menyelaraskan pengendalian dan pengoptimuman kecerunan, menyediakan:
- Pelbagai pengoptimum: Pelbagai pengoptimuman, termasuk SGD, Adam, dan RMSPROP.
- Manipulasi kecerunan: alat untuk keratan, skala, dan normalisasi.
- Reka bentuk modular: Gabungan mudah transformasi kecerunan dan pengoptimuman.
Rangka kerja gabungan ini menawarkan ekosistem yang kuat dan modular untuk pembangunan model pembelajaran mendalam yang cekap.
Persediaan Jax: Pemasangan dan Import:
Pasang perpustakaan yang diperlukan:
! Pip pemasangan --upgrade -q pip jax jaxlib flax optax tensorflow -datasets
Import perpustakaan penting:
Import Jax import jax.numpy sebagai jnp dari linen import rami sebagai nn dari flax.Raining Import Train_state Import Optax import numpy sebagai np import tensorflow_datasets sebagai TFD import matplotlib.pyplot sebagai PLT
Data MNIST: Memuatkan dan memproses pra:
Kami memuatkan dan memproses dataset MNIST menggunakan TFD:
def get_datasets (): ds_builder = tfds.builder ('mnist') ds_builder.download_and_prepare () train_ds = tfds.as_numpy (ds_builder.as_dataset (split = 'kereta api', batch_size = -1)) test_ds = tfds.as_numpy (ds_builder.as_dataset (split = 'test', batch_size = -1)) train_ds ['image'] = jnp.float32 (train_ds ['image']) / 255.0 test_ds ['image'] = jnp.float32 (test_ds ['image']) / 255.0 kembali kereta api, test_ds train_ds, test_ds = get_datasets ()
Imej dinormalisasi ke julat [0, 1].
Membina CNN:
Senibina CNN kami:
Kelas CNN (NN.Module): @nn.compact def __call __ (diri, x): x = nn.conv (ciri = 32, kernel_size = (3, 3)) (x) x = nn.relu (x) x = nn.avg_pool (x, window_shape = (2, 2), langkah = (2, 2)) x = nn.conv (ciri = 64, kernel_size = (3, 3)) (x) x = nn.relu (x) x = nn.avg_pool (x, window_shape = (2, 2), langkah = (2, 2)) x = x.Reshape ((x.shape [0], -1)) x = nn.dense (ciri = 256) (x) x = nn.relu (x) x = nn.dense (ciri = 10) (x) kembali x
Ini termasuk lapisan konvolusi, lapisan penyatuan, lapisan rata, dan lapisan padat.
Penilaian Model: Metrik dan Penjejakan:
Kami menentukan fungsi untuk mengira kerugian dan ketepatan:
def compute_metrics (logit, label): kerugian = jnp.mean (optax.softMax_cross_entropy (logit, jax.nn.one_hot (label, num_class = 10))) ketepatan = jnp.mean (jnp.argmax (logit, -1) == label) metrik = {'kehilangan': kehilangan, 'ketepatan': ketepatan} Metrik kembali # ... (Fungsi Train_Step dan Eval_Step tetap sama) ...
(Fungsi Train_Step dan Eval_Step akan dimasukkan di sini, sama dengan kod asal.)
Gelung latihan:
Gelung latihan berulang -ulang mengemas kini model:
# ... (Fungsi Train_Epoch dan Eval_Model tetap sama) ...
(Fungsi Train_epoch dan Eval_Model akan dimasukkan di sini, sama dengan kod asal.)
Pelaksanaan Latihan dan Penilaian:
Kami melaksanakan proses latihan dan penilaian:
# ... (kod pelaksanaan latihan dan penilaian tetap sama) ...
(Kod pelaksanaan latihan dan penilaian, termasuk inisialisasi parameter, persediaan pengoptimuman, dan gelung latihan, akan dimasukkan di sini, serupa dengan kod asal.)
Menggambarkan prestasi:
Kami memvisualisasikan metrik latihan dan ujian menggunakan matplotlib:
# ... (kod merancang Matplotlib tetap sama) ...
(Kod merancang Matplotlib untuk menggambarkan kerugian dan ketepatan akan dimasukkan di sini, sama dengan kod asal.)
Meramalkan dengan gambar tersuai:
Bahagian ini menunjukkan ramalan pada imej tersuai (kod tetap sama seperti yang asal).
# ... (kod untuk memuat naik, memproses, dan meramalkan pada imej tersuai tetap sama) ...
Kesimpulan:
Tutorial ini mempamerkan kecekapan dan fleksibiliti Jax, Flax, dan Optax untuk membina dan melatih CNN. Penggunaan pengendalian data yang dipermudahkan TFD, dan visualisasi metrik memberikan pandangan yang berharga. Keupayaan untuk menguji model pada imej tersuai menyoroti kebolehgunaan praktikalnya.
Soalan Lazim:
(Soalan Lazim kekal sama dengan yang asal.)
Pautan Colab yang disediakan akan disertakan di sini. Ingatlah untuk menggantikan /uploads/....webp
dengan laluan sebenar ke imej anda.
Atas ialah kandungan terperinci Klasifikasi Imej dengan Jax, Flax, dan Optax. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Semasa bekerja pada AIS AI, pemaju sering mendapati diri mereka menavigasi perdagangan antara kelajuan, fleksibiliti, dan kecekapan sumber. Saya telah meneroka rangka kerja AI yang agentik dan menjumpai Agno (sebelum ini adalah Phi-

Pernyataan Jadual Alter SQL: Menambah lajur secara dinamik ke pangkalan data anda Dalam pengurusan data, kebolehsuaian SQL adalah penting. Perlu menyesuaikan struktur pangkalan data anda dengan cepat? Pernyataan Jadual ALTER adalah penyelesaian anda. Butiran panduan ini menambah colu

Pelepasan ini termasuk tiga model yang berbeza, GPT-4.1, GPT-4.1 Mini dan GPT-4.1 Nano, menandakan langkah ke arah pengoptimuman khusus tugas dalam landskap model bahasa yang besar. Model-model ini tidak segera menggantikan antara muka yang dihadapi pengguna seperti

Penanda Aras Bermasalah: Kajian Kes Llama Pada awal April 2025, Meta melancarkan model Llama 4 suite, dengan metrik prestasi yang mengagumkan yang meletakkan mereka dengan baik terhadap pesaing seperti GPT-4O dan Claude 3.5 sonnet. Pusat ke LAUNC

Buka kunci kekuatan model embedding: menyelam jauh ke kursus baru Andrew Ng Bayangkan masa depan di mana mesin memahami dan menjawab soalan anda dengan ketepatan yang sempurna. Ini bukan fiksyen sains; Terima kasih kepada kemajuan dalam AI, ia menjadi R

Bolehkah permainan video meringankan kebimbangan, membina fokus, atau menyokong kanak -kanak dengan ADHD? Memandangkan cabaran penjagaan kesihatan melonjak di seluruh dunia - terutamanya di kalangan belia - inovator beralih kepada alat yang tidak mungkin: permainan video. Sekarang salah satu hiburan terbesar di dunia Indus

Simulasi Rocket dilancarkan dengan Rocketpy: Panduan Komprehensif Artikel ini membimbing anda melalui mensimulasikan pelancaran roket kuasa tinggi menggunakan Rocketpy, perpustakaan Python yang kuat. Kami akan merangkumi segala -galanya daripada menentukan komponen roket untuk menganalisis simula

Gemini sebagai asas strategi AI Google Gemini adalah asas kepada strategi ejen AI Google, memanfaatkan keupayaan multimodalnya untuk memproses dan menjana respons di seluruh teks, imej, audio, video dan kod. Dibangunkan oleh DeepM
