AlexNet

AlexNet to sieć konwolucyjna, która wygrała ILSVRC 2012 i pomogła zapoczątkować erę uczenia głębokiego w wizji komputerowej. LibreYOLO dostarcza późniejszą, jednowieżową rewizję tej architektury do klasyfikacji obrazów.

Zadania
classify
Rozmiary
b at 224 px
Instalacja
pip install libreyolo
Poziom obsługi
Tylko inferencja, od wersji v. Tylko predykcja, walidacja i eksport. Funkcje trenowania nie mają zastosowania.
Projekt źródłowy
AlexNet, autorzy: University of Toronto, licencja: BSD-3-Clause. Publikacja, kod źródłowy
Licencje
Kod: BSD-3-Clause, wagi: BSD-3-Clause. Użycie komercyjne

Instalacja

AlexNet nie wymaga opcjonalnego extra. Wszystko, co importuje, znajduje się w instalacji bazowej.

bash
pip install libreyolo

Predykcja

Wagi są pobierane z Hugging Face przy pierwszym użyciu i zapisywane lokalnie w pamięci podręcznej.

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

Klasyfikator zwraca result.probs zamiast result.boxes: top1 i top5 podają indeksy klas, a top1conf i top5conf ich wskaźniki pewności. Informacje o źródłach, streamingu i obsłudze wyników zawiera predykcja.

Warianty

Jeden rozmiar. Dostarczany graf to późniejsza, jednowieżowa rewizja wydana przez torchvision, z 64 filtrami w pierwszej warstwie i bez local response normalization, a nie oryginalna architektura z 2012 roku działająca na dwóch GPU. LibreYOLO dostarcza tę rodzinę wyłącznie do inferencji: predykcja, walidacja top-1/top-5 w stylu ImageNet oraz eksport są obsługiwane, a dostrajanie nie zostało zaimplementowane.

Walidacja

val() działa na podziale w formacie ImageFolder (katalog z podfolderami train/ i val/, po jednym folderze na klasę) i zwraca dokładność top-1 i top-5.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreAlexNetb-cls.pt") # data to katalog główny z podziałami train/ i val/ w folderach klas# (układ ImageFolder), a nie YAML zbioru danych.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/

Eksport

ZadanieONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
classifyclassify to ONNX: obsługiwaneclassify to TorchScript: obsługiwaneclassify to ExecuTorch: obsługiwaneclassify to TensorRT: obsługiwaneclassify to OpenVINO: obsługiwaneclassify to Paddle: brak obsługiclassify to MNN: brak obsługiclassify to RKNN: brak obsługiclassify to ncnn: obsługiwaneclassify to TFLite: brak obsługiclassify to CoreML: brak obsługiclassify to Core AI: brak obsługi

Wyeksportowany artefakt ładuje się z powrotem przez LibreYOLO() na podstawie sufiksu pliku, więc plik .onnx lub .engine zachowuje się jak checkpoint i zwraca ten sam Results. Eksport wymienia argumenty przyjmowane przez każdy format oraz te dodatkowe, które wnoszą niektóre z nich.

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
Użycie wyeksportowanego pliku
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Fabryka wybiera ścieżkę na podstawie sufiksu pliku, więc# wyeksportowany artefakt ładuje się jak każdy checkpoint i zwraca# ten sam obiekt Results.model = LibreYOLO("LibreAlexNetb-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)

Checkpointy

Wszystkie opublikowane pliki wag tej rodziny.

PlikWejście (px)Licencja wag
classify
LibreAlexNetb-cls.pt224bsd-3-clause

Każdy z powyższych plików jest obecnie dostępny w organizacji LibreYOLO i pobierany przy pierwszym użyciu.

Licencjonowanie

Sprawdź licencję w repozytorium konkretnych pobieranych wag na Hugging Face. Każdy checkpoint w organizacji LibreYOLO ma licencję, która nie zawsze jest taka sama w całej rodzinie. To repozytorium jest źródłem rozstrzygającym, a poniższe podsumowanie opisuje stan z chwili ostatniej weryfikacji tej strony.

To opis obowiązujących licencji, a nie porada prawna. Jeśli odpowiedź ma znaczenie komercyjne, przeczytaj licencje i zasięgnij własnej porady prawnej.

Oryginalna praca
AlexNet, University of Toronto
Licencja projektu źródłowego
BSD-3-Clause
Kod źródłowy projektu
github.com/pytorch/vision
Kod LibreYOLO
MIT
Wagi
BSD-3-Clause, ponownie opublikowane w huggingface.co/LibreYOLO
Interpretacja
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.

Zweryfikowano z LibreYOLO v1.5.0. Tabele obsługi, checkpointy i wyniki benchmarków na tej stronie są generowane na podstawie wydanej biblioteki i opublikowanych wag, a nie wpisywane ręcznie.