Repository: neuralmagic/sparseml (language: python)

Issue:
[Layer Wise Distillation] Minor fixes
This PR adds fixes a couple bugs discovered during implementation of distillation for yolov5.

Fixes
- Don't enforce type checking for the final model output when using PerLayerDistillation modifier. Or generally, allow said override for any distillation modifier. This is added to account for instances where a model will produce different output in eval and train mode, such as yolov5, and cause the final output between the student and teacher to not align.
- Don't clear handles immediately when no end epoch is set

Test Plan
Covered by existing unit tests
Update yolov5 integration to accomodate upstream push
This PR updates the yolov5 integration files in line with the yolov5 upstream push and fork update as outlined [here](https://github.com/neuralmagic/yolov5/pull/156). There are basically two changes included here:

**Removal of data files, configs, and scripts (support files)**
As SparseML will now be supported natively in YOLOv5, users will be able to use our tools across both SparseML and the YOLOv5 repos. There is a need to maintain a level of consistency in experience between the two interfaces. Maintaining a copy of the support files within SparseML poses a challenge, as it will be one of three sources for these files which will need to be kept in sync. By removing the files, we're able to track changes to supports files and keep them in sync through straightforward upstream syncs on our YOLOv5 fork. 

The support files were originally included in SparseML because at any given time the NM integration of yolov5 was typically a few releases behind the upstream and it was important to expose to the user the exact model architectures, configs, etc. they were using. With the upstream push, our support files will be in sync with the ones on ultralytics/yolov5 and users can reference them there. 

**Removal of val_onnx**
`val_onnx` was a script added to neuralmagic/yolov5 for quick DeepSparse base validation of our sparsified models. With the upstream push this functionality is now built into the nominal validation flow.

Test Plan
Testing covered in neuralmagic/yolov5#156




Discussion / hints:
> This is added to account for instances where a model will produce different output in eval and train mode, such as yolov5, and cause the final output between the student and teacher to not align.

Can you expand on this? What are the types/values produced in eval vs train?
> > This is added to account for instances where a model will produce different output in eval and train mode, such as yolov5, and cause the final output between the student and teacher to not align.
> 
> Can you expand on this? What are the types/values produced in eval vs train?

In train mode it returns only train outputs (a list) and in eval mode in returns a tuple of inference outputs and train outputs together. Train outputs are the pre-sigmoid values to be used for the loss calculation and the inference outputs are the post-processed values ready for NMS
> In train mode it returns only train outputs (a list) and in eval mode in returns a tuple of inference outputs and train outputs together. Train outputs are the pre-sigmoid values to be used for the loss calculation and the inference outputs are the post-processed values ready for NMS

Can we just ensure that the teacher/student are both in the same mode?
> > In train mode it returns only train outputs (a list) and in eval mode in returns a tuple of inference outputs and train outputs together. Train outputs are the pre-sigmoid values to be used for the loss calculation and the inference outputs are the post-processed values ready for NMS
> 
> Can we just ensure that the teacher/student are both in the same mode?

We want to keep the teacher in train mode so that all layers (e.g. batchnorm) behave as expected.

Also, as noted in my response to @rahul-tuli, the teacher output being type checked here isn't used by `PerLayerDistillationModifier`. I think outside of this specific yolov5 instance, it may not be a good idea to type check an unrelated output 
Gotcha, what if we just move the type checking into the compute_distillation method? We can have the check be there for normal distillation, but not for layer wise? Essentially the same thing you are doing here with the flag, but just moving it directly to the subclass methods
Hmm yeah, I think since we don't expect to be adding new distillation modifiers that might inherit from the base (and would want to use the type checking) this makes sense. Good idea - changed implemented. 


Fix patch:
diff --git a/Makefile b/Makefile
index 0c1172cc449..371a4b9778e 100644
--- a/Makefile
+++ b/Makefile
@@ -78,7 +78,7 @@ test:
 # run integration tests
 testinteg:
 	@echo "Running integration tests";
-	SPARSEZOO_TEST_MODE="true" pytest -x tests/integrations $(PYTEST_INTEGRATION_ARGS)
+	SPARSEZOO_TEST_MODE="true" pytest -x -ls tests/integrations $(PYTEST_INTEGRATION_ARGS)
 
 # create docs
 docs:
diff --git a/integrations/ultralytics-yolov5/README.md b/integrations/ultralytics-yolov5/README.md
index daf38d9f6a1..568ae5862b9 100644
--- a/integrations/ultralytics-yolov5/README.md
+++ b/integrations/ultralytics-yolov5/README.md
@@ -63,7 +63,6 @@ The SparseML installation provides a CLI for running YOLOv5 scripts with SparseM
 sparseml.yolov5.train
 sparseml.yolov5.validation
 sparseml.yolov5.export_onnx
-sparseml.yolov5.val_onnx
 ```
 
 Appending the `--help` argument displays a full list of options for the command:
@@ -147,7 +146,7 @@ deepsparse.benchmark path/to/model.onnx
 To run validation in the DeepSparse Engine, execute
 
 ```bash
-sparseml.yolov5.val_onnx --model_path path/to/model.onnx --data coco128.yaml
+sparseml.yolov5.validation --model_path path/to/model.onnx --data coco128.yaml --deepsparse
 ```
 
 
diff --git a/setup.py b/setup.py
index 07c1039b723..2af58e53395 100644
--- a/setup.py
+++ b/setup.py
@@ -189,7 +189,6 @@ def _setup_entry_points() -> Dict:
             "sparseml.yolov5.export_onnx=sparseml.yolov5.scripts:export",
             "sparseml.yolov5.train=sparseml.yolov5.scripts:train",
             "sparseml.yolov5.validation=sparseml.yolov5.scripts:val",
-            "sparseml.yolov5.val_onnx=sparseml.yolov5.scripts:val_onnx",
         ]
     )
 
diff --git a/src/sparseml/pytorch/sparsification/distillation/modifier_distillation.py b/src/sparseml/pytorch/sparsification/distillation/modifier_distillation.py
index a9494ae6194..9f86d135fca 100644
--- a/src/sparseml/pytorch/sparsification/distillation/modifier_distillation.py
+++ b/src/sparseml/pytorch/sparsification/distillation/modifier_distillation.py
@@ -120,6 +120,12 @@ def temperature(self, value: float):
         self._temperature = value
 
     def compute_distillation_loss(self, student_outputs, teacher_outputs, **kwargs):
+        if type(student_outputs) != type(teacher_outputs):
+            raise ValueError(
+                f"Student output type of {type(student_outputs)} must match "
+                f"teacher output type of {type(teacher_outputs)}"
+            )
+
         return kldiv_loss(
             student_outputs,
             teacher_outputs,
diff --git a/src/sparseml/pytorch/sparsification/distillation/modifier_distillation_base.py b/src/sparseml/pytorch/sparsification/distillation/modifier_distillation_base.py
index e63765240d2..fc65329764d 100644
--- a/src/sparseml/pytorch/sparsification/distillation/modifier_distillation_base.py
+++ b/src/sparseml/pytorch/sparsification/distillation/modifier_distillation_base.py
@@ -321,12 +321,6 @@ def loss_update(
                 teacher_inputs, self._teacher, check_feat_lab_inp=False
             )
 
-        if type(student_outputs) != type(teacher_outputs):
-            raise ValueError(
-                f"Student output type of {type(student_outputs)} must match "
-                f"teacher output type of {type(teacher_outputs)}"
-            )
-
         distillation_loss = self.compute_distillation_loss(
             student_outputs=student_outputs,
             teacher_outputs=teacher_outputs,
diff --git a/src/sparseml/pytorch/sparsification/distillation/modifier_per_layer.py b/src/sparseml/pytorch/sparsification/distillation/modifier_per_layer.py
index ea405876f78..0c0d29177d0 100644
--- a/src/sparseml/pytorch/sparsification/distillation/modifier_per_layer.py
+++ b/src/sparseml/pytorch/sparsification/distillation/modifier_per_layer.py
@@ -354,7 +354,7 @@ def update(
         steps_per_epoch: int,
     ):
         super().update(module, optimizer, epoch, steps_per_epoch)
-        if epoch >= self.end_epoch:
+        if 0 < self.end_epoch <= epoch:
             for handle in self._student_handles:
                 handle.remove()
             for handle in self._teacher_handles:
diff --git a/src/sparseml/yolov5/__init__.py b/src/sparseml/yolov5/__init__.py
index 60647918b0f..34ac2d445ac 100644
--- a/src/sparseml/yolov5/__init__.py
+++ b/src/sparseml/yolov5/__init__.py
@@ -25,8 +25,6 @@
 try:
     import yolov5 as _yolov5
 
-    # triggers error if neuralmagic/yolov5 is not installed
-    assert _yolov5.NM_INTEGRATED
     _yolov5_import_error = None
 except Exception as _yolov5_import_err:
     _yolov5_import_error = _yolov5_import_err
@@ -34,7 +32,7 @@
 _LOGGER = _logging.getLogger(__name__)
 _NM_YOLOV5_TAR_TEMPLATE = (
     "https://github.com/neuralmagic/yolov5/releases/download/"
-    "{version}/yolov5-6.1.0-py3-none-any.whl"
+    "{version}/yolov5-6.2.0-py3-none-any.whl"
 )
 _NM_YOLOV5_NIGHTLY = _NM_YOLOV5_TAR_TEMPLATE.format(version="nightly")
 
@@ -97,8 +95,6 @@ def _check_yolov5_install():
     # re check import after potential install
     try:
         import yolov5 as _yolov5
-
-        assert _yolov5.NM_INTEGRATED
     except Exception:
         _LOGGER.warning(
             "the neuralmagic fork of yolov5 may not be installed. it can be "
diff --git a/src/sparseml/yolov5/data/Argoverse.yaml b/src/sparseml/yolov5/data/Argoverse.yaml
deleted file mode 100644
index 8b8c311e172..00000000000
--- a/src/sparseml/yolov5/data/Argoverse.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Argoverse-HD dataset (ring-front-center camera) http://www.cs.cmu.edu/~mengtial/proj/streaming/ by Argo AI
-# Example usage: python train.py --data Argoverse.yaml
-# parent
-# ├── yolov5
-# └── datasets
-#     └── Argoverse  ← downloads here
-
-
-# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
-path: datasets/Argoverse  # dataset root dir
-train: Argoverse-1.1/images/train/  # train images (relative to 'path') 39384 images
-val: Argoverse-1.1/images/val/  # val images (relative to 'path') 15062 images
-test: Argoverse-1.1/images/test/  # test images (optional) https://eval.ai/web/challenges/challenge-page/800/overview
-
-# Classes
-nc: 8  # number of classes
-names: ['person',  'bicycle',  'car',  'motorcycle',  'bus',  'truck',  'traffic_light',  'stop_sign']  # class names
-
-
-# Download script/URL (optional) ---------------------------------------------------------------------------------------
-download: |
-  import json
-
-  from tqdm import tqdm
-  from utils.general import download, Path
-
-
-  def argoverse2yolo(set):
-      labels = {}
-      a = json.load(open(set, "rb"))
-      for annot in tqdm(a['annotations'], desc=f"Converting {set} to YOLOv5 format..."):
-          img_id = annot['image_id']
-          img_name = a['images'][img_id]['name']
-          img_label_name = img_name[:-3] + "txt"
-
-          cls = annot['category_id']  # instance class id
-          x_center, y_center, width, height = annot['bbox']
-          x_center = (x_center + width / 2) / 1920.0  # offset and scale
-          y_center = (y_center + height / 2) / 1200.0  # offset and scale
-          width /= 1920.0  # scale
-          height /= 1200.0  # scale
-
-          img_dir = set.parents[2] / 'Argoverse-1.1' / 'labels' / a['seq_dirs'][a['images'][annot['image_id']]['sid']]
-          if not img_dir.exists():
-              img_dir.mkdir(parents=True, exist_ok=True)
-
-          k = str(img_dir / img_label_name)
-          if k not in labels:
-              labels[k] = []
-          labels[k].append(f"{cls} {x_center} {y_center} {width} {height}\n")
-
-      for k in labels:
-          with open(k, "w") as f:
-              f.writelines(labels[k])
-
-
-  # Download
-  dir = Path('datasets/Argoverse')  # dataset root dir
-  urls = ['https://argoverse-hd.s3.us-east-2.amazonaws.com/Argoverse-HD-Full.zip']
-  download(urls, dir=dir, delete=False)
-
-  # Convert
-  annotations_dir = 'Argoverse-HD/annotations/'
-  (dir / 'Argoverse-1.1' / 'tracking').rename(dir / 'Argoverse-1.1' / 'images')  # rename 'tracking' to 'images'
-  for d in "train.json", "val.json":
-      argoverse2yolo(dir / annotations_dir / d)  # convert VisDrone annotations to YOLO labels
diff --git a/src/sparseml/yolov5/data/GlobalWheat2020.yaml b/src/sparseml/yolov5/data/GlobalWheat2020.yaml
deleted file mode 100644
index e6209747de5..00000000000
--- a/src/sparseml/yolov5/data/GlobalWheat2020.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Global Wheat 2020 dataset http://www.global-wheat.com/ by University of Saskatchewan
-# Example usage: python train.py --data GlobalWheat2020.yaml
-# parent
-# ├── yolov5
-# └── datasets
-#     └── GlobalWheat2020  ← downloads here
-
-
-# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
-path: datasets/GlobalWheat2020  # dataset root dir
-train: # train images (relative to 'path') 3422 images
-  - images/arvalis_1
-  - images/arvalis_2
-  - images/arvalis_3
-  - images/ethz_1
-  - images/rres_1
-  - images/inrae_1
-  - images/usask_1
-val: # val images (relative to 'path') 748 images (WARNING: train set contains ethz_1)
-  - images/ethz_1
-test: # test images (optional) 1276 images
-  - images/utokyo_1
-  - images/utokyo_2
-  - images/nau_1
-  - images/uq_1
-
-# Classes
-nc: 1  # number of classes
-names: ['wheat_head']  # class names
-
-
-# Download script/URL (optional) ---------------------------------------------------------------------------------------
-download: |
-  from utils.general import download, Path
-
-
-  # Download
-  dir = Path(yaml['path'])  # dataset root dir
-  urls = ['https://zenodo.org/record/4298502/files/global-wheat-codalab-official.zip',
-          'https://github.com/ultralytics/yolov5/releases/download/v1.0/GlobalWheat2020_labels.zip']
-  download(urls, dir=dir)
-
-  # Make Directories
-  for p in 'annotations', 'images', 'labels':
-      (dir / p).mkdir(parents=True, exist_ok=True)
-
-  # Move
-  for p in 'arvalis_1', 'arvalis_2', 'arvalis_3', 'ethz_1', 'rres_1', 'inrae_1', 'usask_1', \
-           'utokyo_1', 'utokyo_2', 'nau_1', 'uq_1':
-      (dir / p).rename(dir / 'images' / p)  # move to /images
-      f = (dir / p).with_suffix('.json')  # json file
-      if f.exists():
-          f.rename((dir / 'annotations' / p).with_suffix('.json'))  # move to /annotations
diff --git a/src/sparseml/yolov5/data/Objects365.yaml b/src/sparseml/yolov5/data/Objects365.yaml
deleted file mode 100644
index d79a280408a..00000000000
--- a/src/sparseml/yolov5/data/Objects365.yaml
+++ /dev/null
@@ -1,113 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Objects365 dataset https://www.objects365.org/ by Megvii
-# Example usage: python train.py --data Objects365.yaml
-# parent
-# ├── yolov5
-# └── datasets
-#     └── Objects365  ← downloads here
-
-
-# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
-path: datasets/Objects365  # dataset root dir
-train: images/train  # train images (relative to 'path') 1742289 images
-val: images/val # val images (relative to 'path') 80000 images
-test:  # test images (optional)
-
-# Classes
-nc: 365  # number of classes
-names: ['Person', 'Sneakers', 'Chair', 'Other Shoes', 'Hat', 'Car', 'Lamp', 'Glasses', 'Bottle', 'Desk', 'Cup',
-        'Street Lights', 'Cabinet/shelf', 'Handbag/Satchel', 'Bracelet', 'Plate', 'Picture/Frame', 'Helmet', 'Book',
-        'Gloves', 'Storage box', 'Boat', 'Leather Shoes', 'Flower', 'Bench', 'Potted Plant', 'Bowl/Basin', 'Flag',
-        'Pillow', 'Boots', 'Vase', 'Microphone', 'Necklace', 'Ring', 'SUV', 'Wine Glass', 'Belt', 'Monitor/TV',
-        'Backpack', 'Umbrella', 'Traffic Light', 'Speaker', 'Watch', 'Tie', 'Trash bin Can', 'Slippers', 'Bicycle',
-        'Stool', 'Barrel/bucket', 'Van', 'Couch', 'Sandals', 'Basket', 'Drum', 'Pen/Pencil', 'Bus', 'Wild Bird',
-        'High Heels', 'Motorcycle', 'Guitar', 'Carpet', 'Cell Phone', 'Bread', 'Camera', 'Canned', 'Truck',
-        'Traffic cone', 'Cymbal', 'Lifesaver', 'Towel', 'Stuffed Toy', 'Candle', 'Sailboat', 'Laptop', 'Awning',
-        'Bed', 'Faucet', 'Tent', 'Horse', 'Mirror', 'Power outlet', 'Sink', 'Apple', 'Air Conditioner', 'Knife',
-        'Hockey Stick', 'Paddle', 'Pickup Truck', 'Fork', 'Traffic Sign', 'Balloon', 'Tripod', 'Dog', 'Spoon', 'Clock',
-        'Pot', 'Cow', 'Cake', 'Dinning Table', 'Sheep', 'Hanger', 'Blackboard/Whiteboard', 'Napkin', 'Other Fish',
-        'Orange/Tangerine', 'Toiletry', 'Keyboard', 'Tomato', 'Lantern', 'Machinery Vehicle', 'Fan',
-        'Green Vegetables', 'Banana', 'Baseball Glove', 'Airplane', 'Mouse', 'Train', 'Pumpkin', 'Soccer', 'Skiboard',
-        'Luggage', 'Nightstand', 'Tea pot', 'Telephone', 'Trolley', 'Head Phone', 'Sports Car', 'Stop Sign',
-        'Dessert', 'Scooter', 'Stroller', 'Crane', 'Remote', 'Refrigerator', 'Oven', 'Lemon', 'Duck', 'Baseball Bat',
-        'Surveillance Camera', 'Cat', 'Jug', 'Broccoli', 'Piano', 'Pizza', 'Elephant', 'Skateboard', 'Surfboard',
-        'Gun', 'Skating and Skiing shoes', 'Gas stove', 'Donut', 'Bow Tie', 'Carrot', 'Toilet', 'Kite', 'Strawberry',
-        'Other Balls', 'Shovel', 'Pepper', 'Computer Box', 'Toilet Paper', 'Cleaning Products', 'Chopsticks',
-        'Microwave', 'Pigeon', 'Baseball', 'Cutting/chopping Board', 'Coffee Table', 'Side Table', 'Scissors',
-        'Marker', 'Pie', 'Ladder', 'Snowboard', 'Cookies', 'Radiator', 'Fire Hydrant', 'Basketball', 'Zebra', 'Grape',
-        'Giraffe', 'Potato', 'Sausage', 'Tricycle', 'Violin', 'Egg', 'Fire Extinguisher', 'Candy', 'Fire Truck',
-        'Billiards', 'Converter', 'Bathtub', 'Wheelchair', 'Golf Club', 'Briefcase', 'Cucumber', 'Cigar/Cigarette',
-        'Paint Brush', 'Pear', 'Heavy Truck', 'Hamburger', 'Extractor', 'Extension Cord', 'Tong', 'Tennis Racket',
-        'Folder', 'American Football', 'earphone', 'Mask', 'Kettle', 'Tennis', 'Ship', 'Swing', 'Coffee Machine',
-        'Slide', 'Carriage', 'Onion', 'Green beans', 'Projector', 'Frisbee', 'Washing Machine/Drying Machine',
-        'Chicken', 'Printer', 'Watermelon', 'Saxophone', 'Tissue', 'Toothbrush', 'Ice cream', 'Hot-air balloon',
-        'Cello', 'French Fries', 'Scale', 'Trophy', 'Cabbage', 'Hot dog', 'Blender', 'Peach', 'Rice', 'Wallet/Purse',
-        'Volleyball', 'Deer', 'Goose', 'Tape', 'Tablet', 'Cosmetics', 'Trumpet', 'Pineapple', 'Golf Ball',
-        'Ambulance', 'Parking meter', 'Mango', 'Key', 'Hurdle', 'Fishing Rod', 'Medal', 'Flute', 'Brush', 'Penguin',
-        'Megaphone', 'Corn', 'Lettuce', 'Garlic', 'Swan', 'Helicopter', 'Green Onion', 'Sandwich', 'Nuts',
-        'Speed Limit Sign', 'Induction Cooker', 'Broom', 'Trombone', 'Plum', 'Rickshaw', 'Goldfish', 'Kiwi fruit',
-        'Router/modem', 'Poker Card', 'Toaster', 'Shrimp', 'Sushi', 'Cheese', 'Notepaper', 'Cherry', 'Pliers', 'CD',
-        'Pasta', 'Hammer', 'Cue', 'Avocado', 'Hamimelon', 'Flask', 'Mushroom', 'Screwdriver', 'Soap', 'Recorder',
-        'Bear', 'Eggplant', 'Board Eraser', 'Coconut', 'Tape Measure/Ruler', 'Pig', 'Showerhead', 'Globe', 'Chips',
-        'Steak', 'Crosswalk Sign', 'Stapler', 'Camel', 'Formula 1', 'Pomegranate', 'Dishwasher', 'Crab',
-        'Hoverboard', 'Meat ball', 'Rice Cooker', 'Tuba', 'Calculator', 'Papaya', 'Antelope', 'Parrot', 'Seal',
-        'Butterfly', 'Dumbbell', 'Donkey', 'Lion', 'Urinal', 'Dolphin', 'Electric Drill', 'Hair Dryer', 'Egg tart',
-        'Jellyfish', 'Treadmill', 'Lighter', 'Grapefruit', 'Game board', 'Mop', 'Radish', 'Baozi', 'Target', 'French',
-        'Spring Rolls', 'Monkey', 'Rabbit', 'Pencil Case', 'Yak', 'Red Cabbage', 'Binoculars', 'Asparagus', 'Barbell',
-        'Scallop', 'Noddles', 'Comb', 'Dumpling', 'Oyster', 'Table Tennis paddle', 'Cosmetics Brush/Eyeliner Pencil',
-        'Chainsaw', 'Eraser', 'Lobster', 'Durian', 'Okra', 'Lipstick', 'Cosmetics Mirror', 'Curling', 'Table Tennis']
-
-
-# Download script/URL (optional) ---------------------------------------------------------------------------------------
-download: |
-  from pycocotools.coco import COCO
-  from tqdm import tqdm
-
-  from utils.general import Path, download, np, xyxy2xywhn
-
-
-  # Make Directories
-  dir = Path(yaml['path'])  # dataset root dir
-  for p in 'images', 'labels':
-      (dir / p).mkdir(parents=True, exist_ok=True)
-      for q in 'train', 'val':
-          (dir / p / q).mkdir(parents=True, exist_ok=True)
-
-  # Train, Val Splits
-  for split, patches in [('train', 50 + 1), ('val', 43 + 1)]:
-      print(f"Processing {split} in {patches} patches ...")
-      images, labels = dir / 'images' / split, dir / 'labels' / split
-
-      # Download
-      url = f"https://dorc.ks3-cn-beijing.ksyun.com/data-set/2020Objects365%E6%95%B0%E6%8D%AE%E9%9B%86/{split}/"
-      if split == 'train':
-          download([f'{url}zhiyuan_objv2_{split}.tar.gz'], dir=dir, delete=False)  # annotations json
-          download([f'{url}patch{i}.tar.gz' for i in range(patches)], dir=images, curl=True, delete=False, threads=8)
-      elif split == 'val':
-          download([f'{url}zhiyuan_objv2_{split}.json'], dir=dir, delete=False)  # annotations json
-          download([f'{url}images/v1/patch{i}.tar.gz' for i in range(15 + 1)], dir=images, curl=True, delete=False, threads=8)
-          download([f'{url}images/v2/patch{i}.tar.gz' for i in range(16, patches)], dir=images, curl=True, delete=False, threads=8)
-
-      # Move
-      for f in tqdm(images.rglob('*.jpg'), desc=f'Moving {split} images'):
-          f.rename(images / f.name)  # move to /images/{split}
-
-      # Labels
-      coco = COCO(dir / f'zhiyuan_objv2_{split}.json')
-      names = [x["name"] for x in coco.loadCats(coco.getCatIds())]
-      for cid, cat in enumerate(names):
-          catIds = coco.getCatIds(catNms=[cat])
-          imgIds = coco.getImgIds(catIds=catIds)
-          for im in tqdm(coco.loadImgs(imgIds), desc=f'Class {cid + 1}/{len(names)} {cat}'):
-              width, height = im["width"], im["height"]
-              path = Path(im["file_name"])  # image filename
-              try:
-                  with open(labels / path.with_suffix('.txt').name, 'a') as file:
-                      annIds = coco.getAnnIds(imgIds=im["id"], catIds=catIds, iscrowd=None)
-                      for a in coco.loadAnns(annIds):
-                          x, y, w, h = a['bbox']  # bounding box in xywh (xy top-left corner)
-                          xyxy = np.array([x, y, x + w, y + h])[None]  # pixels(1,4)
-                          x, y, w, h = xyxy2xywhn(xyxy, w=width, h=height, clip=True)[0]  # normalized and clipped
-                          file.write(f"{cid} {x:.5f} {y:.5f} {w:.5f} {h:.5f}\n")
-              except Exception as e:
-                  print(e)
diff --git a/src/sparseml/yolov5/data/SKU-110K.yaml b/src/sparseml/yolov5/data/SKU-110K.yaml
deleted file mode 100644
index 53b57f9a300..00000000000
--- a/src/sparseml/yolov5/data/SKU-110K.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# SKU-110K retail items dataset https://github.com/eg4000/SKU110K_CVPR19 by Trax Retail
-# Example usage: python train.py --data SKU-110K.yaml
-# parent
-# ├── yolov5
-# └── datasets
-#     └── SKU-110K  ← downloads here
-
-
-# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
-path: datasets/SKU-110K  # dataset root dir
-train: train.txt  # train images (relative to 'path')  8219 images
-val: val.txt  # val images (relative to 'path')  588 images
-test: test.txt  # test images (optional)  2936 images
-
-# Classes
-nc: 1  # number of classes
-names: ['object']  # class names
-
-
-# Download script/URL (optional) ---------------------------------------------------------------------------------------
-download: |
-  import shutil
-  from tqdm import tqdm
-  from utils.general import np, pd, Path, download, xyxy2xywh
-
-
-  # Download
-  dir = Path(yaml['path'])  # dataset root dir
-  parent = Path(dir.parent)  # download dir
-  urls = ['http://trax-geometry.s3.amazonaws.com/cvpr_challenge/SKU110K_fixed.tar.gz']
-  download(urls, dir=parent, delete=False)
-
-  # Rename directories
-  if dir.exists():
-      shutil.rmtree(dir)
-  (parent / 'SKU110K_fixed').rename(dir)  # rename dir
-  (dir / 'labels').mkdir(parents=True, exist_ok=True)  # create labels dir
-
-  # Convert labels
-  names = 'image', 'x1', 'y1', 'x2', 'y2', 'class', 'image_width', 'image_height'  # column names
-  for d in 'annotations_train.csv', 'annotations_val.csv', 'annotations_test.csv':
-      x = pd.read_csv(dir / 'annotations' / d, names=names).values  # annotations
-      images, unique_images = x[:, 0], np.unique(x[:, 0])
-      with open((dir / d).with_suffix('.txt').__str__().replace('annotations_', ''), 'w') as f:
-          f.writelines(f'./images/{s}\n' for s in unique_images)
-      for im in tqdm(unique_images, desc=f'Converting {dir / d}'):
-          cls = 0  # single-class dataset
-          with open((dir / 'labels' / im).with_suffix('.txt'), 'a') as f:
-              for r in x[images == im]:
-                  w, h = r[6], r[7]  # image width, height
-                  xywh = xyxy2xywh(np.array([[r[1] / w, r[2] / h, r[3] / w, r[4] / h]]))[0]  # instance
-                  f.write(f"{cls} {xywh[0]:.5f} {xywh[1]:.5f} {xywh[2]:.5f} {xywh[3]:.5f}\n")  # write label
diff --git a/src/sparseml/yolov5/data/VOC.yaml b/src/sparseml/yolov5/data/VOC.yaml
deleted file mode 100644
index 23e941d9d3c..00000000000
--- a/src/sparseml/yolov5/data/VOC.yaml
+++ /dev/null
@@ -1,80 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# PASCAL VOC dataset http://host.robots.ox.ac.uk/pascal/VOC by University of Oxford
-# Example usage: python train.py --data VOC.yaml
-# parent
-# ├── yolov5
-# └── datasets
-#     └── VOC  ← downloads here
-
-
-# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
-path: datasets/VOC
-train: # train images (relative to 'path')  16551 images
-  - images/train2012
-  - images/train2007
-  - images/val2012
-  - images/val2007
-val: # val images (relative to 'path')  4952 images
-  - images/test2007
-test: # test images (optional)
-  - images/test2007
-
-# Classes
-nc: 20  # number of classes
-names: ['aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog',
-        'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor']  # class names
-
-
-# Download script/URL (optional) ---------------------------------------------------------------------------------------
-download: |
-  import xml.etree.ElementTree as ET
-
-  from tqdm import tqdm
-  from utils.general import download, Path
-
-
-  def convert_label(path, lb_path, year, image_id):
-      def convert_box(size, box):
-          dw, dh = 1. / size[0], 1. / size[1]
-          x, y, w, h = (box[0] + box[1]) / 2.0 - 1, (box[2] + box[3]) / 2.0 - 1, box[1] - box[0], box[3] - box[2]
-          return x * dw, y * dh, w * dw, h * dh
-
-      in_file = open(path / f'VOC{year}/Annotations/{image_id}.xml')
-      out_file = open(lb_path, 'w')
-      tree = ET.parse(in_file)
-      root = tree.getroot()
-      size = root.find('size')
-      w = int(size.find('width').text)
-      h = int(size.find('height').text)
-
-      for obj in root.iter('object'):
-          cls = obj.find('name').text
-          if cls in yaml['names'] and not int(obj.find('difficult').text) == 1:
-              xmlbox = obj.find('bndbox')
-              bb = convert_box((w, h), [float(xmlbox.find(x).text) for x in ('xmin', 'xmax', 'ymin', 'ymax')])
-              cls_id = yaml['names'].index(cls)  # class id
-              out_file.write(" ".join([str(a) for a in (cls_id, *bb)]) + '\n')
-
-
-  # Download
-  dir = Path(yaml['path'])  # dataset root dir
-  url = 'https://github.com/ultralytics/yolov5/releases/download/v1.0/'
-  urls = [url + 'VOCtrainval_06-Nov-2007.zip',  # 446MB, 5012 images
-          url + 'VOCtest_06-Nov-2007.zip',  # 438MB, 4953 images
-          url + 'VOCtrainval_11-May-2012.zip']  # 1.95GB, 17126 images
-  download(urls, dir=dir / 'images', delete=False, threads=3)
-
-  # Convert
-  path = dir / f'images/VOCdevkit'
-  for year, image_set in ('2012', 'train'), ('2012', 'val'), ('2007', 'train'), ('2007', 'val'), ('2007', 'test'):
-      imgs_path = dir / 'images' / f'{image_set}{year}'
-      lbs_path = dir / 'labels' / f'{image_set}{year}'
-      imgs_path.mkdir(exist_ok=True, parents=True)
-      lbs_path.mkdir(exist_ok=True, parents=True)
-
-      image_ids = open(path / f'VOC{year}/ImageSets/Main/{image_set}.txt').read().strip().split()
-      for id in tqdm(image_ids, desc=f'{image_set}{year}'):
-          f = path / f'VOC{year}/JPEGImages/{id}.jpg'  # old img path
-          lb_path = (lbs_path / f.name).with_suffix('.txt')  # new label path
-          f.rename(imgs_path / f.name)  # move image
-          convert_label(path, lb_path, year, id)  # convert labels to YOLO format
diff --git a/src/sparseml/yolov5/data/VisDrone.yaml b/src/sparseml/yolov5/data/VisDrone.yaml
deleted file mode 100644
index 07e63271171..00000000000
--- a/src/sparseml/yolov5/data/VisDrone.yaml
+++ /dev/null
@@ -1,61 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# VisDrone2019-DET dataset https://github.com/VisDrone/VisDrone-Dataset by Tianjin University
-# Example usage: python train.py --data VisDrone.yaml
-# parent
-# ├── yolov5
-# └── datasets
-#     └── VisDrone  ← downloads here
-
-
-# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
-path: datasets/VisDrone  # dataset root dir
-train: VisDrone2019-DET-train/images  # train images (relative to 'path')  6471 images
-val: VisDrone2019-DET-val/images  # val images (relative to 'path')  548 images
-test: VisDrone2019-DET-test-dev/images  # test images (optional)  1610 images
-
-# Classes
-nc: 10  # number of classes
-names: ['pedestrian', 'people', 'bicycle', 'car', 'van', 'truck', 'tricycle', 'awning-tricycle', 'bus', 'motor']
-
-
-# Download script/URL (optional) ---------------------------------------------------------------------------------------
-download: |
-  from utils.general import download, os, Path
-
-  def visdrone2yolo(dir):
-      from PIL import Image
-      from tqdm import tqdm
-
-      def convert_box(size, box):
-          # Convert VisDrone box to YOLO xywh box
-          dw = 1. / size[0]
-          dh = 1. / size[1]
-          return (box[0] + box[2] / 2) * dw, (box[1] + box[3] / 2) * dh, box[2] * dw, box[3] * dh
-
-      (dir / 'labels').mkdir(parents=True, exist_ok=True)  # make labels directory
-      pbar = tqdm((dir / 'annotations').glob('*.txt'), desc=f'Converting {dir}')
-      for f in pbar:
-          img_size = Image.open((dir / 'images' / f.name).with_suffix('.jpg')).size
-          lines = []
-          with open(f, 'r') as file:  # read annotation.txt
-              for row in [x.split(',') for x in file.read().strip().splitlines()]:
-                  if row[4] == '0':  # VisDrone 'ignored regions' class 0
-                      continue
-                  cls = int(row[5]) - 1
-                  box = convert_box(img_size, tuple(map(int, row[:4])))
-                  lines.append(f"{cls} {' '.join(f'{x:.6f}' for x in box)}\n")
-                  with open(str(f).replace(os.sep + 'annotations' + os.sep, os.sep + 'labels' + os.sep), 'w') as fl:
-                      fl.writelines(lines)  # write label.txt
-
-
-  # Download
-  dir = Path(yaml['path'])  # dataset root dir
-  urls = ['https://github.com/ultralytics/yolov5/releases/download/v1.0/VisDrone2019-DET-train.zip',
-          'https://github.com/ultralytics/yolov5/releases/download/v1.0/VisDrone2019-DET-val.zip',
-          'https://github.com/ultralytics/yolov5/releases/download/v1.0/VisDrone2019-DET-test-dev.zip',
-          'https://github.com/ultralytics/yolov5/releases/download/v1.0/VisDrone2019-DET-test-challenge.zip']
-  download(urls, dir=dir, threads=4)
-
-  # Convert
-  for d in 'VisDrone2019-DET-train', 'VisDrone2019-DET-val', 'VisDrone2019-DET-test-dev':
-      visdrone2yolo(dir / d)  # convert VisDrone annotations to YOLO labels
diff --git a/src/sparseml/yolov5/data/coco.yaml b/src/sparseml/yolov5/data/coco.yaml
deleted file mode 100644
index bf78151d016..00000000000
--- a/src/sparseml/yolov5/data/coco.yaml
+++ /dev/null
@@ -1,45 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# COCO 2017 dataset http://cocodataset.org by Microsoft
-# Example usage: python train.py --data coco.yaml
-# parent
-# ├── yolov5
-# └── datasets
-#     └── coco  ← downloads here
-
-
-# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
-path: datasets/coco  # dataset root dir
-train: train2017.txt  # train images (relative to 'path') 118287 images
-val: val2017.txt  # val images (relative to 'path') 5000 images
-test: test-dev2017.txt  # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794
-
-# Classes
-nc: 80  # number of classes
-names: ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
-        'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
-        'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
-        'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
-        'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
-        'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
-        'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
-        'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',
-        'hair drier', 'toothbrush']  # class names
-
-
-# Download script/URL (optional)
-download: |
-  from utils.general import download, Path
-
-
-  # Download labels
-  segments = False  # segment or box labels
-  dir = Path(yaml['path'])  # dataset root dir
-  url = 'https://github.com/ultralytics/yolov5/releases/download/v1.0/'
-  urls = [url + ('coco2017labels-segments.zip' if segments else 'coco2017labels.zip')]  # labels
-  download(urls, dir=dir.parent)
-
-  # Download data
-  urls = ['http://images.cocodataset.org/zips/train2017.zip',  # 19G, 118k images
-          'http://images.cocodataset.org/zips/val2017.zip',  # 1G, 5k images
-          'http://images.cocodataset.org/zips/test2017.zip']  # 7G, 41k images (optional)
-  download(urls, dir=dir / 'images', threads=3)
diff --git a/src/sparseml/yolov5/data/coco128.yaml b/src/sparseml/yolov5/data/coco128.yaml
deleted file mode 100644
index 53cef288c45..00000000000
--- a/src/sparseml/yolov5/data/coco128.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
-# Example usage: python train.py --data coco128.yaml
-# parent
-# ├── yolov5
-# └── datasets
-#     └── coco128  ← downloads here
-
-
-# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
-path: datasets/coco128  # dataset root dir
-train: images/train2017  # train images (relative to 'path') 128 images
-val: images/train2017  # val images (relative to 'path') 128 images
-test:  # test images (optional)
-
-# Classes
-nc: 80  # number of classes
-names: ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light',
-        'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow',
-        'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee',
-        'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard',
-        'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple',
-        'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch',
-        'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone',
-        'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear',
-        'hair drier', 'toothbrush']  # class names
-
-
-# Download script/URL (optional)
-download: https://ultralytics.com/assets/coco128.zip
diff --git a/src/sparseml/yolov5/data/hyps/hyp.Objects365.yaml b/src/sparseml/yolov5/data/hyps/hyp.Objects365.yaml
deleted file mode 100644
index 74971740f7c..00000000000
--- a/src/sparseml/yolov5/data/hyps/hyp.Objects365.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Hyperparameters for Objects365 training
-# python train.py --weights yolov5m.pt --data Objects365.yaml --evolve
-# See Hyperparameter Evolution tutorial for details https://github.com/ultralytics/yolov5#tutorials
-
-lr0: 0.00258
-lrf: 0.17
-momentum: 0.779
-weight_decay: 0.00058
-warmup_epochs: 1.33
-warmup_momentum: 0.86
-warmup_bias_lr: 0.0711
-box: 0.0539
-cls: 0.299
-cls_pw: 0.825
-obj: 0.632
-obj_pw: 1.0
-iou_t: 0.2
-anchor_t: 3.44
-anchors: 3.2
-fl_gamma: 0.0
-hsv_h: 0.0188
-hsv_s: 0.704
-hsv_v: 0.36
-degrees: 0.0
-translate: 0.0902
-scale: 0.491
-shear: 0.0
-perspective: 0.0
-flipud: 0.0
-fliplr: 0.5
-mosaic: 1.0
-mixup: 0.0
-copy_paste: 0.0
diff --git a/src/sparseml/yolov5/data/hyps/hyp.VOC.yaml b/src/sparseml/yolov5/data/hyps/hyp.VOC.yaml
deleted file mode 100644
index 0aa4e7d9f8f..00000000000
--- a/src/sparseml/yolov5/data/hyps/hyp.VOC.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Hyperparameters for VOC training
-# python train.py --batch 128 --weights yolov5m6.pt --data VOC.yaml --epochs 50 --img 512 --hyp hyp.scratch-med.yaml --evolve
-# See Hyperparameter Evolution tutorial for details https://github.com/ultralytics/yolov5#tutorials
-
-# YOLOv5 Hyperparameter Evolution Results
-# Best generation: 467
-# Last generation: 996
-#    metrics/precision,       metrics/recall,      metrics/mAP_0.5, metrics/mAP_0.5:0.95,         val/box_loss,         val/obj_loss,         val/cls_loss
-#              0.87729,              0.85125,              0.91286,              0.72664,            0.0076739,            0.0042529,            0.0013865
-
-lr0: 0.00334
-lrf: 0.15135
-momentum: 0.74832
-weight_decay: 0.00025
-warmup_epochs: 3.3835
-warmup_momentum: 0.59462
-warmup_bias_lr: 0.18657
-box: 0.02
-cls: 0.21638
-cls_pw: 0.5
-obj: 0.51728
-obj_pw: 0.67198
-iou_t: 0.2
-anchor_t: 3.3744
-fl_gamma: 0.0
-hsv_h: 0.01041
-hsv_s: 0.54703
-hsv_v: 0.27739
-degrees: 0.0
-translate: 0.04591
-scale: 0.75544
-shear: 0.0
-perspective: 0.0
-flipud: 0.0
-fliplr: 0.5
-mosaic: 0.85834
-mixup: 0.04266
-copy_paste: 0.0
-anchors: 3.412
diff --git a/src/sparseml/yolov5/data/hyps/hyp.finetune.yaml b/src/sparseml/yolov5/data/hyps/hyp.finetune.yaml
deleted file mode 100644
index 3aa1923f78a..00000000000
--- a/src/sparseml/yolov5/data/hyps/hyp.finetune.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-# Hyperparameters for VOC finetuning
-# python train.py --batch 64 --weights yolov5m.pt --data voc.yaml --img 512 --epochs 50
-# See tutorials for hyperparameter evolution https://github.com/ultralytics/yolov5#tutorials
-
-
-# Hyperparameter Evolution Results
-# Generations: 306
-#                   P         R     mAP.5 mAP.5:.95       box       obj       cls
-# Metrics:        0.6     0.936     0.896     0.684    0.0115   0.00805   0.00146
-
-lr0: 0.0032
-lrf: 0.12
-momentum: 0.843
-weight_decay: 0.00036
-warmup_epochs: 2.0
-warmup_momentum: 0.5
-warmup_bias_lr: 0.05
-box: 0.0296
-cls: 0.243
-cls_pw: 0.631
-obj: 0.301
-obj_pw: 0.911
-iou_t: 0.2
-anchor_t: 2.91
-# anchors: 3.63
-fl_gamma: 0.0
-hsv_h: 0.0138
-hsv_s: 0.664
-hsv_v: 0.464
-degrees: 0.373
-translate: 0.245
-scale: 0.898
-shear: 0.602
-perspective: 0.0
-flipud: 0.00856
-fliplr: 0.5
-mosaic: 1.0
-mixup: 0.243
-copy_paste: 0.0
diff --git a/src/sparseml/yolov5/data/hyps/hyp.scratch-high.yaml b/src/sparseml/yolov5/data/hyps/hyp.scratch-high.yaml
deleted file mode 100644
index 123cc840741..00000000000
--- a/src/sparseml/yolov5/data/hyps/hyp.scratch-high.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Hyperparameters for high-augmentation COCO training from scratch
-# python train.py --batch 32 --cfg yolov5m6.yaml --weights '' --data coco.yaml --img 1280 --epochs 300
-# See tutorials for hyperparameter evolution https://github.com/ultralytics/yolov5#tutorials
-
-lr0: 0.01  # initial learning rate (SGD=1E-2, Adam=1E-3)
-lrf: 0.1  # final OneCycleLR learning rate (lr0 * lrf)
-momentum: 0.937  # SGD momentum/Adam beta1
-weight_decay: 0.0005  # optimizer weight decay 5e-4
-warmup_epochs: 3.0  # warmup epochs (fractions ok)
-warmup_momentum: 0.8  # warmup initial momentum
-warmup_bias_lr: 0.1  # warmup initial bias lr
-box: 0.05  # box loss gain
-cls: 0.3  # cls loss gain
-cls_pw: 1.0  # cls BCELoss positive_weight
-obj: 0.7  # obj loss gain (scale with pixels)
-obj_pw: 1.0  # obj BCELoss positive_weight
-iou_t: 0.20  # IoU training threshold
-anchor_t: 4.0  # anchor-multiple threshold
-# anchors: 3  # anchors per output layer (0 to ignore)
-fl_gamma: 0.0  # focal loss gamma (efficientDet default gamma=1.5)
-hsv_h: 0.015  # image HSV-Hue augmentation (fraction)
-hsv_s: 0.7  # image HSV-Saturation augmentation (fraction)
-hsv_v: 0.4  # image HSV-Value augmentation (fraction)
-degrees: 0.0  # image rotation (+/- deg)
-translate: 0.1  # image translation (+/- fraction)
-scale: 0.9  # image scale (+/- gain)
-shear: 0.0  # image shear (+/- deg)
-perspective: 0.0  # image perspective (+/- fraction), range 0-0.001
-flipud: 0.0  # image flip up-down (probability)
-fliplr: 0.5  # image flip left-right (probability)
-mosaic: 1.0  # image mosaic (probability)
-mixup: 0.1  # image mixup (probability)
-copy_paste: 0.1  # segment copy-paste (probability)
diff --git a/src/sparseml/yolov5/data/hyps/hyp.scratch-low.yaml b/src/sparseml/yolov5/data/hyps/hyp.scratch-low.yaml
deleted file mode 100644
index b9ef1d55a3b..00000000000
--- a/src/sparseml/yolov5/data/hyps/hyp.scratch-low.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Hyperparameters for low-augmentation COCO training from scratch
-# python train.py --batch 64 --cfg yolov5n6.yaml --weights '' --data coco.yaml --img 640 --epochs 300 --linear
-# See tutorials for hyperparameter evolution https://github.com/ultralytics/yolov5#tutorials
-
-lr0: 0.01  # initial learning rate (SGD=1E-2, Adam=1E-3)
-lrf: 0.01  # final OneCycleLR learning rate (lr0 * lrf)
-momentum: 0.937  # SGD momentum/Adam beta1
-weight_decay: 0.0005  # optimizer weight decay 5e-4
-warmup_epochs: 3.0  # warmup epochs (fractions ok)
-warmup_momentum: 0.8  # warmup initial momentum
-warmup_bias_lr: 0.1  # warmup initial bias lr
-box: 0.05  # box loss gain
-cls: 0.5  # cls loss gain
-cls_pw: 1.0  # cls BCELoss positive_weight
-obj: 1.0  # obj loss gain (scale with pixels)
-obj_pw: 1.0  # obj BCELoss positive_weight
-iou_t: 0.20  # IoU training threshold
-anchor_t: 4.0  # anchor-multiple threshold
-# anchors: 3  # anchors per output layer (0 to ignore)
-fl_gamma: 0.0  # focal loss gamma (efficientDet default gamma=1.5)
-hsv_h: 0.015  # image HSV-Hue augmentation (fraction)
-hsv_s: 0.7  # image HSV-Saturation augmentation (fraction)
-hsv_v: 0.4  # image HSV-Value augmentation (fraction)
-degrees: 0.0  # image rotation (+/- deg)
-translate: 0.1  # image translation (+/- fraction)
-scale: 0.5  # image scale (+/- gain)
-shear: 0.0  # image shear (+/- deg)
-perspective: 0.0  # image perspective (+/- fraction), range 0-0.001
-flipud: 0.0  # image flip up-down (probability)
-fliplr: 0.5  # image flip left-right (probability)
-mosaic: 1.0  # image mosaic (probability)
-mixup: 0.0  # image mixup (probability)
-copy_paste: 0.0  # segment copy-paste (probability)
diff --git a/src/sparseml/yolov5/data/hyps/hyp.scratch-med.yaml b/src/sparseml/yolov5/data/hyps/hyp.scratch-med.yaml
deleted file mode 100644
index d6867d7557b..00000000000
--- a/src/sparseml/yolov5/data/hyps/hyp.scratch-med.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Hyperparameters for medium-augmentation COCO training from scratch
-# python train.py --batch 32 --cfg yolov5m6.yaml --weights '' --data coco.yaml --img 1280 --epochs 300
-# See tutorials for hyperparameter evolution https://github.com/ultralytics/yolov5#tutorials
-
-lr0: 0.01  # initial learning rate (SGD=1E-2, Adam=1E-3)
-lrf: 0.1  # final OneCycleLR learning rate (lr0 * lrf)
-momentum: 0.937  # SGD momentum/Adam beta1
-weight_decay: 0.0005  # optimizer weight decay 5e-4
-warmup_epochs: 3.0  # warmup epochs (fractions ok)
-warmup_momentum: 0.8  # warmup initial momentum
-warmup_bias_lr: 0.1  # warmup initial bias lr
-box: 0.05  # box loss gain
-cls: 0.3  # cls loss gain
-cls_pw: 1.0  # cls BCELoss positive_weight
-obj: 0.7  # obj loss gain (scale with pixels)
-obj_pw: 1.0  # obj BCELoss positive_weight
-iou_t: 0.20  # IoU training threshold
-anchor_t: 4.0  # anchor-multiple threshold
-# anchors: 3  # anchors per output layer (0 to ignore)
-fl_gamma: 0.0  # focal loss gamma (efficientDet default gamma=1.5)
-hsv_h: 0.015  # image HSV-Hue augmentation (fraction)
-hsv_s: 0.7  # image HSV-Saturation augmentation (fraction)
-hsv_v: 0.4  # image HSV-Value augmentation (fraction)
-degrees: 0.0  # image rotation (+/- deg)
-translate: 0.1  # image translation (+/- fraction)
-scale: 0.9  # image scale (+/- gain)
-shear: 0.0  # image shear (+/- deg)
-perspective: 0.0  # image perspective (+/- fraction), range 0-0.001
-flipud: 0.0  # image flip up-down (probability)
-fliplr: 0.5  # image flip left-right (probability)
-mosaic: 1.0  # image mosaic (probability)
-mixup: 0.1  # image mixup (probability)
-copy_paste: 0.0  # segment copy-paste (probability)
diff --git a/src/sparseml/yolov5/data/hyps/hyp.scratch.yaml b/src/sparseml/yolov5/data/hyps/hyp.scratch.yaml
deleted file mode 100644
index e10b9893dd5..00000000000
--- a/src/sparseml/yolov5/data/hyps/hyp.scratch.yaml
+++ /dev/null
@@ -1,34 +0,0 @@
-# Hyperparameters for COCO training from scratch
-# python train.py --batch 40 --cfg yolov5m.yaml --weights '' --data coco.yaml --img 640 --epochs 300
-# See tutorials for hyperparameter evolution https://github.com/ultralytics/yolov5#tutorials
-
-
-lr0: 0.01  # initial learning rate (SGD=1E-2, Adam=1E-3)
-lrf: 0.2  # final OneCycleLR learning rate (lr0 * lrf)
-momentum: 0.937  # SGD momentum/Adam beta1
-weight_decay: 0.0005  # optimizer weight decay 5e-4
-warmup_epochs: 3.0  # warmup epochs (fractions ok)
-warmup_momentum: 0.8  # warmup initial momentum
-warmup_bias_lr: 0.1  # warmup initial bias lr
-box: 0.05  # box loss gain
-cls: 0.5  # cls loss gain
-cls_pw: 1.0  # cls BCELoss positive_weight
-obj: 1.0  # obj loss gain (scale with pixels)
-obj_pw: 1.0  # obj BCELoss positive_weight
-iou_t: 0.20  # IoU training threshold
-anchor_t: 4.0  # anchor-multiple threshold
-# anchors: 3  # anchors per output layer (0 to ignore)
-fl_gamma: 0.0  # focal loss gamma (efficientDet default gamma=1.5)
-hsv_h: 0.015  # image HSV-Hue augmentation (fraction)
-hsv_s: 0.7  # image HSV-Saturation augmentation (fraction)
-hsv_v: 0.4  # image HSV-Value augmentation (fraction)
-degrees: 0.0  # image rotation (+/- deg)
-translate: 0.1  # image translation (+/- fraction)
-scale: 0.5  # image scale (+/- gain)
-shear: 0.0  # image shear (+/- deg)
-perspective: 0.0  # image perspective (+/- fraction), range 0-0.001
-flipud: 0.0  # image flip up-down (probability)
-fliplr: 0.5  # image flip left-right (probability)
-mosaic: 1.0  # image mosaic (probability)
-mixup: 0.0  # image mixup (probability)
-copy_paste: 0.0
diff --git a/src/sparseml/yolov5/data/images/bus.jpg b/src/sparseml/yolov5/data/images/bus.jpg
deleted file mode 100644
index b43e311165c..00000000000
Binary files a/src/sparseml/yolov5/data/images/bus.jpg and /dev/null differ
diff --git a/src/sparseml/yolov5/data/images/zidane.jpg b/src/sparseml/yolov5/data/images/zidane.jpg
deleted file mode 100644
index 92d72ea1247..00000000000
Binary files a/src/sparseml/yolov5/data/images/zidane.jpg and /dev/null differ
diff --git a/src/sparseml/yolov5/data/scripts/download_weights.sh b/src/sparseml/yolov5/data/scripts/download_weights.sh
deleted file mode 100755
index e9fa6539417..00000000000
--- a/src/sparseml/yolov5/data/scripts/download_weights.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Download latest models from https://github.com/ultralytics/yolov5/releases
-# Example usage: bash path/to/download_weights.sh
-# parent
-# └── yolov5
-#     ├── yolov5s.pt  ← downloads here
-#     ├── yolov5m.pt
-#     └── ...
-
-python - <<EOF
-from utils.downloads import attempt_download
-
-models = ['n', 's', 'm', 'l', 'x']
-models.extend([x + '6' for x in models])  # add P6 models
-
-for x in models:
-    attempt_download(f'yolov5{x}.pt')
-
-EOF
diff --git a/src/sparseml/yolov5/data/scripts/get_coco.sh b/src/sparseml/yolov5/data/scripts/get_coco.sh
deleted file mode 100755
index 0210c8ebbda..00000000000
--- a/src/sparseml/yolov5/data/scripts/get_coco.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Download COCO 2017 dataset http://cocodataset.org
-# Example usage: bash data/scripts/get_coco.sh
-# parent
-# ├── yolov5
-# └── datasets
-#     └── coco  ← downloads here
-
-# Download/unzip labels
-d='../datasets' # unzip directory
-url=https://github.com/ultralytics/yolov5/releases/download/v1.0/
-f='coco2017labels.zip' # or 'coco2017labels-segments.zip', 68 MB
-echo 'Downloading' $url$f ' ...'
-curl -L $url$f -o $f && unzip -q $f -d $d && rm $f &
-
-# Download/unzip images
-d='../datasets/coco/images' # unzip directory
-url=http://images.cocodataset.org/zips/
-f1='train2017.zip' # 19G, 118k images
-f2='val2017.zip'   # 1G, 5k images
-f3='test2017.zip'  # 7G, 41k images (optional)
-for f in $f1 $f2; do
-  echo 'Downloading' $url$f '...'
-  curl -L $url$f -o $f && unzip -q $f -d $d && rm $f &
-done
-wait # finish background tasks
diff --git a/src/sparseml/yolov5/data/scripts/get_coco128.sh b/src/sparseml/yolov5/data/scripts/get_coco128.sh
deleted file mode 100644
index ee05a867e56..00000000000
--- a/src/sparseml/yolov5/data/scripts/get_coco128.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Download COCO128 dataset https://www.kaggle.com/ultralytics/coco128 (first 128 images from COCO train2017)
-# Example usage: bash data/scripts/get_coco128.sh
-# parent
-# ├── yolov5
-# └── datasets
-#     └── coco128  ← downloads here
-
-# Download/unzip images and labels
-d='../datasets' # unzip directory
-url=https://github.com/ultralytics/yolov5/releases/download/v1.0/
-f='coco128.zip' # or 'coco128-segments.zip', 68 MB
-echo 'Downloading' $url$f ' ...'
-curl -L $url$f -o $f && unzip -q $f -d $d && rm $f &
-
-wait # finish background tasks
diff --git a/src/sparseml/yolov5/data/xView.yaml b/src/sparseml/yolov5/data/xView.yaml
deleted file mode 100644
index 217736f1dc8..00000000000
--- a/src/sparseml/yolov5/data/xView.yaml
+++ /dev/null
@@ -1,102 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# DIUx xView 2018 Challenge https://challenge.xviewdataset.org by U.S. National Geospatial-Intelligence Agency (NGA)
-# --------  DOWNLOAD DATA MANUALLY and jar xf val_images.zip to 'datasets/xView' before running train command!  --------
-# Example usage: python train.py --data xView.yaml
-# parent
-# ├── yolov5
-# └── datasets
-#     └── xView  ← downloads here
-
-
-# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
-path: datasets/xView  # dataset root dir
-train: images/autosplit_train.txt  # train images (relative to 'path') 90% of 847 train images
-val: images/autosplit_val.txt  # train images (relative to 'path') 10% of 847 train images
-
-# Classes
-nc: 60  # number of classes
-names: ['Fixed-wing Aircraft', 'Small Aircraft', 'Cargo Plane', 'Helicopter', 'Passenger Vehicle', 'Small Car', 'Bus',
-        'Pickup Truck', 'Utility Truck', 'Truck', 'Cargo Truck', 'Truck w/Box', 'Truck Tractor', 'Trailer',
-        'Truck w/Flatbed', 'Truck w/Liquid', 'Crane Truck', 'Railway Vehicle', 'Passenger Car', 'Cargo Car',
-        'Flat Car', 'Tank car', 'Locomotive', 'Maritime Vessel', 'Motorboat', 'Sailboat', 'Tugboat', 'Barge',
-        'Fishing Vessel', 'Ferry', 'Yacht', 'Container Ship', 'Oil Tanker', 'Engineering Vehicle', 'Tower crane',
-        'Container Crane', 'Reach Stacker', 'Straddle Carrier', 'Mobile Crane', 'Dump Truck', 'Haul Truck',
-        'Scraper/Tractor', 'Front loader/Bulldozer', 'Excavator', 'Cement Mixer', 'Ground Grader', 'Hut/Tent', 'Shed',
-        'Building', 'Aircraft Hangar', 'Damaged Building', 'Facility', 'Construction Site', 'Vehicle Lot', 'Helipad',
-        'Storage Tank', 'Shipping container lot', 'Shipping Container', 'Pylon', 'Tower']  # class names
-
-
-# Download script/URL (optional) ---------------------------------------------------------------------------------------
-download: |
-  import json
-  import os
-  from pathlib import Path
-
-  import numpy as np
-  from PIL import Image
-  from tqdm import tqdm
-
-  from utils.datasets import autosplit
-  from utils.general import download, xyxy2xywhn
-
-
-  def convert_labels(fname=Path('xView/xView_train.geojson')):
-      # Convert xView geoJSON labels to YOLO format
-      path = fname.parent
-      with open(fname) as f:
-          print(f'Loading {fname}...')
-          data = json.load(f)
-
-      # Make dirs
-      labels = Path(path / 'labels' / 'train')
-      os.system(f'rm -rf {labels}')
-      labels.mkdir(parents=True, exist_ok=True)
-
-      # xView classes 11-94 to 0-59
-      xview_class2index = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, -1, 3, -1, 4, 5, 6, 7, 8, -1, 9, 10, 11,
-                           12, 13, 14, 15, -1, -1, 16, 17, 18, 19, 20, 21, 22, -1, 23, 24, 25, -1, 26, 27, -1, 28, -1,
-                           29, 30, 31, 32, 33, 34, 35, 36, 37, -1, 38, 39, 40, 41, 42, 43, 44, 45, -1, -1, -1, -1, 46,
-                           47, 48, 49, -1, 50, 51, -1, 52, -1, -1, -1, 53, 54, -1, 55, -1, -1, 56, -1, 57, -1, 58, 59]
-
-      shapes = {}
-      for feature in tqdm(data['features'], desc=f'Converting {fname}'):
-          p = feature['properties']
-          if p['bounds_imcoords']:
-              id = p['image_id']
-              file = path / 'train_images' / id
-              if file.exists():  # 1395.tif missing
-                  try:
-                      box = np.array([int(num) for num in p['bounds_imcoords'].split(",")])
-                      assert box.shape[0] == 4, f'incorrect box shape {box.shape[0]}'
-                      cls = p['type_id']
-                      cls = xview_class2index[int(cls)]  # xView class to 0-60
-                      assert 59 >= cls >= 0, f'incorrect class index {cls}'
-
-                      # Write YOLO label
-                      if id not in shapes:
-                          shapes[id] = Image.open(file).size
-                      box = xyxy2xywhn(box[None].astype(np.float), w=shapes[id][0], h=shapes[id][1], clip=True)
-                      with open((labels / id).with_suffix('.txt'), 'a') as f:
-                          f.write(f"{cls} {' '.join(f'{x:.6f}' for x in box[0])}\n")  # write label.txt
-                  except Exception as e:
-                      print(f'WARNING: skipping one label for {file}: {e}')
-
-
-  # Download manually from https://challenge.xviewdataset.org
-  dir = Path(yaml['path'])  # dataset root dir
-  # urls = ['https://d307kc0mrhucc3.cloudfront.net/train_labels.zip',  # train labels
-  #         'https://d307kc0mrhucc3.cloudfront.net/train_images.zip',  # 15G, 847 train images
-  #         'https://d307kc0mrhucc3.cloudfront.net/val_images.zip']  # 5G, 282 val images (no labels)
-  # download(urls, dir=dir, delete=False)
-
-  # Convert labels
-  convert_labels(dir / 'xView_train.geojson')
-
-  # Move images
-  images = Path(dir / 'images')
-  images.mkdir(parents=True, exist_ok=True)
-  Path(dir / 'train_images').rename(dir / 'images' / 'train')
-  Path(dir / 'val_images').rename(dir / 'images' / 'val')
-
-  # Split
-  autosplit(dir / 'images' / 'train')
diff --git a/src/sparseml/yolov5/models/hub/anchors.yaml b/src/sparseml/yolov5/models/hub/anchors.yaml
deleted file mode 100644
index e4d7beb06e0..00000000000
--- a/src/sparseml/yolov5/models/hub/anchors.yaml
+++ /dev/null
@@ -1,59 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-# Default anchors for COCO data
-
-
-# P5 -------------------------------------------------------------------------------------------------------------------
-# P5-640:
-anchors_p5_640:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-
-# P6 -------------------------------------------------------------------------------------------------------------------
-# P6-640:  thr=0.25: 0.9964 BPR, 5.54 anchors past thr, n=12, img_size=640, metric_all=0.281/0.716-mean/best, past_thr=0.469-mean: 9,11,  21,19,  17,41,  43,32,  39,70,  86,64,  65,131,  134,130,  120,265,  282,180,  247,354,  512,387
-anchors_p6_640:
-  - [9,11,  21,19,  17,41]  # P3/8
-  - [43,32,  39,70,  86,64]  # P4/16
-  - [65,131,  134,130,  120,265]  # P5/32
-  - [282,180,  247,354,  512,387]  # P6/64
-
-# P6-1280:  thr=0.25: 0.9950 BPR, 5.55 anchors past thr, n=12, img_size=1280, metric_all=0.281/0.714-mean/best, past_thr=0.468-mean: 19,27,  44,40,  38,94,  96,68,  86,152,  180,137,  140,301,  303,264,  238,542,  436,615,  739,380,  925,792
-anchors_p6_1280:
-  - [19,27,  44,40,  38,94]  # P3/8
-  - [96,68,  86,152,  180,137]  # P4/16
-  - [140,301,  303,264,  238,542]  # P5/32
-  - [436,615,  739,380,  925,792]  # P6/64
-
-# P6-1920:  thr=0.25: 0.9950 BPR, 5.55 anchors past thr, n=12, img_size=1920, metric_all=0.281/0.714-mean/best, past_thr=0.468-mean: 28,41,  67,59,  57,141,  144,103,  129,227,  270,205,  209,452,  455,396,  358,812,  653,922,  1109,570,  1387,1187
-anchors_p6_1920:
-  - [28,41,  67,59,  57,141]  # P3/8
-  - [144,103,  129,227,  270,205]  # P4/16
-  - [209,452,  455,396,  358,812]  # P5/32
-  - [653,922,  1109,570,  1387,1187]  # P6/64
-
-
-# P7 -------------------------------------------------------------------------------------------------------------------
-# P7-640:  thr=0.25: 0.9962 BPR, 6.76 anchors past thr, n=15, img_size=640, metric_all=0.275/0.733-mean/best, past_thr=0.466-mean: 11,11,  13,30,  29,20,  30,46,  61,38,  39,92,  78,80,  146,66,  79,163,  149,150,  321,143,  157,303,  257,402,  359,290,  524,372
-anchors_p7_640:
-  - [11,11,  13,30,  29,20]  # P3/8
-  - [30,46,  61,38,  39,92]  # P4/16
-  - [78,80,  146,66,  79,163]  # P5/32
-  - [149,150,  321,143,  157,303]  # P6/64
-  - [257,402,  359,290,  524,372]  # P7/128
-
-# P7-1280:  thr=0.25: 0.9968 BPR, 6.71 anchors past thr, n=15, img_size=1280, metric_all=0.273/0.732-mean/best, past_thr=0.463-mean: 19,22,  54,36,  32,77,  70,83,  138,71,  75,173,  165,159,  148,334,  375,151,  334,317,  251,626,  499,474,  750,326,  534,814,  1079,818
-anchors_p7_1280:
-  - [19,22,  54,36,  32,77]  # P3/8
-  - [70,83,  138,71,  75,173]  # P4/16
-  - [165,159,  148,334,  375,151]  # P5/32
-  - [334,317,  251,626,  499,474]  # P6/64
-  - [750,326,  534,814,  1079,818]  # P7/128
-
-# P7-1920:  thr=0.25: 0.9968 BPR, 6.71 anchors past thr, n=15, img_size=1920, metric_all=0.273/0.732-mean/best, past_thr=0.463-mean: 29,34,  81,55,  47,115,  105,124,  207,107,  113,259,  247,238,  222,500,  563,227,  501,476,  376,939,  749,711,  1126,489,  801,1222,  1618,1227
-anchors_p7_1920:
-  - [29,34,  81,55,  47,115]  # P3/8
-  - [105,124,  207,107,  113,259]  # P4/16
-  - [247,238,  222,500,  563,227]  # P5/32
-  - [501,476,  376,939,  749,711]  # P6/64
-  - [1126,489,  801,1222,  1618,1227]  # P7/128
diff --git a/src/sparseml/yolov5/models/hub/yolov3-spp.yaml b/src/sparseml/yolov5/models/hub/yolov3-spp.yaml
deleted file mode 100644
index c66982158ce..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov3-spp.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# darknet53 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [32, 3, 1]],  # 0
-   [-1, 1, Conv, [64, 3, 2]],  # 1-P1/2
-   [-1, 1, Bottleneck, [64]],
-   [-1, 1, Conv, [128, 3, 2]],  # 3-P2/4
-   [-1, 2, Bottleneck, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 5-P3/8
-   [-1, 8, Bottleneck, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 7-P4/16
-   [-1, 8, Bottleneck, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 9-P5/32
-   [-1, 4, Bottleneck, [1024]],  # 10
-  ]
-
-# YOLOv3-SPP head
-head:
-  [[-1, 1, Bottleneck, [1024, False]],
-   [-1, 1, SPP, [512, [5, 9, 13]]],
-   [-1, 1, Conv, [1024, 3, 1]],
-   [-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, Conv, [1024, 3, 1]],  # 15 (P5/32-large)
-
-   [-2, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 8], 1, Concat, [1]],  # cat backbone P4
-   [-1, 1, Bottleneck, [512, False]],
-   [-1, 1, Bottleneck, [512, False]],
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, Conv, [512, 3, 1]],  # 22 (P4/16-medium)
-
-   [-2, 1, Conv, [128, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P3
-   [-1, 1, Bottleneck, [256, False]],
-   [-1, 2, Bottleneck, [256, False]],  # 27 (P3/8-small)
-
-   [[27, 22, 15], 1, Detect, [nc, anchors]],   # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov3-tiny.yaml b/src/sparseml/yolov5/models/hub/yolov3-tiny.yaml
deleted file mode 100644
index b28b4431524..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov3-tiny.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-anchors:
-  - [10,14, 23,27, 37,58]  # P4/16
-  - [81,82, 135,169, 344,319]  # P5/32
-
-# YOLOv3-tiny backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [16, 3, 1]],  # 0
-   [-1, 1, nn.MaxPool2d, [2, 2, 0]],  # 1-P1/2
-   [-1, 1, Conv, [32, 3, 1]],
-   [-1, 1, nn.MaxPool2d, [2, 2, 0]],  # 3-P2/4
-   [-1, 1, Conv, [64, 3, 1]],
-   [-1, 1, nn.MaxPool2d, [2, 2, 0]],  # 5-P3/8
-   [-1, 1, Conv, [128, 3, 1]],
-   [-1, 1, nn.MaxPool2d, [2, 2, 0]],  # 7-P4/16
-   [-1, 1, Conv, [256, 3, 1]],
-   [-1, 1, nn.MaxPool2d, [2, 2, 0]],  # 9-P5/32
-   [-1, 1, Conv, [512, 3, 1]],
-   [-1, 1, nn.ZeroPad2d, [[0, 1, 0, 1]]],  # 11
-   [-1, 1, nn.MaxPool2d, [2, 1, 0]],  # 12
-  ]
-
-# YOLOv3-tiny head
-head:
-  [[-1, 1, Conv, [1024, 3, 1]],
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, Conv, [512, 3, 1]],  # 15 (P5/32-large)
-
-   [-2, 1, Conv, [128, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 8], 1, Concat, [1]],  # cat backbone P4
-   [-1, 1, Conv, [256, 3, 1]],  # 19 (P4/16-medium)
-
-   [[19, 15], 1, Detect, [nc, anchors]],  # Detect(P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov3.yaml b/src/sparseml/yolov5/models/hub/yolov3.yaml
deleted file mode 100644
index d1ef91290a8..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov3.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# darknet53 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [32, 3, 1]],  # 0
-   [-1, 1, Conv, [64, 3, 2]],  # 1-P1/2
-   [-1, 1, Bottleneck, [64]],
-   [-1, 1, Conv, [128, 3, 2]],  # 3-P2/4
-   [-1, 2, Bottleneck, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 5-P3/8
-   [-1, 8, Bottleneck, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 7-P4/16
-   [-1, 8, Bottleneck, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 9-P5/32
-   [-1, 4, Bottleneck, [1024]],  # 10
-  ]
-
-# YOLOv3 head
-head:
-  [[-1, 1, Bottleneck, [1024, False]],
-   [-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, Conv, [1024, 3, 1]],
-   [-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, Conv, [1024, 3, 1]],  # 15 (P5/32-large)
-
-   [-2, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 8], 1, Concat, [1]],  # cat backbone P4
-   [-1, 1, Bottleneck, [512, False]],
-   [-1, 1, Bottleneck, [512, False]],
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, Conv, [512, 3, 1]],  # 22 (P4/16-medium)
-
-   [-2, 1, Conv, [128, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P3
-   [-1, 1, Bottleneck, [256, False]],
-   [-1, 2, Bottleneck, [256, False]],  # 27 (P3/8-small)
-
-   [[27, 22, 15], 1, Detect, [nc, anchors]],   # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5-bifpn.yaml b/src/sparseml/yolov5/models/hub/yolov5-bifpn.yaml
deleted file mode 100644
index 504815f5cfa..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5-bifpn.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 9
-  ]
-
-# YOLOv5 v6.0 BiFPN head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14, 6], 1, Concat, [1]],  # cat P4 <--- BiFPN change
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5-fpn.yaml b/src/sparseml/yolov5/models/hub/yolov5-fpn.yaml
deleted file mode 100644
index a23e9c6fbf9..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5-fpn.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 9
-  ]
-
-# YOLOv5 v6.0 FPN head
-head:
-  [[-1, 3, C3, [1024, False]],  # 10 (P5/32-large)
-
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 1, Conv, [512, 1, 1]],
-   [-1, 3, C3, [512, False]],  # 14 (P4/16-medium)
-
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 3, C3, [256, False]],  # 18 (P3/8-small)
-
-   [[18, 14, 10], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5-p2.yaml b/src/sparseml/yolov5/models/hub/yolov5-p2.yaml
deleted file mode 100644
index 554117dda59..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5-p2.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-anchors: 3  # AutoAnchor evolves 3 anchors per P output layer
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 9
-  ]
-
-# YOLOv5 v6.0 head with (P2, P3, P4, P5) outputs
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [128, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 2], 1, Concat, [1]],  # cat backbone P2
-   [-1, 1, C3, [128, False]],  # 21 (P2/4-xsmall)
-
-   [-1, 1, Conv, [128, 3, 2]],
-   [[-1, 18], 1, Concat, [1]],  # cat head P3
-   [-1, 3, C3, [256, False]],  # 24 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 27 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 30 (P5/32-large)
-
-   [[21, 24, 27, 30], 1, Detect, [nc, anchors]],  # Detect(P2, P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5-p34.yaml b/src/sparseml/yolov5/models/hub/yolov5-p34.yaml
deleted file mode 100644
index dbf0f850083..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5-p34.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 0.33  # model depth multiple
-width_multiple: 0.50  # layer channel multiple
-anchors: 3  # AutoAnchor evolves 3 anchors per P output layer
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [ [ -1, 1, Conv, [ 64, 6, 2, 2 ] ],  # 0-P1/2
-    [ -1, 1, Conv, [ 128, 3, 2 ] ],  # 1-P2/4
-    [ -1, 3, C3, [ 128 ] ],
-    [ -1, 1, Conv, [ 256, 3, 2 ] ],  # 3-P3/8
-    [ -1, 6, C3, [ 256 ] ],
-    [ -1, 1, Conv, [ 512, 3, 2 ] ],  # 5-P4/16
-    [ -1, 9, C3, [ 512 ] ],
-    [ -1, 1, Conv, [ 1024, 3, 2 ] ],  # 7-P5/32
-    [ -1, 3, C3, [ 1024 ] ],
-    [ -1, 1, SPPF, [ 1024, 5 ] ],  # 9
-  ]
-
-# YOLOv5 v6.0 head with (P3, P4) outputs
-head:
-  [ [ -1, 1, Conv, [ 512, 1, 1 ] ],
-    [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
-    [ [ -1, 6 ], 1, Concat, [ 1 ] ],  # cat backbone P4
-    [ -1, 3, C3, [ 512, False ] ],  # 13
-
-    [ -1, 1, Conv, [ 256, 1, 1 ] ],
-    [ -1, 1, nn.Upsample, [ None, 2, 'nearest' ] ],
-    [ [ -1, 4 ], 1, Concat, [ 1 ] ],  # cat backbone P3
-    [ -1, 3, C3, [ 256, False ] ],  # 17 (P3/8-small)
-
-    [ -1, 1, Conv, [ 256, 3, 2 ] ],
-    [ [ -1, 14 ], 1, Concat, [ 1 ] ],  # cat head P4
-    [ -1, 3, C3, [ 512, False ] ],  # 20 (P4/16-medium)
-
-    [ [ 17, 20 ], 1, Detect, [ nc, anchors ] ],  # Detect(P3, P4)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5-p6.yaml b/src/sparseml/yolov5/models/hub/yolov5-p6.yaml
deleted file mode 100644
index a17202f2204..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5-p6.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-anchors: 3  # AutoAnchor evolves 3 anchors per P output layer
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [768, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [768]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 9-P6/64
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 11
-  ]
-
-# YOLOv5 v6.0 head with (P3, P4, P5, P6) outputs
-head:
-  [[-1, 1, Conv, [768, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 8], 1, Concat, [1]],  # cat backbone P5
-   [-1, 3, C3, [768, False]],  # 15
-
-   [-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 19
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 23 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 20], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 26 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 16], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [768, False]],  # 29 (P5/32-large)
-
-   [-1, 1, Conv, [768, 3, 2]],
-   [[-1, 12], 1, Concat, [1]],  # cat head P6
-   [-1, 3, C3, [1024, False]],  # 32 (P6/64-xlarge)
-
-   [[23, 26, 29, 32], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5, P6)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5-p7.yaml b/src/sparseml/yolov5/models/hub/yolov5-p7.yaml
deleted file mode 100644
index edd7d13a34a..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5-p7.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-anchors: 3  # AutoAnchor evolves 3 anchors per P output layer
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [768, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [768]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 9-P6/64
-   [-1, 3, C3, [1024]],
-   [-1, 1, Conv, [1280, 3, 2]],  # 11-P7/128
-   [-1, 3, C3, [1280]],
-   [-1, 1, SPPF, [1280, 5]],  # 13
-  ]
-
-# YOLOv5 v6.0 head with (P3, P4, P5, P6, P7) outputs
-head:
-  [[-1, 1, Conv, [1024, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 10], 1, Concat, [1]],  # cat backbone P6
-   [-1, 3, C3, [1024, False]],  # 17
-
-   [-1, 1, Conv, [768, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 8], 1, Concat, [1]],  # cat backbone P5
-   [-1, 3, C3, [768, False]],  # 21
-
-   [-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 25
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 29 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 26], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 32 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 22], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [768, False]],  # 35 (P5/32-large)
-
-   [-1, 1, Conv, [768, 3, 2]],
-   [[-1, 18], 1, Concat, [1]],  # cat head P6
-   [-1, 3, C3, [1024, False]],  # 38 (P6/64-xlarge)
-
-   [-1, 1, Conv, [1024, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P7
-   [-1, 3, C3, [1280, False]],  # 41 (P7/128-xxlarge)
-
-   [[29, 32, 35, 38, 41], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5, P6, P7)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5-panet.yaml b/src/sparseml/yolov5/models/hub/yolov5-panet.yaml
deleted file mode 100644
index ccfbf900691..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5-panet.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 9
-  ]
-
-# YOLOv5 v6.0 PANet head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5l6.yaml b/src/sparseml/yolov5/models/hub/yolov5l6.yaml
deleted file mode 100644
index 632c2cb699e..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5l6.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-anchors:
-  - [19,27,  44,40,  38,94]  # P3/8
-  - [96,68,  86,152,  180,137]  # P4/16
-  - [140,301,  303,264,  238,542]  # P5/32
-  - [436,615,  739,380,  925,792]  # P6/64
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [768, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [768]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 9-P6/64
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 11
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, Conv, [768, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 8], 1, Concat, [1]],  # cat backbone P5
-   [-1, 3, C3, [768, False]],  # 15
-
-   [-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 19
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 23 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 20], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 26 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 16], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [768, False]],  # 29 (P5/32-large)
-
-   [-1, 1, Conv, [768, 3, 2]],
-   [[-1, 12], 1, Concat, [1]],  # cat head P6
-   [-1, 3, C3, [1024, False]],  # 32 (P6/64-xlarge)
-
-   [[23, 26, 29, 32], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5, P6)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5m6.yaml b/src/sparseml/yolov5/models/hub/yolov5m6.yaml
deleted file mode 100644
index ecc53fd68ba..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5m6.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 0.67  # model depth multiple
-width_multiple: 0.75  # layer channel multiple
-anchors:
-  - [19,27,  44,40,  38,94]  # P3/8
-  - [96,68,  86,152,  180,137]  # P4/16
-  - [140,301,  303,264,  238,542]  # P5/32
-  - [436,615,  739,380,  925,792]  # P6/64
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [768, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [768]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 9-P6/64
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 11
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, Conv, [768, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 8], 1, Concat, [1]],  # cat backbone P5
-   [-1, 3, C3, [768, False]],  # 15
-
-   [-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 19
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 23 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 20], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 26 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 16], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [768, False]],  # 29 (P5/32-large)
-
-   [-1, 1, Conv, [768, 3, 2]],
-   [[-1, 12], 1, Concat, [1]],  # cat head P6
-   [-1, 3, C3, [1024, False]],  # 32 (P6/64-xlarge)
-
-   [[23, 26, 29, 32], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5, P6)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5n6.yaml b/src/sparseml/yolov5/models/hub/yolov5n6.yaml
deleted file mode 100644
index 0c0c71d3255..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5n6.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 0.33  # model depth multiple
-width_multiple: 0.25  # layer channel multiple
-anchors:
-  - [19,27,  44,40,  38,94]  # P3/8
-  - [96,68,  86,152,  180,137]  # P4/16
-  - [140,301,  303,264,  238,542]  # P5/32
-  - [436,615,  739,380,  925,792]  # P6/64
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [768, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [768]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 9-P6/64
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 11
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, Conv, [768, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 8], 1, Concat, [1]],  # cat backbone P5
-   [-1, 3, C3, [768, False]],  # 15
-
-   [-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 19
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 23 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 20], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 26 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 16], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [768, False]],  # 29 (P5/32-large)
-
-   [-1, 1, Conv, [768, 3, 2]],
-   [[-1, 12], 1, Concat, [1]],  # cat head P6
-   [-1, 3, C3, [1024, False]],  # 32 (P6/64-xlarge)
-
-   [[23, 26, 29, 32], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5, P6)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5s-ghost.yaml b/src/sparseml/yolov5/models/hub/yolov5s-ghost.yaml
deleted file mode 100644
index ff9519c3f1a..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5s-ghost.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 0.33  # model depth multiple
-width_multiple: 0.50  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, GhostConv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3Ghost, [128]],
-   [-1, 1, GhostConv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3Ghost, [256]],
-   [-1, 1, GhostConv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3Ghost, [512]],
-   [-1, 1, GhostConv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 3, C3Ghost, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 9
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, GhostConv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3Ghost, [512, False]],  # 13
-
-   [-1, 1, GhostConv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3Ghost, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, GhostConv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3Ghost, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, GhostConv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3Ghost, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5s-transformer.yaml b/src/sparseml/yolov5/models/hub/yolov5s-transformer.yaml
deleted file mode 100644
index 100d7c44752..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5s-transformer.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 0.33  # model depth multiple
-width_multiple: 0.50  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 3, C3TR, [1024]],  # 9 <--- C3TR() Transformer module
-   [-1, 1, SPPF, [1024, 5]],  # 9
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5s6.yaml b/src/sparseml/yolov5/models/hub/yolov5s6.yaml
deleted file mode 100644
index a28fb559482..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5s6.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 0.33  # model depth multiple
-width_multiple: 0.50  # layer channel multiple
-anchors:
-  - [19,27,  44,40,  38,94]  # P3/8
-  - [96,68,  86,152,  180,137]  # P4/16
-  - [140,301,  303,264,  238,542]  # P5/32
-  - [436,615,  739,380,  925,792]  # P6/64
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [768, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [768]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 9-P6/64
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 11
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, Conv, [768, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 8], 1, Concat, [1]],  # cat backbone P5
-   [-1, 3, C3, [768, False]],  # 15
-
-   [-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 19
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 23 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 20], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 26 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 16], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [768, False]],  # 29 (P5/32-large)
-
-   [-1, 1, Conv, [768, 3, 2]],
-   [[-1, 12], 1, Concat, [1]],  # cat head P6
-   [-1, 3, C3, [1024, False]],  # 32 (P6/64-xlarge)
-
-   [[23, 26, 29, 32], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5, P6)
-  ]
diff --git a/src/sparseml/yolov5/models/hub/yolov5x6.yaml b/src/sparseml/yolov5/models/hub/yolov5x6.yaml
deleted file mode 100644
index ba795c4aad3..00000000000
--- a/src/sparseml/yolov5/models/hub/yolov5x6.yaml
+++ /dev/null
@@ -1,60 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.33  # model depth multiple
-width_multiple: 1.25  # layer channel multiple
-anchors:
-  - [19,27,  44,40,  38,94]  # P3/8
-  - [96,68,  86,152,  180,137]  # P4/16
-  - [140,301,  303,264,  238,542]  # P5/32
-  - [436,615,  739,380,  925,792]  # P6/64
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [768, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [768]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 9-P6/64
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 11
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, Conv, [768, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 8], 1, Concat, [1]],  # cat backbone P5
-   [-1, 3, C3, [768, False]],  # 15
-
-   [-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 19
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 23 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 20], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 26 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 16], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [768, False]],  # 29 (P5/32-large)
-
-   [-1, 1, Conv, [768, 3, 2]],
-   [[-1, 12], 1, Concat, [1]],  # cat head P6
-   [-1, 3, C3, [1024, False]],  # 32 (P6/64-xlarge)
-
-   [[23, 26, 29, 32], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5, P6)
-  ]
diff --git a/src/sparseml/yolov5/models/yolov5l.yaml b/src/sparseml/yolov5/models/yolov5l.yaml
deleted file mode 100644
index ce8a5de46a2..00000000000
--- a/src/sparseml/yolov5/models/yolov5l.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 9
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/yolov5m.yaml b/src/sparseml/yolov5/models/yolov5m.yaml
deleted file mode 100644
index ad13ab370ff..00000000000
--- a/src/sparseml/yolov5/models/yolov5m.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 0.67  # model depth multiple
-width_multiple: 0.75  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 9
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/yolov5n.yaml b/src/sparseml/yolov5/models/yolov5n.yaml
deleted file mode 100644
index 8a28a40d6e2..00000000000
--- a/src/sparseml/yolov5/models/yolov5n.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 0.33  # model depth multiple
-width_multiple: 0.25  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 9
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/yolov5s.yaml b/src/sparseml/yolov5/models/yolov5s.yaml
deleted file mode 100644
index f35beabb1e1..00000000000
--- a/src/sparseml/yolov5/models/yolov5s.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 0.33  # model depth multiple
-width_multiple: 0.50  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 9
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models/yolov5x.yaml b/src/sparseml/yolov5/models/yolov5x.yaml
deleted file mode 100644
index f617a027d8a..00000000000
--- a/src/sparseml/yolov5/models/yolov5x.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-# YOLOv5 🚀 by Ultralytics, GPL-3.0 license
-
-# Parameters
-nc: 80  # number of classes
-depth_multiple: 1.33  # model depth multiple
-width_multiple: 1.25  # layer channel multiple
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 v6.0 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Conv, [64, 6, 2, 2]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 6, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 3, C3, [1024]],
-   [-1, 1, SPPF, [1024, 5]],  # 9
-  ]
-
-# YOLOv5 v6.0 head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models_v5.0/yolov5l.yaml b/src/sparseml/yolov5/models_v5.0/yolov5l.yaml
deleted file mode 100644
index a8550685479..00000000000
--- a/src/sparseml/yolov5/models_v5.0/yolov5l.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-# parameters
-nc: 80  # number of classes
-depth_multiple: 1.0  # model depth multiple
-width_multiple: 1.0  # layer channel multiple
-act: Hardswish # Overwrite activations for improved DeepSparse performance
-
-# anchors
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Focus, [64, 3]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 9, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 1, SPP, [1024, [5, 9, 13]]],
-   [-1, 3, C3, [1024, False]],  # 9
-  ]
-
-# YOLOv5 head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models_v5.0/yolov5m.yaml b/src/sparseml/yolov5/models_v5.0/yolov5m.yaml
deleted file mode 100644
index 8958c5e36f0..00000000000
--- a/src/sparseml/yolov5/models_v5.0/yolov5m.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-# parameters
-nc: 80  # number of classes
-depth_multiple: 0.67  # model depth multiple
-width_multiple: 0.75  # layer channel multiple
-act: Hardswish # Overwrite activations for improved DeepSparse performance
-
-# anchors
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Focus, [64, 3]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 9, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 1, SPP, [1024, [5, 9, 13]]],
-   [-1, 3, C3, [1024, False]],  # 9
-  ]
-
-# YOLOv5 head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models_v5.0/yolov5s.yaml b/src/sparseml/yolov5/models_v5.0/yolov5s.yaml
deleted file mode 100644
index 25d0602930b..00000000000
--- a/src/sparseml/yolov5/models_v5.0/yolov5s.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-# parameters
-nc: 80  # number of classes
-depth_multiple: 0.33  # model depth multiple
-width_multiple: 0.50  # layer channel multiple
-act: Hardswish # Overwrite activations for improved DeepSparse performance
-
-# anchors
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Focus, [64, 3]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 9, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 1, SPP, [1024, [5, 9, 13]]],
-   [-1, 3, C3, [1024, False]],  # 9
-  ]
-
-# YOLOv5 head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/models_v5.0/yolov5x.yaml b/src/sparseml/yolov5/models_v5.0/yolov5x.yaml
deleted file mode 100644
index 0e41877f506..00000000000
--- a/src/sparseml/yolov5/models_v5.0/yolov5x.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-# parameters
-nc: 80  # number of classes
-depth_multiple: 1.33  # model depth multiple
-width_multiple: 1.25  # layer channel multiple
-act: Hardswish # Overwrite activations for improved DeepSparse performance
-
-# anchors
-anchors:
-  - [10,13, 16,30, 33,23]  # P3/8
-  - [30,61, 62,45, 59,119]  # P4/16
-  - [116,90, 156,198, 373,326]  # P5/32
-
-# YOLOv5 backbone
-backbone:
-  # [from, number, module, args]
-  [[-1, 1, Focus, [64, 3]],  # 0-P1/2
-   [-1, 1, Conv, [128, 3, 2]],  # 1-P2/4
-   [-1, 3, C3, [128]],
-   [-1, 1, Conv, [256, 3, 2]],  # 3-P3/8
-   [-1, 9, C3, [256]],
-   [-1, 1, Conv, [512, 3, 2]],  # 5-P4/16
-   [-1, 9, C3, [512]],
-   [-1, 1, Conv, [1024, 3, 2]],  # 7-P5/32
-   [-1, 1, SPP, [1024, [5, 9, 13]]],
-   [-1, 3, C3, [1024, False]],  # 9
-  ]
-
-# YOLOv5 head
-head:
-  [[-1, 1, Conv, [512, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 6], 1, Concat, [1]],  # cat backbone P4
-   [-1, 3, C3, [512, False]],  # 13
-
-   [-1, 1, Conv, [256, 1, 1]],
-   [-1, 1, nn.Upsample, [None, 2, 'nearest']],
-   [[-1, 4], 1, Concat, [1]],  # cat backbone P3
-   [-1, 3, C3, [256, False]],  # 17 (P3/8-small)
-
-   [-1, 1, Conv, [256, 3, 2]],
-   [[-1, 14], 1, Concat, [1]],  # cat head P4
-   [-1, 3, C3, [512, False]],  # 20 (P4/16-medium)
-
-   [-1, 1, Conv, [512, 3, 2]],
-   [[-1, 10], 1, Concat, [1]],  # cat head P5
-   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
-
-   [[17, 20, 23], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
-  ]
diff --git a/src/sparseml/yolov5/scripts.py b/src/sparseml/yolov5/scripts.py
index c0a944b310e..b914013989c 100644
--- a/src/sparseml/yolov5/scripts.py
+++ b/src/sparseml/yolov5/scripts.py
@@ -22,18 +22,10 @@
 from yolov5.val import val_run
 
 
-val_onnx_error = None
-try:
-    from yolov5.val_onnx import parse_opt as parse_val_onnx_args
-    from yolov5.val_onnx import val_onnx_run
-except Exception as deepsparse_error:
-    val_onnx_error = deepsparse_error
-
 __all__ = [
     "train",
     "val",
     "export",
-    "val_onnx",
 ]
 
 
@@ -69,17 +61,3 @@ def export(**kwargs):
     else:
         opt = parse_export_args()
         export_run(**vars(opt))
-
-
-def val_onnx(**kwargs):
-    """
-    Hook to call into val_onnx.py in YOLOv5 fork
-    """
-    if val_onnx_error:
-        raise RuntimeError(val_onnx_error)
-
-    if kwargs:
-        val_onnx_run(**kwargs)
-    else:
-        opt = parse_val_onnx_args()
-        val_onnx_run(**vars(opt))


Test patch:
diff --git a/tests/integrations/config.py b/tests/integrations/config.py
index 837e84a9db2..dd0147e9f1a 100644
--- a/tests/integrations/config.py
+++ b/tests/integrations/config.py
@@ -58,10 +58,15 @@ def __init__(
         # Construct explicit path from relative path, using sparseml base directory
         # as root
         recipe = getattr(self.run_args, "recipe", None)
+        sparsification_recipe = getattr(self.run_args, "sparsification_recipe", None)
         if recipe and not recipe.startswith("zoo:"):
             self.run_args.recipe = str(
                 Path(os.path.join(ROOT, self.run_args.recipe)).resolve()
             )
+        elif sparsification_recipe and not sparsification_recipe.startswith("zoo:"):
+            self.run_args.sparsification_recipe = str(
+                Path(os.path.join(ROOT, self.run_args.sparsification_recipe)).resolve()
+            )
 
         self._validate_config()
 
diff --git a/tests/integrations/yolov5/args.py b/tests/integrations/yolov5/args.py
index cf451448822..d658e133605 100644
--- a/tests/integrations/yolov5/args.py
+++ b/tests/integrations/yolov5/args.py
@@ -12,7 +12,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-import os
 from pathlib import Path
 from typing import List, Optional, Tuple, Union
 
@@ -20,7 +19,6 @@
 
 
 FILE = Path(__file__).resolve()
-ROOT = Path(os.path.join(FILE.parents[3], "src", "sparseml", "yolov5"))
 
 
 class Yolov5TrainArgs(BaseModel):
@@ -29,24 +27,13 @@ class Yolov5TrainArgs(BaseModel):
     )
     cfg: Union[str, Path, None] = Field(default=None, description="model.yaml path")
     data: Union[str, Path] = Field(
-        default=ROOT / "data/coco128.yaml", description="dataset.yaml path"
+        default="coco128.yaml", description="dataset.yaml path"
     )
     hyp: Union[str, Path] = Field(
-        default=ROOT / "data/hyps/hyp.scratch-low.yaml",
+        default="hyp.scratch-low.yaml",
         description="hyperparameters path",
     )
     epochs: int = Field(default=300)
-    max_train_steps: int = Field(
-        default=-1,
-        description="Set the maximum number of training steps per epoch. if negative,"
-        "the entire training set will be used, default=-1",
-    )
-    max_eval_steps: int = Field(
-        default=-1,
-        description="Set the maximum number of eval steps per epoch. if negative,"
-        "the entire validation set will be used, default=-1",
-    )
-    one_shot: bool = Field(default=False, description="Apply recipe in one shot manner")
     batch_size: int = Field(
         default=16, description="total batch size for all GPUs, -1 for autobatch"
     )
@@ -81,7 +68,7 @@ class Yolov5TrainArgs(BaseModel):
         default=8, description="max dataloader workers (per RANK in DDP mode)"
     )
     project: Union[str, Path] = Field(
-        default=ROOT / "test_runs/train", description="save to project/name"
+        default="test_runs/train", description="save to project/name"
     )
     name: str = Field(default="exp", description="save to project/name")
     exist_ok: bool = Field(
@@ -99,7 +86,7 @@ class Yolov5TrainArgs(BaseModel):
     save_period: int = Field(
         default=-1, description="Save checkpoint every x epochs (disabled if < 1)"
     )
-    recipe: Union[str, Path, None] = Field(
+    sparsification_recipe: Union[str, Path, None] = Field(
         default=None,
         description="Path to a sparsification recipe, "
         "see https://github.com/neuralmagic/sparseml for more information",
@@ -130,7 +117,7 @@ def __post_init__(self):
 
 class Yolov5ExportArgs(BaseModel):
     weights: Union[str, Path] = Field(
-        default=ROOT / "yolov5s.pt", description="initial weights path"
+        default="yolov5s.pt", description="initial weights path"
     )
     imgsz: List[int] = Field(default=[640, 640], description="image (h, w)")
     batch_size: int = Field(default=16, description="batch size")
@@ -156,6 +143,7 @@ class Yolov5ExportArgs(BaseModel):
     remove_grid: bool = Field(
         default=False, description="remove export of Detect() layer grid"
     )
+    one_shot: str = Field(default=False, description="Apply recipe in one shot manner")
 
 
 class Yolov5DeployArgs(BaseModel):
diff --git a/tests/integrations/yolov5/configs/commit/test_ended_to_end_pruned_quantized.yaml b/tests/integrations/yolov5/configs/commit/test_ended_to_end_pruned_quantized.yaml
index 55955e581c0..d3f7098a373 100644
--- a/tests/integrations/yolov5/configs/commit/test_ended_to_end_pruned_quantized.yaml
+++ b/tests/integrations/yolov5/configs/commit/test_ended_to_end_pruned_quantized.yaml
@@ -1,9 +1,8 @@
 cadence: "commit"
-abridged: True
 train:
   command_args:
     weights: "zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/base-none"
-    recipe: "tests/integrations/yolov5/configs/commit/recipe_short_prune_quant.md"
+    sparsification_recipe: "tests/integrations/yolov5/configs/commit/recipe_short_prune_quant.md"
     batch_size: 4
 export:
   command_args:
diff --git a/tests/integrations/yolov5/configs/pre-commit/test_cli.yaml b/tests/integrations/yolov5/configs/pre-commit/test_cli.yaml
index 5b8c207c025..f1a0e35c456 100644
--- a/tests/integrations/yolov5/configs/pre-commit/test_cli.yaml
+++ b/tests/integrations/yolov5/configs/pre-commit/test_cli.yaml
@@ -1,9 +1,6 @@
 cadence: "pre-commit"
-train:
-  command_args:
-    weights: "zoo:cv/detection/yolov5-s/pytorch/ultralytics/coco/pruned65-none"
-    recipe: zoo:cv/detection/yolov5-s/pytorch/ultralytics/voc/pruned65_quant-none
-    one_shot: True
 export:
   command_args:
+    weights: "zoo:cv/detection/yolov5-n6/pytorch/ultralytics/coco/base-none"
+    one_shot: "zoo:cv/detection/yolov5-s/pytorch/ultralytics/voc/pruned65_quant-none"
     dynamic: True
diff --git a/tests/integrations/yolov5/test_yolov5.py b/tests/integrations/yolov5/test_yolov5.py
index 78259be2b71..63f34bedfbd 100644
--- a/tests/integrations/yolov5/test_yolov5.py
+++ b/tests/integrations/yolov5/test_yolov5.py
@@ -14,6 +14,7 @@
 
 import os
 import tempfile
+from pathlib import Path
 
 import onnx
 import pandas as pd
@@ -36,7 +37,7 @@
     Yolov5ExportArgs,
     Yolov5TrainArgs,
 )
-from yolov5.export import load_checkpoint
+from yolov5.models.common import DetectMultiBackend
 
 
 METRIC_TO_COLUMN = {"map0.5": "metrics/mAP_0.5"}
@@ -65,6 +66,7 @@ def capture_pre_run_state(self):
         super().capture_pre_run_state()
         self._check_deploy_requirements(deepsparse_error)
 
+        self.save_dir = None
         # Setup temporary directory for train run
         if "train" in self.configs:
             train_args = self.configs["train"].run_args
@@ -76,33 +78,29 @@ def capture_pre_run_state(self):
                 train_args.project,
                 "exp",
                 "weights",
-                "checkpoint-one-shot.pt" if train_args.one_shot else "last.pt",
+                "last.pt",
             )
 
         # Either grab output directory from train run or setup new temporary directory
         # for export
         if "export" in self.configs:
             export_args = self.configs["export"].run_args
-            if not self.save_dir:
-                self.save_dir = tempfile.TemporaryDirectory()
-                export_args.save_dir = self.save_dir.name
-            else:
+            if self.save_dir:
                 export_args.weights = self.expected_checkpoint_path
 
         if "deploy" in self.configs:
             deploy_args = self.configs["deploy"].run_args
-            if self.save_dir:
-                export_args = self.configs["export"].run_args
-                deploy_args.model_path = export_args.weights.replace(".pt", ".onnx")
+            export_args = self.configs["export"].run_args
+            deploy_args.model_path = _get_onnx_file_path(
+                export_args.weights, export_args.one_shot
+            )
 
         # Turn on "_" -> "-" conversion for CLI args
         for stage, config in self.configs.items():
             config.dashed_keywords = True
 
     def add_abridged_configs(self):
-        if "train" in self.command_types:
-            self.configs["train"].run_args.max_train_steps = 2
-            self.configs["train"].run_args.max_eval_steps = 2
+        pass  # max train and eval steps phased out
 
     def teardown(self):
         if "train" in self.command_types:
@@ -131,12 +129,8 @@ def test_train_complete(self, integration_manager):
         assert os.path.isfile(model_file)
 
         # Test that model file loadable
-        _, extras = load_checkpoint(
-            type_="val", weights=model_file, device=torch.device("cpu")
-        )
-
-        # Test that training ran to completion
-        assert extras["ckpt"]["epoch"] == -1
+        model = DetectMultiBackend(model_file, device=torch.device("cpu"))
+        assert model.model.sparsified
 
     @skip_inactive_stage
     def test_train_metrics(self, integration_manager):
@@ -161,8 +155,8 @@ def test_train_metrics(self, integration_manager):
     def test_export_onnx_graph(self, integration_manager):
         # Test that onnx model is loadable and passes onnx checker
         manager = integration_manager
-        export_args = manager.configs["export"]
-        onnx_file = export_args.run_args.weights.replace(".pt", ".onnx")
+        export_args = manager.configs["export"].run_args
+        onnx_file = _get_onnx_file_path(export_args.weights, export_args.one_shot)
 
         assert os.path.isfile(onnx_file)
 
@@ -180,14 +174,12 @@ def test_export_target_model(self, integration_manager):
         if not target_model_path:
             pytest.skip("No target model provided")
 
-        export_model_path = os.path.join(
-            os.path.dirname(export_args.run_args.weights), "last.onnx"
+        export_model_path = _get_onnx_file_path(
+            export_args.run_args.weights, export_args.run_args.one_shot
         )
 
         # Downloads model if zoo stubs and additionally tests that it can be loaded
-        _, *_ = load_checkpoint(
-            type_="val", weights=target_model_path, device=torch.device("cpu")
-        )
+        _ = DetectMultiBackend(target_model_path, device=torch.device("cpu"))
 
         model_op_counts_test(export_model_path, target_model_path)
 
@@ -204,3 +196,31 @@ def test_deploy_model_compile(self, integration_manager):
         manager = integration_manager
         args = manager.configs["deploy"]
         _ = Pipeline.create("yolo", model_path=args.run_args.model_path)
+
+
+def _get_onnx_file_path(weights, one_shot):
+    weights = Path(weights)
+
+    if str(weights).startswith("zoo:") or not len(weights.parents):
+        sub_dir = (
+            str(weights).split("zoo:")[1].replace("/", "_")
+            if str(weights).startswith("zoo:")
+            else weights
+        )
+
+        if one_shot:
+            one_shot_str = str(weights).split("zoo:")[1].replace("/", "_")
+            sub_dir = f"{sub_dir}_one_shot_{one_shot_str}"
+
+        save_dir = Path(os.getcwd()) / "DeepSparse_Deployment" / sub_dir
+        onnx_file_name = "model.onnx"
+
+    else:
+        save_dir = (
+            weights.parents[1] / "DeepSparse_Deployment"
+            if weights.parent.stem == "weights"
+            else weights.parent / "DeepSparse_Deployment"
+        )
+        onnx_file_name = weights.name
+
+    return str(save_dir / onnx_file_name)