Jadual Kandungan
Dalam contoh ini, kami akan menggunakan set data MNIST imej digit dari 0 hingga 9. Bentuknya adalah seperti yang ditunjukkan dalam rajah di bawah:
Pertama, mari kita pergi melalui TensorFlow, to_categorical (digunakan untuk menukar nilai kelas angka ke dalam kategori lain), Sequential, Flatten, Dense dan untuk membina rangkaian neural Keciciran seni bina untuk mengimport semua perpustakaan kod yang berkaitan. Beberapa pustaka kod yang disebut di sini mungkin agak asing bagi anda. Saya akan menerangkannya secara terperinci di bawah.
Memandangkan pustaka TensorFlow juga termasuk set data MNIST, anda boleh memanggil datasets.mnist pada objek dan kemudian memanggil load_data () kaedah untuk mendapatkan latihan (60,000 sampel) dan ujian (10,000 sampel) set data masing-masing.
Seterusnya, mari kita fahami cara mereka bentuk seni bina rangkaian saraf secara terperinci.
6、训练
7、小结
Rumah Peranti teknologi AI Panduan untuk melatih model klasifikasi imej menggunakan TensorFlow

Panduan untuk melatih model klasifikasi imej menggunakan TensorFlow

Apr 13, 2023 pm 05:13 PM
Model tensorflow Pengelasan

Penterjemah |. Chen Jun

Penilai |. Pada masa kini, dengan lelaran berterusan pembelajaran mesin dan algoritma pembelajaran mendalam, komputer telah dapat mengklasifikasikan imej yang ditangkap pada skala besar dengan ketepatan yang sangat tinggi. Pada masa ini, senario aplikasi algoritma lanjutan tersebut termasuk: mentafsir imej imbasan paru-paru untuk menentukan sama ada ia sihat, melakukan pengecaman muka melalui peranti mudah alih dan membezakan pelbagai jenis objek pengguna untuk peruncit.

Di bawah, saya akan membincangkan dengan anda aplikasi penglihatan komputer - klasifikasi imej, dan langkah demi langkah menunjukkan cara menggunakan TensorFlow untuk melatih model pada set data imej kecil.

1. Set data dan sasaran

Dalam contoh ini, kami akan menggunakan set data MNIST imej digit dari 0 hingga 9. Bentuknya adalah seperti yang ditunjukkan dalam rajah di bawah:

Panduan untuk melatih model klasifikasi imej menggunakan TensorFlowTujuan melatih model ini adalah untuk mengklasifikasikan imej ke dalam label masing-masing, iaitu: yang sepadan di atas. pejabat Nombor angka. Lazimnya, seni bina rangkaian saraf dalam menyediakan input, output, dua lapisan tersembunyi (Lapisan Tersembunyi) dan lapisan Tercicir untuk melatih model. CNN atau Convolutional Neural Network ialah pilihan pertama untuk mengenal pasti imej yang lebih besar Ia boleh menangkap maklumat yang berkaitan sambil mengurangkan jumlah input.

2. Persediaan

Pertama, mari kita pergi melalui TensorFlow, to_categorical (digunakan untuk menukar nilai kelas angka ke dalam kategori lain), Sequential, Flatten, Dense dan untuk membina rangkaian neural Keciciran seni bina untuk mengimport semua perpustakaan kod yang berkaitan. Beberapa pustaka kod yang disebut di sini mungkin agak asing bagi anda. Saya akan menerangkannya secara terperinci di bawah.

3. Hiperparameter

