|
--- |
|
license: apache-2.0 |
|
tags: |
|
- mlx |
|
- mlx-image |
|
- vision |
|
- image-classification |
|
datasets: |
|
- imagenet-1k |
|
library_name: mlx-image |
|
|
|
--- |
|
|
|
# Wide ResNet50 2 |
|
|
|
WideResNet50 2 is a computer vision model trained on imagenet-1k representing an improvement of ResNet architecture. It was introduced in the paper [Wide Residual Networks](https://arxiv.org/abs/1605.07146). |
|
|
|
Disclaimer: This is a porting of the torchvision model weights to Apple MLX Framework. |
|
|
|
|
|
## How to use |
|
```bash |
|
pip install mlx-image |
|
``` |
|
|
|
Here is how to use this model for image classification: |
|
|
|
```python |
|
from mlxim.model import create_model |
|
from mlxim.io import read_rgb |
|
from mlxim.transform import ImageNetTransform |
|
|
|
transform = ImageNetTransform(train=False, img_size=224) |
|
x = transform(read_rgb("cat.png")) |
|
x = mx.expand_dims(x, 0) |
|
|
|
model = create_model("wide_resnet50_2") |
|
model.eval() |
|
|
|
logits = model(x) |
|
``` |
|
|
|
You can also use the embeds from last conv layer: |
|
```python |
|
from mlxim.model import create_model |
|
from mlxim.io import read_rgb |
|
from mlxim.transform import ImageNetTransform |
|
|
|
transform = ImageNetTransform(train=False, img_size=224) |
|
x = transform(read_rgb("cat.png")) |
|
x = mx.expand_dims(x, 0) |
|
|
|
# first option |
|
model = create_model("wide_resnet50_2", num_classes=0) |
|
model.eval() |
|
|
|
embeds = model(x) |
|
|
|
# second option |
|
model = create_model("wide_resnet50_2") |
|
model.eval() |
|
|
|
embeds = model.features(x) |
|
``` |
|
|
|
## Model Comparison |
|
|
|
Explore the metrics of this model in [mlx-image model results](https://github.com/riccardomusmeci/mlx-image/blob/main/results/results-imagenet-1k.csv). |