Padroneggiare l'implementazione di YOLOv5 su Google Cloud Platform (GCP) Deep Learning VM
Intraprendere il viaggio dell'intelligenza artificiale (AI) e dell'apprendimento automatico (ML) può essere esaltante, soprattutto se si sfrutta la potenza e la flessibilità di una piattaforma di cloud computing. Google Cloud Platform (GCP) offre strumenti robusti, pensati per gli appassionati e i professionisti del ML. Uno di questi strumenti è la Deep Learning VM, preconfigurata per attività di data science e ML. In questo tutorial, ci occuperemo del processo di configurazione di Ultralytics YOLOv5 su una Deep Learning VM di GCP. Sia che stiate muovendo i primi passi nel campo del ML, sia che siate già esperti, questa guida fornisce un percorso chiaro per l'implementazione di modelli di rilevamento degli oggetti basati su YOLOv5.
Inoltre, se siete nuovi utenti di GCP, siete fortunati grazie a un'offerta di credito gratuito di 300 dollari per dare il via ai vostri progetti.
Oltre a GCP, esplorate altre opzioni accessibili di avvio rapido per YOLOv5, come il nostro Quaderno di Google Colab per un'esperienza basata su browser, o la scalabilità di Amazon AWS. Inoltre, gli appassionati di container possono utilizzare la nostra immagine Docker ufficiale disponibile su Hub Docker
per un ambiente incapsulato, seguendo il nostro Guida rapida a Docker.
Passo 1: Creare e configurare la macchina virtuale per l'apprendimento profondo
Iniziamo creando una macchina virtuale ottimizzata per il deep learning:
- Accedere al mercato GCP e selezionare la macchina virtuale Deep Learning.
- Scegliete un'istanza n1-standard-8; offre un equilibrio di 8 vCPU e 30 GB di memoria, adatto a molte attività di ML.
- Selezionare una GPU. La scelta dipende dal carico di lavoro; anche una GPU T4 di base accelererà in modo significativo la formazione dei modelli.
- Selezionate la casella "Installa automaticamente il driver dellaGPU NVIDIA al primo avvio?" per una configurazione perfetta.
- Allocare un disco persistente SSD da 300 GB per evitare colli di bottiglia I/O.
- Fate clic su "Deploy" e consentite a GCP di eseguire il provisioning della vostra macchina virtuale personalizzata per il Deep Learning.
Questa macchina virtuale viene fornita con strumenti e framework essenziali, tra cui la distribuzione Anaconda Python , che contiene molte dipendenze necessarie per YOLOv5.
Passo 2: preparare la macchina virtuale per YOLOv5
Dopo aver configurato l'ambiente, installiamo e prepariamo YOLOv5 :
# Clone the YOLOv5 repository from GitHub
git clone https://github.com/ultralytics/yolov5
# Navigate into the cloned repository directory
cd yolov5
# Install the required Python packages listed in requirements.txt
pip install -r requirements.txt
Questo processo di configurazione assicura che si disponga di un ambiente Python versione 3.8.0 o più recente e di PyTorch 1.8 o successivo. I nostri script scaricano automaticamente i modelli e i set di dati dall'ultimaversione di YOLOv5 , semplificando il processo di avvio della formazione dei modelli.
Fase 3: addestramento e distribuzione dei modelli YOLOv5
Una volta completata la configurazione, si è pronti ad addestrare, convalidare, prevedere ed esportare con YOLOv5 sulla propria VM GCP:
# Train a YOLOv5 model on your dataset (e.g., yolov5s)
python train.py --data coco128.yaml --weights yolov5s.pt --img 640
# Validate the trained model to check Precision, Recall, and mAP
python val.py --weights yolov5s.pt --data coco128.yaml
# Run inference using the trained model on images or videos
python detect.py --weights yolov5s.pt --source path/to/your/images_or_videos
# Export the trained model to various formats like ONNX, CoreML, TFLite for deployment
python export.py --weights yolov5s.pt --include onnx coreml tflite
Con pochi comandi, YOLOv5 consente di addestrare modelli di rilevamento degli oggetti personalizzati in base alle proprie esigenze specifiche o di utilizzare i pesi pre-addestrati per ottenere rapidamente risultati in diverse attività. Esplorate le diverse opzioni di distribuzione dei modelli dopo l'esportazione.
Allocazione dello spazio di swap (opzionale)
Se si lavora con set di dati particolarmente grandi che potrebbero superare la RAM della macchina virtuale, si consiglia di aggiungere spazio di swap per evitare errori di memoria:
# Allocate a 64GB swap file
sudo fallocate -l 64G /swapfile
# Set the correct permissions for the swap file
sudo chmod 600 /swapfile
# Set up the Linux swap area
sudo mkswap /swapfile
# Enable the swap file
sudo swapon /swapfile
# Verify the swap space allocation (should show increased swap memory)
free -h
Formazione di set di dati personalizzati
Per addestrare YOLOv5 sul vostro set di dati personalizzato all'interno di GCP, seguite i seguenti passaggi generali:
- Preparare il set di dati secondo il formato YOLOv5 (immagini e file di etichetta corrispondenti). Per una guida, consultare la nostra panoramica sui set di dati.
- Caricare il set di dati nella macchina virtuale GCP usando
gcloud compute scp
o la funzione SSH della console web. - Creare un file YAML di configurazione del set di dati (
custom_dataset.yaml
) che specifica i percorsi dei dati di addestramento e di validazione, il numero di classi e i nomi delle classi. - Iniziare il processo di addestramento utilizzando il dataset YAML personalizzato e potenzialmente partendo da pesi pre-addestrati:
# Example: Train YOLOv5s on a custom dataset for 100 epochs
python train.py --img 640 --batch 16 --epochs 100 --data custom_dataset.yaml --weights yolov5s.pt
Per istruzioni complete sulla preparazione dei dati e sulla formazione con set di dati personalizzati, consultare la documentazione di Ultralytics YOLOv5 Train.
Sfruttare lo storage nel cloud
Per una gestione efficiente dei dati, soprattutto in caso di grandi insiemi di dati o di numerosi esperimenti, integrate il vostro flusso di lavoro YOLOv5 con Google Cloud Storage:
# Ensure Google Cloud SDK is installed and initialized
# If not installed: curl https://sdk.cloud.google.com/ | bash
# Then initialize: gcloud init
# Example: Copy your dataset from a GCS bucket to your VM
gsutil cp -r gs://your-data-bucket/my_dataset ./datasets/
# Example: Copy trained model weights from your VM to a GCS bucket
gsutil cp -r ./runs/train/exp/weights gs://your-models-bucket/yolov5_custom_weights/
Questo approccio consente di archiviare grandi set di dati e modelli addestrati in modo sicuro ed economico nel cloud, riducendo al minimo i requisiti di archiviazione dell'istanza VM.
Riflessioni conclusive
Congratulazioni! Ora siete in grado di sfruttare le capacità di Ultralytics YOLOv5 combinate con la potenza di calcolo di Google Cloud Platform. Questa configurazione offre scalabilità, efficienza e versatilità per i vostri progetti di rilevamento degli oggetti. Che si tratti di esplorazione personale, ricerca accademica o creazione di soluzioni industriali, avete fatto un passo importante nel mondo dell'IA e del ML su cloud.
Considerate l'utilizzo di Ultralytics HUB per un'esperienza semplificata e senza codice per addestrare e gestire i vostri modelli.
Ricordate di documentare i vostri progressi, di condividere le intuizioni con la vivace comunità di Ultralytics e di utilizzare risorse come le discussioni su GitHub per la collaborazione e il supporto. Ora, andate avanti e innovate con YOLOv5 e GCP!
Volete continuare a migliorare le vostre competenze di ML? Approfondite la nostra documentazione ed esplorate il blog di Ultralytics per ulteriori tutorial e approfondimenti. Lasciate che la vostra avventura nell'intelligenza artificiale continui!