Kami senang bisa mengumumkan bahwa TensorFlow.js sekarang menyediakan backend
WebAssembly (WASM) untuk browser dan Node.js! Backend ini adalah alternatif dari backend WebGL, yang menghadirkan eksekusi CPU cepat dengan perubahan kode minimal. Backend ini membantu meningkatkan kinerja pada perangkat yang lebih banyak, terutama perangkat seluler kelas bawah yang tidak memiliki dukungan WebGL atau memiliki GPU lambat. Ia menggunakan library
XNNPack untuk mempercepat operasi.
Penginstalan
Ada dua cara untuk menggunakan backend WASM baru ini:
- Dengan NPM
// Import @tensorflow/tfjs or @tensorflow/tfjs-core
const tf = require('@tensorflow/tfjs');
// Add the WASM backend to the global backend registry.
require('@tensorflow/tfjs-backend-wasm');
// Set the backend to WASM and wait for the module to be ready.
tf.setBackend('wasm').then(() => main());
Library ini membutuhkan biner WASM saling terhubung dengan file JS utama. Jika Anda menggunakan pemaket seperti parcel atau webpack, Anda mungkin perlu menunjukkan secara manual lokasi biner WASM dengan helper setWasmPath
kami:
import {setWasmPath} from '@tensorflow/tfjs-backend-wasm';
setWasmPath(yourCustomPath);
tf.setBackend('wasm').then(() => {...});
Lihat bagian “Menggunakan pemaket” di README kami untuk informasi selengkapnya.
- Dengan tag skrip
<!-- Import @tensorflow/tfjs or @tensorflow/tfjs-core -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs"></script>
<!-- Adds the WASM backend to the global backend registry -->
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm/dist/tf-backend-wasm.js"></script>
<script>
tf.setBackend('wasm').then(() => main());
</script>
CATATAN: TensorFlow.js menetapkan prioritas untuk setiap backend dan akan secara otomatis memilih backend terbaik yang didukung untuk lingkungan tertentu. Saat ini, WebGL memiliki prioritas tertinggi, diikuti oleh WASM, kemudian backend JS vanilla. Untuk selalu menggunakan backend WASM, kita harus memanggil secara eksplisit `tf.setBackend(‘wasm’)
`.
Demo
Lihat demo deteksi wajah (menggunakan model BlazeFace MediaPipe) yang berjalan pada backend WASM. Untuk detail selengkapnya tentang model tersebut, lihat
entri blog ini.
Mengapa WASM?
WASM berformat lintas-browser, rakitan portabel, dan biner untuk web yang menghadirkan kecepatan eksekusi kode mendekati-asli di web. Ia diperkenalkan pada 2015 sebagai format biner berbasis web baru, menyediakan program yang ditulis dalam C, C++, atau Rust, kumpulan target untuk berjalan di web. WASM telah didukung Chrome, Safari, Firefox, dan Edge
sejak 2017, dan
didukung oleh 90% perangkat di seluruh dunia.
Kinerja
Versus JavaScript: WASM biasanya jauh lebih cepat daripada JavaScript untuk beban kerja numerik yang umum dalam tugas machine learning. Selain itu, WASM bisa di-decode secara native
hingga 20x lebih cepat daripada JavaScript yang dapat diurai. JavaScript secara dinamis diketik dan sampahnya dikumpulkan, yang bisa menyebabkan perlambatan non-deterministik signifikan saat runtime. Selain itu, library JavaScript modern (seperti TensorFlow.js) menggunakan fitur kompilasi seperti transpiler TypeScript dan ES6 yang menghasilkan kode ES5 (untuk dukungan browser yang luas) yang lebih lambat dieksekusi daripada ES6 JavaScript vanilla.
Versus WebGL: Untuk kebanyakan model, backend WebGL masih akan mengungguli backend WASM, tetapi WASM bisa lebih cepat untuk model ultra-lite (kurang dari 3MB dan 60M multiply-adds). Dalam skenario ini, manfaat paralelisasi GPU melebihi biaya overhead tetap dari mengeksekusi shader WebGL. Di bawah ini kami menyediakan panduan untuk menemukan garis ini. Namun, ada proposal
ekstensi WASM untuk menambahkan instruksi
SIMD, yang memungkinkan beberapa operasi floating point untuk di-vektor dan dieksekusi secara paralel. Pengujian awal menunjukkan bahwa mengaktifkan ekstensi ini menghadirkan peningkatan 2-3x atas WASM sekarang. Nantikan kehadirannya di browser! Ia akan secara otomatis diaktifkan untuk TensorFlow.js.
Portabilitas dan Stabilitas
Ketika berhubungan dengan machine learning, ketepatan numerik adalah hal yang penting. WASM secara native mendukung aritmetika floating point, sedangkan backend WebGL membutuhkan ekstensi OES_texture_float. Tidak semua perangkat mendukung ekstensi ini, yang berarti TensorFlow.js yang terakselerasi GPU tidak didukung pada beberapa perangkat (mis. perangkat seluler lama yang mendukung WASM).
Selain itu, driver GPU bisa khusus dipakai untuk hardware tertentu dan perangkat yang berbeda dapat memiliki masalah presisi. Di iOS, float 32 bit tidak didukung pada GPU sehingga kami kembali ke float 16 bit, yang menyebabkan masalah presisi. Dalam WASM, komputasi akan selalu terjadi dalam float 32 bit dan karenanya memiliki paritas presisi di semua perangkat.
Kapan saya harus menggunakan WASM?
Secara umum, WASM adalah pilihan yang baik ketika model berukuran lebih kecil, jika Anda membutuhkan dukungan perangkat yang luas, atau jika project Anda sensitif terhadap stabilitas numerik. Namun, WASM tidak memiliki kesamaan dengan backend WebGL kami. Jika Anda menggunakan backend WASM dan membutuhkan implementasi op, jangan ragu untuk melaporkan masalah di
Github. Untuk mengatasi kebutuhan kasus penggunaan produksi, kami memprioritaskan
inferensi daripada
dukungan pelatihan . Untuk melatih model di browser, kami sarankan menggunakan backend WebGL.
Di Node.js, backend WASM adalah solusi hebat untuk perangkat yang tidak mendukung biner TensorFlow atau Anda tidak ingin membangunnya dari sumber.
Tabel di bawah ini menunjukkan waktu inferensi (dalam milidetik) di Chrome pada MacBook Pro 2018 (Intel i7 2,2GHz, Radeon 555X) untuk beberapa
model yang didukung secara resmi di backend WebGL, WASM, dan plain JS (CPU).
Kami mengamati backend WASM 10-30x lebih cepat daripada backend plain JS (CPU) di seluruh model kami. Dengan membandingkan WASM dengan WebGL, ada dua hal utama yang perlu diingat:
- WASM setara, atau lebih cepat daripada WebGL untuk model ultra-lite seperti BlazeFace dan FaceMesh dari MediaPipe.
- WASM 2-4X lebih lambat daripada WebGL untuk model edge berukuran sedang seperti MobileNet, BodyPix dan PoseNet.
Memandang ke depan
Kami percaya WASM akan menjadi backend yang semakin disukai. Pada tahun lalu, kami telah melihat hadirnya model ultra-ringan berkualitas produksi yang dirancang untuk perangkat edge (mis.
BlazeFace dan
FaceMesh dari MediaPipe), yang cocok untuk backend WASM.
Selain itu, ekstensi baru seperti
SIMD dan
thread sedang dikembangkan secara aktif yang memungkinkan akselerasi lebih lanjut di masa mendatang.
SIMD / QFMA
Terdapat proposal
ekstensi WASM untuk menambahkan instruksi SIMD. Hari ini, Chrome mendukung SIMD secara parsial di bawah tanda eksperimental, status Firefox dan Edge sedang
dalam pengembangan, sementara Safari belum memberikan sinyal publik. SIMD sangatlah menjanjikan. Benchmark dengan SIMD-WASM pada model ML populer menunjukkan
peningkatan kecepatan 2-3X daripada WASM non-SIMD.
Selain proposal SIMD asli, backend LLVM WASM
baru-baru ini mendapat dukungan untuk instruksi QFMA SIMD eksperimental yang akan lebih meningkatkan kinerja kernel. Benchmark pada model ML populer menunjukkan QFMA SIMD memberikan
kecepatan ekstra 26-50% dibandingkan SIMD biasa.
Backend TF.js WASM akan memanfaatkan SIMD melalui library
XNNPACK, yang mencakup
kernel-mikro yang dioptimalkan untuk WASM SIMD. Ketika hadir, SIMD tidak akan terlihat oleh pengguna TensorFlow.js.
Multithreading
WASM baru-baru ini mendapatkan proposal
thread dan atomik dengan tujuan untuk mempercepat aplikasi multi-thread. Proposal ini masih dalam tahap awal, dan dimaksudkan untuk menempatkan W3C Working Group di masa mendatang. Secara khusus, Chrome 74+ telah
mendukung thread WASM yang diaktifkan secara default.
Ketika proposal threading hadir, kita akan siap memanfaatkan thread melalui library XNNPACK tanpa mengubah kode pengguna TensorFlow.js.
Informasi selengkapnya
- Jika tertarik untuk mempelajari lebih lanjut, Anda bisa membaca panduan WebAssembly kami.
- Pelajari lebih lanjut tentang WebAssembly dengan memeriksa kumpulan sumber daya ini dari Mozilla Developer Network.
- Kami menghargai masukan dan kontribusi Anda melalui masalah dan PR di GitHub!
EVERYTHING HAPPENS IN THIS WORLD IS BECAUSE WE HAVE A SOMETHING BAD THING WE DO IN THIS WORLD OR WE HAVE A BAD KARMA IN THE PAST.
ReplyDeleteCara daftar Wap
Result Hongkong Siang
Result Sydney
Result Malaysia Siang
Result Singapore Metro
Result Singapore45
Result Saporo Night
Result Qatar
Result HK
TOTO SGP
TOTO HK
Via4D
http://45.77.41.36/
Thanks For Read My Some Articel Today :)
A good blog and very interesting what else is the concept applied to give deep meaning, thank you very helpful
ReplyDeleteAngka Keluaran SGP
Prediksi SGP
Data Pengeluaran HK
Prediksi HK
Keluaran Sidney
Data Sidney
Bandar Togel Online
Bandar Togel Wap
The Collection Marts is platform where you can view latest designs about home décor and bedding. We have large range in different categories with finest fabric in cotton and silk. You can view not only present trends but also view huge collection with reasonable price. buy cotton gadda online , red blanket , razai bed sheet , ready made sofa covers , velvet comforter The Collection Marts can provide fast service about delivery as well as customer support too. Our products are not only self-made but also, well connected with markets to ensure for possibility of available designs if client want to purchase. The Collection Marts customer support open 24/7 to guide their customers about material or product stuff.
ReplyDeleteEverything in the content can be true weaver game if each of us knows how to apply and study it carefully. Let's create a healthy new among us world together. Thank you very much banks.
ReplyDeleteThis tool helps you create AI trading strategies in a few seconds. QUINETICS is super easy for building your own AI Trading Bot.
ReplyDeleteReady to differentiate yourself in your industry? Explore personalized Personal Branding Tips for Professionals at Standout4Growth.com. With their actionable advice and tailored strategies, you can refine your online presence and showcase your unique strengths effectively. Take the first step towards career success with Standout4Growth.com today
ReplyDeleteThanks to https://wearabletechadvisor.com, I discovered the best fitness tracker for my lifestyle. Their recommendations are spot-on.
ReplyDeleteFor precise ti-hi counting
ReplyDeletesolutions, Vimaan.ai offers cutting-edge technology that enhances inventory accuracy and efficiency. Their advanced systems streamline the ti-hi counting process, ensuring that you can manage your inventory with greater accuracy and speed.
I love the Wholesale jewelry on Chicmeto
ReplyDelete! Their collection is so versatile and affordable, perfect for stocking up for a business. Check out chicmeto.com if you’re looking for high-quality pieces at wholesale prices.
To maintain high-quality customer interactions, regular ivr testing is a must. Klearcom testing platform is designed to automate and streamline this process, helping businesses spot and resolve issues before they affect customers. Their expertise in IVR systems is invaluable for companies aiming to improve their customer service efficiency.
ReplyDelete