Oi, olá, amigos! Eu sou o autor de Kuiperinfer. Como um curso de código aberto, Kuiperinfer ganhou 2,5 mil estrelas no Github até agora. Agora, com base no curso original, lançamos a "estrutura de inferência de modelos". O novo curso suporta a série de modelos LLAMA (incluindo a mais recente série LLAMA3.2) e QWEN2.5 de modelos, e suporta a aceleração do CUDA e a quantização INT8 , que tem sido amplamente elogiada desde o seu lançamento.
https://l0kzvikuq0w.feishu.cn/docx/zf2hd0xfaoaxqaxcpn2c5ohanbc
Se você estiver interessado no raciocínio de grandes modelos, deseja ter um entendimento aprofundado e dominar as tecnologias relevantes e deseja se destacar nas entrevistas de recrutamento escolar e recrutamento de outono, este curso "Big Model Inference Framework" não deve ser perdido. Venha e junte -se a nós e comece sua jornada de aprendizado juntos! Os alunos interessados são bem -vindos para digitalizar o código QR abaixo do curso ou adicionar WeChat Lyrry1997 para participar do curso

Leve você a criar uma estrutura de raciocínio de aprendizado profundo com suas próprias mãos. Siga o espaço da minha estação B para obter as últimas atualizações de vídeo.
Siga este projeto e comece com sua própria estrutura de raciocínio de aprendizado profundo do zero, você ganhará o seguinte:
Link do curso de vídeo: https://space.bilibili.com/1822828582
O segundo curso é uma versão de redefinição do primeiro curso, e o conteúdo é mais gratificante e perfeito. Veja o capítulo abaixo para o primeiro curso do curso.
| Número de cursos | agendar | Link do curso |
|---|---|---|
| Palestra 1 Visualização do projeto e configuração do ambiente | Terminar | https://www.bilibili.com/video/bv118411f7ym |
| Palestra 2 Design e implementação de tensores | Terminar | https://www.bilibili.com/video/bv1hn411k7q7 |
| Palestra 3 Definição de gráfico computacional | Terminar | https://www.bilibili.com/video/bv1vc411m7yp |
| Palestra 4: Construindo relacionamentos com gráficos computacionais e ordem de execução | Terminar | https://www.bilibili.com/video/bv19s4y1r7az |
| Palestra 5: Operadores e trabalhadores registrados em Kuiperinfer | Terminar | https://www.bilibili.com/video/bv1gx4y1o7pj |
| Palestra 6: Implementação de operadores de convolução e pool | Terminar | https://www.bilibili.com/video/bv1hx4y197ds |
| Palestra 7: Análise lexical e análise gramatical e implementação do operador na camada de expressão | Terminar | https://www.bilibili.com/video/bv1j8411o7ao |
| Palestra 8: A estrutura de raciocínio caseiro suporta o raciocínio das redes Resnet | Terminar | https://www.bilibili.com/video/bv1o84y1o7ni |
| Palestra 9: A estrutura de raciocínio caseiro suporta o raciocínio da rede YOLOV5 | Terminar | https://www.bilibili.com/video/bv1qk4y1a7xl |
? Atualmente
Reproduzir o raciocínio pode se referir à demonstração em execução Kuiper no final do artigo
A demonstração usa diretamente os pesos pré-treinados (conjunto de dados Coco) do Yolov5-S e usa Kuiperinfer para raciocinar