Saya akan memilih set hiperparameter yang betul melalui aspek berikut:

  • Pertama sekali, Mari kita takrifkan beberapa hiperparameter sebagai titik permulaan. Kemudian, anda boleh melaraskannya untuk memenuhi keperluan yang berbeza. Di sini, saya memilih 128 sebagai saiz kelompok yang lebih kecil. Malah, saiz kelompok boleh mengambil apa-apa nilai, tetapi kuasa 2 saiz selalunya meningkatkan kecekapan memori, jadi ia harus menjadi pilihan pertama. Perlu diingat bahawa rasional utama di sebalik membuat keputusan tentang saiz kelompok yang sesuai ialah saiz kelompok yang terlalu kecil akan menjadikan penumpuan terlalu rumit, manakala saiz kelompok yang terlalu besar mungkin tidak muat dalam memori komputer anda.
  • Mari kita kekalkan bilangan zaman (setiap sampel dalam set latihan mengambil bahagian dalam satu latihan) kepada 50 untuk mencapai latihan pantas model. Semakin rendah nilai zaman, lebih sesuai untuk set data yang kecil dan mudah.
  • Seterusnya, anda perlu menambah lapisan tersembunyi. Di sini, saya telah menempah 128 neuron untuk setiap lapisan tersembunyi. Sudah tentu, anda juga boleh menguji dengan 64 dan 32 neuron. Untuk contoh ini, saya tidak akan mengesyorkan menggunakan nilai yang lebih tinggi untuk set data mudah seperti MINST.
  • Anda boleh mencuba kadar pembelajaran yang berbeza, seperti 0.01, 0.05 dan 0.1. Dalam kes ini, saya menyimpannya pada 0.01.
  • Untuk hiperparameter lain, saya memilih langkah pereputan dan kadar pereputan masing-masing menjadi 2000 dan 0.9. Dan apabila latihan diteruskan, mereka boleh digunakan untuk mengurangkan kadar pembelajaran.
  • Di sini, saya memilih Adamax sebagai pengoptimum. Sudah tentu, anda juga boleh memilih pengoptimum lain seperti Adam, RMSProp, SGD, dll.
4 Cipta set latihan dan ujian
import tensorflow as tf
from tensorflow.keras.utils import to_categorical
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Flatten, Dense, Dropout
params = {
'dropout': 0.25,
'batch-size': 128,
'epochs': 50,
'layer-1-size': 128,
'layer-2-size': 128,
'initial-lr': 0.01,
'decay-steps': 2000,
'decay-rate': 0.9,
'optimizer': 'adamax'
}
mnist = tf.keras.datasets.mnist
num_class = 10
# split between train and test sets
(x_train, y_train), (x_test, y_test) = mnist.load_data()
# reshape and normalize the data
x_train = x_train.reshape(60000, 784).astype("float32")/255
x_test = x_test.reshape(10000, 784).astype("float32")/255
# convert class vectors to binary class matrices
y_train = to_categorical(y_train, num_class)
y_test = to_categorical(y_test, num_class)
Salin selepas log masuk

Memandangkan pustaka TensorFlow juga termasuk set data MNIST, anda boleh memanggil datasets.mnist pada objek dan kemudian memanggil load_data () kaedah untuk mendapatkan latihan (60,000 sampel) dan ujian (10,000 sampel) set data masing-masing.

Seterusnya, anda perlu membentuk semula dan menormalkan imej latihan dan ujian. Antaranya, penormalan akan mengehadkan keamatan piksel imej kepada antara 0 dan 1.

Akhir sekali, kami menukar label latihan dan ujian kepada label terperingkat menggunakan kaedah to_categorical yang kami import sebelum ini. Ini sangat penting untuk menyampaikan kepada rangka kerja TensorFlow bahawa label output (iaitu: 0 hingga 9) adalah kelas, bukan jenis angka.

5. Reka bentuk seni bina rangkaian neural

Seterusnya, mari kita fahami cara mereka bentuk seni bina rangkaian saraf secara terperinci.

Kami menukar matriks imej 2D kepada vektor dengan menambahkan Flatten untuk mentakrifkan struktur DNN (Deep Neural Network). Neuron input sepadan di sini dengan nombor dalam vektor.

Seterusnya, saya menggunakan kaedah Dense() untuk menambah dua lapisan padat tersembunyi dan mengekstrak hiperparameter daripada kamus "params" yang ditakrifkan sebelum ini. Kita boleh menggunakan "relu" (Unit Linear Diperbetulkan) sebagai fungsi pengaktifan lapisan ini. Ia adalah salah satu fungsi pengaktifan yang paling biasa digunakan dalam lapisan tersembunyi rangkaian saraf.

Kemudian, kami menambah lapisan Dropout menggunakan kaedah Dropout. Ia akan digunakan untuk mengelakkan overfitting semasa melatih rangkaian saraf. Lagipun, model overfitting cenderung untuk mengingati set latihan dengan tepat dan gagal untuk membuat generalisasi kepada set data yang tidak kelihatan.

