AlexNet

AlexNet é a rede convolucional que venceu a ILSVRC 2012 e ajudou a iniciar a era do deep learning em visão computacional. O LibreYOLO traz a revisão posterior da arquitetura, de torre única, para classificação de imagens.

Tarefas
classify
Tamanhos
b at 224 px
Instalação
pip install libreyolo
Nível de suporte
Somente inferência, desde a v. Somente predição, validação e exportação. Os recursos de treinamento não se aplicam.
Origem
AlexNet por University of Toronto, BSD-3-Clause. Artigo, código-fonte
Licenças
Código BSD-3-Clause, pesos BSD-3-Clause. Uso comercial

Instalação

O AlexNet não precisa de nenhum extra opcional. Tudo o que ele importa está na instalação base.

bash
pip install libreyolo

Predição

Os pesos são baixados do Hugging Face no primeiro uso e ficam em cache localmente.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreAlexNetb-cls.pt")result = model(SAMPLE_IMAGE, save=True) probs = result.probsprint(probs.top1, probs.top1conf)print(probs.top5, probs.top5conf)
CLI
libreyolo predict model=LibreAlexNetb-cls.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

Um classificador retorna result.probs em vez de result.boxes: top1 e top5 dão os índices das classes, e top1conf e top5conf dão as confianças correspondentes. Veja predição para fontes, streaming e tratamento de resultados.

Variantes

Um único tamanho. O grafo distribuído é a revisão posterior de torre única publicada pelo torchvision, com 64 filtros na primeira camada e sem local response normalization, e não a arquitetura original de duas GPUs de 2012. O LibreYOLO distribui esta família apenas para inferência: predição, validação top-1/top-5 no estilo ImageNet e exportação são suportadas, e o fine-tuning não está implementado.

Validação

val() roda sobre um split no formato ImageFolder (um diretório com as subpastas train/ e val/, uma pasta por classe) e retorna a acurácia top-1 e top-5.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreAlexNetb-cls.pt") # data é um diretório raiz com os splits train/ e val/ em pastas por# classe (layout ImageFolder), não um YAML de dataset.metrics = model.val(data="imagenet-1k/") print(metrics["metrics/accuracy_top1"])print(metrics["metrics/accuracy_top5"])
CLI
libreyolo val model=LibreAlexNetb-cls.pt data=imagenet-1k/

Exportação

TarefaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
classifyclassify to ONNX: compatívelclassify to TorchScript: compatívelclassify to ExecuTorch: compatívelclassify to TensorRT: compatívelclassify to OpenVINO: compatívelclassify to Paddle: incompatívelclassify to MNN: incompatívelclassify to RKNN: incompatívelclassify to ncnn: compatívelclassify to TFLite: incompatívelclassify to CoreML: incompatívelclassify to Core AI: incompatível

Um artefato exportado é recarregado por LibreYOLO() pelo sufixo do arquivo, então um arquivo .onnx ou .engine se comporta como um checkpoint e retorna o mesmo Results. Exportação lista os argumentos que todo formato aceita e os extras que alguns deles adicionam.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreAlexNetb-cls.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreAlexNetb-cls.pt format=onnxlibreyolo export model=LibreAlexNetb-cls.pt format=tensorrt half=True
Usar o arquivo exportado
from libreyolo import LibreYOLO, SAMPLE_IMAGE # A factory decide o caminho pelo sufixo do arquivo, então um artefato# exportado carrega como qualquer checkpoint e retorna o mesmo Results.model = LibreYOLO("LibreAlexNetb-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)

Checkpoints

Todos os arquivos de pesos publicados desta família.

ArquivoEntrada (px)Licença dos pesos
classify
LibreAlexNetb-cls.pt224bsd-3-clause

Todos os arquivos acima existem hoje na organização LibreYOLO e são baixados no primeiro uso.

Licenciamento

Confira a licença no repositório do Hugging Face correspondente aos pesos que você baixar. Cada checkpoint na organização LibreYOLO tem uma licença, e ela nem sempre é a mesma em toda a família. Esse repositório é a fonte oficial. O resumo abaixo descreve o que se aplicava na última verificação desta página.

Esta é uma descrição das licenças envolvidas, não uma orientação jurídica. Se a resposta tiver importância comercial, leia as licenças e procure sua própria assessoria.

Trabalho original
AlexNet, University of Toronto
Licença original
BSD-3-Clause
Código-fonte original
github.com/pytorch/vision
Código do LibreYOLO
MIT
Pesos
BSD-3-Clause, republicado em huggingface.co/LibreYOLO
Interpretação
BSD-3-Clause is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep the copyright notice, the list of conditions and the disclaimer with any copy you redistribute, and it forbids using the contributors' names to endorse a derived product without permission; it carries no explicit patent grant. LibreYOLO's code and the shipped checkpoint are both derived from torchvision's single-tower AlexNet, the later "one weird trick" graph, not the original two-GPU 2012 model, and no code from the 2012 paper's authors is republished here. Torchvision itself notes that BSD-3-Clause redistribution of a pretrained checkpoint is an implied basis rather than a grant written for that specific checkpoint, and that pretrained-model terms can depend on the data a model was trained on; LibreYOLO repeats that caveat on the hosted weights repository.

Verificado com o LibreYOLO v1.5.0. As tabelas de suporte, os checkpoints e os números de benchmark desta página são gerados a partir da biblioteca lançada e dos pesos publicados, não escritos à mão.