Eu tenho um curso de ensino sobre Bilibili e atualmente são os 13 primeiros cursos do curso. O esboço do curso é o seguinte, a página inicial é: https://space.bilibili.com/1822828582. Todos são convidados a seguir e apoiar. A maneira de entrar no grupo de aprendizagem é mostrada no código QR na figura acima.
| Número de cursos | Conteúdo principal | agendar | Link do curso |
|---|---|---|---|
| Primeira classe | Configuração geral do ambiente de interpretação e desenvolvimento da estrutura | Terminar | https://www.bilibili.com/video/bv1hv4y1a7h8/ |
| Segunda lição | A análise da classe Tensor Tensor e o arranjo de memória dos dados de entrada | Terminar | https://www.bilibili.com/video/bv1ed4y1v7gb/ |
| A terceira lição | Inicialize uma instância do tensor tensor | Terminar | https://www.bilibili.com/video/bv1pg411j7v5/ |
| Lição 4 | Manuscrito o primeiro operador relu e complete a aula de fábrica de registro do operador | Terminar | https://www.bilibili.com/video/bv1bg4y1j7sq/ |
| Lição 5 | O princípio do IM2COL e a implementação do operador de convolução | Terminar | https://www.bilibili.com/video/bv1f841137ct |
| Lição 6 | Complete o operador Maxpooling desenhando um gato e desenhando um tigre | Terminar | https://www.bilibili.com/video/bv1m3411s7yy |
| Lição 7 | Explicação da estrutura do gráfico (PNNX) e gráfico de cálculo preliminar | Terminar | https://www.bilibili.com/video/bv1vw4y1v7vp |
| Lição 8 | Leia PNNX e construa seu próprio diagrama de cálculo | Terminar | https://www.bilibili.com/video/bv1hy4y1z7s3 |
| Lição 9 | A implementação do operador de convolução e o princípio do cálculo acelerado do IM2COL | Terminar | https://www.bilibili.com/video/bv1f841137ct |
| Lição 10 | Explore a classe Tensor novamente, construa o relacionamento gráfico do gráfico de cálculo e pré-aloce a entrada e a saída do operador | Terminar | https://www.bilibili.com/video/bv1m54y1k7ag |
| Lição 11 | Processo de execução do operador | Terminar | https://www.bilibili.com/video/bv1wy411c7kv |
| Lição 12 | Use nossa estrutura de raciocínio caseiro para concluir a inferência e classificação de imagens de redes Resnet | Terminar | https://www.bilibili.com/video/bv1jd4y1m772 |
| Lição 13 | Apoie o raciocínio do modelo Yolov5 com uma estrutura de raciocínio caseiro | Terminar | https://www.bilibili.com/video/bv1xs4y1j7t2 |
Obrigado aos seguintes alunos por seus esforços para Kuiperinfer
Este projeto é equivalente ao projeto a montante ou pré-pesquisa do curso
Cada recurso aqui pode se tornar um ponto de conhecimento no curso de vídeo, seja desenvolvido por mim ou melhorado por outros alunos.
Pontas:
$DEVELOPMENT ou especificar -DDEVELOPMENT=ON no arquivo cmake. apt install cmake, libopenblas-dev, liblapack-dev, libarpack-dev, libsuperlu-devPontas:
Copie o endereço absoluto ou relativo da imagem Test.png na pasta tmp/unet/demo após a compilação e, em seguida, execute o programa de inferência no seguinte formato em build/demos
./unet_test test.png unet_demo.pnnx.param unet_demo.pnnx.binO endereço de download do modelo PNNX: https://cowtransfer.com/s/09c7f337bab443
Se o raciocínio for bem -sucedido, você verá o resultado da divisão da imagem original na pasta unet_output.jpg.
Modifique o seguinte código na pasta yolo_test.cpp sob a pasta 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 o diretório de imagem, param_path é o arquivo de parâmetro do modelo, e bin_path é o arquivo de peso do modelo. Substitua -o pelo seu caminho local.
A definição do modelo e o endereço de download de peso são os seguintes: https://cowtransfer.com/s/9bc43e0905cb40
Depois que a compilação é concluída, ligue para ./build/demos/yolo_test no diretório do projeto
Conceito geral: otimize gradualmente os operadores existentes; Desenvolva operadores não implementados quando necessário
Fonte é o diretório de origem
O teste é um diretório de teste de unidade, implementando basicamente os direitos de teste de unidade do método público
O Benchmark é um benchmark do Google, que contém testes de desempenho para MobileNetv3, Resnet18 e Yolov5s.
15 CORE AMD EPYC 7543 (Xiaolong) Processador de 32 núcleos (Docker Container, o host tem um total de 32 núcleos)
GCC (Ubuntu 9.4.0-1Buntu1 ~ 20.04.1) 9.4.0
Demorado e executando cinco vezes consecutivo e calculado de maneira média
| tamanho de entrada | Nome do modelo | Equipamento de computação | demorado |
|---|---|---|---|
| 224 × 224 lote = 8 | MobileNetv3Small | CPU (Armadillo + OpenBlas) | 6.76ms/imagem |
| 224 × 224 lote = 8 | Resnet18 | CPU (Armadillo + OpenBlas) | 23.53ms/imagem |
| 224 × 224 lote = 16 | Resnet18 | CPU (Armadillo + OpenBlas) | 13.52ms/imagem |
| 640 × 640 lote = 8 | Yolov5nano | CPU (Armadillo + OpenBlas) | 78.37ms/imagem |
| 640 × 640 lote = 8 | Yolov5s | CPU (Armadillo + OpenBlas) | 177.54ms/imagem |
| 640 × 640 lote = 16 | Yolov5s | CPU (Armadillo + OpenBlas) | 134.57ms/imagem |
A estrutura de raciocínio NCNN manteve o protocolo BSD da NCNN no código referenciado https://github.com/tencent/ncnn
Excelente biblioteca de matemática OpenBlas: https://github.com/xianyi/openblas
Excelente Biblioteca de Matemática Armadillo: https://arma.sourceforge.net/docs.html
CAFFE Framework que me inspira: https://github.com/bvlc/caffe
FMATH Framework: https://github.com/herumi/fmath/