Содержание статьи
Рекомендации по машинному обучению и советы по обучению моделей
Выбор оптимизатора
However, the ideal number of epochs can vary based on your dataset’s size and project goals. Larger datasets might require more epochs for the model to learn effectively, while smaller datasets might need fewer epochs to avoid overfitting. With respect to YOLO11, you can set the epochs в сценарии обучения.
Using pre-trained weights can significantly reduce training times and improve model performance by starting from a model that already understands basic features. In YOLO11, you can set the pretrained параметр True или укажи путь к пользовательским предварительно обученным весам в своей конфигурации обучения. Этот подход, известный как трансферное обучение, использует знания из больших наборов данных, чтобы адаптироваться к твоей конкретной задаче. Узнай больше о предварительно обученных весах и их преимуществах здесь.
Итак, что такое обучение модели? Обучение модели — это процесс обучения твоей модели распознавать визуальные паттерны и делать прогнозы на основе твоих данных. Оно напрямую влияет на производительность и точность твоего приложения. В этом руководстве мы расскажем о лучших практиках, методах оптимизации и советах по устранению неполадок, которые помогут тебе эффективно обучать модели компьютерного зрения.
Облачное обучение предлагает масштабируемость и мощное оборудование и идеально подходит для работы с большими наборами данных и сложными моделями. Такие платформы, как Google Cloud, AWS и Azure, предоставляют доступ по требованию к высокопроизводительным GPU и TPU, ускоряя время обучения и позволяя проводить эксперименты с большими моделями. Однако облачное обучение может быть дорогим, особенно в течение длительного времени, а передача данных может увеличить расходы и задержки.
Mixed precision training utilizes both 16-bit (FP16) and 32-bit (FP32) floating-point types to balance computational speed and precision. This approach speeds up training and reduces memory usage without sacrificing model accuracy. To enable mixed precision training in YOLO11, set the amp параметр True в твоей конфигурации тренировок. Это активирует автоматическую тренировку смешанной точности (AMP). Более подробную информацию об этой технике оптимизации см. конфигурация тренировки.
Используйте yolov2Layers (Computer Vision Toolbox) функция, чтобы автоматически создать сеть обнаружения объектов YOLO v2, учитывая предварительно обученную сеть извлечения признаков ResNet-50. yolov2Layers требует, чтобы вы задали несколько входных параметров, которые параметрируют сеть YOLO v2:
ВОПРОСЫ И ОТВЕТЫ
Кроме того, можно выполнить тонкую настройку параметров оптимизатора для повышения производительности модели. Регулировка скорости обучения задает размер шагов при обновлении параметров. Для стабильности вы можете начать с умеренного темпа обучения и постепенно снижать его с течением времени, чтобы улучшить долгосрочное обучение. Кроме того, установка импульса определяет, насколько сильно прошлые обновления влияют на текущие. Обычное значение импульса составляет около 0,9. Как правило, это обеспечивает хороший баланс.
Сеть обнаружения объектов YOLO v2 состоит из двух подсетей. Сеть извлечения признаков сопровождается сетью обнаружения. Сеть извлечения признаков обычно является предварительно обученным CNN (для получения дополнительной информации смотрите Предварительно обученные Глубокие нейронные сети). Этот пример использует ResNet-50 для извлечения признаков. Можно также использовать другие предварительно обученные сети, такие как MobileNet v2, или ResNet-18 может также использоваться в зависимости от требований к приложению. Подсеть обнаружения является маленьким CNN по сравнению с сетью извлечения признаков и состоит из нескольких сверточных слоев и слоев, специфичных для YOLO v2.
Чтобы улучшить использование GPU , установи batch_size parameter in your training configuration to the maximum size supported by your GPU. This ensures that you make full use of the GPU’s capabilities, reducing training time. If you encounter memory errors, incrementally reduce the batch size until training runs smoothly. For YOLO11, setting batch=-1 в твоем обучающем скрипте автоматически определит оптимальный размер партии для эффективной обработки. За дополнительной информацией обращайся к конфигурация тренировки.
При обучении моделей на больших наборах данных эффективное использование твоего GPU является ключевым моментом. Размер партии — важный фактор. Это количество образцов данных, которые модель машинного обучения обрабатывает за одну итерацию обучения. Используя максимальный размер пакета, поддерживаемый твоим GPU, ты сможешь полностью использовать его возможности и сократить время обучения модели. Однако ты хочешь избежать нехватки памяти GPU . Если ты столкнулся с ошибками памяти, постепенно уменьшай размер партии до тех пор, пока модель не будет обучаться без проблем.
An optimizer is an algorithm that adjusts the weights of your neural network to minimize the loss function, which measures how well the model is performing. In simpler terms, the optimizer helps the model learn by tweaking its parameters to reduce errors. Choosing the right optimizer directly affects how quickly and accurately the model learns.
Увеличение данных используется, чтобы улучшить сетевую точность путем случайного преобразования исходных данных во время обучения. При помощи увеличения данных можно добавить больше разнообразия в обучающие данные, на самом деле не имея необходимость увеличить число помеченных обучающих выборок.
For YOLO11, you can enable early stopping by setting the patience parameter in your training configuration. For example, patience=5 Это означает, что обучение будет остановлено, если не будет улучшений в метриках валидации в течение 5 последовательных эпох. Использование этого метода гарантирует, что процесс обучения остается эффективным и достигает оптимальной производительности без чрезмерных вычислений.
A common question that comes up is how to determine the number of epochs to train the model for. A good starting point is 300 epochs. If the model overfits early, you can reduce the number of epochs. If overfitting does not occur after 300 epochs, you can extend the training to 600, 1200, or more epochs.