输出层是我们网络中的最后一层,它是使用Dense() 方法来定义的。需要注意的是,输出层有10个神经元,这对应于类(数字)的数量。

# Model Definition
# Get parameters from logged hyperparameters
model = Sequential([
Flatten(input_shape=(784, )),
Dense(params('layer-1-size'), activatinotallow='relu'),
Dense(params('layer-2-size'), activatinotallow='relu'),
Dropout(params('dropout')),
Dense(10)
])
lr_schedule =
tf.keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate=experiment.get_parameter('initial-lr'),
decay_steps=experiment.get_parameter('decay-steps'),
decay_rate=experiment.get_parameter('decay-rate')
)
loss_fn = tf.keras.losses.CategoricalCrossentropy(from_logits=True)
model.compile(optimizer='adamax',
loss=loss_fn,
metrics=['accuracy'])
model.fit(x_train, y_train,
batch_size=experiment.get_parameter('batch-size'),
epochs=experiment.get_parameter('epochs'),
validation_data=(x_test, y_test),)
score = model.evaluate(x_test, y_test)
# Log Model
model.save('tf-mnist-comet.h5')
Salin selepas log masuk

6、训练

至此,我们已经定义好了架构。下面让我们用给定的训练数据,来编译和训练神经网络。

首先,我们以初始学习率、衰减步骤和衰减率作为参数,使用ExponentialDecay(指数衰减学习率)来定义学习率计划。

其次,将损失函数定义为CategoricalCrossentropy(用于多类式分类)。

接着,通过将优化器 (即:adamax)、损失函数、以及各项指标(由于所有类都同等重要、且均匀分布,因此我选择了准确性)作为参数,来编译模型。

然后,我们通过使用x_train、y_train、batch_size、epochs和validation_data去调用一个拟合方法,并拟合出模型。

同时,我们调用模型对象的评估方法,以获得模型在不可见数据集上的表现分数。

最后,您可以使用在模型对象上调用的save方法,保存要在生产环境中部署的模型对象。

7、小结

综上所述,我们讨论了为图像分类任务,训练深度神经网络的一些入门级的知识。您可以将其作为熟悉使用神经网络,进行图像分类的一个起点。据此,您可了解到该如何选择正确的参数集、以及架构背后的思考逻辑。

原文链接:https://www.kdnuggets.com/2022/12/guide-train-image-classification-model-tensorflow.html

Atas ialah kandungan terperinci Panduan untuk melatih model klasifikasi imej menggunakan TensorFlow. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Model MoE sumber terbuka paling berkuasa di dunia ada di sini, dengan keupayaan bahasa Cina setanding dengan GPT-4, dan harganya hanya hampir satu peratus daripada GPT-4-Turbo Model MoE sumber terbuka paling berkuasa di dunia ada di sini, dengan keupayaan bahasa Cina setanding dengan GPT-4, dan harganya hanya hampir satu peratus daripada GPT-4-Turbo May 07, 2024 pm 04:13 PM

Bayangkan model kecerdasan buatan yang bukan sahaja mempunyai keupayaan untuk mengatasi pengkomputeran tradisional, tetapi juga mencapai prestasi yang lebih cekap pada kos yang lebih rendah. Ini bukan fiksyen sains, DeepSeek-V2[1], model MoE sumber terbuka paling berkuasa di dunia ada di sini. DeepSeek-V2 ialah gabungan model bahasa pakar (MoE) yang berkuasa dengan ciri-ciri latihan ekonomi dan inferens yang cekap. Ia terdiri daripada 236B parameter, 21B daripadanya digunakan untuk mengaktifkan setiap penanda. Berbanding dengan DeepSeek67B, DeepSeek-V2 mempunyai prestasi yang lebih kukuh, sambil menjimatkan 42.5% kos latihan, mengurangkan cache KV sebanyak 93.3% dan meningkatkan daya pemprosesan penjanaan maksimum kepada 5.76 kali. DeepSeek ialah sebuah syarikat yang meneroka kecerdasan buatan am

Apr 09, 2024 am 11:52 AM

