Hub documentation
Menggunakan mlx-image di Hugging Face
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 mendefinisikancollate_fnAnda sendiri dan juga menggunakannum_workersuntuk mempercepat pemuatan dataDataset->mlx-imagesudah mendukungLabelFolderDataset(PyTorchImageFolderyang sudah lama dikenal) danFolderDataset(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
- repositori mlx-image
- komunitas mlx-vision
Kontak
Jika Anda memiliki pertanyaan, silakan kirim email ke [email protected].