Windows Machine Learning adalah API Inferensi Pembelajaran Mesin Kinerja Tinggi yang ditenagai oleh ONNX Runtime dan DirectML.
Windows ML API adalah komponen runtime Windows dan cocok untuk aplikasi berkinerja tinggi, latensi rendah seperti kerangka kerja, permainan, dan aplikasi real-time lainnya serta aplikasi yang dibangun dengan bahasa tingkat tinggi.
Repo ini berisi sampel dan alat pembelajaran mesin Windows yang menunjukkan cara membangun skenario bertenaga mesin dengan aplikasi Windows.
Untuk informasi tambahan tentang Windows ML, termasuk tutorial langkah demi langkah dan panduan cara, silakan kunjungi dokumentasi Windows ML.
| Sampel/alat | Status |
|---|---|
| Semua sampel | |
| WinMlrunner | |
| Dashboard WinML |
Prasyarat
Windows ML menawarkan inferencing pembelajaran mesin melalui inbox Windows SDK serta paket Nuget yang dapat didistribusikan kembali. Tabel di bawah ini menyoroti ketersediaan, distribusi, dukungan bahasa, servis, dan aspek kompatibilitas ke depan dari paket in-box dan nuget untuk Windows ML.
| In-box | Nuget | |
|---|---|---|
| Tersedianya | Windows 10 - Build 17763 (RS5) atau lebih baru Untuk informasi lebih rinci tentang dukungan versi, periksa dokumen kami. | Windows 8.1 atau lebih baru Catatan : Beberapa API (yaitu: Videoframe) tidak tersedia pada OS yang lebih tua. |
| Windows SDK | Windows SDK - Build 17763 (RS5) atau lebih baru | Windows SDK - Build 17763 (RS5) atau lebih baru |
| Distribusi | Dibangun ke dalam jendela | Paket dan distribusikan sebagai bagian dari aplikasi Anda |
| Pelayanan | Microsoft-Driven (Manfaat Pelanggan Secara Otomatis) | Didorong pengembang |
| Maju | Kompatibilitas secara otomatis bergulir dengan fitur baru | Pengembang perlu memperbarui paket secara manual |
Pelajari lebih lanjut di sini.
Di bagian ini Anda akan menemukan berbagai sampel model untuk berbagai skenario di berbagai penawaran API ML Windows.
Klasifikasi Gambar
Subdomain visi komputer di mana suatu algoritma melihat gambar dan memberikannya tag dari kumpulan tag atau kategori yang telah ditentukan sebelumnya.
| Jenis Aplikasi Windows Distribusi | UWP In-box | UWP Nuget | Desktop In-box | Desktop Nuget |
|---|---|---|---|---|
| Alexnet | ✔️C# .net5 - Galeri Sampel | |||
| Caffenet | ✔️C# .net5 - Galeri Sampel | |||
| Densenet | ✔️C# .net5 - Galeri Sampel | |||
| EfisienNet | ✔️C# .net5 - Galeri Sampel | |||
| Googlenet | ✔️C# .net5 - Galeri Sampel | |||
| Inceptionv1 | ✔️C# .net5 - Galeri Sampel | |||
| Inceptionv2 | ✔️C# .net5 - Galeri Sampel | |||
| Mnist | ✔️C ++/CX ✔️C# | |||
| MobileNetv2 | ✔️C# .net5 - Galeri Sampel | |||
| Rcnn | ✔️C# .net5 - Galeri Sampel | |||
| Resnet50 | ✔️C# .net5 - Galeri Sampel | |||
| Shufflenetv1 | ✔️C# .net5 - Galeri Sampel | |||
| Shufflenetv2 | ✔️C# .net5 - Galeri Sampel | |||
| Squeezenet | ✔️C# ✔️JavaScript | ✔️C ++/WinRT ✔️C# .net5 ✔️C# .NET Core 2 | ✔️C ++/WinRT ✔️C# .net5 - Galeri Sampel ✔️nears | |
| VGG19 | ✔️C# .net5 - Galeri Sampel | |||
| Vgg19bn | ✔️C# .net5 - Galeri Sampel | |||
| ZFNET512 | ✔️C# .net5 - Galeri Sampel |
Transfer gaya
Teknik visi komputer yang memungkinkan kita untuk mengkomposisikan kembali konten gambar dengan gaya orang lain.
| Jenis Aplikasi Windows Distribusi | UWP In-box | UWP Nuget | Desktop In-box | Desktop Nuget |
|---|---|---|---|---|
| Fnscandy | ✔️C# - Transfer Gaya FNS ✔️C# - Transfer gaya waktu nyata |
Sampel canggih ini menunjukkan cara menggunakan berbagai fitur pengikatan dan evaluasi di Windows ML:
Tensorization Kustom : Aplikasi Konsol Windows (C ++/WinRT) yang menunjukkan cara melakukan tensorization khusus.
Operator Kustom (CPU) : Aplikasi desktop yang mendefinisikan beberapa operator CPU khusus. Salah satunya adalah operator debug yang kami undang untuk berintegrasi ke dalam alur kerja Anda sendiri.
Pemilihan Adaptor : Aplikasi desktop yang menunjukkan cara memilih adaptor perangkat tertentu untuk menjalankan model Anda.
Pesawat pengenal : aplikasi UWP dan aplikasi WPF yang dikemas dengan jembatan desktop, berbagi model yang sama yang dilatih menggunakan Azure Custom Vision Service. Untuk petunjuk langkah demi langkah untuk sampel ini, silakan lihat posting blog meningkatkan aplikasi WinML Anda ke bit terbaru.
Visi Kustom dan Windows ML : Tutorial menunjukkan cara melatih model jaringan saraf untuk mengklasifikasikan gambar makanan menggunakan layanan visi kustom Azure, mengekspor model ke format ONNX, dan menggunakan model dalam aplikasi pembelajaran mesin Windows yang berjalan secara lokal pada perangkat Windows.
ML.NET dan Windows ML : Tutorial ini menunjukkan kepada Anda cara melatih model jaringan saraf untuk mengklasifikasikan gambar makanan menggunakan pembangun model ML.NET, mengekspor model ke format ONNX, dan menggunakan model dalam aplikasi pembelajaran mesin Windows yang berjalan secara lokal aktif perangkat Windows.
Analisis Data PyTorch : Tutorial menunjukkan cara menyelesaikan tugas klasifikasi dengan jaringan saraf menggunakan pustaka Pytorch, mengekspor model ke format ONNX dan menggunakan model dengan aplikasi pembelajaran mesin Windows yang dapat berjalan pada perangkat Windows apa pun.
Klasifikasi Gambar PyTorch : Tutorial ini menunjukkan cara melatih model jaringan neural klasifikasi gambar menggunakan pytorch, mengekspor model ke format ONNX, dan menggunakannya di aplikasi pembelajaran mesin Windows yang berjalan secara lokal pada perangkat Windows Anda.
Deteksi Objek YOLOV4 : Tutorial ini menunjukkan cara membangun aplikasi UWP C# yang menggunakan model YOLOV4 untuk mendeteksi objek dalam aliran video.
Konversi model
Windows ML memberikan kemampuan inferensi yang ditenagai oleh mesin runtime ONNX. Dengan demikian, semua model yang dijalankan di Windows ML harus dikonversi ke format model ONNX. Model yang dibangun dan dilatih dalam kerangka kerja sumber seperti TensorFlow atau Pytorch harus dikonversi menjadi ONNX. Lihat dokumentasi untuk cara mengonversi ke model ONNX:
Optimalisasi Model
Model mungkin memerlukan optimasi lebih lanjut Konversi Post Terapan untuk mendukung fitur -fitur canggih seperti batching dan kuantisasi. Lihat alat berikut untuk mengoptimalkan model Anda:
WinML Dashboard (Pratinjau) : Alat berbasis GUI untuk melihat, mengedit, mengonversi, dan memvalidasi model pembelajaran mesin untuk mesin inferensi ML Windows. Alat ini dapat digunakan untuk mengaktifkan dimensi gratis pada model yang dibangun dengan dimensi tetap. Unduh versi pratinjau
Optimalisasi Grafik: Optimalisasi grafik pada dasarnya adalah transformasi level grafik, mulai dari penyederhanaan grafik kecil dan eliminasi simpul hingga fusi simpul yang lebih kompleks dan optimisasi tata letak.
Kuantisasi grafik : Kuantisasi dalam runtime ONNX mengacu pada kuantisasi linier 8 bit dari model ONNX.
Validasi Model
WinMlrunner : Alat baris perintah yang dapat menjalankan model .onnx atau .pb di mana variabel input dan output adalah tensor atau gambar. Ini adalah alat yang sangat berguna untuk dengan cepat memvalidasi model ONNX. Ini akan mencoba memuat, mengikat, dan mengevaluasi model dan mencetak pesan yang bermanfaat. Ini juga menangkap pengukuran kinerja.
Unduh X64 EXE
Integrasi model
WinML Code Generator (MLGEN) : Ekstensi Visual Studio untuk membantu Anda memulai menggunakan WinML API pada aplikasi UWP dengan menghasilkan kode template ketika Anda menambahkan file ONNX yang terlatih ke dalam proyek UWP. Dari kode template Anda dapat memuat model, membuat sesi, mengikat input, dan mengevaluasi dengan kode pembungkus. Lihat dokumen untuk info lebih lanjut.
Unduh untuk VS 2017, VS 2019
Galeri Sampel WinML: Jelajahi berbagai skenario dan model integrasi ML.
Lihatlah sampel model dan sampel skenario canggih untuk mempelajari cara menggunakan Windows ML di aplikasi Anda.
Kami selalu mencari bantuan Anda untuk memperbaiki bug dan meningkatkan sampel. Buat permintaan tarik, dan kami akan dengan senang hati melihatnya.
Proyek ini telah mengadopsi kode perilaku open source Microsoft. Untuk informasi lebih lanjut, lihat FAQ Kode Perilaku atau hubungi [email protected] dengan pertanyaan atau komentar tambahan.