AI memang mengubah matematik. Baru-baru ini, Tao Zhexuan, yang telah mengambil perhatian terhadap isu ini, telah memajukan keluaran terbaru "Buletin Persatuan Matematik Amerika" (Buletin Persatuan Matematik Amerika). Memfokuskan pada topik "Adakah mesin akan mengubah matematik?", ramai ahli matematik menyatakan pendapat mereka Seluruh proses itu penuh dengan percikan api, tegar dan menarik. Penulis mempunyai barisan yang kuat, termasuk pemenang Fields Medal Akshay Venkatesh, ahli matematik China Zheng Lejun, saintis komputer NYU Ernest Davis dan ramai lagi sarjana terkenal dalam industri. Dunia AI telah berubah secara mendadak Anda tahu, banyak artikel ini telah dihantar setahun yang lalu.

Hello, Atlas elektrik! Robot Boston Dynamics hidup semula, gerakan pelik 180 darjah menakutkan Musk Hello, Atlas elektrik! Robot Boston Dynamics hidup semula, gerakan pelik 180 darjah menakutkan Musk Apr 18, 2024 pm 07:58 PM

Boston Dynamics Atlas secara rasmi memasuki era robot elektrik! Semalam, Atlas hidraulik hanya "menangis" menarik diri daripada peringkat sejarah Hari ini, Boston Dynamics mengumumkan bahawa Atlas elektrik sedang berfungsi. Nampaknya dalam bidang robot humanoid komersial, Boston Dynamics berazam untuk bersaing dengan Tesla. Selepas video baharu itu dikeluarkan, ia telah pun ditonton oleh lebih sejuta orang dalam masa sepuluh jam sahaja. Orang lama pergi dan peranan baru muncul. Ini adalah keperluan sejarah. Tidak dinafikan bahawa tahun ini adalah tahun letupan robot humanoid. Netizen mengulas: Kemajuan robot telah menjadikan majlis pembukaan tahun ini kelihatan seperti manusia, dan tahap kebebasan adalah jauh lebih besar daripada manusia Tetapi adakah ini benar-benar bukan filem seram? Pada permulaan video, Atlas berbaring dengan tenang di atas tanah, seolah-olah terlentang. Apa yang berikut adalah rahang-jatuh

KAN, yang menggantikan MLP, telah diperluaskan kepada konvolusi oleh projek sumber terbuka KAN, yang menggantikan MLP, telah diperluaskan kepada konvolusi oleh projek sumber terbuka Jun 01, 2024 pm 10:03 PM

Awal bulan ini, penyelidik dari MIT dan institusi lain mencadangkan alternatif yang sangat menjanjikan kepada MLP - KAN. KAN mengatasi MLP dari segi ketepatan dan kebolehtafsiran. Dan ia boleh mengatasi prestasi MLP berjalan dengan bilangan parameter yang lebih besar dengan bilangan parameter yang sangat kecil. Sebagai contoh, penulis menyatakan bahawa mereka menggunakan KAN untuk menghasilkan semula keputusan DeepMind dengan rangkaian yang lebih kecil dan tahap automasi yang lebih tinggi. Khususnya, MLP DeepMind mempunyai kira-kira 300,000 parameter, manakala KAN hanya mempunyai kira-kira 200 parameter. KAN mempunyai asas matematik yang kukuh seperti MLP berdasarkan teorem penghampiran universal, manakala KAN berdasarkan teorem perwakilan Kolmogorov-Arnold. Seperti yang ditunjukkan dalam rajah di bawah, KAN telah

Google gembira: prestasi JAX mengatasi Pytorch dan TensorFlow! Ia mungkin menjadi pilihan terpantas untuk latihan inferens GPU Google gembira: prestasi JAX mengatasi Pytorch dan TensorFlow! Ia mungkin menjadi pilihan terpantas untuk latihan inferens GPU Apr 01, 2024 pm 07:46 PM

Prestasi JAX, yang dipromosikan oleh Google, telah mengatasi Pytorch dan TensorFlow dalam ujian penanda aras baru-baru ini, menduduki tempat pertama dalam 7 penunjuk. Dan ujian tidak dilakukan pada TPU dengan prestasi JAX terbaik. Walaupun dalam kalangan pembangun, Pytorch masih lebih popular daripada Tensorflow. Tetapi pada masa hadapan, mungkin lebih banyak model besar akan dilatih dan dijalankan berdasarkan platform JAX. Model Baru-baru ini, pasukan Keras menanda aras tiga hujung belakang (TensorFlow, JAX, PyTorch) dengan pelaksanaan PyTorch asli dan Keras2 dengan TensorFlow. Pertama, mereka memilih satu set arus perdana

