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.
pip install libreyoloPredição
Os pesos são baixados do Hugging Face no primeiro uso e ficam em cache localmente.
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)libreyolo predict model=LibreAlexNetb-cls.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueUm 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.
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"])libreyolo val model=LibreAlexNetb-cls.pt data=imagenet-1k/Exportação
| Tarefa | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| classify | classify to ONNX: compatível | classify to TorchScript: compatível | classify to ExecuTorch: compatível | classify to TensorRT: compatível | classify to OpenVINO: compatível | classify to Paddle: incompatível | classify to MNN: incompatível | classify to RKNN: incompatível | classify to ncnn: compatível | classify to TFLite: incompatível | classify to CoreML: incompatível | classify 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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreAlexNetb-cls.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreAlexNetb-cls.pt format=onnxlibreyolo export model=LibreAlexNetb-cls.pt format=tensorrt half=Truefrom 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.
| Arquivo | Entrada (px) | Licença dos pesos |
|---|---|---|
| classify | ||
| LibreAlexNetb-cls.pt | 224 | bsd-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.