Rumah > Artikel > Peranti teknologi > Tidak tahu cara menggunakan model pembelajaran mesin? 15 gambar membawa anda ke dalam rangka kerja penggunaan TensorFlow!
Beberapa hari lalu, saya berbual dengan rakan Xiao Li yang telah terlibat dalam pembangunan selama 3 tahun dan mengetahui bahawa syarikatnya adalah menjalankan penyelidikan berkaitan dengan projek pembelajaran mesin. Baru-baru ini, beliau menerima tugas untuk menggunakan model pembelajaran mesin terlatih. Ini membimbangkan Xiao Li Dia telah terlibat dalam pembangunan pembelajaran mesin selama hampir setengah tahun Dia terlibat terutamanya dalam pengumpulan data, pembersihan data, pembinaan persekitaran, latihan model, dan penilaian model .
Jadi, saya menjalankan sains popular mengenai penggunaan model pembelajaran mesin berdasarkan pengalaman saya sendiri. Seperti yang ditunjukkan dalam Rajah 1, dalam pengaturcaraan tradisional, kami menyampaikan peraturan dan data kepada program untuk mendapatkan jawapan yang kami mahukan. Tetapi untuk pembelajaran mesin, kami melatih peraturan melalui jawapan dan data ini.
Rajah 1 Perbezaan antara pengaturcaraan tradisional dan pembelajaran mesin
Pengaturan model pembelajaran mesin ialah Gunakan peraturan (model) ini ke titik akhir di mana pembelajaran mesin perlu digunakan. Seperti yang ditunjukkan dalam Rajah 2, model yang dilatih oleh pembelajaran mesin boleh difahami sebagai fungsi, API atau SDK, dan digunakan pada terminal yang sepadan (bahagian kelabu dalam rajah). Selepas penggunaan, terminal akan mempunyai keupayaan yang diberikan oleh model Pada masa ini, dengan memasukkan data baru, keputusan yang diramalkan boleh diperolehi mengikut peraturan (model).
Rajah 2 Prinsip penggunaan model pembelajaran mesin
Xiao Li berkata dia faham selepas mendengar pengenalan saya, dan memberitahu saya semua tentang penggunaan projek mereka dengan penuh minat, dan ingin meminta pendapat saya. Seperti yang ditunjukkan dalam Rajah 3, mereka ingin menggunakan model pengecaman imej ke IOS, Android, Raspberry Pi, pelayar web dan bahagian pelayan.
Rajah 3 Senario penggunaan model
Daripada senario aplikasi penggunaan, ia ringan, bersilang- ciri platform. Model pembelajaran mesin yang sama perlu digunakan pada berbilang platform berbeza, dan setiap platform mempunyai keupayaan storan dan pengkomputeran yang berbeza. Pada masa yang sama, ketersediaan, prestasi, keselamatan dan kebolehskalaan operasi model mesti diambil kira, dan platform besar yang agak stabil perlu digunakan. Jadi, saya mengesyorkan rangka kerja penggunaan pembelajaran mesin TensorFlow kepadanya. Seperti yang ditunjukkan dalam Rajah 4, rangka kerja penggunaan TensorFlow menyediakan sokongan komponen untuk platform yang berbeza. Antaranya, Android, IOS dan Raspberry Pi bertindak balas kepada TensorFlow Lite, yang merupakan rangka kerja penggunaan model yang digunakan khas untuk terminal mudah alih. Bahagian penyemak imbas boleh menggunakan TensorFlow.js, dan bahagian pelayan boleh menggunakan TensorFlow Serving.
Rajah 4 Rangka kerja penggunaan model pembelajaran mesin TensorFlow
Xiao Li ingin mengetahui proses penggunaan yang lebih khusus Saya kebetulan mempunyai projek di tangan yang menggunakan rangka kerja penggunaan TensorFlow, jadi saya menunjukkan proses itu kepadanya. Projek ini adalah untuk menggunakan model "pengecaman kucing dan anjing" ke telefon Android Memandangkan IOS, Android, Raspberry Pi dan penyemak imbas semuanya adalah pelanggan, sumber pengkomputeran mereka tidak boleh dibandingkan dengan pelayan. Khususnya, aplikasi mudah alih mempunyai ciri-ciri ringan, kependaman rendah, kecekapan tinggi, perlindungan privasi, penjimatan kuasa, dsb., jadi TensorFlow telah mereka bentuk khas penggunaannya dan menggunakan TensorFlow Lite untuk menggunakannya.
Menggunakan TensorFlow Lite untuk menggunakan model memerlukan tiga langkah:
Dalam langkah pertama, kami telah menyelesaikan latihan model Langkah kedua ialah menukar model yang dijana kepada format corak yang boleh dikenali dan digunakan oleh TensorFlow Lite. Seperti yang dinyatakan di atas, apabila model digunakan pada terminal mudah alih, pelbagai isu perlu dipertimbangkan, jadi format fail khas perlu dijana untuk terminal mudah alih. Langkah ketiga ialah memuatkan fail TensorFlow Lite yang ditukar ke dalam penterjemah mudah alih dan melaksanakannya.
Memandangkan tumpuan kami adalah pada penggunaan model, langkah pertama latihan model dilangkau buat sementara waktu, iaitu, diandaikan bahawa anda telah melatih model tersebut. Untuk langkah kedua penukaran model, sila rujuk Rajah 5. Model TensorFlow akan ditukar menjadi fail model dengan akhiran ".tflite" melalui Converter, dan kemudian diterbitkan ke platform yang berbeza, dan diproses melalui penterjemah pada setiap platform. Terangkan dan muatkan.
Rajah 5 Seni bina penukaran model TensorFlow Lite
Seni bina TensorFlow Lite diperkenalkan di atas Di sini anda perlu menyimpan model sebagai model TensorFlow dan menukarnya. Seperti yang ditunjukkan dalam Rajah 6, kami memanggil kaedah saved_model.save dalam TensorFlow untuk menyimpan model (model terlatih) dalam direktori yang ditentukan.
Rajah 6 Simpan model TensorFlow
Selepas menyimpan model, model ditukar, sebagai ditunjukkan dalam Rajah 7 Seperti yang ditunjukkan, panggil kaedah from_saved_model dalam pakej TFLiteConverter dalam TensorFlow Lite untuk menjana contoh penukar (penukar model), kemudian panggil kaedah tukar dalam penukar untuk menukar model, dan simpan fail yang ditukar ke direktori yang ditentukan.
Rajah 7 Tukarkan kepada format model tflite
Ditetapkan ke Contoh ini adalah untuk penggunaan model pada sistem Android, jadi pergantungan TensorFlow Lite perlu diperkenalkan dalam Android. Seperti yang ditunjukkan dalam Rajah 8, perkenalkan kebergantungan TensorFlow Lite, dan tetapkan noCompress kepada "tflite" dalam aaptOptions, yang bermaksud bahawa fail dengan "tflite" tidak akan dimampatkan Jika pemampatan ditetapkan, sistem Android mungkin tidak mengenali fail tflite.
Rajah 8 Ketergantungan TensorFlow Lite yang diperkenalkan dalam projek
Selepas mengkonfigurasi kebergantungan, tukar Salin fail tflite yang baik ke fail aset, seperti yang ditunjukkan dalam Rajah 9. Fail ini akan dimuatkan kemudian untuk melaksanakan model pembelajaran mesin.
Rajah 9 Tambah fail tflite
Selepas menambah fail tflite, kami akan mencipta pengelas Pengelas , digunakan untuk mengklasifikasikan gambar "kucing dan anjing". Seperti yang ditunjukkan dalam Rajah 10, penterjemah dimulakan dalam init dalam Classifer, kaedah loadModuleFlie dipanggil untuk memuatkan fail tflite, dan label pengelasan (labelList) ditentukan Label di sini ialah "anjing kucing".
Rajah 10 Memulakan jurubahasa
Selepas mencipta pengelas, model pengelasan kucing dan anjing digunakan untuk mengenal pasti imej. Iaitu, dalam kelas Classifier, seperti yang ditunjukkan dalam Rajah 10, parameter input kaedah convertBitmapToByteBuffer ialah bitmap Ini adalah gambar kucing dan anjing yang kita masukkan Dalam kaedah ini, ia akan ditukarkan merah dalam gelung untuk Tukar saluran hijau dan biru, letakkan hasil penukaran ke dalam byteBuffer dan kembalikannya. Kaedah recoginzeImage memanggil convertBitmapToByteBuffer dan menggunakan kaedah larian penterjemah untuk melaksanakan kerja pengecaman imej, iaitu menggunakan model pembelajaran mesin untuk mengenal pasti imej kucing dan anjing.
Rajah 11 Mengenali gambar
Proses transformasi grafik di atas terlalu abstrak, kami akan Perinciannya ditunjukkan dalam Rajah 12. Imej yang kami masukkan ialah imej 395*500 di penjuru kiri sebelah atas gambar, yang akan menukar imej dalam imageView ke dalam bentuk bitmap. Memandangkan input model kami memerlukan format 224*224, penukaran diperlukan. Seterusnya, piksel dimasukkan ke dalam tatasusunan 224*224 ByteBuffer dan disimpan, dan akhirnya piksel RGB (merah, hijau dan biru) dinormalisasi (dibahagikan dengan 255) sebagai parameter input model.
Rajah 12 Proses penukaran imej input
Pada ketika ini pemuatan dan penggunaan mesin model pembelajaran selesai Penyiapan, sudah tentu, memerlukan fail input dan susun atur. Seperti yang ditunjukkan dalam Rajah 13, kami menyimpan gambar yang perlu diramalkan (gambar kucing dan anjing) di bawah folder boleh lukis. Kemudian buat fail activity_image_classifier.xml di bawah reka letak untuk membina dan menyimpan ImageView.
Rajah 13 Masukkan fail imej dan fail susun atur
Akhir sekali, buat ImageClassifierActivity untuk memaparkan imej dan Respond kepada peristiwa yang mengenal pasti imej. Seperti yang ditunjukkan dalam Rajah 14, ikat peristiwa onclick setiap imej dalam kaedah initViews, dan kemudian panggil kaedah Imej recoginzie dalam kaedah onclick untuk mengenal pasti imej.
Rajah 14 Lakukan pengecaman imej dalam onclick
Mari kita lihat kesannya. Seperti yang ditunjukkan dalam Rajah 15, apabila gambar yang sepadan diklik, gesaan "anjing" akan dipaparkan, menunjukkan hasil ramalan.
Rajah 15 Kesan demonstrasi
Menyemak keseluruhan proses tidak rumit, saya menggunakan model dengan TensorFlow lite Ia diringkaskan dalam langkah berikut:
Pelajar yang ingin mempelajari lebih lanjut kemahiran penggunaan model TensorFlow boleh mempelajari kursus rasmi TensorFlow, mendaftar akaun di Chinese University MOOC dan belajar secara percuma: https://www.php.cn/link/1f5f6ad95cc908a20bb7e30ee28a5958
Terdapat juga pakar pembangun Google yang perlu dilakukan Penjelasan dalam talian dan Soal Jawab mengenai penggunaan adalah sangat baik. Adalah disyorkan bahawa pelajar yang ingin mendapatkan pemahaman awal tentang fungsi penggunaan TensorFlow memberi perhatian kepada https: //www.php.cn/link /e046ede63264b10130007afca077877f
Selepas mendengar penjelasan saya tentang penggunaan model pembelajaran mesin dan memahami proses penggunaan TensorFlow, Xiao Li semakin bersemangat untuk mencuba penggunaan praktikal. Saya rasa proses penggunaan menggunakan TensorFlow secara logiknya jelas, kaedahnya mudah dan mudah dilaksanakan, dan mudah untuk pembangun yang berpengalaman selama 3-5 tahun untuk bermula. Selain itu, TensorFlow secara rasmi menyediakan "Kursus Praktikal Pengenalan TensorFlow", yang sesuai untuk pemula dengan asas sifar dalam pembelajaran mesin: https://www.php.cn/link/bf2fe6582ed9ead9161a3d6f6b1d6858
Cui Hao, editor komuniti 51CTO, arkitek kanan, mempunyai pengalaman seni bina selama 20 tahun. Beliau pernah berkhidmat sebagai pakar teknikal di HP, mengambil bahagian dalam pelbagai projek pembelajaran mesin, dan menulis serta menterjemah lebih daripada 20 artikel teknikal popular tentang pembelajaran mesin, NLP, dsb. Pengarang "Prinsip dan Amalan Seni Bina Teragih".
Atas ialah kandungan terperinci Tidak tahu cara menggunakan model pembelajaran mesin? 15 gambar membawa anda ke dalam rangka kerja penggunaan TensorFlow!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!