Robot Tesla bekerja di kilang, Musk: Tahap kebebasan tangan akan mencapai 22 tahun ini! Robot Tesla bekerja di kilang, Musk: Tahap kebebasan tangan akan mencapai 22 tahun ini! May 06, 2024 pm 04:13 PM

Video terbaru robot Tesla Optimus dikeluarkan, dan ia sudah boleh berfungsi di kilang. Pada kelajuan biasa, ia mengisih bateri (bateri 4680 Tesla) seperti ini: Pegawai itu juga mengeluarkan rupanya pada kelajuan 20x - pada "stesen kerja" kecil, memilih dan memilih dan memilih: Kali ini ia dikeluarkan Salah satu sorotan video itu ialah Optimus menyelesaikan kerja ini di kilang, sepenuhnya secara autonomi, tanpa campur tangan manusia sepanjang proses. Dan dari perspektif Optimus, ia juga boleh mengambil dan meletakkan bateri yang bengkok, memfokuskan pada pembetulan ralat automatik: Berkenaan tangan Optimus, saintis NVIDIA Jim Fan memberikan penilaian yang tinggi: Tangan Optimus adalah robot lima jari di dunia paling cerdik. Tangannya bukan sahaja boleh disentuh

FisheyeDetNet: algoritma pengesanan sasaran pertama berdasarkan kamera fisheye FisheyeDetNet: algoritma pengesanan sasaran pertama berdasarkan kamera fisheye Apr 26, 2024 am 11:37 AM

Pengesanan objek ialah masalah yang agak matang dalam sistem pemanduan autonomi, antaranya pengesanan pejalan kaki adalah salah satu algoritma terawal untuk digunakan. Penyelidikan yang sangat komprehensif telah dijalankan dalam kebanyakan kertas kerja. Walau bagaimanapun, persepsi jarak menggunakan kamera fisheye untuk pandangan sekeliling agak kurang dikaji. Disebabkan herotan jejari yang besar, perwakilan kotak sempadan standard sukar dilaksanakan dalam kamera fisheye. Untuk mengurangkan perihalan di atas, kami meneroka kotak sempadan lanjutan, elips dan reka bentuk poligon am ke dalam perwakilan kutub/sudut dan mentakrifkan metrik mIOU pembahagian contoh untuk menganalisis perwakilan ini. Model fisheyeDetNet yang dicadangkan dengan bentuk poligon mengatasi model lain dan pada masa yang sama mencapai 49.5% mAP pada set data kamera fisheye Valeo untuk pemanduan autonomi

DualBEV: mengatasi BEVFormer dan BEVDet4D dengan ketara, buka buku! DualBEV: mengatasi BEVFormer dan BEVDet4D dengan ketara, buka buku! Mar 21, 2024 pm 05:21 PM

Kertas kerja ini meneroka masalah mengesan objek dengan tepat dari sudut pandangan yang berbeza (seperti perspektif dan pandangan mata burung) dalam pemanduan autonomi, terutamanya cara mengubah ciri dari perspektif (PV) kepada ruang pandangan mata burung (BEV) dengan berkesan dilaksanakan melalui modul Transformasi Visual (VT). Kaedah sedia ada secara amnya dibahagikan kepada dua strategi: penukaran 2D kepada 3D dan 3D kepada 2D. Kaedah 2D-ke-3D meningkatkan ciri 2D yang padat dengan meramalkan kebarangkalian kedalaman, tetapi ketidakpastian yang wujud dalam ramalan kedalaman, terutamanya di kawasan yang jauh, mungkin menimbulkan ketidaktepatan. Manakala kaedah 3D ke 2D biasanya menggunakan pertanyaan 3D untuk mencuba ciri 2D dan mempelajari berat perhatian bagi kesesuaian antara ciri 3D dan 2D melalui Transformer, yang meningkatkan masa pengiraan dan penggunaan.

See all articles