Hai, halo, teman! Saya adalah penulis Kuiperinfer. Sebagai kursus open source, KuiperInfer telah memenangkan 2,5K bintang di GitHub sejauh ini. Sekarang berdasarkan kursus asli, kami telah meluncurkan "Hand-On Hand-on Making Mockup Inference Framework". Kursus baru ini mendukung serangkaian model LLAMA (termasuk serangkaian model LLAMA3.2) dan Qwen2.5, dan mendukung akselerasi CUDA dan kuantisasi Int8 , yang telah dipuji secara luas sejak diluncurkan.
https://l0kzvikuq0w.feishu.cn/docx/zf2hd0xfaoaxqaxcpn2c5ohanbc
Jika Anda tertarik pada penalaran model besar, ingin memiliki pemahaman mendalam dan menguasai teknologi yang relevan, dan ingin menonjol dalam perekrutan sekolah dan wawancara rekrutmen musim gugur, maka kursus ini "kerangka kerja inferensi model besar buatan tangan" tidak boleh dilewatkan. Datang dan bergabunglah dengan kami dan mulai perjalanan belajar Anda bersama! Siswa yang tertarik dipersilakan untuk memindai kode QR di bawah kursus atau menambahkan WeChat Lyrry1997 untuk berpartisipasi dalam kursus

Bawalah Anda untuk membuat kerangka kerja penalaran belajar yang mendalam dengan tangan Anda sendiri. Ikuti ruang stasiun B saya untuk mendapatkan pembaruan video terbaru.
Ikuti proyek ini dan mulailah dengan kerangka kerja penalaran belajar yang mendalam dari awal, Anda akan mendapatkan yang berikut:
Tautan Kursus Video: https://space.bilibili.com/1822828582
Kursus kedua adalah versi reset dari kursus pertama, dan kontennya lebih memuaskan dan sempurna. Lihat bab di bawah ini untuk garis besar kursus pertama.
| Jumlah kursus | jadwal | Tautan kursus |
|---|---|---|
| Kuliah 1 Pratinjau Proyek dan Konfigurasi Lingkungan | Menyelesaikan | https://www.bilibili.com/video/bv118411f7ym |
| Ceramah 2 Desain dan Implementasi Tensor | Menyelesaikan | https://www.bilibili.com/video/bv1hn411k7q7 |
| Kuliah 3 Definisi Grafik Komputasi | Menyelesaikan | https://www.bilibili.com/video/bv1vc411m7yp |
| Kuliah 4: Membangun Hubungan Grafik Komputasi dan Urutan Eksekusi | Menyelesaikan | https://www.bilibili.com/video/bv19s4y1r7az |
| Kuliah 5: Operator dan Pekerja Terdaftar di Kuiperinfer | Menyelesaikan | https://www.bilibili.com/video/bv1gx4y1o7pj |
| Kuliah 6: Implementasi Operator Konvolusi dan Pooling | Menyelesaikan | https://www.bilibili.com/video/bv1hx4y197ds |
| Kuliah 7: Analisis Leksikal dan Analisis Gramatikal dan Implementasi Operator di Lapisan Ekspresi | Menyelesaikan | https://www.bilibili.com/video/bv1j8411o7ao |
| Kuliah 8: Kerangka Penalaran Buatan Rumah Mendukung Alasan Jaringan Resnet | Menyelesaikan | https://www.bilibili.com/video/bv1o84y1o7ni |
| Kuliah 9: Kerangka Penalaran Homemade mendukung alasan jaringan YOLOV5 | Menyelesaikan | https://www.bilibili.com/video/bv1qk4y1a7xl |
? KuiperInfer saat ini mendukung inferensi jaringan Unet dan menggunakan bobot pra-pelatihan Carvana
Mereproduksi alasan dapat merujuk pada demo yang menjalankan Kuiper di akhir artikel
Demo secara langsung menggunakan bobot pra-terlatih (dataset Coco) YOLOV5-S dan menggunakan Kuiperinfer untuk bernalar

