from ultralytics import YOLO def train_model_and_store(model_name, epochs, img_size, batch_size, device, optimizer, learning_rate): # Load the pretrained model model = YOLO(f'./base_models/{model_name}') model.train( data='./BracU_Ds/data.yaml', epochs=epochs, imgsz=img_size, batch=batch_size, device=device, project='Activity_Detection_New_BracU', name=model_name, optimizer=optimizer, lr0=learning_rate, patience=10, plots=True, seed=42, # pretrained=True, # degrees=15, # translate=0.2, # scale=0.8, # shear=10.0, # perspective=0.001, # fliplr=0.5, # mosaic=1.0, # mixup=0.2, # hsv_h=0.015, # hsv_s=0.7, # hsv_v=0.4 ) # Load the best model after training # best_model_path = f'./Activity_Detection_New_BracU/{model_name}/weights/best.pt' # model = YOLO(best_model_path) # Evaluate the model # model.val(project='Activity_Detection_New_Eval', name=model_name) if __name__ == "__main__": train_model_and_store( model_name="yolov8n.pt", epochs=50, img_size=640, batch_size=64, device=0, optimizer='Adam', learning_rate=0.005 ) # We should fine tune the following model # yolo11n.pt # yolov10n.pt # yolov8n.pt # yolov8m.pt # yolo11n-cls.pt # yolov8n-cls.pt # nohup python train.py > logs/training_log_yolov8n_BracU_Ds.txt 2>&1 & # 2980863