Instructions to use JohnSupertramp2026/convnext-tiny-plantvillage with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use JohnSupertramp2026/convnext-tiny-plantvillage with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("image-classification", model="JohnSupertramp2026/convnext-tiny-plantvillage") pipe("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/parrots.png")# Load model directly from transformers import AutoImageProcessor, AutoModelForImageClassification processor = AutoImageProcessor.from_pretrained("JohnSupertramp2026/convnext-tiny-plantvillage") model = AutoModelForImageClassification.from_pretrained("JohnSupertramp2026/convnext-tiny-plantvillage", device_map="auto") - Notebooks
- Google Colab
- Kaggle
ConvNeXt-Tiny ajustado sobre PlantVillage
Clasificador de enfermedades foliares en 38 categorías, obtenido por ajuste fino de
facebook/convnext-tiny-224 sobre el conjunto PlantVillage.
Este modelo existe como contrapunto arquitectónico de ViT-Base/16: una red convolucional moderna frente a un transformer, bajo condiciones de entrenamiento idénticas. Comparar ViT contra otro transformer no habría dicho nada sobre atención frente a convolución.
Forma parte de FitoAsistente, proyecto final del curso de Inteligencia Artificial del Magíster en Data Science de la Universidad San Sebastián. Jonathan Núñez Moya · Francisco Rietta González · Agosto de 2026.
- Portada del proyecto: https://huggingface.co/spaces/JohnSupertramp2026/fitoasistente
Uso
from transformers import AutoImageProcessor, AutoModelForImageClassification
from PIL import Image
import torch
proc = AutoImageProcessor.from_pretrained("JohnSupertramp2026/convnext-tiny-plantvillage")
mod = AutoModelForImageClassification.from_pretrained("JohnSupertramp2026/convnext-tiny-plantvillage").eval()
img = Image.open("hoja.jpg").convert("RGB")
with torch.no_grad():
logits = mod(**proc(images=img, return_tensors="pt")).logits
probs = torch.softmax(logits, dim=-1)[0]
i = int(probs.argmax())
print(mod.config.id2label[i], f"{probs[i]*100:.1f} %")
Datos y procedimiento
Idénticos a los del modelo con el que se compara: 20 % estratificado de PlantVillage con semilla 42, partición 80/10/10 (8.688 / 1.086 / 1.087 imágenes), 3 épocas, lote 32, AdamW con learning rate 5e-5, warmup 0,1, weight decay 0,01, fp16 sobre GPU T4, y selección del mejor punto de control por macro F1 en validación.
Aumentación solo en entrenamiento: recorte aleatorio (escala 0,70-1,0), volteo horizontal y rotación de ±15°.
Esa identidad de condiciones es el punto: la única variable libre entre los dos modelos es la arquitectura.
Resultados
| Modelo | Preentrenamiento | Parámetros | Exactitud | Macro F1 | Weighted F1 | Latencia CPU | Tamaño |
|---|---|---|---|---|---|---|---|
| CNN desde cero (referencia) | No | 8,49 M | 59,60 % | 0,354 | 0,544 | — | 32,4 MB |
| ViT-Base/16 | ImageNet-21k | 85,83 M | 99,08 % | 0,988 | 0,991 | 395,0 ms | 327,4 MB |
| ConvNeXt-Tiny (este modelo) | ImageNet-1k | 27,85 M | 96,41 % | 0,919 | 0,960 | 119,6 ms | 106,2 MB |
Dónde gana este modelo. Tiene 3,1 veces menos parámetros que ViT, responde 3,3 veces más rápido en CPU y ocupa un tercio en disco. En un despliegue con restricciones de latencia o en un dispositivo móvil, es la elección correcta.
Dónde pierde, y por qué importa. La diferencia en exactitud frente a ViT es de 2,7 puntos,
pero en macro F1 es de 6,9. La razón es concreta: este modelo obtuvo F1 = 0,000 en
Potato___healthy -una clase con solo tres ejemplos en prueba, que no acertó ninguno- y
0,182 en Corn___Cercospora_leaf_spot, mientras que ViT resolvió ambas por encima de 0,900.
Abandonar las clases pequeñas es el mismo patrón que mostró la red entrenada desde cero.
Las dos arquitecturas coinciden en tres de sus cinco peores clases
(Corn___Cercospora_leaf_spot, Corn___Northern_Leaf_Blight y Tomato___Target_Spot):
cuando ambas fallan en lo mismo, la dificultad viene del problema y no del modelo.
Con más presupuesto el orden podría cambiar. Las curvas de entrenamiento muestran que este modelo todavía venía subiendo en la tercera época -partió en 0,646 de macro F1 y llegó a 0,936-, mientras que ViT alcanzó 0,981 ya en la primera. Su cifra final probablemente subestima su techo.
Limitaciones
- La exactitud está inflada por el agrupamiento de fotografías de una misma hoja física repartidas entre entrenamiento y prueba. El sesgo afecta por igual a los modelos comparados.
- Laboratorio, no campo. Mohanty et al. (2016) documentaron una caída al 31 % en fotografías de terreno.
- Abandona las clases con pocos ejemplos, como se detalla arriba. Si el caso de uso incluye categorías minoritarias, conviene ViT.
- Conjunto cerrado, sin mecanismo de rechazo.
- No reemplaza el criterio de un profesional.
Referencias
- Liu, Z. et al. (2022). A ConvNet for the 2020s. IEEE/CVF CVPR, 11976-11986.
- Hughes, D. P. y Salathé, M. (2015). An open access repository of images on plant health. arXiv:1511.08060.
- Mohanty, S. P., Hughes, D. P. y Salathé, M. (2016). Using deep learning for image-based plant disease detection. Frontiers in Plant Science, 7, 1419.
- Downloads last month
- 45
Model tree for JohnSupertramp2026/convnext-tiny-plantvillage
Base model
facebook/convnext-tiny-224Dataset used to train JohnSupertramp2026/convnext-tiny-plantvillage
Space using JohnSupertramp2026/convnext-tiny-plantvillage 1
Paper for JohnSupertramp2026/convnext-tiny-plantvillage
Evaluation results
- Exactitud on PlantVillage (20 % estratificado)self-reported0.964
- Macro F1 on PlantVillage (20 % estratificado)self-reported0.919
- Weighted F1 on PlantVillage (20 % estratificado)self-reported0.960