Hola, hola, amigos! Soy el autor de Kuiperinfer. Como curso de código abierto, Kuiperinfer ha ganado 2.5k estrellas en Github hasta ahora. Ahora, basado en el curso original, hemos lanzado el "Marco de inferencia de maquetas práctico manual". El nuevo curso admite la serie de modelos LLAMA (incluida la última serie de modelos LLAMA3.2) y Qwen2.5, y admite la aceleración y la cuantización INT8 de CUDA , que ha sido ampliamente elogiada desde su lanzamiento.
https://l0kzvikuq0w.feishu.cn/docx/zf2hd0xfaoaxqaxcpn2c5ohanbc
Si está interesado en un gran razonamiento modelo, desea tener una comprensión profunda y dominar las tecnologías relevantes, y desea destacarse en las entrevistas de reclutamiento de reclutamiento escolar y reclutamiento de otoño, entonces este curso "marco de inferencia de modelos de gran modelo" no debe perderse. ¡Ven y únete a nosotros y comienza tu viaje de aprendizaje juntos! Los estudiantes interesados pueden escanear el código QR debajo del curso o agregar WeChat Lyrry1997 para participar en el curso

Llevarlo a crear un marco de razonamiento de aprendizaje profundo con sus propias manos. Siga el espacio de mi estación B para obtener las últimas actualizaciones de video.
Siga este proyecto y comience con su propio marco de razonamiento de aprendizaje profundo desde cero, obtendrá lo siguiente:
Enlace del curso de video: https://space.bilibili.com/1822828582
El segundo curso es una versión de reinicio del primer curso, y el contenido es más satisfactorio y perfecto. Vea el siguiente capítulo para el primer esquema del curso.
| Número de cursos | cronograma | Enlace del curso |
|---|---|---|
| Conferencia 1 Vista previa del proyecto y configuración del entorno | Finalizar | https://www.bilibili.com/video/bv118411f7ym |
| Conferencia 2 Diseño e implementación de tensores | Finalizar | https://www.bilibili.com/video/bv1hn411k7q777 |
| Conferencia 3 Definición de gráfico computacional | Finalizar | https://www.bilibili.com/video/bv1vc411m7yp |
| Conferencia 4: Construir relaciones de gráficos computacionales y orden de ejecución | Finalizar | https://www.bilibili.com/video/bv19s4y1r7az |
| Conferencia 5: Operadores y trabajadores registrados en Kuiperinfer | Finalizar | https://www.bilibili.com/video/bv1gx4y1o7pj |
| Conferencia 6: Implementación de los operadores de convolución y agrupación | Finalizar | https://www.bilibili.com/video/bv1hx4y197ds |
| Conferencia 7: Análisis léxico y análisis gramatical e implementación del operador en la capa de expresión | Finalizar | https://www.bilibili.com/video/bv1j8411o7ao |
| Conferencia 8: El marco de razonamiento casero admite el razonamiento de las redes de resnet | Finalizar | https://www.bilibili.com/video/bv1o84y1o7ni |
| Conferencia 9: El marco de razonamiento casero admite el razonamiento de la red Yolov5 | Finalizar | https://www.bilibili.com/video/bv1qk4y1a7xl |
? Kuiperinfer actualmente admite la inferencia de red de Unet y utiliza los pesos de pre-entrenamiento de Carvana
Reproducir el razonamiento puede referirse a la demostración que ejecuta kuiper al final del artículo
La demostración utiliza directamente los pesos previamente capacitados (conjunto de datos de Coco) de Yolov5-S y usa Kuiperinfer para razonar