Saya memiliki kursus mengajar di Bilibili, dan saat ini merupakan 13 kursus pertama dalam kursus. Garis besar kursus adalah sebagai berikut, beranda adalah: https://space.bilibili.com/1822828582. Setiap orang dipersilakan untuk mengikuti dan mendukung. Cara memasuki kelompok pembelajaran adalah seperti yang ditunjukkan dalam kode QR pada gambar di atas.
| Jumlah kursus | Konten utama | jadwal | Tautan kursus |
|---|---|---|---|
| Kelas satu | Interpretasi kerangka kerja keseluruhan dan konfigurasi lingkungan pengembangan | Menyelesaikan | https://www.bilibili.com/video/bv1hv4y1a7h8/ |
| Pelajaran kedua | Analisis kelas tensor tensor dan pengaturan memori data input | Menyelesaikan | https://www.bilibili.com/video/bv1ed4y1v7gb/ |
| Pelajaran ketiga | Inisialisasi instance tensor tensor dari file CSV | Menyelesaikan | https://www.bilibili.com/video/bv1pg411j7v5/ |
| Pelajaran 4 | Tulisan Tangan Relu Operator Pertama dan Lengkapi Kelas Pabrik Pendaftaran Operator | Menyelesaikan | https://www.bilibili.com/video/bv1bg4y1j7sq/ |
| Pelajaran 5 | Prinsip IM2COL dan implementasi operator konvolusi | Menyelesaikan | https://www.bilibili.com/video/bv1f841137ct |
| Pelajaran 6 | Lengkapi operator maxpooling dengan menggambar kucing dan menggambar harimau | Menyelesaikan | https://www.bilibili.com/video/bv1m3411s7yy |
| Pelajaran 7 | Penjelasan Struktur Grafik (PNNX) dan grafik perhitungan pendahuluan | Menyelesaikan | https://www.bilibili.com/video/bv1vw4y1v7vp |
| Pelajaran 8 | Baca pnnx dan bangun diagram perhitungan Anda sendiri | Menyelesaikan | https://www.bilibili.com/video/bv1hy4y1z7s3 |
| Pelajaran 9 | Implementasi Operator Konvolusi dan Prinsip Perhitungan Percepat IM2COL | Menyelesaikan | https://www.bilibili.com/video/bv1f841137ct |
| Pelajaran 10 | Jelajahi kelas tensor lagi, bangun hubungan grafik dari grafik perhitungan dan pra-alokasi input dan output operator | Menyelesaikan | https://www.bilibili.com/video/bv1m54y1k7ag |
| Pelajaran 11 | Proses eksekusi operator | Menyelesaikan | https://www.bilibili.com/video/bv1wy411c7kv |
| Pelajaran 12 | Gunakan kerangka penalaran buatan kami untuk menyelesaikan inferensi dan klasifikasi gambar jaringan resnet | Menyelesaikan | https://www.bilibili.com/video/bv1jd4y1m772 |
| Pelajaran 13 | Dukung alasan model YOLOV5 dengan kerangka penalaran buatan sendiri | Menyelesaikan | https://www.bilibili.com/video/bv1xs4y1j7t2 |
Terima kasih kepada siswa berikut atas upaya mereka untuk Kuiperinfer
Proyek ini setara dengan proyek hulu atau pra-penelitian
Setiap fitur di sini dapat menjadi titik pengetahuan dalam kursus video, apakah itu dikembangkan oleh saya atau ditingkatkan oleh siswa lain.
Tips:
$DEVELOPMENT atau menentukan -DDEVELOPMENT=ON in cmake file. apt install cmake, libopenblas-dev, liblapack-dev, libarpack-dev, libsuperlu-devTips:
Harap salin alamat absolut atau relatif dari gambar test.png di folder tmp/unet/demo setelah kompilasi, dan kemudian jalankan program inferensi dalam format berikut dalam build/demos
./unet_test test.png unet_demo.pnnx.param unet_demo.pnnx.binAlamat unduhan model pnnx: https://cowtransfer.com/s/09c7f337bab443
Jika alasannya berhasil, Anda akan melihat hasil pemisahan gambar asli di folder unet_output.jpg.
Harap ubah kode berikut di folder yolo_test.cpp di bawah folder demo
const std::string& image_path = " imgs/car.jpg " ;
const std::string& param_path = " tmp/yolo/demo/yolov5s_batch8.pnnx.param " ;
const std::string& bin_path = " tmp/yolo/demo/yolov5s_batch8.pnnx.bin " ; image_path Menentukan Direktori Gambar, param_path adalah file parameter model, dan bin_path adalah file berat model. Harap ganti dengan jalur lokal Anda.
Definisi model dan alamat unduhan berat adalah sebagai berikut: https://cowtransfer.com/s/9bc43e0905cb40
Setelah kompilasi selesai, hubungi ./build/demos/yolo_test di direktori proyek
Konsep keseluruhan: secara bertahap mengoptimalkan operator yang ada; Kembangkan operator yang tidak diterapkan saat dibutuhkan
Sumber adalah direktori sumber
Tes adalah direktori unit tes, pada dasarnya menerapkan hak uji unit metode publik
Benchmark adalah Benchmark Google, yang berisi tes kinerja untuk MobileNetV3, ResNet18 dan YOLOV5S.
15 Core AMD EPYC 7543 (XIAOLONG) Prosesor 32-core (Docker Container, host memiliki total 32 core)
GCC (Ubuntu 9.4.0-1ubuntu1 ~ 20.04.1) 9.4.0
Memakan waktu dan menjalankan lima kali berturut-turut dan dihitung dengan cara rata-rata
| ukuran input | Nama model | Peralatan komputasi | memakan waktu |
|---|---|---|---|
| 224 × 224 batch = 8 | MobileNetV3Small | CPU (Armadillo + OpenBlas) | 6.76ms/gambar |
| 224 × 224 batch = 8 | Resnet18 | CPU (Armadillo + OpenBlas) | 23.53ms/gambar |
| 224 × 224 batch = 16 | Resnet18 | CPU (Armadillo + OpenBlas) | 13.52ms/gambar |
| 640 × 640 batch = 8 | Yolov5nano | CPU (Armadillo + OpenBlas) | 78.37ms/gambar |
| 640 × 640 batch = 8 | YOLOV5S | CPU (Armadillo + OpenBlas) | 177.54ms/gambar |
| 640 × 640 batch = 16 | YOLOV5S | CPU (Armadillo + OpenBlas) | 134.57ms/gambar |
Kerangka kerja alasan NCNN telah mempertahankan protokol BSD NCNN dalam kode yang dirujuk https://github.com/tencent/ncnn
Perpustakaan Matematika Luar Biasa OpenBlas: https://github.com/xianyi/openblas
Perpustakaan Matematika Luar Biasa Armadillo: https://arma.sourceforge.net/docs.html
Kerangka Caffe yang menginspirasi saya: https://github.com/bvlc/caffe
Fmath Framework: https://github.com/herumi/fmath/