Hub documentation
Hugging Face'te mlx-image kullanımı
Hugging Face'te mlx-image kullanımı
mlx-image, Apple MLX üzerine inşa edilmiş, Riccardo Musmeci tarafından geliştirilen bir görüntü modelleri kütüphanesidir. Harika timm kütüphanesini MLX modelleri için yeniden oluşturmayı amaçlar.
Hub'da mlx-image'ı Keşfetme
mlx-image modellerini, bu sorguda olduğu gibi mlx-image kitaplığı adını kullanarak filtreleyerek bulabilirsiniz.
Ayrıca, MLX formatı için ağırlıkları dönüştüren ve yayımlayan katkıda bulunanlar için açık bir mlx-vision topluluğu da bulunmaktadır.
Kurulum
pip install mlx-image
Modeller
Model ağırlıkları, Hugging Face'teki mlx-vision topluluğunda mevcuttur.
Önceden eğitilmiş ağırlıklarla bir model yüklemek için:
from mlxim.model import create_model
# loading weights from HuggingFace (https://huggingface.co/mlx-vision/resnet18-mlxim)
model = create_model("resnet18") # pretrained weights loaded from HF
# loading weights from local file
model = create_model("resnet18", weights="path/to/resnet18/model.safetensors")Tüm kullanılabilir modelleri listelemek için:
from mlxim.model import list_models
list_models()ImageNet-1K Sonuçları
results-imagenet-1k.csv dosyasına giderek mlx-image'a dönüştürülen her modeli ve farklı ayarlarla ImageNet-1K üzerindeki performansını kontrol edin.
TL;DR performansı, PyTorch uygulamalarındaki orijinal modellerle karşılaştırılabilir düzeydedir.
PyTorch ve diğer tanıdık araçlara benzerlik
mlx-image, PyTorch'e olabildiğince yakın olmayı hedefler:
DataLoader-> kendicollate_fntanımlayabilir ve veri yükleme hızını artırmak içinnum_workerskullanabilirsinizDataset->mlx-imagezatenLabelFolderDataset(güzel ve eski PyTorchImageFolder) ileFolderDataset(içinde görseller bulunan genel bir klasör) yapısını desteklerModelCheckpoint-> en iyi modeli takip eder ve diske kaydeder (PyTorchLightning'e benzer). Ayrıca erken durdurmayı önerir
Eğitim
Eğitim, PyTorch ile benzerdir. Bir modelin nasıl eğitileceğine dair bir örnek:
import mlx.nn as nn
import mlx.optimizers as optim
from mlxim.model import create_model
from mlxim.data import LabelFolderDataset, DataLoader
train_dataset = LabelFolderDataset(
root_dir="path/to/train",
class_map={0: "class_0", 1: "class_1", 2: ["class_2", "class_3"]}
)
train_loader = DataLoader(
dataset=train_dataset,
batch_size=32,
shuffle=True,
num_workers=4
)
model = create_model("resnet18") # pretrained weights loaded from HF
optimizer = optim.Adam(learning_rate=1e-3)
def train_step(model, inputs, targets):
logits = model(inputs)
loss = mx.mean(nn.losses.cross_entropy(logits, target))
return loss
model.train()
for epoch in range(10):
for batch in train_loader:
x, target = batch
train_step_fn = nn.value_and_grad(model, train_step)
loss, grads = train_step_fn(x, target)
optimizer.update(model, grads)
mx.eval(model.state, optimizer.state)Ek Kaynaklar
İletişim
Herhangi bir sorunuz varsa, lütfen riccardomusmeci92@gmail.com adresine e-posta gönderin.