Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using model.train #986

Open
1 task done
Josephts1 opened this issue Jan 22, 2025 · 2 comments
Open
1 task done

Using model.train #986

Josephts1 opened this issue Jan 22, 2025 · 2 comments
Labels
info needed More information is required to proceed question Further information is requested

Comments

@Josephts1
Copy link

Search before asking

Question

Estuve leyendo los parámetros aceptados por la función .train de YOLO. No comprendí muy bien el funcionamiento del parámetros "Seed", no entiendo su aplicación, me podrían explicar por favor? El parámetro "Seed" hace que las imágenes en el dataset ingresen al modelo de una forma aleatoria pero pudiendo replicar esa aleatoriedad?

Gracias, quedo atento.

result=model.train(data="/content/drive/MyDrive/Proyecto_de_grado/data/data.yaml", epochs=100,patience=50,batch=8,plots=True,optimizer="auto",lr0=1e-4,seed=42,project="/content/drive/MyDrive/Proyecto_de_grado/runs/freeze_layers/todo_congelado_11s")

Additional

No response

@Josephts1 Josephts1 added the question Further information is requested label Jan 22, 2025
@UltralyticsAssistant UltralyticsAssistant added the info needed More information is required to proceed label Jan 22, 2025
@UltralyticsAssistant
Copy link
Member

👋 Hola @Josephts1, ¡gracias por plantear una consulta sobre Ultralytics HUB 🚀! No te preocupes, nuestro equipo está aquí para ayudarte. En primer lugar, te recomendamos que consultes nuestra documentación oficial sobre Ultralytics HUB para más información:

  • Quickstart. Comienza a entrenar y desplegar modelos YOLO con HUB en segundos.
  • Datasets: Preparing and Uploading. Aprende a preparar y cargar tus datasets en formato YOLO.
  • Projects: Creating and Managing. Agrupa tus modelos en proyectos para una mejor organización.
  • Models: Training and Exporting. Entrena modelos YOLOv5 y YOLOv8 en tus propios datasets, y expórtalos a diversos formatos para su despliegue, incluyendo ejemplos como el uso de parámetros como seed.
  • Integrations. Explora opciones de integración para tus modelos entrenados, como TensorFlow, ONNX, OpenVINO, CoreML y PaddlePaddle.
  • Ultralytics HUB App. Obtén más información sobre la aplicación móvil de Ultralytics para iOS y Android, que permite ejecutar modelos directamente en tu dispositivo móvil.
    • iOS: Aprende cómo usar modelos YOLO CoreML en dispositivos Apple.
    • Android: Explora la aceleración TFLite en dispositivos Android.
  • Inference API. Comprende cómo utilizar nuestra API de inferencia para ejecutar tus modelos entrenados en la nube.

💡 Respecto a tu pregunta sobre el parámetro seed, si necesitas más detalles sobre su uso, te sugerimos que también navegues por nuestra documentación relacionada con el entrenamiento de YOLOv8 disponible aquí: YOLOv8 Train Docs. El parámetro seed permite controlar la inicialización aleatoria para garantizar la reproducibilidad de tu entrenamiento.

📌 Si este es un 🐛 reporte de bug o hay algo que no funciona según lo esperado, por favor proporciona un ejemplo mínimo reproducible (MRE). 🚀 Esto debería incluir información de tu entorno, datos reproducibles y los pasos necesarios para identificar el problema.

🕒 Un ingeniero de Ultralytics revisará y proporcionará asistencia adicional pronto. ¡Gracias por tu paciencia! 😊

@pderrenger
Copy link
Member

@Josephts1 ¡Hola! 😊

Gracias por tu consulta. El parámetro seed que mencionas en la función .train tiene como principal objetivo garantizar la reproducibilidad de los resultados. Cuando entrenas un modelo con un conjunto de datos, hay ciertos procesos aleatorios involucrados, como:

  1. Aleatorización del orden de las imágenes en cada época.
  2. Auge de técnicas de data augmentation (como rotaciones, recortes, etc.).
  3. Inicialización de los pesos del modelo.
  4. División del dataset en subconjuntos de entrenamiento y validación (si es aplicable).

Configurar un valor específico para seed (por ejemplo, seed=42) asegura que estos procesos aleatorios sean consistentes entre diferentes ejecuciones del entrenamiento. Esto significa que si vuelves a ejecutar el mismo código con el mismo valor de seed, obtendrás los mismos resultados (dadas las mismas condiciones, como datos y hardware).

Esto es especialmente útil cuando estás experimentando con diferentes hiperparámetros o necesitas compartir resultados reproducibles con colegas.

En resumen, el seed no elimina la aleatoriedad, pero controla y fija esa aleatoriedad, permitiendo replicar exactamente los mismos resultados. Para más detalles técnicos sobre la inicialización de semillas puedes consultar la función init_seeds en la documentación de Ultralytics: init_seeds.

Espero que esto aclare tu duda, pero si necesitas más información, ¡no dudes en preguntar! 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
info needed More information is required to proceed question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants