Hub documentation

Menggunakan mlx-image di Hugging Face

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Menggunakan mlx-image di Hugging Face

mlx-image adalah pustaka model gambar yang dikembangkan oleh Riccardo Musmeci dan dibangun di atas MLX Apple. Pustaka ini berusaha mereplikasi timm yang luar biasa, tetapi khusus untuk model MLX.

Menjelajahi mlx-image di Hub

Anda dapat menemukan model mlx-image dengan memfilter menggunakan nama pustaka mlx-image, seperti pada kueri ini. Terdapat juga komunitas mlx-vision yang terbuka bagi kontributor untuk mengonversi dan menerbitkan bobot dalam format MLX.

Instalasi

pip install mlx-image

Model

Bobot model tersedia di komunitas mlx-vision di Hugging Face.

Untuk memuat model dengan bobot terlatih sebelumnya:

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")

Untuk mendaftar semua model yang tersedia:

from mlxim.model import list_models
list_models()

Hasil ImageNet-1K

Buka results-imagenet-1k.csv untuk memeriksa setiap model yang dikonversi ke mlx-image beserta kinerjanya pada ImageNet-1K dengan berbagai pengaturan.

Performa TL;DR sebanding dengan model asli dari implementasi PyTorch.

Kemiripan dengan PyTorch dan alat-alat lain yang sudah dikenal

mlx-image berusaha sedekat mungkin dengan PyTorch:

  • DataLoader -> Anda dapat mendefinisikan collate_fn Anda sendiri dan juga menggunakan num_workers untuk mempercepat pemuatan data

  • Dataset -> mlx-image sudah mendukung LabelFolderDataset (PyTorch ImageFolder yang sudah lama dikenal) dan FolderDataset (folder generik yang berisi gambar)

  • ModelCheckpoint -> melacak model terbaik dan menyimpannya ke disk (mirip dengan PyTorchLightning). Ini juga menyarankan penghentian dini

Pelatihan

Pelatihan mirip dengan PyTorch. Berikut adalah contoh cara melatih model:

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)

Sumber Daya Tambahan

Kontak

Jika Anda memiliki pertanyaan, silakan kirim email ke [email protected].

Update on GitHub