Rumah > Artikel > Peranti teknologi > TensorFlow.js boleh mengendalikan pembelajaran mesin pada penyemak imbas juga!
Dengan perkembangan pesat pembelajaran mesin hari ini, pelbagai platform pembelajaran mesin muncul satu demi satu Untuk memenuhi keperluan senario perniagaan yang berbeza, model pembelajaran mesin boleh digunakan pada penyemak imbas Android, iOS dan Web. masing-masing, supaya model yang boleh digunakan pada terminal boleh melakukan potongan untuk melepaskan potensi model. TensorFlow.js ialah versi JavaScript TensorFlow, menyokong pecutan perkakasan GPU dan boleh dijalankan dalam Node.js atau persekitaran penyemak imbas. Ia bukan sahaja menyokong pembangunan, latihan dan penggunaan model dari awal berdasarkan JavaScript sepenuhnya, tetapi juga boleh digunakan untuk menjalankan versi Python model TensorFlow sedia ada, atau meneruskan latihan berdasarkan model sedia ada.
TensorFlow.js membolehkan pengguna memuatkan model TensorFlow dalam penyemak imbas, membolehkan pengguna melakukan pemotongan pembelajaran mesin melalui sumber CPU/GPU tempatan. Pembelajaran mesin dalam penyemak imbas akan mempunyai empat kelebihan berikut berbanding bahagian pelayan:
1 Tidak perlu memasang perisian atau pemacu (anda boleh menggunakannya dengan membuka penyemak imbas) ;
2. Interaksi manusia-komputer yang lebih mudah boleh dilakukan melalui pelayar
3 Pelbagai penderia (seperti: GPS, penderia pecutan, kamera, dll.);
4.
Kelebihan TensorFlow.js diperkenalkan di atas, mari kita lihat seni bina TensorFlow.js. Seperti yang ditunjukkan dalam Rajah 1, seni bina TensorFlow.js termasuk API Teras dan API Lapisan (bahagian atas rajah). API Lapisan menyediakan antara muka peringkat lebih tinggi, seperti struktur tatabahasa yang serupa dengan KerasAPI Tujuan struktur tatabahasa ini adalah untuk membolehkan pembangun menggunakan JavaScript untuk membangunkan pembelajaran mesin dengan mudah melalui abstraksi berbutir lebih tinggi. CoreAPI terutamanya merangkumi fungsi teras yang disediakan oleh TensorFlow.js, seperti penciptaan Tensor, operasi data, pengurusan memori, dsb. Pada masa yang sama, CoreAPI juga menyediakan alatan untuk menukar model pembelajaran mesin dalam Python kepada format JSON yang boleh digunakan oleh penyemak imbas, menjadikannya lebih mudah untuk menggunakan semula model sedia ada dalam JavaScript. Oleh itu, CoreAPI boleh dijalankan pada bahagian penyemak imbas dan boleh menggunakan WebGL untuk pecutan GPU Sudah tentu, ia juga boleh dijalankan pada Node.js, bergantung pada persekitaran operasi khusus untuk pecutan melalui GPU dan TPU.
Rajah 1 Seni bina TensorFlow.js
Saya telah menyebut kelebihan dan seni bina TensorFlow.js sebelum ini agar semua orang mempunyai pemahaman yang lebih mendalam tentang TensorFlow.js, mari kita ambil contoh regresi linear yang mudah untuk melihat cara latihan dan pelaksanaan pembelajaran mesin dilaksanakan pada bahagian penyemak imbas. Disimpulkan.
Andaikan kita perlu membina model linear y = ax1+bx2+c, seperti yang ditunjukkan dalam Rajah 2, yang memerlukan langkah berikut:
1. Muat turun fail TensorFlow.js
2. Data latihan dan data ujian
3
4. Model latihan
5. Rajah 2 TensorFlow .js Bina model regresi linear
Daripada 5 langkah ini, anda boleh melihat bahawa proses asas adalah sama seperti membina model dalam Python, kecuali langkah pertama memerlukan memuat turun fail TensorFlow.js .
Seperti yang ditunjukkan dalam Rajah 3, untuk memuatkan fail TensorFlow.js, kita perlu memperkenalkan skrip dalam teg kepala halaman, di mana fail tf.min.js mempunyai telah digunakan ke pelayan CDN TensorFlow, kami hanya perlu merujuk fail.
Rajah 3 Memetik fail TensorFlow.js
Untuk memastikan TensorFlow.js fail diimport dengan betul, Seperti yang ditunjukkan dalam Rajah 4, buka penyemak imbas dan dayakan alat pembangun, masukkan tf.version dalam Konsol untuk mendapatkan tfjs-core, tfjs-backend-cpu dan maklumat lain yang sepadan dengan TensorFlow, menunjukkan bahawa fail telah berjaya diperkenalkan. Memandangkan fail TensorFlow.js mengandungi pustaka operasi TensorFlow, anda perlu memastikan bahawa fail dimuatkan dengan betul.
Rajah 4 Sahkan bahawa fail TensorFlow.js diperkenalkan dengan betul
Selepas memuatkan fail TensorFlow.js, kami Anda boleh tulis kod pembelajaran mesin dalam html. Seperti yang ditunjukkan dalam Rajah 5, tulis kod berikut dalam teg skrip Kaedah doTraining async digunakan untuk melatih model Epoch adalah 500 kali tujuan menggunakan async di sini bukan untuk menyekat operasi lain halaman web. Kaedah muat dalam model dipanggil di dalam fungsi untuk memuatkan model Parameter input ialah xs dan ys Hasil pemasangan adalah output dalam panggilan balik fungsi panggil balik, dan fungsi kehilangan kehilangan dicetak.
Langkah seterusnya ialah membina model Di sini kita menggunakan tf.sequential(); untuk membina model y = ax1+bx2+c, kita perlu membina neuron ini mempunyai dua input dan satu output.
Jadi, tambahkan lapisan padat melalui model.tambah, tentukan unit: 1, iaitu neuron, inputShape: [2], dan input ialah dua dimensi. Selepas mempunyai model, susun model melalui model.complie Fungsi kehilangan meanSquareError dan pengoptimum sgd digunakan di sini. Akhirnya, keseluruhan rangkaian neuron dicetak melalui kaedah ringkasan model. Serta-merta dalam pautan set data, kami menyediakan xs dan ys sebagai input, dan testData_x sebagai data ujian. Akhir sekali, panggil doTraining(model) untuk melatih model, dan gunakan kaedah ramalan untuk meramalkan keputusan.
Rajah 5 Latih model dalam penyemak imbas
Simpan fail di atas sebagai fail html dan Buka semula, dan anda boleh melihat hasilnya dalam Rajah 6 selepas kira-kira 1-2 saat. Di sebelah kanan adalah hasil kerugian yang diperolehi dalam setiap zaman yang dicetak dalam alat pembangun Dapat dilihat bahawa fungsi kehilangan menjadi lebih kecil dan lebih kecil apabila latihan berlangsung. Pada masa yang sama, keputusan ramalan Tensor akhirnya diperolehi sebagai 15.5082932.
Rajah 6 Keputusan berjalan
Ya Berdasarkan pada contoh mudah di atas, kita boleh dengan mudah memeriksa model pembelajaran mesin pada bahagian penyemak imbas, tetapi kaedah latihan model memerlukan sumber dan masa latihan yang panjang. Jadi, bolehkah kita membawa model terlatih terus ke penyemak imbas untuk ramalan dan potongan? Jawapannya ya.
Secara umumnya, terdapat dua cara untuk menggunakan semula model Yang pertama ialah menggunakan model yang dicipta oleh pembangun sendiri dalam Python dan menyimpan model ke dalam format tfjs dan menggunakannya dalam penyemak imbas. . Yang lain ialah memanggil terus model yang disediakan oleh TensorFlow.
Rajah 7 Penggunaan semula model
Sebagaimana ditunjukkan dalam Rajah 8, kami membina, melatih dan menyimpan model dalam python. Langkah membina model, rangkaian neuron, pengoptimum tetapan, fungsi kehilangan dan penyediaan data tidak akan diterangkan di sini. Selepas latihan model selesai, simpan model melalui kaedah save_model.
Rajah 8 Bina model anda sendiri
Dengan model, anda perlu menggunakan TensorFlow.js Alat yang disediakan menukar model supaya ia boleh digunakan dalam penyemak imbas.
Di sini, gunakan arahan berikut untuk memasang alat TensorFlow.js.
pip install tensorflowjs tensorflwjs_converter --input_format=keras_saved_model ./saved_model/ ./model/
Arahan tensorflwjs_converter digunakan di sini untuk menukar model Format input ialah keras_saved_model, alamat fail sumber ialah ./saved_model/ dan alamat fail sasaran ialah ./model/, selepas menekan Enter, anda boleh melihat fail yang ditukar pada alamat fail sasaran.
Anda hanya perlu merujuk fail model yang telah ditukar dalam penyemak imbas, seperti yang ditunjukkan dalam Rajah 9. Kaedah run dalam skrip merujuk terus kepada model fail model.json dan menggunakan loadLayersModel untuk memuatkan model input, Gunakan kaedah ramalan untuk meramal model.
Rajah 9 Menggunakan model yang ditukar
Di atas kami menunjukkan bahawa anda boleh menggunakan model pembelajaran mesin terlatih anda sendiri, di sini anda juga boleh menggunakan https://www.php.cn/link/ff82db7535530637af7f8a96284b3459 Cari model yang disediakan oleh TensorFlow .
Seperti yang ditunjukkan dalam Rajah 10, TensorFlow telah menyesuaikan beberapa model untuk beberapa senario perniagaan, seperti: anggaran kedalaman potret, klasifikasi imej, pengesanan objek, pembahagian badan, pengesanan postur, Pengesanan perisian hasad teks dan banyak lagi. Pelajar yang ingin mengetahui cara untuk menggunakan model selanjutnya dalam senario pengeluaran juga boleh meluangkan masa untuk membaca penjelasan tentang fungsi penggunaan TensorFlow dan jawapan kepada soalan lazim oleh pakar pembangun Google: https: //www.php.cn/link/bb96ff7f5c9505fd971126ecd171bec2
Dengan mempelajari kursus dalam talian rasmi TensorFlow, saya berkembang daripada pemula pembelajaran mesin kepada veteran pembelajaran mesin yang berpengalaman. Daripada "Kursus Praktikal Pengenalan TensorFlow" dan "Kursus Pengenalan TensorFlow - Deployment"Dalam kursus itu, saya belajar cara menyimpan dan menukar model pembelajaran mesin, dan pada masa yang sama, saya juga boleh menukar model pembelajaran mesin mengikut kepada senario aplikasi yang berbeza untuk Android, iOS, penyemak imbas dan pelayan. Platform TensorFlow adalah seperti kaleidoskop, membolehkan saya melihat projek aplikasi yang berwarna-warni, di samping memahami logik asas pemodelan dan ramalan pembelajaran mesin. Jika anda juga ingin meningkatkan keupayaan pembelajaran mesin anda, anda boleh belajar bersama"Kursus Pengenalan TensorFlow - Deployment" , dan tinggalkan penilaian anda tentang kursus Daftar sekarang dan berpeluang memenangi hadiah-hadiah indah rasmi!
Zhang Yunbo, seorang pensyarah selebriti internet IT yang aktif dengan 310,000+ pelajar, memulakan dan mengeluarkan Apple Swift, Android Kotlin, applet WeChat dan teknologi blockchain pada awal China Salah seorang pensyarah. Memfokuskan pada pembangunan bahagian hadapan, pembangunan iOS, pembangunan Android, pembangunan Flutter dan pembangunan Dapp blockchain, beliau mempunyai pengalaman yang kaya bekerja di syarikat besar dan di luar negara.Atas ialah kandungan terperinci TensorFlow.js boleh mengendalikan pembelajaran mesin pada penyemak imbas juga!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!