Tengo un curso de enseñanza sobre Bilibili, y actualmente son los primeros 13 cursos en el curso. El esquema del curso es el siguiente, la página de inicio es: https://space.bilibili.com/18222828582. Todos son bienvenidos a seguir y apoyar. La forma de ingresar al grupo de aprendizaje es como se muestra en el código QR en la imagen de arriba.
| Número de cursos | Contenido principal | cronograma | Enlace del curso |
|---|---|---|---|
| Clase primera | Configuración general del entorno de interpretación y desarrollo del marco | Finalizar | https://www.bilibili.com/video/bv1hv4y1a7h8/ |
| Segunda lección | El análisis de la clase tensor tensor y la disposición de memoria de los datos de entrada | Finalizar | https://www.bilibili.com/video/bv1ed4y1v7gb/ |
| La tercera lección | Inicializar una instancia de tensor de tensor de un archivo CSV | Finalizar | https://www.bilibili.com/video/bv1pg411j7v5/ |
| Lección 4 | Escriturado por el primer operador Relu y complete la clase de fábrica de registro del operador | Finalizar | https://www.bilibili.com/video/bv1bg4y1j7sq/ |
| Lección 5 | El principio de IM2COL y la implementación del operador de convolución | Finalizar | https://www.bilibili.com/video/bv1f841137ct |
| Lección 6 | Complete el operador maxpooling dibujando un gato y dibujando un tigre | Finalizar | https://www.bilibili.com/video/bv1m3411s7yy |
| Lección 7 | Explicación de estructura de gráficos (PNNX) y gráfico de cálculo preliminar | Finalizar | https://www.bilibili.com/video/bv1vw4y1v7vp |
| Lección 8 | Lea PNNX y construya su propio diagrama de cálculo | Finalizar | https://www.bilibili.com/video/bv1hy4y1z7s3 |
| Lección 9 | La implementación del operador de convolución y el principio del cálculo acelerado de IM2COL | Finalizar | https://www.bilibili.com/video/bv1f841137ct |
| Lección 10 | Explore la clase de tensor nuevamente, cree la relación gráfica del gráfico de cálculo y prealocen la entrada y la salida del operador | Finalizar | https://www.bilibili.com/video/bv1m54y1k7ag |
| Lección 11 | Proceso de ejecución del operador | Finalizar | https://www.bilibili.com/video/bv1wy411c7kv |
| Lección 12 | Utilice nuestro marco de razonamiento casero para completar la inferencia y clasificación de imágenes de redes resnet | Finalizar | https://www.bilibili.com/video/bv1jd4y1m772 |
| Lección 13 | Apoya el razonamiento del modelo Yolov5 con un marco de razonamiento casero | Finalizar | https://www.bilibili.com/video/bv1xs4y1j7t2 |
Gracias a los siguientes estudiantes por sus esfuerzos para Kuiperinfer
Este proyecto es equivalente al proyecto ascendente o previo a la investigación del curso
Cada característica aquí puede convertirse en un punto de conocimiento en el curso de video, ya sea desarrollado por mí o mejorado por otros estudiantes.
Consejos:
$DEVELOPMENT o especificar -DDEVELOPMENT=ON en el archivo cmake. apt install cmake, libopenblas-dev, liblapack-dev, libarpack-dev, libsuperlu-devConsejos:
Copie la dirección absoluta o relativa de la imagen test.png en tmp/unet/demo después de la compilación, y luego ejecute el programa de inferencia en el siguiente formato en build/demos
./unet_test test.png unet_demo.pnnx.param unet_demo.pnnx.binLa dirección de descarga del modelo PNNX: https://cowtransfer.com/s/09c7f337bab443
Si el razonamiento es exitoso, verá el resultado de la división de la imagen original en la carpeta unet_output.jpg.
Modifique el siguiente código en la carpeta yolo_test.cpp en la carpeta Demos
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 Especifica el directorio de imágenes, param_path es el archivo de parámetros del modelo, y bin_path es el archivo de peso del modelo. Reemplácelo con su ruta local.
La definición del modelo y la dirección de descarga de peso son las siguientes: https://cowtransfer.com/s/9bc43e0905cb40
Después de completar la compilación, llame ./build/demos/yolo_test en el directorio del proyecto
Concepto general: optimizar gradualmente a los operadores existentes; Desarrollar operadores no implementados cuando sea necesario
La fuente es el directorio de fuente
La prueba es un directorio de prueba unitario, básicamente implementando los derechos de prueba unitaria del método público
Benchmark es un punto de referencia de Google, que contiene pruebas de rendimiento para MobileNetv3, ResNet18 y Yolov5s.
15 Core AMD EPYC 7543 (Xiaolong) procesador de 32 núcleos (Docker Container, el host tiene un total de 32 núcleos)
GCC (Ubuntu 9.4.0-1ubuntu1 ~ 20.04.1) 9.4.0
Lento y ejecutando cinco veces consecutivas y calculado de manera promedio
| tamaño de entrada | Nombre del modelo | Equipo informático | pérdida de tiempo |
|---|---|---|---|
| 224 × 224 lotes = 8 | Mobilenetv3small | CPU (Armadillo + Openblas) | 6.76ms/imagen |
| 224 × 224 lotes = 8 | Resnet18 | CPU (Armadillo + Openblas) | 23.53ms/imagen |
| 224 × 224 lotes = 16 | Resnet18 | CPU (Armadillo + Openblas) | 13.52ms/imagen |
| 640 × 640 lotes = 8 | Yolov5nano | CPU (Armadillo + Openblas) | 78.37ms/imagen |
| 640 × 640 lotes = 8 | Yolov5s | CPU (Armadillo + Openblas) | 177.54ms/imagen |
| 640 × 640 lotes = 16 | Yolov5s | CPU (Armadillo + Openblas) | 134.57ms/imagen |
El marco de razonamiento NCNN ha conservado el protocolo BSD de NCNN en el código a referenciado https://github.com/tencent/ncnn
Excelente biblioteca de matemáticas Openblas: https://github.com/xianyi/openblas
Excelente biblioteca de matemáticas Armadillo: https://arma.sourceforge.net/docs.html
Marco de Caffe que me inspira: https://github.com/bvlc/caffe
FMATH marco: https://github.com/herumi/fmath/