2023-04-14 20:36:16 +08:00
# YOLOv5 🚀 by Ultralytics, AGPL-3.0 license
2021-08-15 03:17:51 +08:00
"""
2024-01-08 08:29:14 +08:00
YOLO - specific modules .
2021-05-26 18:06:08 +08:00
Usage :
2022-08-22 07:06:29 +08:00
$ python models / yolo . py - - cfg yolov5s . yaml
2021-05-26 18:06:08 +08:00
"""
2021-03-26 20:23:11 +08:00
2020-05-30 08:04:54 +08:00
import argparse
2022-07-22 05:12:49 +08:00
import contextlib
2024-01-03 18:34:34 +08:00
import math
2022-03-26 21:18:53 +08:00
import os
import platform
2020-10-05 00:50:32 +08:00
import sys
2020-07-14 05:35:47 +08:00
from copy import deepcopy
2021-04-27 23:02:07 +08:00
from pathlib import Path
2020-05-30 08:04:54 +08:00
2024-01-03 18:34:34 +08:00
import torch
import torch . nn as nn
2021-09-12 04:46:33 +08:00
FILE = Path ( __file__ ) . resolve ( )
2021-09-18 21:02:08 +08:00
ROOT = FILE . parents [ 1 ] # YOLOv5 root directory
if str ( ROOT ) not in sys . path :
sys . path . append ( str ( ROOT ) ) # add ROOT to PATH
2024-01-08 08:29:14 +08:00
if platform . system ( ) != " Windows " :
2022-03-26 21:18:53 +08:00
ROOT = Path ( os . path . relpath ( ROOT , Path . cwd ( ) ) ) # relative
2020-12-06 19:41:37 +08:00
2024-01-08 08:29:14 +08:00
from models . common import (
C3 ,
C3SPP ,
C3TR ,
SPP ,
SPPF ,
Bottleneck ,
BottleneckCSP ,
C3Ghost ,
C3x ,
Classify ,
Concat ,
Contract ,
Conv ,
CrossConv ,
DetectMultiBackend ,
DWConv ,
DWConvTranspose2d ,
Expand ,
Focus ,
GhostBottleneck ,
GhostConv ,
Proto ,
)
2024-01-03 18:34:34 +08:00
from models . experimental import MixConv2d
2020-11-14 18:50:32 +08:00
from utils . autoanchor import check_anchor_order
2024-01-03 18:34:34 +08:00
from utils . general import LOGGER , check_version , check_yaml , colorstr , make_divisible , print_args
2021-06-28 19:18:45 +08:00
from utils . plots import feature_visualization
2024-01-08 08:29:14 +08:00
from utils . torch_utils import (
fuse_conv_and_bn ,
initialize_weights ,
model_info ,
profile ,
scale_img ,
select_device ,
time_sync ,
)
2020-05-30 08:04:54 +08:00
2020-11-14 18:50:32 +08:00
try :
2021-06-08 16:22:10 +08:00
import thop # for FLOPs computation
2020-11-14 18:50:32 +08:00
except ImportError :
thop = None
2020-08-14 05:25:05 +08:00
2020-05-30 08:04:54 +08:00
class Detect ( nn . Module ) :
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
# YOLOv5 Detect head for detection models
2020-08-14 05:25:05 +08:00
stride = None # strides computed during build
2022-08-26 20:34:28 +08:00
dynamic = False # force grid reconstruction
2022-04-04 03:29:20 +08:00
export = False # export mode
2020-08-14 05:25:05 +08:00
2021-04-30 18:54:48 +08:00
def __init__ ( self , nc = 80 , anchors = ( ) , ch = ( ) , inplace = True ) : # detection layer
2021-07-19 18:41:15 +08:00
super ( ) . __init__ ( )
2020-05-30 08:04:54 +08:00
self . nc = nc # number of classes
self . no = nc + 5 # number of outputs per anchor
self . nl = len ( anchors ) # number of detection layers
self . na = len ( anchors [ 0 ] ) / / 2 # number of anchors
2022-09-19 19:31:24 +08:00
self . grid = [ torch . empty ( 0 ) for _ in range ( self . nl ) ] # init grid
self . anchor_grid = [ torch . empty ( 0 ) for _ in range ( self . nl ) ] # init anchor grid
2024-01-08 08:29:14 +08:00
self . register_buffer ( " anchors " , torch . tensor ( anchors ) . float ( ) . view ( self . nl , - 1 , 2 ) ) # shape(nl,na,2)
2020-07-24 06:34:23 +08:00
self . m = nn . ModuleList ( nn . Conv2d ( x , self . no * self . na , 1 ) for x in ch ) # output conv
2022-07-31 04:19:40 +08:00
self . inplace = inplace # use inplace ops (e.g. slice assignment)
2020-05-30 08:04:54 +08:00
def forward ( self , x ) :
2024-02-25 21:04:01 +08:00
""" Processes input through YOLOv5 layers, altering shape for detection: `x(bs, 3, ny, nx, 85)`. """
2020-05-30 08:04:54 +08:00
z = [ ] # inference output
for i in range ( self . nl ) :
2020-07-24 06:34:23 +08:00
x [ i ] = self . m [ i ] ( x [ i ] ) # conv
2020-05-30 08:04:54 +08:00
bs , _ , ny , nx = x [ i ] . shape # x(bs,255,20,20) to x(bs,3,20,20,85)
x [ i ] = x [ i ] . view ( bs , self . na , self . no , ny , nx ) . permute ( 0 , 1 , 3 , 4 , 2 ) . contiguous ( )
if not self . training : # inference
2022-08-26 20:34:28 +08:00
if self . dynamic or self . grid [ i ] . shape [ 2 : 4 ] != x [ i ] . shape [ 2 : 4 ] :
2021-10-12 00:58:42 +08:00
self . grid [ i ] , self . anchor_grid [ i ] = self . _make_grid ( nx , ny , i )
2020-05-30 08:04:54 +08:00
2022-09-18 05:17:59 +08:00
if isinstance ( self , Segment ) : # (boxes + masks)
xy , wh , conf , mask = x [ i ] . split ( ( 2 , 2 , self . nc + 1 , self . no - self . nc - 5 ) , 4 )
xy = ( xy . sigmoid ( ) * 2 + self . grid [ i ] ) * self . stride [ i ] # xy
wh = ( wh . sigmoid ( ) * 2 ) * * 2 * self . anchor_grid [ i ] # wh
y = torch . cat ( ( xy , wh , conf . sigmoid ( ) , mask ) , 4 )
else : # Detect (boxes only)
xy , wh , conf = x [ i ] . sigmoid ( ) . split ( ( 2 , 2 , self . nc + 1 ) , 4 )
2022-04-04 05:40:23 +08:00
xy = ( xy * 2 + self . grid [ i ] ) * self . stride [ i ] # xy
2022-04-04 02:05:50 +08:00
wh = ( wh * 2 ) * * 2 * self . anchor_grid [ i ] # wh
2022-09-18 05:17:59 +08:00
y = torch . cat ( ( xy , wh , conf ) , 4 )
z . append ( y . view ( bs , self . na * nx * ny , self . no ) )
2020-05-30 08:04:54 +08:00
2024-01-08 08:29:14 +08:00
return x if self . training else ( torch . cat ( z , 1 ) , ) if self . export else ( torch . cat ( z , 1 ) , x )
2020-05-30 08:04:54 +08:00
2024-01-08 08:29:14 +08:00
def _make_grid ( self , nx = 20 , ny = 20 , i = 0 , torch_1_10 = check_version ( torch . __version__ , " 1.10.0 " ) ) :
2024-02-25 21:04:01 +08:00
""" Generates a mesh grid for anchor boxes with optional compatibility for torch versions < 1.10. """
2021-10-12 00:58:42 +08:00
d = self . anchors [ i ] . device
2022-04-08 18:55:16 +08:00
t = self . anchors [ i ] . dtype
2022-03-23 03:44:07 +08:00
shape = 1 , self . na , ny , nx , 2 # grid shape
2022-04-08 18:55:16 +08:00
y , x = torch . arange ( ny , device = d , dtype = t ) , torch . arange ( nx , device = d , dtype = t )
2024-01-08 08:29:14 +08:00
yv , xv = torch . meshgrid ( y , x , indexing = " ij " ) if torch_1_10 else torch . meshgrid ( y , x ) # torch>=0.7 compatibility
2022-04-08 18:55:16 +08:00
grid = torch . stack ( ( xv , yv ) , 2 ) . expand ( shape ) - 0.5 # add grid offset, i.e. y = 2.0 * x - 0.5
anchor_grid = ( self . anchors [ i ] * self . stride [ i ] ) . view ( ( 1 , self . na , 1 , 1 , 2 ) ) . expand ( shape )
2021-10-12 00:58:42 +08:00
return grid , anchor_grid
2020-05-30 08:04:54 +08:00
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
class Segment ( Detect ) :
# YOLOv5 Segment head for segmentation models
def __init__ ( self , nc = 80 , anchors = ( ) , nm = 32 , npr = 256 , ch = ( ) , inplace = True ) :
2024-02-25 21:04:01 +08:00
""" Initializes YOLOv5 Segment head with options for mask count, protos, and channel adjustments. """
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
super ( ) . __init__ ( nc , anchors , ch , inplace )
self . nm = nm # number of masks
self . npr = npr # number of protos
self . no = 5 + nc + self . nm # number of outputs per anchor
self . m = nn . ModuleList ( nn . Conv2d ( x , self . no * self . na , 1 ) for x in ch ) # output conv
self . proto = Proto ( ch [ 0 ] , self . npr , self . nm ) # protos
self . detect = Detect . forward
def forward ( self , x ) :
2024-02-25 21:04:01 +08:00
""" Processes input through the network, returning detections and prototypes; adjusts output based on
training / export mode .
"""
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
p = self . proto ( x [ 0 ] )
x = self . detect ( self , x )
return ( x , p ) if self . training else ( x [ 0 ] , p ) if self . export else ( x [ 0 ] , p , x [ 1 ] )
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
class BaseModel ( nn . Module ) :
2024-02-25 21:04:01 +08:00
""" YOLOv5 base model. """
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
def forward ( self , x , profile = False , visualize = False ) :
2024-02-25 21:04:01 +08:00
""" Executes a single-scale inference or training pass on the YOLOv5 base model, with options for profiling and
visualization .
"""
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
return self . _forward_once ( x , profile , visualize ) # single-scale inference, train
def _forward_once ( self , x , profile = False , visualize = False ) :
2024-02-25 21:04:01 +08:00
""" Performs a forward pass on the YOLOv5 model, enabling profiling and feature visualization options. """
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
y , dt = [ ] , [ ] # outputs
for m in self . model :
if m . f != - 1 : # if not from previous layer
x = y [ m . f ] if isinstance ( m . f , int ) else [ x if j == - 1 else y [ j ] for j in m . f ] # from earlier layers
if profile :
self . _profile_one_layer ( m , x , dt )
x = m ( x ) # run
y . append ( x if m . i in self . save else None ) # save output
if visualize :
feature_visualization ( x , m . type , m . i , save_dir = visualize )
return x
def _profile_one_layer ( self , m , x , dt ) :
2024-02-25 21:04:01 +08:00
""" Profiles a single layer ' s performance by computing GFLOPs, execution time, and parameters. """
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
c = m == self . model [ - 1 ] # is final layer, copy input as inplace fix
2024-01-08 08:29:14 +08:00
o = thop . profile ( m , inputs = ( x . copy ( ) if c else x , ) , verbose = False ) [ 0 ] / 1e9 * 2 if thop else 0 # FLOPs
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
t = time_sync ( )
for _ in range ( 10 ) :
m ( x . copy ( ) if c else x )
dt . append ( ( time_sync ( ) - t ) * 100 )
if m == self . model [ 0 ] :
LOGGER . info ( f " { ' time (ms) ' : >10s } { ' GFLOPs ' : >10s } { ' params ' : >10s } module " )
2024-01-08 08:29:14 +08:00
LOGGER . info ( f " { dt [ - 1 ] : 10.2f } { o : 10.2f } { m . np : 10.0f } { m . type } " )
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
if c :
LOGGER . info ( f " { sum ( dt ) : 10.2f } { ' - ' : >10s } { ' - ' : >10s } Total " )
def fuse ( self ) : # fuse model Conv2d() + BatchNorm2d() layers
2024-01-08 08:29:14 +08:00
LOGGER . info ( " Fusing layers... " )
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
for m in self . model . modules ( ) :
2024-01-08 08:29:14 +08:00
if isinstance ( m , ( Conv , DWConv ) ) and hasattr ( m , " bn " ) :
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
m . conv = fuse_conv_and_bn ( m . conv , m . bn ) # update conv
2024-01-08 08:29:14 +08:00
delattr ( m , " bn " ) # remove batchnorm
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
m . forward = m . forward_fuse # update forward
self . info ( )
return self
def info ( self , verbose = False , img_size = 640 ) : # print model information
model_info ( self , verbose , img_size )
def _apply ( self , fn ) :
2024-02-25 21:04:01 +08:00
""" Applies transformations like to(), cpu(), cuda(), half() to model tensors excluding parameters or registered
buffers .
"""
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
self = super ( ) . _apply ( fn )
m = self . model [ - 1 ] # Detect()
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
if isinstance ( m , ( Detect , Segment ) ) :
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
m . stride = fn ( m . stride )
m . grid = list ( map ( fn , m . grid ) )
if isinstance ( m . anchor_grid , list ) :
m . anchor_grid = list ( map ( fn , m . anchor_grid ) )
return self
class DetectionModel ( BaseModel ) :
# YOLOv5 detection model
2024-01-08 08:29:14 +08:00
def __init__ ( self , cfg = " yolov5s.yaml " , ch = 3 , nc = None , anchors = None ) : # model, input channels, number of classes
2021-07-19 18:41:15 +08:00
super ( ) . __init__ ( )
2020-07-14 05:35:47 +08:00
if isinstance ( cfg , dict ) :
self . yaml = cfg # model dict
2020-06-10 05:31:04 +08:00
else : # is *.yaml
2020-07-06 04:41:21 +08:00
import yaml # for torch hub
2024-01-08 08:29:14 +08:00
2020-07-14 05:35:47 +08:00
self . yaml_file = Path ( cfg ) . name
2024-01-08 08:29:14 +08:00
with open ( cfg , encoding = " ascii " , errors = " ignore " ) as f :
2021-04-21 20:34:45 +08:00
self . yaml = yaml . safe_load ( f ) # model dict
2020-05-30 08:04:54 +08:00
# Define model
2024-01-08 08:29:14 +08:00
ch = self . yaml [ " ch " ] = self . yaml . get ( " ch " , ch ) # input channels
if nc and nc != self . yaml [ " nc " ] :
2021-07-19 16:43:01 +08:00
LOGGER . info ( f " Overriding model.yaml nc= { self . yaml [ ' nc ' ] } with nc= { nc } " )
2024-01-08 08:29:14 +08:00
self . yaml [ " nc " ] = nc # override yaml value
2021-03-03 15:08:21 +08:00
if anchors :
2024-01-08 08:29:14 +08:00
LOGGER . info ( f " Overriding model.yaml anchors with anchors= { anchors } " )
self . yaml [ " anchors " ] = round ( anchors ) # override yaml value
2020-12-20 02:54:01 +08:00
self . model , self . save = parse_model ( deepcopy ( self . yaml ) , ch = [ ch ] ) # model, savelist
2024-01-08 08:29:14 +08:00
self . names = [ str ( i ) for i in range ( self . yaml [ " nc " ] ) ] # default names
self . inplace = self . yaml . get ( " inplace " , True )
2020-05-30 08:04:54 +08:00
# Build strides, anchors
m = self . model [ - 1 ] # Detect()
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
if isinstance ( m , ( Detect , Segment ) ) :
2021-01-05 11:54:09 +08:00
s = 256 # 2x min stride
2021-04-30 18:54:48 +08:00
m . inplace = self . inplace
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
forward = lambda x : self . forward ( x ) [ 0 ] if isinstance ( m , Segment ) else self . forward ( x )
m . stride = torch . tensor ( [ s / x . shape [ - 2 ] for x in forward ( torch . zeros ( 1 , ch , s , s ) ) ] ) # forward
check_anchor_order ( m )
2020-07-05 14:07:26 +08:00
m . anchors / = m . stride . view ( - 1 , 1 , 1 )
self . stride = m . stride
self . _initialize_biases ( ) # only run once
2020-05-30 08:04:54 +08:00
# Init weights, biases
2020-08-03 06:47:36 +08:00
initialize_weights ( self )
2020-07-14 06:21:19 +08:00
self . info ( )
2024-01-08 08:29:14 +08:00
LOGGER . info ( " " )
2020-05-30 08:04:54 +08:00
2021-07-07 21:41:58 +08:00
def forward ( self , x , augment = False , profile = False , visualize = False ) :
2024-02-25 21:04:01 +08:00
""" Performs single-scale or augmented inference and may include profiling or visualization. """
2020-06-06 11:36:29 +08:00
if augment :
2021-09-16 15:47:34 +08:00
return self . _forward_augment ( x ) # augmented inference, None
return self . _forward_once ( x , profile , visualize ) # single-scale inference, train
2020-06-06 11:36:29 +08:00
2021-09-16 15:47:34 +08:00
def _forward_augment ( self , x ) :
2024-02-25 21:04:01 +08:00
""" Performs augmented inference across different scales and flips, returning combined detections. """
2021-04-30 18:54:48 +08:00
img_size = x . shape [ - 2 : ] # height, width
s = [ 1 , 0.83 , 0.67 ] # scales
f = [ None , 3 , None ] # flips (2-ud, 3-lr)
y = [ ] # outputs
for si , fi in zip ( s , f ) :
xi = scale_img ( x . flip ( fi ) if fi else x , si , gs = int ( self . stride . max ( ) ) )
2021-09-16 15:47:34 +08:00
yi = self . _forward_once ( xi ) [ 0 ] # forward
2021-04-30 18:54:48 +08:00
# cv2.imwrite(f'img_{si}.jpg', 255 * xi[0].cpu().numpy().transpose((1, 2, 0))[:, :, ::-1]) # save
yi = self . _descale_pred ( yi , fi , si , img_size )
y . append ( yi )
2021-10-05 06:48:55 +08:00
y = self . _clip_augmented ( y ) # clip augmented tails
2021-04-30 18:54:48 +08:00
return torch . cat ( y , 1 ) , None # augmented inference, train
def _descale_pred ( self , p , flips , scale , img_size ) :
2024-02-25 21:04:01 +08:00
""" De-scales predictions from augmented inference, adjusting for flips and image size. """
2021-04-30 18:54:48 +08:00
if self . inplace :
p [ . . . , : 4 ] / = scale # de-scale
if flips == 2 :
p [ . . . , 1 ] = img_size [ 0 ] - p [ . . . , 1 ] # de-flip ud
elif flips == 3 :
p [ . . . , 0 ] = img_size [ 1 ] - p [ . . . , 0 ] # de-flip lr
else :
x , y , wh = p [ . . . , 0 : 1 ] / scale , p [ . . . , 1 : 2 ] / scale , p [ . . . , 2 : 4 ] / scale # de-scale
if flips == 2 :
y = img_size [ 0 ] - y # de-flip ud
elif flips == 3 :
x = img_size [ 1 ] - x # de-flip lr
p = torch . cat ( ( x , y , wh , p [ . . . , 4 : ] ) , - 1 )
return p
2021-10-05 06:48:55 +08:00
def _clip_augmented ( self , y ) :
2024-02-25 21:04:01 +08:00
""" Clips augmented inference tails for YOLOv5 models, affecting first and last tensors based on grid points and
layer counts .
"""
2021-10-05 06:48:55 +08:00
nl = self . model [ - 1 ] . nl # number of detection layers (P3-P5)
2024-01-08 08:29:14 +08:00
g = sum ( 4 * * x for x in range ( nl ) ) # grid points
2021-10-05 06:48:55 +08:00
e = 1 # exclude layer count
2024-01-08 08:29:14 +08:00
i = ( y [ 0 ] . shape [ 1 ] / / g ) * sum ( 4 * * x for x in range ( e ) ) # indices
2021-10-05 06:48:55 +08:00
y [ 0 ] = y [ 0 ] [ : , : - i ] # large
i = ( y [ - 1 ] . shape [ 1 ] / / g ) * sum ( 4 * * ( nl - 1 - x ) for x in range ( e ) ) # indices
y [ - 1 ] = y [ - 1 ] [ : , i : ] # small
return y
2020-05-30 08:04:54 +08:00
def _initialize_biases ( self , cf = None ) : # initialize biases into Detect(), cf is class frequency
2020-10-16 02:10:08 +08:00
# https://arxiv.org/abs/1708.02002 section 3.3
2020-05-30 08:04:54 +08:00
# cf = torch.bincount(torch.tensor(np.concatenate(dataset.labels, 0)[:, 0]).long(), minlength=nc) + 1.
m = self . model [ - 1 ] # Detect() module
2020-08-03 05:23:05 +08:00
for mi , s in zip ( m . m , m . stride ) : # from
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
b = mi . bias . view ( m . na , - 1 ) # conv.bias(255) to (3,85)
b . data [ : , 4 ] + = math . log ( 8 / ( 640 / s ) * * 2 ) # obj (8 objects per 640 image)
2024-01-08 08:29:14 +08:00
b . data [ : , 5 : 5 + m . nc ] + = (
math . log ( 0.6 / ( m . nc - 0.99999 ) ) if cf is None else torch . log ( cf / cf . sum ( ) )
) # cls
2020-05-30 08:04:54 +08:00
mi . bias = torch . nn . Parameter ( b . view ( - 1 ) , requires_grad = True )
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
Model = DetectionModel # retain YOLOv5 'Model' class for backwards compatibility
2020-06-10 01:51:47 +08:00
2020-05-30 08:04:54 +08:00
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
class SegmentationModel ( DetectionModel ) :
# YOLOv5 segmentation model
2024-01-08 08:29:14 +08:00
def __init__ ( self , cfg = " yolov5s-seg.yaml " , ch = 3 , nc = None , anchors = None ) :
2024-02-25 21:04:01 +08:00
""" Initializes a YOLOv5 segmentation model with configurable params: cfg (str) for configuration, ch (int) for channels, nc (int) for num classes, anchors (list). """
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
super ( ) . __init__ ( cfg , ch , nc , anchors )
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
class ClassificationModel ( BaseModel ) :
# YOLOv5 classification model
def __init__ ( self , cfg = None , model = None , nc = 1000 , cutoff = 10 ) : # yaml, model, number of classes, cutoff index
super ( ) . __init__ ( )
self . _from_detection_model ( model , nc , cutoff ) if model is not None else self . _from_yaml ( cfg )
def _from_detection_model ( self , model , nc = 1000 , cutoff = 10 ) :
2024-02-25 21:04:01 +08:00
""" Creates a classification model from a YOLOv5 detection model, slicing at `cutoff` and adding a classification
layer .
"""
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
if isinstance ( model , DetectMultiBackend ) :
model = model . model # unwrap DetectMultiBackend
model . model = model . model [ : cutoff ] # backbone
m = model . model [ - 1 ] # last layer
2024-01-08 08:29:14 +08:00
ch = m . conv . in_channels if hasattr ( m , " conv " ) else m . cv1 . conv . in_channels # ch into module
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
c = Classify ( ch , nc ) # Classify()
2024-01-08 08:29:14 +08:00
c . i , c . f , c . type = m . i , m . f , " models.common.Classify " # index, from, type
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
model . model [ - 1 ] = c # replace
self . model = model . model
self . stride = model . stride
self . save = [ ]
self . nc = nc
def _from_yaml ( self , cfg ) :
2024-02-25 21:04:01 +08:00
""" Creates a YOLOv5 classification model from a specified *.yaml configuration file. """
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
self . model = None
2021-10-11 05:24:05 +08:00
2020-07-14 05:35:47 +08:00
def parse_model ( d , ch ) : # model_dict, input_channels(3)
2022-09-16 06:55:21 +08:00
# Parse a YOLOv5 model.yaml dictionary
2021-10-29 00:35:01 +08:00
LOGGER . info ( f " \n { ' ' : >3 } { ' from ' : >18 } { ' n ' : >3 } { ' params ' : >10 } { ' module ' : <40 } { ' arguments ' : <30 } " )
2024-01-08 08:29:14 +08:00
anchors , nc , gd , gw , act , ch_mul = (
d [ " anchors " ] ,
d [ " nc " ] ,
d [ " depth_multiple " ] ,
d [ " width_multiple " ] ,
d . get ( " activation " ) ,
d . get ( " channel_multiple " ) ,
)
2022-09-16 06:55:21 +08:00
if act :
2022-09-25 01:35:07 +08:00
Conv . default_act = eval ( act ) # redefine default activation, i.e. Conv.default_act = nn.SiLU()
2022-09-16 06:55:21 +08:00
LOGGER . info ( f " { colorstr ( ' activation: ' ) } { act } " ) # print
2023-12-19 00:14:05 +08:00
if not ch_mul :
ch_mul = 8
2020-07-24 06:34:23 +08:00
na = ( len ( anchors [ 0 ] ) / / 2 ) if isinstance ( anchors , list ) else anchors # number of anchors
2020-05-30 08:04:54 +08:00
no = na * ( nc + 5 ) # number of outputs = anchors * (classes + 5)
layers , save , c2 = [ ] , [ ] , ch [ - 1 ] # layers, savelist, ch out
2024-01-08 08:29:14 +08:00
for i , ( f , n , m , args ) in enumerate ( d [ " backbone " ] + d [ " head " ] ) : # from, number, module, args
2020-05-30 08:04:54 +08:00
m = eval ( m ) if isinstance ( m , str ) else m # eval strings
for j , a in enumerate ( args ) :
2022-07-22 05:12:49 +08:00
with contextlib . suppress ( NameError ) :
2020-05-30 08:04:54 +08:00
args [ j ] = eval ( a ) if isinstance ( a , str ) else a # eval strings
2021-08-11 23:38:34 +08:00
n = n_ = max ( round ( n * gd ) , 1 ) if n > 1 else n # depth gain
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
if m in {
2024-01-08 08:29:14 +08:00
Conv ,
GhostConv ,
Bottleneck ,
GhostBottleneck ,
SPP ,
SPPF ,
DWConv ,
MixConv2d ,
Focus ,
CrossConv ,
BottleneckCSP ,
C3 ,
C3TR ,
C3SPP ,
C3Ghost ,
nn . ConvTranspose2d ,
DWConvTranspose2d ,
C3x ,
} :
2020-05-30 08:04:54 +08:00
c1 , c2 = ch [ f ] , args [ 0 ]
2021-02-16 13:21:53 +08:00
if c2 != no : # if not output
2023-12-19 00:14:05 +08:00
c2 = make_divisible ( c2 * gw , ch_mul )
2020-05-30 08:04:54 +08:00
args = [ c1 , c2 , * args [ 1 : ] ]
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
if m in { BottleneckCSP , C3 , C3TR , C3Ghost , C3x } :
2021-02-16 13:21:53 +08:00
args . insert ( 2 , n ) # number of repeats
2020-05-30 08:04:54 +08:00
n = 1
elif m is nn . BatchNorm2d :
args = [ ch [ f ] ]
elif m is Concat :
2021-10-29 00:35:01 +08:00
c2 = sum ( ch [ x ] for x in f )
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
# TODO: channel, gw, gd
elif m in { Detect , Segment } :
2021-02-16 13:21:53 +08:00
args . append ( [ ch [ x ] for x in f ] )
2020-07-24 06:34:23 +08:00
if isinstance ( args [ 1 ] , int ) : # number of anchors
args [ 1 ] = [ list ( range ( args [ 1 ] * 2 ) ) ] * len ( f )
YOLOv5 segmentation model support (#9052)
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix duplicate plots.py
* Fix check_font()
* # torch.use_deterministic_algorithms(True)
* update doc detect->predict
* Resolve precommit for segment/train and segment/val
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit for utils/segment
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit min_wh
* Resolve precommit utils/segment/plots
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Resolve precommit utils/segment/general
* Align NMS-seg closer to NMS
* restore deterministic init_seeds code
* remove easydict dependency
* update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* restore output_to_target mask
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* cleanup
* Remove unused ImageFont import
* Unified NMS
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* DetectMultiBackend compatibility
* segment/predict.py update
* update plot colors
* fix bbox shifted
* sort bbox by confidence
* enable overlap by default
* Merge detect/segment output_to_target() function
* Start segmentation CI
* fix plots
* Update ci-testing.yml
* fix training whitespace
* optimize process mask functions (can we merge both?)
* Update predict/detect
* Update plot_images
* Update plot_images_and_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Add train to CI
* fix precommit
* fix precommit CI
* fix precommit pycocotools
* fix val float issues
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix masks float float issues
* suppress errors
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix no-predictions plotting bug
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add CSV Logger
* fix val len(plot_masks)
* speed up evaluation
* fix process_mask
* fix plots
* update segment/utils build_targets
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optimize utils/segment/general crop()
* optimize utils/segment/general crop() 2
* minor updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* torch.where revert
* downsample only if different shape
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup
* loss cleanup 2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* loss cleanup 3
* update project names
* Rename -seg yamls from _underscore to -dash
* prepare for yolov5n-seg.pt
* precommit space fix
* add coco128-seg.yaml
* update coco128-seg comments
* cleanup val.py
* Major val.py cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* precommit fix
* precommit fix
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* optional pycocotools
* remove CI pip install pycocotools (auto-installed now)
* seg yaml fix
* optimize mask_iou() and masks_iou()
* threaded fix
* Major train.py update
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Major segments/val/process_batch() update
* yolov5/val updates from segment
* process_batch numpy/tensor fix
* opt-in to pycocotools with --save-json
* threaded pycocotools ops for 2x speed increase
* Avoid permute contiguous if possible
* Add max_det=300 argument to both val.py and segment/val.py
* fix onnx_dynamic
* speed up pycocotools ops
* faster process_mask(upsample=True) for predict
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* eliminate permutations for process_mask(upsample=True)
* eliminate permute-contiguous in crop(), use native dimension order
* cleanup comment
* Add Proto() module
* fix class count
* fix anchor order
* broadcast mask_gti in loss for speed
* Cleanup seg loss
* faster indexing
* faster indexing fix
* faster indexing fix2
* revert faster indexing
* fix validation plotting
* Loss cleanup and mxyxy simplification
* Loss cleanup and mxyxy simplification 2
* revert validation plotting
* replace missing tanh
* Eliminate last permutation
* delete unneeded .float()
* Remove MaskIOULoss and crop(if HWC)
* Final v6.3 SegmentationModel architecture updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add support for TF export
* remove debugger trace
* add call
* update
* update
* Merge master
* Merge master
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update dataloaders.py
* Restore CI
* Update dataloaders.py
* Fix TF/TFLite export for segmentation model
* Merge master
* Cleanup predict.py mask plotting
* cleanup scale_masks()
* rename scale_masks to scale_image
* cleanup/optimize plot_masks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add Annotator.masks()
* Annotator.masks() fix
* Update plots.py
* Annotator mask optimization
* Rename crop() to crop_mask()
* Do not crop in predict.py
* crop always
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Merge master
* Add vid-stride from master PR
* Update seg model outputs
* Update seg model outputs
* Add segmentation benchmarks
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Add segmentation benchmarks
* Add segmentation benchmarks
* Add segmentation benchmarks
* Fix DetectMultiBackend for OpenVINO
* update Annotator.masks
* fix val plot
* revert val plot
* clean up
* revert pil
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix CI error
* fix predict log
* remove upsample
* update interpolate
* fix validation plot logging
* Annotator.masks() cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Remove segmentation_model definition
* Restore 0.99999 decimals
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
Co-authored-by: Laughing-q <1185102784@qq.com>
Co-authored-by: Jiacong Fang <zldrobit@126.com>
2022-09-16 06:12:46 +08:00
if m is Segment :
2023-12-19 00:14:05 +08:00
args [ 3 ] = make_divisible ( args [ 3 ] * gw , ch_mul )
2021-01-05 11:54:09 +08:00
elif m is Contract :
2021-02-16 13:21:53 +08:00
c2 = ch [ f ] * args [ 0 ] * * 2
2021-01-05 11:54:09 +08:00
elif m is Expand :
2021-02-16 13:21:53 +08:00
c2 = ch [ f ] / / args [ 0 ] * * 2
2020-05-30 08:04:54 +08:00
else :
2021-02-16 13:21:53 +08:00
c2 = ch [ f ]
2020-05-30 08:04:54 +08:00
2021-10-29 00:35:01 +08:00
m_ = nn . Sequential ( * ( m ( * args ) for _ in range ( n ) ) ) if n > 1 else m ( * args ) # module
2024-01-08 08:29:14 +08:00
t = str ( m ) [ 8 : - 2 ] . replace ( " __main__. " , " " ) # module type
2021-10-29 00:35:01 +08:00
np = sum ( x . numel ( ) for x in m_ . parameters ( ) ) # number params
2020-05-30 08:04:54 +08:00
m_ . i , m_ . f , m_ . type , m_ . np = i , f , t , np # attach index, 'from' index, type, number params
2024-01-08 08:29:14 +08:00
LOGGER . info ( f " { i : >3 } { str ( f ) : >18 } { n_ : >3 } { np : 10.0f } { t : <40 } { str ( args ) : <30 } " ) # print
2020-05-30 08:04:54 +08:00
save . extend ( x % i for x in ( [ f ] if isinstance ( f , int ) else f ) if x != - 1 ) # append to savelist
layers . append ( m_ )
2021-02-16 13:21:53 +08:00
if i == 0 :
ch = [ ]
2020-05-30 08:04:54 +08:00
ch . append ( c2 )
2020-06-11 10:11:11 +08:00
return nn . Sequential ( * layers ) , sorted ( save )
2020-05-30 08:04:54 +08:00
2024-01-08 08:29:14 +08:00
if __name__ == " __main__ " :
2020-05-30 08:04:54 +08:00
parser = argparse . ArgumentParser ( )
2024-01-08 08:29:14 +08:00
parser . add_argument ( " --cfg " , type = str , default = " yolov5s.yaml " , help = " model.yaml " )
parser . add_argument ( " --batch-size " , type = int , default = 1 , help = " total batch size for all GPUs " )
parser . add_argument ( " --device " , default = " " , help = " cuda device, i.e. 0 or 0,1,2,3 or cpu " )
parser . add_argument ( " --profile " , action = " store_true " , help = " profile model speed " )
parser . add_argument ( " --line-profile " , action = " store_true " , help = " profile model speed layer by layer " )
parser . add_argument ( " --test " , action = " store_true " , help = " test all yolo*.yaml " )
2020-05-30 08:04:54 +08:00
opt = parser . parse_args ( )
2021-09-08 20:36:12 +08:00
opt . cfg = check_yaml ( opt . cfg ) # check YAML
2022-03-31 23:11:43 +08:00
print_args ( vars ( opt ) )
2020-08-03 06:47:36 +08:00
device = select_device ( opt . device )
2020-05-30 08:04:54 +08:00
# Create model
2022-03-29 16:15:53 +08:00
im = torch . rand ( opt . batch_size , 3 , 640 , 640 ) . to ( device )
2020-05-30 08:04:54 +08:00
model = Model ( opt . cfg ) . to ( device )
2021-04-27 23:02:07 +08:00
2022-03-29 16:15:53 +08:00
# Options
if opt . line_profile : # profile layer by layer
New YOLOv5 Classification Models (#8956)
* Update
* Logger step fix: Increment step with epochs (#8654)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Allow logging models from GenericLogger (#8676)
* enhance
* revert
* allow training from scratch
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update --img argument from train.py
single line
* fix image size from 640 to 128
* suport custom dataloader and augmentation
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* format
* Update dataloaders.py
* Single line return, single line comment, remove unused argument
* address PR comments
* fix spelling
* don't augment eval set
* use fstring
* update augmentations.py
* new maning convention for transforms
* reverse if statement, inline ops
* reverse if statement, inline ops
* updates
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update dataloaders
* Remove additional if statement
* Remove is_train as redundant
* Cleanup
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Cleanup2
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update augmentations.py
* fix: imshow clip warning
* update
* Revert ToTensorV2 removal
* Update classifier.py
* Update normalize values, revert uint8
* normalize image using cv2
* remove dedundant comment
* Update classifier.py
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* replace print with logger
* commit steps
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* support final model logging
* update
* update
* update
* update
* remove curses
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update classifier.py
* Update __init__.py
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Glenn Jocher <glenn.jocher@ultralytics.com>
* Update
* Update
* Update
* Update
* Update dataset download
* Update dataset download
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Pass imgsz to classify_transforms()
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Cos scheduler
* Cos scheduler
* Remove unused args
* Update
* Add seed
* Add seed
* Update
* Update
* Add run(), main()
* Merge master
* Merge master
* Update
* Update
* Update
* Update
* Update
* Update
* Update
* Create YOLOv5 BaseModel class (#8829)
* Create BaseModel
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* fix
* Hub load device fix
* Update
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* Add experiment
* Merge master
* Attach names
* weight decay = 1e-4
* weight decay = 5e-5
* update smart_optimizer console printout
* fashion-mnist fix
* Merge master
* Update Table
* Update Table
* Remove destroy process group
* add kwargs to forward()
* fuse fix for resnet50
* nc, names fix for resnet50
* nc, names fix for resnet50
* ONNX CPU inference fix
* revert
* cuda
* if augment or visualize
* if augment or visualize
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* New smart_inference_mode()
* Update README
* Refactor into /classify dir
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* reset defaults
* reset defaults
* fix gpu predict
* warmup
* ema half fix
* spacing
* remove data
* remove cache
* remove denormalize
* save run settings
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* verbose false on initial plots
* new save_yaml() function
* Update ci-testing.yml
* Path(data) CI fix
* Separate classification CI
* fix val
* fix val
* fix val
* smartCrossEntropyLoss
* skip validation on hub load
* autodownload with working dir root
* str(data)
* Dataset usage example
* im_show normalize
* im_show normalize
* add imagenet simple names to multibackend
* Add validation speeds
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* 24-space names
* Update bash scripts
* Update permissions
* Add bash script arguments
* remove verbose
* TRT data fix
* names generator fix
* optimize if names
* update usage
* Add local loading
* Verbose=False
* update names printing
* Add Usage examples
* Add Usage examples
* Add Usage examples
* Add Usage examples
* named_children
* reshape_classifier_outputs
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* update
* update
* fix CI
* fix incorrect class substitution
* fix incorrect class substitution
* remove denormalize
* ravel fix
* cleanup
* update opt file printing
* update opt file printing
* update defaults
* add opt to checkpoint
* Add warning
* Add comment
* plot half bug fix
* Use NotImplementedError
* fix export shape report
* Fix TRT load
* cleanup CI
* profile comment
* CI fix
* Add cls models
* avoid inplace error
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Fix usage examples
* Update README
* [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
* Update README
Co-authored-by: Ayush Chaurasia <ayush.chaurarsia@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2022-08-17 17:59:01 +08:00
model ( im , profile = True )
2020-05-30 08:04:54 +08:00
2022-03-29 16:15:53 +08:00
elif opt . profile : # profile forward-backward
results = profile ( input = im , ops = [ model ] , n = 3 )
elif opt . test : # test all models
2024-01-08 08:29:14 +08:00
for cfg in Path ( ROOT / " models " ) . rglob ( " yolo*.yaml " ) :
2021-11-06 22:07:45 +08:00
try :
_ = Model ( cfg )
except Exception as e :
2024-01-08 08:29:14 +08:00
print ( f " Error in { cfg } : { e } " )
2022-05-07 14:51:59 +08:00
else : # report fused model summary
model . fuse ( )