Brain tumor detection on magnetic resonance imaging scans using the artificial intelligence-based You Only Look Once algorithm.
The 11 matches · 2 of them tie a paragraph to a whole file without given lines: weak matches, whose lines are not tinted
- [1] § Methods ↔ shenduxuexilvcai_02/ultralytics/nn/tasks.py, lines 1047 to 1114 · score 0.65 · A2C2f, C2TSSA DYT, suppressing, backbone, DFFN, thresholds · Report a mismatch
- [2] § Methods › C2TSSA-DYT module ↔ shenduxuexilvcai_02/ultralytics/models/sam/modules/encoders.py, lines 501 to 642 · score 0.64 · feature fusion, convolutional layer, channel dimension, fused, module, detection · Report a mismatch
- [3] § Methods › A2C2f-DFFN module ↔ shenduxuexilvcai_02/ultralytics/nn/extra_modules/block.py, lines 1 to 70 · score 0.59 · edge information, additive, deep, gating, DFFN, fusion · Report a mismatch
- [4] § Methods › C2TSSA-DYT module ↔ shenduxuexilvcai_02/ultralytics/nn/tasks.py, lines 1116 to 1175 · score 0.58 · C2TSSA DYT, A2C2f, DFFN, dynamic, global, module · Report a mismatch
- [5] § Experimental analyses › Visualization of results ↔ shenduxuexilvcai_02/ultralytics/models/yolo/classify/val.py, the whole file · a weak match · score 0.58 · confusion matrices, yolov8n, classification, metrics, accuracy, detections · Report a mismatch
- [6] § Experimental analyses › Algorithm comparison results ↔ shenduxuexilvcai_02/ultralytics/models/rtdetr/train.py, lines 14 to 102 · score 0.54 · inference speed, RT DETR, YOLO, detections · Report a mismatch
- [7] § Experimental analyses › Visualization of results ↔ shenduxuexilvcai_02/ultralytics/models/rtdetr/predict.py, lines 11 to 84 · score 0.52 · bounding boxes, RT DETR, confidence, scoring, accuracy, detection · Report a mismatch
- [8] § Experiment › Dataset › Experimental environment and hyperparameter configuration ↔ shenduxuexilvcai_02/ultralytics/engine/tuner.py, lines 70 to 112 · score 0.51 · weight decay, momentum, configuration, hyperparameter · Report a mismatch
- [9] § Methods ↔ shenduxuexilvcai_02/ultralytics/nn/tasks.py, lines 1047 to 1114 · score 0.51 · A2C2f, C2TSSA DYT, backbone, DFFN, modules · Report a mismatch
- [10] § Experiment › Dataset › Experimental environment and hyperparameter configuration ↔ shenduxuexilvcai_02/ultralytics/utils/tuner.py, the whole file · a weak match · score 0.50 · weight decay, momentum, hyperparameter, GPU, trained, models · Report a mismatch
- [11] § Methods › A2C2f-DFFN module ↔ shenduxuexilvcai_02/ultralytics/models/sam/modules/blocks.py, lines 877 to 974 · score 0.50 · residual connection, propagated, network, layer, global, dimensional · Report a mismatch
Paper
Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC
The paper is loaded when this pane is shown.
The authors' code
Python · 1,506 lines · 67 KB · no license · 3 matches
- # Ultralytics YOLO 🚀, AGPL-3.0 license
- import contextlib
- import pickle
- import re
- import types
- from copy import deepcopy
- from pathlib import Path
- import timm
- import torch
- import torch.nn as nn
- from ultralytics.nn.modules import (
- AIFI,
- C1,
- C2,
- C2PSA,
- C3,
- C3TR,
- ELAN1,
- OBB,
- PSA,
- SPP,
- SPPELAN,
- SPPF,
- AConv,
- # ADown,
- Bottleneck,
- BottleneckCSP,
- C2f,
- C2fAttn,
- C2fCIB,
- C2fPSA,
- C3Ghost,
- C3k2,
- C3x,
- # CBFuse,
- # CBLinear,
- Classify,
- Concat,
- Conv,
- Conv2,
- ConvTranspose,
- Detect,
- DWConv,
- DSConv,
- DWConvTranspose2d,
- Focus,
- GhostBottleneck,
- GhostConv,
- HGBlock,
- HGStem,
- ImagePoolingAttn,
- Pose,
- RepC3,
- RepConv,
- # RepNCSPELAN4,
- RepVGGDW,
- ResNetLayer,
- RTDETRDecoder,
- SCDown,
- Segment,
- WorldDetect,
- v10Detect,
- SpatialAttention,
- CBAM,
- A2C2f
- )
- from ultralytics.nn.extra_modules import *
- from ultralytics.utils import DEFAULT_CFG_DICT, DEFAULT_CFG_KEYS, LOGGER, colorstr, emojis, yaml_load
- from ultralytics.utils.checks import check_requirements, check_suffix, check_yaml
- from ultralytics.utils.loss import (
- E2EDetectLoss,
- v8ClassificationLoss,
- v8DetectionLoss,
- v8OBBLoss,
- v8PoseLoss,
- v8SegmentationLoss,
- E2EFGIDetectLoss,
- )
- from ultralytics.utils.ops import make_divisible
- from ultralytics.utils.plotting import feature_visualization
- from ultralytics.utils.torch_utils import (
- fuse_conv_and_bn,
- fuse_deconv_and_bn,
- initialize_weights,
- intersect_dicts,
- model_info,
- scale_img,
- time_sync,
- get_num_params
- )
- from ultralytics.nn.backbone.convnextv2 import *
- from ultralytics.nn.backbone.fasternet import *
- from ultralytics.nn.backbone.efficientViT import *
- from ultralytics.nn.backbone.EfficientFormerV2 import *
- from ultralytics.nn.backbone.VanillaNet import *
- from ultralytics.nn.backbone.revcol import *
- from ultralytics.nn.backbone.lsknet import *
- from ultralytics.nn.backbone.SwinTransformer import *
- from ultralytics.nn.backbone.repvit import *
- from ultralytics.nn.backbone.CSwomTramsformer import *
- from ultralytics.nn.backbone.UniRepLKNet import *
- from ultralytics.nn.backbone.TransNext import *
- from ultralytics.nn.backbone.rmt import *
- from ultralytics.nn.backbone.pkinet import *
- from ultralytics.nn.backbone.mobilenetv4 import *
- from ultralytics.nn.backbone.starnet import *
- from ultralytics.nn.backbone.inceptionnext import *
- from ultralytics.nn.extra_modules.mobileMamba.mobilemamba import *
- from ultralytics.nn.backbone.MambaOut import *
- try:
- import thop
- except ImportError:
- thop = None
- DETECT_CLASS = (Detect, Detect_DyHead, Detect_AFPN_P2345, Detect_AFPN_P2345_Custom, Detect_AFPN_P345, Detect_AFPN_P345_Custom, Detect_Efficient, DetectAux, Detect_SEAM, Detect_MultiSEAM,
- Detect_DyHeadWithDCNV3, Detect_DyHeadWithDCNV4, Detect_DyHead_Prune, Detect_LSCD, Detect_TADDH, Detect_LADH, Detect_LSCSBD, Detect_LSDECD, Detect_RSCD, Detect_FGIF)
- V10_DETECT_CLASS = (v10Detect,)
- SEGMENT_CLASS = (Segment, Segment_Efficient, Segment_LSCD, Segment_TADDH, Segment_LADH, Segment_LSCSBD, Segment_LSDECD, Segment_RSCD)
- POSE_CLASS = (Pose, Pose_LSCD, Pose_TADDH, Pose_LADH, Pose_LSCSBD, Pose_LSDECD, Pose_RSCD)
- OBB_CLASS = (OBB, OBB_LSCD, OBB_TADDH, OBB_LADH, OBB_LSCSBD, OBB_LSDECD, OBB_RSCD)
- C3K2_CLASS = (C3k2_Faster, C3k2_ODConv, C3k2_Faster_EMA, C3k2_DBB, C3k2_DeepDBB, C3k2_WDBB, C3k2_CloAtt, C3k2_SCConv, C3k2_ScConv, C3k2_EMSC, C3k2_EMSCP, C3k2_KW, C3k2_DySnakeConv, C3k2_DCNv2, C3k2_DCNv3,
- C3k2_OREPA, C3k2_REPVGGOREPA, C3k2_DCNv2_Dynamic, C3k2_ContextGuided, C3k2_MSBlock, C3k2_DLKA, C3k2_EMBC, C3k2_DAttention, C3k2_Parc, C3k2_DWR, C3k2_RFAConv, C3k2_RFCBAMConv, C3k2_RFCAConv,
- C3k2_FocusedLinearAttention, C3k2_MLCA, C3k2_AKConv, C3k2_UniRepLKNetBlock, C3k2_DRB, C3k2_DWR_DRB, C3k2_AggregatedAtt, C3k2_DCNv4, C3k2_SWC, C3k2_iRMB, C3k2_iRMB_Cascaded, C3k2_iRMB_DRB, C3k2_iRMB_SWC,
- C3k2_VSS, C3k2_LVMB, C3k2_DynamicConv, C3k2_GhostDynamicConv, C3k2_RVB, C3k2_RVB_SE, C3k2_RVB_EMA, C3k2_RetBlock, C3k2_PKIModule, C3k2_FADC, C3k2_PPA, C3k2_Faster_CGLU, C3k2_Star, C3k2_Star_CAA,
- C3k2_KAN, C3k2_EIEM, C3k2_DEConv, C3k2_SMPCGLU, C3k2_Heat, C3k2_WTConv, C3k2_FMB, C3k2_gConv, C3k2_AdditiveBlock, C3k2_AdditiveBlock_CGLU, C3k2_MSMHSA_CGLU, C3k2_MogaBlock, C3k2_SHSA, C3k2_SHSA_CGLU,
- C3k2_SMAFB, C3k2_SMAFB_CGLU, C3k2_IdentityFormer, C3k2_RandomMixing, C3k2_PoolingFormer, C3k2_ConvFormer, C3k2_CaFormer, C3k2_IdentityFormerCGLU, C3k2_RandomMixingCGLU, C3k2_PoolingFormerCGLU, C3k2_ConvFormerCGLU, C3k2_CaFormerCGLU,
- C3k2_FFCM, C3k2_MutilScaleEdgeInformationEnhance, C3k2_SFHF, C3k2_MSM, C3k2_MutilScaleEdgeInformationSelect, C3k2_HDRAB, C3k2_RAB, C3k2_LFE, C3k2_FCA_CTA, C3k2_FCA_SFA, C3k2_IDWC, C3k2_IDWB, C3k2_PConv, C3k2_EMA,
- C3k2_CAMixer, C3k2_HFERB, C3k2_DTAB, C3k2_JDPM, C3k2_ETB, C3k2_FDT, C3k2_AP, C3k2_ELGCA, C3k2_ELGCACGLU, C3k2_Strip, C3k2_StripCGLU, C3k2_Kat, C3k2_Faster_KAN, C3k2_DCMB, C3k2_DCMB_KAN, C3k2_GlobalFilter, C3k2_DynamicFilter,
- C3k2_TSSA, C3k2_SAVSS, C3k2_MobileMamba, C3k2_MambaOut
- )
- class BaseModel(nn.Module):
- """The BaseModel class serves as a base class for all the models in the Ultralytics YOLO family."""
- def forward(self, x, *args, **kwargs):
- """
- Perform forward pass of the model for either training or inference.
- If x is a dict, calculates and returns the loss for training. Otherwise, returns predictions for inference.
- Args:
- x (torch.Tensor | dict): Input tensor for inference, or dict with image tensor and labels for training.
- *args (Any): Variable length argument list.
- **kwargs (Any): Arbitrary keyword arguments.
- Returns:
- (torch.Tensor): Loss if x is a dict (training), or network predictions (inference).
- """
- if isinstance(x, dict): # for cases of training and validating while training.
- return self.loss(x, *args, **kwargs)
- return self.predict(x, *args, **kwargs)
- def predict(self, x, profile=False, visualize=False, augment=False, embed=None):
- """
- Perform a forward pass through the network.
- Args:
- x (torch.Tensor): The input tensor to the model.
- profile (bool): Print the computation time of each layer if True, defaults to False.
- visualize (bool): Save the feature maps of the model if True, defaults to False.
- augment (bool): Augment image during prediction, defaults to False.
- embed (list, optional): A list of feature vectors/embeddings to return.
- Returns:
- (torch.Tensor): The last output of the model.
- """
- if augment:
- return self._predict_augment(x)
- return self._predict_once(x, profile, visualize, embed)
- def _predict_once(self, x, profile=False, visualize=False, embed=None):
- """
- Perform a forward pass through the network.
- Args:
- x (torch.Tensor): The input tensor to the model.
- profile (bool): Print the computation time of each layer if True, defaults to False.
- visualize (bool): Save the feature maps of the model if True, defaults to False.
- embed (list, optional): A list of feature vectors/embeddings to return.
- Returns:
- (torch.Tensor): The last output of the model.
- """
- y, dt, embeddings = [], [], [] # outputs
- for idx, m in enumerate(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)
- if hasattr(m, 'backbone'):
- x = m(x)
- for _ in range(5 - len(x)):
- x.insert(0, None)
- for i_idx, i in enumerate(x):
- if i_idx in self.save:
- y.append(i)
- else:
- y.append(None)
- # print(f'layer id:{idx:>2} {m.type:>50} output shape:{", ".join([str(x_.size()) for x_ in x if x_ is not None])}')
- x = x[-1]
- else:
- x = m(x) # run
- y.append(x if m.i in self.save else None) # save output
- # if type(x) in {list, tuple}:
- # if idx == (len(self.model) - 1):
- # if type(x[1]) is dict:
- # print(f'layer id:{idx:>2} {m.type:>50} output shape:{", ".join([str(x_.size()) for x_ in x[1]["one2one"]])}')
- # else:
- # print(f'layer id:{idx:>2} {m.type:>50} output shape:{", ".join([str(x_.size()) for x_ in x[1]])}')
- # else:
- # print(f'layer id:{idx:>2} {m.type:>50} output shape:{", ".join([str(x_.size()) for x_ in x if x_ is not None])}')
- # elif type(x) is dict:
- # print(f'layer id:{idx:>2} {m.type:>50} output shape:{", ".join([str(x_.size()) for x_ in x["one2one"]])}')
- # else:
- # if not hasattr(m, 'backbone'):
- # print(f'layer id:{idx:>2} {m.type:>50} output shape:{x.size()}')
- if visualize:
- feature_visualization(x, m.type, m.i, save_dir=visualize)
- if embed and m.i in embed:
- embeddings.append(nn.functional.adaptive_avg_pool2d(x, (1, 1)).squeeze(-1).squeeze(-1)) # flatten
- if m.i == max(embed):
- return torch.unbind(torch.cat(embeddings, 1), dim=0)
- return x
- def _predict_augment(self, x):
- """Perform augmentations on input image x and return augmented inference."""
- LOGGER.warning(
- f"WARNING ⚠️ {self.__class__.__name__} does not support 'augment=True' prediction. "
- f"Reverting to single-scale prediction."
- )
- return self._predict_once(x)
- def _profile_one_layer(self, m, x, dt):
- """
- Profile the computation time and FLOPs of a single layer of the model on a given input. Appends the results to
- the provided list.
- Args:
- m (nn.Module): The layer to be profiled.
- x (torch.Tensor): The input data to the layer.
- dt (list): A list to store the computation time of the layer.
- Returns:
- None
- """
- if type(x) is tuple:
- x = list(x)
- c = m == self.model[-1] # is final layer, copy input as inplace fix
- if type(x) is list:
- try:
- bs = x[0].size(0)
- except:
- bs = x[0][0].size(0)
- else:
- bs = x.size(0)
- o = thop.profile(m, inputs=[x.copy() if c else x], verbose=False)[0] / 1E9 * 2 / bs if thop else 0 # FLOPs
- 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")
- LOGGER.info(f'{dt[-1]:10.2f} {o:10.2f} {get_num_params(m):10.0f} {m.type}')
- if c:
- LOGGER.info(f"{sum(dt):10.2f} {'-':>10s} {'-':>10s} Total")
- def fuse(self, verbose=True):
- """
- Fuse the `Conv2d()` and `BatchNorm2d()` layers of the model into a single layer, in order to improve the
- computation efficiency.
- Returns:
- (nn.Module): The fused model is returned.
- """
- if not self.is_fused():
- for m in self.model.modules():
- if isinstance(m, (Conv, Conv2, DWConv)) and hasattr(m, "bn"):
- if isinstance(m, Conv2):
- m.fuse_convs()
- m.conv = fuse_conv_and_bn(m.conv, m.bn) # update conv
- delattr(m, "bn") # remove batchnorm
- m.forward = m.forward_fuse # update forward
- if isinstance(m, ConvTranspose) and hasattr(m, "bn"):
- m.conv_transpose = fuse_deconv_and_bn(m.conv_transpose, m.bn)
- delattr(m, "bn") # remove batchnorm
- m.forward = m.forward_fuse # update forward
- if isinstance(m, RepConv):
- m.fuse_convs()
- m.forward = m.forward_fuse # update forward
- if isinstance(m, RepVGGDW):
- m.fuse()
- m.forward = m.forward_fuse
- if hasattr(m, 'switch_to_deploy'):
- m.switch_to_deploy()
- self.info(verbose=verbose)
- return self
- def is_fused(self, thresh=10):
- """
- Check if the model has less than a certain threshold of BatchNorm layers.
- Args:
- thresh (int, optional): The threshold number of BatchNorm layers. Default is 10.
- Returns:
- (bool): True if the number of BatchNorm layers in the model is less than the threshold, False otherwise.
- """
- bn = tuple(v for k, v in nn.__dict__.items() if "Norm" in k) # normalization layers, i.e. BatchNorm2d()
- return sum(isinstance(v, bn) for v in self.modules()) < thresh # True if < 'thresh' BatchNorm layers in model
- def info(self, detailed=False, verbose=True, imgsz=640):
- """
- Prints model information.
- Args:
- detailed (bool): if True, prints out detailed information about the model. Defaults to False
- verbose (bool): if True, prints out the model information. Defaults to False
- imgsz (int): the size of the image that the model will be trained on. Defaults to 640
- """
- return model_info(self, detailed=detailed, verbose=verbose, imgsz=imgsz)
- def _apply(self, fn):
- """
- Applies a function to all the tensors in the model that are not parameters or registered buffers.
- Args:
- fn (function): the function to apply to the model
- Returns:
- (BaseModel): An updated BaseModel object.
- """
- self = super()._apply(fn)
- m = self.model[-1] # Detect()
- if isinstance(m, DETECT_CLASS): # includes all Detect subclasses like Segment, Pose, OBB, WorldDetect
- m.stride = fn(m.stride)
- m.anchors = fn(m.anchors)
- m.strides = fn(m.strides)
- return self
- def load(self, weights, verbose=True):
- """
- Load the weights into the model.
- Args:
- weights (dict | torch.nn.Module): The pre-trained weights to be loaded.
- verbose (bool, optional): Whether to log the transfer progress. Defaults to True.
- """
- model = weights["model"] if isinstance(weights, dict) else weights # torchvision models are not dicts
- csd = model.float().state_dict() # checkpoint state_dict as FP32
- csd = intersect_dicts(csd, self.state_dict()) # intersect
- self.load_state_dict(csd, strict=False) # load
- if verbose:
- LOGGER.info(f"Transferred {len(csd)}/{len(self.model.state_dict())} items from pretrained weights")
- def loss(self, batch, preds=None):
- """
- Compute loss.
- Args:
- batch (dict): Batch to compute loss on
- preds (torch.Tensor | List[torch.Tensor]): Predictions.
- """
- if getattr(self, "criterion", None) is None:
- self.criterion = self.init_criterion()
- preds = self.forward(batch["img"]) if preds is None else preds
- return self.criterion(preds, batch)
- def init_criterion(self):
- """Initialize the loss criterion for the BaseModel."""
- raise NotImplementedError("compute_loss() needs to be implemented by task heads")
- class DetectionModel(BaseModel):
- """YOLOv8 detection model."""
- def __init__(self, cfg="yolov8n.yaml", ch=3, nc=None, verbose=True): # model, input channels, number of classes
- """Initialize the YOLOv8 detection model with the given config and parameters."""
- super().__init__()
- self.yaml = cfg if isinstance(cfg, dict) else yaml_model_load(cfg) # cfg dict
- if self.yaml["backbone"][0][2] == "Silence":
- LOGGER.warning(
- "WARNING ⚠️ YOLOv9 `Silence` module is deprecated in favor of nn.Identity. "
- "Please delete local *.pt file and re-download the latest model checkpoint."
- )
- self.yaml["backbone"][0][2] = "nn.Identity"
- # Warehouse_Manager
- warehouse_manager_flag = self.yaml.get('Warehouse_Manager', False)
- self.warehouse_manager = None
- if warehouse_manager_flag:
- self.warehouse_manager = Warehouse_Manager(cell_num_ratio=self.yaml.get('Warehouse_Manager_Ratio', 1.0))
- # Define model
- ch = self.yaml["ch"] = self.yaml.get("ch", ch) # input channels
- if nc and nc != self.yaml["nc"]:
- LOGGER.info(f"Overriding model.yaml nc={self.yaml['nc']} with nc={nc}")
- self.yaml["nc"] = nc # override YAML value
- self.model, self.save = parse_model(deepcopy(self.yaml), ch=ch, verbose=verbose, warehouse_manager=self.warehouse_manager) # model, savelist
- self.names = {i: f"{i}" for i in range(self.yaml["nc"])} # default names dict
- self.inplace = self.yaml.get("inplace", True)
- self.end2end = getattr(self.model[-1], "end2end", False)
- self.fgi = getattr(self.model[-1], "FGIF", False)
- if warehouse_manager_flag:
- self.warehouse_manager.store()
- self.warehouse_manager.allocate(self)
- self.net_update_temperature(0)
- # Build strides
- m = self.model[-1] # Detect()
- if isinstance(m, (DETECT_CLASS + SEGMENT_CLASS + POSE_CLASS + OBB_CLASS + V10_DETECT_CLASS)): # includes all Detect subclasses like Segment, Pose, OBB, WorldDetect
- s = 640 # 2x min stride
- m.inplace = self.inplace
- def _forward(x):
- """Performs a forward pass through the model, handling different Detect subclass types accordingly."""
- if isinstance(m, (DetectAux,)):
- return self.forward(x)[:3]
- if self.end2end:
- if self.fgi:
- return self.forward(x)["output_2"]
- else:
- return self.forward(x)["one2many"]
- return self.forward(x)[0] if isinstance(m, SEGMENT_CLASS + POSE_CLASS + OBB_CLASS) else self.forward(x)
- try:
- m.stride = torch.tensor([s / x.shape[-2] for x in _forward(torch.zeros(2, ch, s, s))]) # forward
- except (RuntimeError, ValueError) as e:
- if 'Not implemented on the CPU' in str(e) or 'Input type (torch.FloatTensor) and weight type (torch.cuda.FloatTensor)' in str(e) or \
- 'CUDA tensor' in str(e) or 'is_cuda()' in str(e) or 'carafe_forward_impl' in str(e) or 'Pointer argument (at 0) cannot be accessed from Triton (cpu tensor?)' in str(e):
- self.model.to(torch.device('cuda'))
- m.stride = torch.tensor([s / x.shape[-2] for x in _forward(torch.zeros(2, ch, s, s).to(torch.device('cuda')))]) # forward
- else:
- raise e
- self.stride = m.stride
- m.bias_init() # only run once
- else:
- self.stride = torch.Tensor([32]) # default stride for i.e. RTDETR
- # Init weights, biases
- initialize_weights(self)
- if verbose:
- self.info()
- LOGGER.info("")
- def _predict_augment(self, x):
- """Perform augmentations on input image x and return augmented inference and train outputs."""
- if getattr(self, "end2end", False) or self.__class__.__name__ != "DetectionModel":
- LOGGER.warning("WARNING ⚠️ Model does not support 'augment=True', reverting to single-scale prediction.")
- return self._predict_once(x)
- 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()))
- yi = super().predict(xi)[0] # forward
- yi = self._descale_pred(yi, fi, si, img_size)
- y.append(yi)
- y = self._clip_augmented(y) # clip augmented tails
- return torch.cat(y, -1), None # augmented inference, train
- @staticmethod
- def _descale_pred(p, flips, scale, img_size, dim=1):
- """De-scale predictions following augmented inference (inverse operation)."""
- p[:, :4] /= scale # de-scale
- x, y, wh, cls = p.split((1, 1, 2, p.shape[dim] - 4), dim)
- if flips == 2:
- y = img_size[0] - y # de-flip ud
- elif flips == 3:
- x = img_size[1] - x # de-flip lr
- return torch.cat((x, y, wh, cls), dim)
- def _clip_augmented(self, y):
- """Clip YOLO augmented inference tails."""
- nl = self.model[-1].nl # number of detection layers (P3-P5)
- g = sum(4**x for x in range(nl)) # grid points
- e = 1 # exclude layer count
- i = (y[0].shape[-1] // g) * sum(4**x for x in range(e)) # indices
- 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
- def init_criterion(self):
- """Initialize the loss criterion for the DetectionModel."""
- # return E2EDetectLoss(self) if getattr(self, "end2end", False) else (E2EFGIDetectLoss(self) if getattr(self, "FGIF", False) else v8DetectionLoss(self))
- return E2EFGIDetectLoss(self) if getattr(self, "fgi", False) else (E2EDetectLoss(self) if getattr(self, "end2end", False) else v8DetectionLoss(self))
- def net_update_temperature(self, temp):
- for m in self.modules():
- if hasattr(m, "update_temperature"):
- m.update_temperature(temp)
- class OBBModel(DetectionModel):
- """YOLOv8 Oriented Bounding Box (OBB) model."""
- def __init__(self, cfg="yolov8n-obb.yaml", ch=3, nc=None, verbose=True):
- """Initialize YOLOv8 OBB model with given config and parameters."""
- super().__init__(cfg=cfg, ch=ch, nc=nc, verbose=verbose)
- def init_criterion(self):
- """Initialize the loss criterion for the model."""
- return v8OBBLoss(self)
- class SegmentationModel(DetectionModel):
- """YOLOv8 segmentation model."""
- def __init__(self, cfg="yolov8n-seg.yaml", ch=3, nc=None, verbose=True):
- """Initialize YOLOv8 segmentation model with given config and parameters."""
- super().__init__(cfg=cfg, ch=ch, nc=nc, verbose=verbose)
- def init_criterion(self):
- """Initialize the loss criterion for the SegmentationModel."""
- return v8SegmentationLoss(self)
- class PoseModel(DetectionModel):
- """YOLOv8 pose model."""
- def __init__(self, cfg="yolov8n-pose.yaml", ch=3, nc=None, data_kpt_shape=(None, None), verbose=True):
- """Initialize YOLOv8 Pose model."""
- if not isinstance(cfg, dict):
- cfg = yaml_model_load(cfg) # load model YAML
- if any(data_kpt_shape) and list(data_kpt_shape) != list(cfg["kpt_shape"]):
- LOGGER.info(f"Overriding model.yaml kpt_shape={cfg['kpt_shape']} with kpt_shape={data_kpt_shape}")
- cfg["kpt_shape"] = data_kpt_shape
- super().__init__(cfg=cfg, ch=ch, nc=nc, verbose=verbose)
- def init_criterion(self):
- """Initialize the loss criterion for the PoseModel."""
- return v8PoseLoss(self)
- class ClassificationModel(BaseModel):
- """YOLOv8 classification model."""
- def __init__(self, cfg="yolov8n-cls.yaml", ch=3, nc=None, verbose=True):
- """Init ClassificationModel with YAML, channels, number of classes, verbose flag."""
- super().__init__()
- self._from_yaml(cfg, ch, nc, verbose)
- def _from_yaml(self, cfg, ch, nc, verbose):
- """Set YOLOv8 model configurations and define the model architecture."""
- self.yaml = cfg if isinstance(cfg, dict) else yaml_model_load(cfg) # cfg dict
- # Define model
- ch = self.yaml["ch"] = self.yaml.get("ch", ch) # input channels
- if nc and nc != self.yaml["nc"]:
- LOGGER.info(f"Overriding model.yaml nc={self.yaml['nc']} with nc={nc}")
- self.yaml["nc"] = nc # override YAML value
- elif not nc and not self.yaml.get("nc", None):
- raise ValueError("nc not specified. Must specify nc in model.yaml or function arguments.")
- self.model, self.save = parse_model(deepcopy(self.yaml), ch=ch, verbose=verbose) # model, savelist
- self.stride = torch.Tensor([1]) # no stride constraints
- self.names = {i: f"{i}" for i in range(self.yaml["nc"])} # default names dict
- self.info()
- @staticmethod
- def reshape_outputs(model, nc):
- """Update a TorchVision classification model to class count 'n' if required."""
- name, m = list((model.model if hasattr(model, "model") else model).named_children())[-1] # last module
- if isinstance(m, Classify): # YOLO Classify() head
- if m.linear.out_features != nc:
- m.linear = nn.Linear(m.linear.in_features, nc)
- elif isinstance(m, nn.Linear): # ResNet, EfficientNet
- if m.out_features != nc:
- setattr(model, name, nn.Linear(m.in_features, nc))
- elif isinstance(m, nn.Sequential):
- types = [type(x) for x in m]
- if nn.Linear in types:
- i = len(types) - 1 - types[::-1].index(nn.Linear) # last nn.Linear index
- if m[i].out_features != nc:
- m[i] = nn.Linear(m[i].in_features, nc)
- elif nn.Conv2d in types:
- i = len(types) - 1 - types[::-1].index(nn.Conv2d) # last nn.Conv2d index
- if m[i].out_channels != nc:
- m[i] = nn.Conv2d(m[i].in_channels, nc, m[i].kernel_size, m[i].stride, bias=m[i].bias is not None)
- def init_criterion(self):
- """Initialize the loss criterion for the ClassificationModel."""
- return v8ClassificationLoss()
- class RTDETRDetectionModel(DetectionModel):
- """
- RTDETR (Real-time DEtection and Tracking using Transformers) Detection Model class.
- This class is responsible for constructing the RTDETR architecture, defining loss functions, and facilitating both
- the training and inference processes. RTDETR is an object detection and tracking model that extends from the
- DetectionModel base class.
- Attributes:
- cfg (str): The configuration file path or preset string. Default is 'rtdetr-l.yaml'.
- ch (int): Number of input channels. Default is 3 (RGB).
- nc (int, optional): Number of classes for object detection. Default is None.
- verbose (bool): Specifies if summary statistics are shown during initialization. Default is True.
- Methods:
- init_criterion: Initializes the criterion used for loss calculation.
- loss: Computes and returns the loss during training.
- predict: Performs a forward pass through the network and returns the output.
- """
- def __init__(self, cfg="rtdetr-l.yaml", ch=3, nc=None, verbose=True):
- """
- Initialize the RTDETRDetectionModel.
- Args:
- cfg (str): Configuration file name or path.
- ch (int): Number of input channels.
- nc (int, optional): Number of classes. Defaults to None.
- verbose (bool, optional): Print additional information during initialization. Defaults to True.
- """
- super().__init__(cfg=cfg, ch=ch, nc=nc, verbose=verbose)
- def init_criterion(self):
- """Initialize the loss criterion for the RTDETRDetectionModel."""
- from ultralytics.models.utils.loss import RTDETRDetectionLoss
- return RTDETRDetectionLoss(nc=self.nc, use_vfl=True)
- def loss(self, batch, preds=None):
- """
- Compute the loss for the given batch of data.
- Args:
- batch (dict): Dictionary containing image and label data.
- preds (torch.Tensor, optional): Precomputed model predictions. Defaults to None.
- Returns:
- (tuple): A tuple containing the total loss and main three losses in a tensor.
- """
- if not hasattr(self, "criterion"):
- self.criterion = self.init_criterion()
- img = batch["img"]
- # NOTE: preprocess gt_bbox and gt_labels to list.
- bs = len(img)
- batch_idx = batch["batch_idx"]
- gt_groups = [(batch_idx == i).sum().item() for i in range(bs)]
- targets = {
- "cls": batch["cls"].to(img.device, dtype=torch.long).view(-1),
- "bboxes": batch["bboxes"].to(device=img.device),
- "batch_idx": batch_idx.to(img.device, dtype=torch.long).view(-1),
- "gt_groups": gt_groups,
- }
- preds = self.predict(img, batch=targets) if preds is None else preds
- dec_bboxes, dec_scores, enc_bboxes, enc_scores, dn_meta = preds if self.training else preds[1]
- if dn_meta is None:
- dn_bboxes, dn_scores = None, None
- else:
- dn_bboxes, dec_bboxes = torch.split(dec_bboxes, dn_meta["dn_num_split"], dim=2)
- dn_scores, dec_scores = torch.split(dec_scores, dn_meta["dn_num_split"], dim=2)
- dec_bboxes = torch.cat([enc_bboxes.unsqueeze(0), dec_bboxes]) # (7, bs, 300, 4)
- dec_scores = torch.cat([enc_scores.unsqueeze(0), dec_scores])
- loss = self.criterion(
- (dec_bboxes, dec_scores), targets, dn_bboxes=dn_bboxes, dn_scores=dn_scores, dn_meta=dn_meta
- )
- # NOTE: There are like 12 losses in RTDETR, backward with all losses but only show the main three losses.
- return sum(loss.values()), torch.as_tensor(
- [loss[k].detach() for k in ["loss_giou", "loss_class", "loss_bbox"]], device=img.device
- )
- def predict(self, x, profile=False, visualize=False, batch=None, augment=False, embed=None):
- """
- Perform a forward pass through the model.
- Args:
- x (torch.Tensor): The input tensor.
- profile (bool, optional): If True, profile the computation time for each layer. Defaults to False.
- visualize (bool, optional): If True, save feature maps for visualization. Defaults to False.
- batch (dict, optional): Ground truth data for evaluation. Defaults to None.
- augment (bool, optional): If True, perform data augmentation during inference. Defaults to False.
- embed (list, optional): A list of feature vectors/embeddings to return.
- Returns:
- (torch.Tensor): Model's output tensor.
- """
- y, dt, embeddings = [], [], [] # outputs
- for m in self.model[:-1]: # except the head part
- 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)
- if embed and m.i in embed:
- embeddings.append(nn.functional.adaptive_avg_pool2d(x, (1, 1)).squeeze(-1).squeeze(-1)) # flatten
- if m.i == max(embed):
- return torch.unbind(torch.cat(embeddings, 1), dim=0)
- head = self.model[-1]
- x = head([y[j] for j in head.f], batch) # head inference
- return x
- class WorldModel(DetectionModel):
- """YOLOv8 World Model."""
- def __init__(self, cfg="yolov8s-world.yaml", ch=3, nc=None, verbose=True):
- """Initialize YOLOv8 world model with given config and parameters."""
- self.txt_feats = torch.randn(1, nc or 80, 512) # features placeholder
- self.clip_model = None # CLIP model placeholder
- super().__init__(cfg=cfg, ch=ch, nc=nc, verbose=verbose)
- def set_classes(self, text, batch=80, cache_clip_model=True):
- """Set classes in advance so that model could do offline-inference without clip model."""
- try:
- import clip
- except ImportError:
- check_requirements("git+https://github.com/ultralytics/CLIP.git")
- import clip
- if (
- not getattr(self, "clip_model", None) and cache_clip_model
- ): # for backwards compatibility of models lacking clip_model attribute
- self.clip_model = clip.load("ViT-B/32")[0]
- model = self.clip_model if cache_clip_model else clip.load("ViT-B/32")[0]
- device = next(model.parameters()).device
- text_token = clip.tokenize(text).to(device)
- txt_feats = [model.encode_text(token).detach() for token in text_token.split(batch)]
- txt_feats = txt_feats[0] if len(txt_feats) == 1 else torch.cat(txt_feats, dim=0)
- txt_feats = txt_feats / txt_feats.norm(p=2, dim=-1, keepdim=True)
- self.txt_feats = txt_feats.reshape(-1, len(text), txt_feats.shape[-1])
- self.model[-1].nc = len(text)
- def predict(self, x, profile=False, visualize=False, txt_feats=None, augment=False, embed=None):
- """
- Perform a forward pass through the model.
- Args:
- x (torch.Tensor): The input tensor.
- profile (bool, optional): If True, profile the computation time for each layer. Defaults to False.
- visualize (bool, optional): If True, save feature maps for visualization. Defaults to False.
- txt_feats (torch.Tensor): The text features, use it if it's given. Defaults to None.
- augment (bool, optional): If True, perform data augmentation during inference. Defaults to False.
- embed (list, optional): A list of feature vectors/embeddings to return.
- Returns:
- (torch.Tensor): Model's output tensor.
- """
- txt_feats = (self.txt_feats if txt_feats is None else txt_feats).to(device=x.device, dtype=x.dtype)
- if len(txt_feats) != len(x):
- txt_feats = txt_feats.repeat(len(x), 1, 1)
- ori_txt_feats = txt_feats.clone()
- y, dt, embeddings = [], [], [] # outputs
- for m in self.model: # except the head part
- 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)
- if isinstance(m, C2fAttn):
- x = m(x, txt_feats)
- elif isinstance(m, WorldDetect):
- x = m(x, ori_txt_feats)
- elif isinstance(m, ImagePoolingAttn):
- txt_feats = m(x, txt_feats)
- else:
- 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)
- if embed and m.i in embed:
- embeddings.append(nn.functional.adaptive_avg_pool2d(x, (1, 1)).squeeze(-1).squeeze(-1)) # flatten
- if m.i == max(embed):
- return torch.unbind(torch.cat(embeddings, 1), dim=0)
- return x
- def loss(self, batch, preds=None):
- """
- Compute loss.
- Args:
- batch (dict): Batch to compute loss on.
- preds (torch.Tensor | List[torch.Tensor]): Predictions.
- """
- if not hasattr(self, "criterion"):
- self.criterion = self.init_criterion()
- if preds is None:
- preds = self.forward(batch["img"], txt_feats=batch["txt_feats"])
- return self.criterion(preds, batch)
- class Ensemble(nn.ModuleList):
- """Ensemble of models."""
- def __init__(self):
- """Initialize an ensemble of models."""
- super().__init__()
- def forward(self, x, augment=False, profile=False, visualize=False):
- """Function generates the YOLO network's final layer."""
- y = [module(x, augment, profile, visualize)[0] for module in self]
- # y = torch.stack(y).max(0)[0] # max ensemble
- # y = torch.stack(y).mean(0) # mean ensemble
- y = torch.cat(y, 2) # nms ensemble, y shape(B, HW, C)
- return y, None # inference, train output
- # Functions ------------------------------------------------------------------------------------------------------------
- @contextlib.contextmanager
- def temporary_modules(modules=None, attributes=None):
- """
- Context manager for temporarily adding or modifying modules in Python's module cache (`sys.modules`).
- This function can be used to change the module paths during runtime. It's useful when refactoring code,
- where you've moved a module from one location to another, but you still want to support the old import
- paths for backwards compatibility.
- Args:
- modules (dict, optional): A dictionary mapping old module paths to new module paths.
- attributes (dict, optional): A dictionary mapping old module attributes to new module attributes.
- Example:
- ```python
- with temporary_modules({"old.module": "new.module"}, {"old.module.attribute": "new.module.attribute"}):
- import old.module # this will now import new.module
- from old.module import attribute # this will now import new.module.attribute
- ```
- Note:
- The changes are only in effect inside the context manager and are undone once the context manager exits.
- Be aware that directly manipulating `sys.modules` can lead to unpredictable results, especially in larger
- applications or libraries. Use this function with caution.
- """
- if modules is None:
- modules = {}
- if attributes is None:
- attributes = {}
- import sys
- from importlib import import_module
- try:
- # Set attributes in sys.modules under their old name
- for old, new in attributes.items():
- old_module, old_attr = old.rsplit(".", 1)
- new_module, new_attr = new.rsplit(".", 1)
- setattr(import_module(old_module), old_attr, getattr(import_module(new_module), new_attr))
- # Set modules in sys.modules under their old name
- for old, new in modules.items():
- sys.modules[old] = import_module(new)
- yield
- finally:
- # Remove the temporary module paths
- for old in modules:
- if old in sys.modules:
- del sys.modules[old]
- class SafeClass:
- """A placeholder class to replace unknown classes during unpickling."""
- def __init__(self, *args, **kwargs):
- """Initialize SafeClass instance, ignoring all arguments."""
- pass
- def __call__(self, *args, **kwargs):
- """Run SafeClass instance, ignoring all arguments."""
- pass
- class SafeUnpickler(pickle.Unpickler):
- """Custom Unpickler that replaces unknown classes with SafeClass."""
- def find_class(self, module, name):
- """Attempt to find a class, returning SafeClass if not among safe modules."""
- safe_modules = (
- "torch",
- "collections",
- "collections.abc",
- "builtins",
- "math",
- "numpy",
- # Add other modules considered safe
- )
- if module in safe_modules:
- return super().find_class(module, name)
- else:
- return SafeClass
- def torch_safe_load(weight, safe_only=False):
- """
- Attempts to load a PyTorch model with the torch.load() function. If a ModuleNotFoundError is raised, it catches the
- error, logs a warning message, and attempts to install the missing module via the check_requirements() function.
- After installation, the function again attempts to load the model using torch.load().
- Args:
- weight (str): The file path of the PyTorch model.
- safe_only (bool): If True, replace unknown classes with SafeClass during loading.
- Example:
- ```python
- from ultralytics.nn.tasks import torch_safe_load
- ckpt, file = torch_safe_load("path/to/best.pt", safe_only=True)
- ```
- Returns:
- ckpt (dict): The loaded model checkpoint.
- file (str): The loaded filename
- """
- from ultralytics.utils.downloads import attempt_download_asset
- check_suffix(file=weight, suffix=".pt")
- file = attempt_download_asset(weight) # search online if missing locally
- try:
- with temporary_modules(
- modules={
- "ultralytics.yolo.utils": "ultralytics.utils",
- "ultralytics.yolo.v8": "ultralytics.models.yolo",
- "ultralytics.yolo.data": "ultralytics.data",
- },
- attributes={
- "ultralytics.nn.modules.block.Silence": "torch.nn.Identity", # YOLOv9e
- "ultralytics.nn.tasks.YOLOv10DetectionModel": "ultralytics.nn.tasks.DetectionModel", # YOLOv10
- "ultralytics.utils.loss.v10DetectLoss": "ultralytics.utils.loss.E2EDetectLoss", # YOLOv10
- },
- ):
- if safe_only:
- # Load via custom pickle module
- safe_pickle = types.ModuleType("safe_pickle")
- safe_pickle.Unpickler = SafeUnpickler
- safe_pickle.load = lambda file_obj: SafeUnpickler(file_obj).load()
- with open(file, "rb") as f:
- ckpt = torch.load(f, pickle_module=safe_pickle)
- else:
- ckpt = torch.load(file, map_location="cpu")
- except ModuleNotFoundError as e: # e.name is missing module name
- if e.name == "models":
- raise TypeError(
- emojis(
- f"ERROR ❌️ {weight} appears to be an Ultralytics YOLOv5 model originally trained "
- f"with https://github.com/ultralytics/yolov5.\nThis model is NOT forwards compatible with "
- f"YOLOv8 at https://github.com/ultralytics/ultralytics."
- f"\nRecommend fixes are to train a new model using the latest 'ultralytics' package or to "
- f"run a command with an official Ultralytics model, i.e. 'yolo predict model=yolov8n.pt'"
- )
- ) from e
- LOGGER.warning(
- f"WARNING ⚠️ {weight} appears to require '{e.name}', which is not in Ultralytics requirements."
- f"\nAutoInstall will run now for '{e.name}' but this feature will be removed in the future."
- f"\nRecommend fixes are to train a new model using the latest 'ultralytics' package or to "
- f"run a command with an official Ultralytics model, i.e. 'yolo predict model=yolov8n.pt'"
- )
- check_requirements(e.name) # install missing module
- ckpt = torch.load(file, map_location="cpu")
- if not isinstance(ckpt, dict):
- # File is likely a YOLO instance saved with i.e. torch.save(model, "saved_model.pt")
- LOGGER.warning(
- f"WARNING ⚠️ The file '{weight}' appears to be improperly saved or formatted. "
- f"For optimal results, use model.save('filename.pt') to correctly save YOLO models."
- )
- ckpt = {"model": ckpt.model}
- return ckpt, file
- def attempt_load_weights(weights, device=None, inplace=True, fuse=False):
- """Loads an ensemble of models weights=[a,b,c] or a single model weights=[a] or weights=a."""
- ensemble = Ensemble()
- for w in weights if isinstance(weights, list) else [weights]:
- ckpt, w = torch_safe_load(w) # load ckpt
- args = {**DEFAULT_CFG_DICT, **ckpt["train_args"]} if "train_args" in ckpt else None # combined args
- model = (ckpt.get("ema") or ckpt["model"]).to(device).float() # FP32 model
- # Model compatibility updates
- model.args = args # attach args to model
- model.pt_path = w # attach *.pt file path to model
- model.task = guess_model_task(model)
- if not hasattr(model, "stride"):
- model.stride = torch.tensor([32.0])
- # Append
- ensemble.append(model.fuse().eval() if fuse and hasattr(model, "fuse") else model.eval()) # model in eval mode
- # Module updates
- for m in ensemble.modules():
- if hasattr(m, "inplace"):
- m.inplace = inplace
- elif isinstance(m, nn.Upsample) and not hasattr(m, "recompute_scale_factor"):
- m.recompute_scale_factor = None # torch 1.11.0 compatibility
- # Return model
- if len(ensemble) == 1:
- return ensemble[-1]
- # Return ensemble
- LOGGER.info(f"Ensemble created with {weights}\n")
- for k in "names", "nc", "yaml":
- setattr(ensemble, k, getattr(ensemble[0], k))
- ensemble.stride = ensemble[int(torch.argmax(torch.tensor([m.stride.max() for m in ensemble])))].stride
- assert all(ensemble[0].nc == m.nc for m in ensemble), f"Models differ in class counts {[m.nc for m in ensemble]}"
- return ensemble
- def attempt_load_one_weight(weight, device=None, inplace=True, fuse=False):
- """Loads a single model weights."""
- ckpt, weight = torch_safe_load(weight) # load ckpt
- args = {**DEFAULT_CFG_DICT, **(ckpt.get("train_args", {}))} # combine model and default args, preferring model args
- model = (ckpt.get("ema") or ckpt["model"]).to(device).float() # FP32 model
- # Model compatibility updates
- model.args = {k: v for k, v in args.items() if k in DEFAULT_CFG_KEYS} # attach args to model
- model.pt_path = weight # attach *.pt file path to model
- model.task = guess_model_task(model)
- if not hasattr(model, "stride"):
- model.stride = torch.tensor([32.0])
- model = model.fuse().eval() if fuse and hasattr(model, "fuse") else model.eval() # model in eval mode
- # Module updates
- for m in model.modules():
- if hasattr(m, "inplace"):
- m.inplace = inplace
- elif isinstance(m, nn.Upsample) and not hasattr(m, "recompute_scale_factor"):
- m.recompute_scale_factor = None # torch 1.11.0 compatibility
- # Return model and ckpt
- return model, ckpt
- def parse_model(d, ch, verbose=True, warehouse_manager=None): # model_dict, input_channels(3)
- """Parse a YOLO model.yaml dictionary into a PyTorch model."""
- import ast
- # Args
- max_channels = float("inf")
- nc, act, scales = (d.get(x) for x in ("nc", "activation", "scales"))
- depth, width, kpt_shape = (d.get(x, 1.0) for x in ("depth_multiple", "width_multiple", "kpt_shape"))
- if scales:
- scale = d.get("scale")
- if not scale:
- scale = tuple(scales.keys())[0]
- LOGGER.warning(f"WARNING ⚠️ no model scale passed. Assuming scale='{scale}'.")
- if len(scales[scale]) == 3:
- depth, width, max_channels = scales[scale]
- elif len(scales[scale]) == 4:
- depth, width, max_channels, threshold = scales[scale]
- if act:
- Conv.default_act = eval(act) # redefine default activation, i.e. Conv.default_act = nn.SiLU()
- if verbose:
- LOGGER.info(f"{colorstr('activation:')} {act}") # print
- if verbose:
- LOGGER.info(f"\n{'':>3}{'from':>20}{'n':>3}{'params':>10} {'module':<45}{'arguments':<30}")
- ch = [ch]
- layers, save, c2 = [], [], ch[-1] # layers, savelist, ch out
- is_backbone = False
- for i, (f, n, m, args) in enumerate(d["backbone"] + d["head"]): # from, number, module, args
- try:
- if m == 'node_mode':
- m = d[m]
- if len(args) > 0:
- if args[0] == 'head_channel':
- args[0] = int(d[args[0]])
- t = m
- m = getattr(torch.nn, m[3:]) if 'nn.' in m else globals()[m] # get module
- except:
- pass
- for j, a in enumerate(args):
- if isinstance(a, str):
- with contextlib.suppress(ValueError):
- try:
- args[j] = locals()[a] if a in locals() else ast.literal_eval(a)
- except:
- args[j] = a
- n = n_ = max(round(n * depth), 1) if n > 1 else n # depth gain
- if m in ((
- Classify, Conv, ConvTranspose, GhostConv, Bottleneck, GhostBottleneck, SPP, SPPF, C2fPSA, C2PSA, DWConv, Focus, BottleneckCSP,
- C1, C2, C2f, C3k2, RepNCSPELAN4, ELAN1, ADown, AConv, SPPELAN, C2fAttn, C3, C3TR, C3Ghost, nn.ConvTranspose2d, DWConvTranspose2d,
- C3x, RepC3, PSA, SCDown, C2fCIB, GSConv, GSConvns, VoVGSCSP, VoVGSCSPns, VoVGSCSPC, RCSOSA, KWConv, CSPStage, SPDConv, RepBlock,
- SPPF_LSKA, CSP_EDLAN, nn.Conv2d, HWD, RepNCSPELAN4, DBBNCSPELAN4, OREPANCSPELAN4, DRBNCSPELAN4, RepNCSPELAN4_CAA, V7DownSampling,
- DGCST, RepNCSPELAN4_CAA, SRFD, DRFD, RGCSPELAN, CSP_PTB, SimpleStem, VisionClueMerge, VSSBlock_YOLO, XSSBlock, GLSA, FeaturePyramidSharedConv,
- LDConv, CSP_MSCB, CSP_PMSFA, RFAConv, RFCBAMConv, RFCAConv, CSP_FreqSpatial, C2BRA, C2CGA, C2DA, C2DPB, MANet, MANet_FasterBlock, MANet_FasterCGLU,
- MANet_Star, PSConv, C2Pola, A2C2f, C2TSSA, A2C2f_CGLU, A2C2f_KAN, A2C2f_DFFN, RepHMS, A2C2f_FRFN, C2ASSA, C2PSA_DYT, C2TSSA_DYT, C2Pola_DYT,
- A2C2f_DYT, A2C2f_CGLU_DYT, A2C2f_DFFN_DYT
- ) + C3K2_CLASS):
- if args[0] == 'head_channel':
- args[0] = d[args[0]]
- c1, c2 = ch[f], args[0]
- if c2 != nc: # if c2 not equal to number of classes (i.e. for Classify() output)
- c2 = make_divisible(min(c2, max_channels) * width, 8)
- if m is C2fAttn:
- args[1] = make_divisible(min(args[1], max_channels // 2) * width, 8) # embed channels
- args[2] = int(
- max(round(min(args[2], max_channels // 2 // 32)) * width, 1) if args[2] > 1 else args[2]
- ) # num heads
- args = [c1, c2, *args[1:]]
- if m in (KWConv, C3k2_KW):
- args.insert(2, f'layer{i}')
- args.insert(2, warehouse_manager)
- if m in (DySnakeConv,):
- c2 = c2 * 3
- if m in (RepNCSPELAN4, DBBNCSPELAN4, OREPANCSPELAN4, DRBNCSPELAN4, RepNCSPELAN4_CAA):
- args[2] = make_divisible(min(args[2], max_channels) * width, 8)
- args[3] = make_divisible(min(args[3], max_channels) * width, 8)
- if m in ((
- BottleneckCSP, C1, C2, C2f, C3k2, C2fAttn, C3, C3TR, C3Ghost, C3x, RepC3, C2fPSA, C2fCIB, C2PSA, VoVGSCSP, VoVGSCSPns, VoVGSCSPC, RCSOSA,
- CSPStage, SPDConv, RepBlock, CSP_EDLAN, RGCSPELAN, CSP_PTB, XSSBlock, CSP_MSCB, CSP_PMSFA, CSP_FreqSpatial, C2BRA, C2CGA, C2DA, C2DPB, MANet,
- MANet_FasterBlock, MANet_FasterCGLU, MANet_Star, C2Pola, A2C2f, C2TSSA, A2C2f_CGLU, A2C2f_KAN, A2C2f_DFFN, A2C2f_FRFN, C2ASSA, C2PSA_DYT,
- C2TSSA_DYT, C2Pola_DYT, A2C2f_DYT, A2C2f_CGLU_DYT, A2C2f_DFFN_DYT
- ) + C3K2_CLASS):
- args.insert(2, n) # number of repeats
- n = 1
- if m in ((C3k2,) + C3K2_CLASS) and scale in "mlx": # for M/L/X sizes
- if m in (C3k2_AggregatedAtt, C3k2_MSBlock, C3k2_DAttention, C3k2_FocusedLinearAttention, C3k2_Parc, C3k2_UniRepLKNetBlock, C3k2_SMPCGLU,
- C3k2_Heat, C3k2_RandomMixing, C3k2_RandomMixingCGLU, C3k2_PKIModule, C3k2_FCA_CTA, C3k2_GlobalFilter, C3k2_DynamicFilter):
- if type(args[-1]) == bool:
- args[-1] = True
- else:
- args[-2] = True
- else:
- args[3] = True
- if m in (A2C2f,) and scale in "lx": # for L/X sizes
- args.extend((True, 1.2))
- elif m in {AIFI, AIFI_RepBN, DTAB, ETB, FDT}:
- args = [ch[f], *args]
- c2 = args[0]
- elif m in (HGStem, HGBlock, Ghost_HGBlock, Rep_HGBlock, Dynamic_HGBlock, EIEStem):
- c1, cm, c2 = ch[f], args[0], args[1]
- if c2 != nc: # if c2 not equal to number of classes (i.e. for Classify() output)
- c2 = make_divisible(min(c2, max_channels) * width, 8)
- cm = make_divisible(min(cm, max_channels) * width, 8)
- args = [c1, cm, c2, *args[2:]]
- if m in (HGBlock, Ghost_HGBlock, Rep_HGBlock, Dynamic_HGBlock):
- args.insert(4, n) # number of repeats
- n = 1
- elif m is ResNetLayer:
- c2 = args[1] if args[3] else args[1] * 4
- elif m is nn.BatchNorm2d:
- args = [ch[f]]
- elif m is Concat:
- c2 = sum(ch[x] for x in f)
- elif m in ((WorldDetect, ImagePoolingAttn) + DETECT_CLASS + V10_DETECT_CLASS + SEGMENT_CLASS + POSE_CLASS + OBB_CLASS):
- args.append([ch[x] for x in f])
- if m in SEGMENT_CLASS:
- args[2] = make_divisible(min(args[2], max_channels) * width, 8)
- if m in (Segment_LSCD, Segment_TADDH, Segment_LSCSBD, Segment_LSDECD, Segment_RSCD):
- args[3] = make_divisible(min(args[3], max_channels) * width, 8)
- if m in (Detect_LSCD, Detect_TADDH, Detect_LSCSBD, Detect_LSDECD, Detect_RSCD):
- args[1] = make_divisible(min(args[1], max_channels) * width, 8)
- if m in (Pose_LSCD, Pose_TADDH, Pose_LSCSBD, Pose_LSDECD, Pose_RSCD, OBB_LSCD, OBB_TADDH, OBB_LSCSBD, OBB_LSDECD, OBB_RSCD):
- args[2] = make_divisible(min(args[2], max_channels) * width, 8)
- elif m is RTDETRDecoder: # special case, channels arg must be passed in index 1
- args.insert(1, [ch[x] for x in f])
- elif m is Fusion:
- args[0] = d[args[0]]
- c1, c2 = [ch[x] for x in f], (sum([ch[x] for x in f]) if args[0] == 'concat' else ch[f[0]])
- args = [c1, args[0]]
- elif m is CBLinear:
- c2 = make_divisible(min(args[0][-1], max_channels) * width, 8)
- c1 = ch[f]
- args = [c1, [make_divisible(min(c2_, max_channels) * width, 8) for c2_ in args[0]], *args[1:]]
- elif m is CBFuse:
- c2 = ch[f[-1]]
- elif isinstance(m, str):
- t = m
- if len(args) == 2:
- m = timm.create_model(m, pretrained=args[0], pretrained_cfg_overlay={'file':args[1]}, features_only=True)
- elif len(args) == 1:
- m = timm.create_model(m, pretrained=args[0], features_only=True)
- c2 = m.feature_info.channels()
- elif m in {convnextv2_atto, convnextv2_femto, convnextv2_pico, convnextv2_nano, convnextv2_tiny, convnextv2_base, convnextv2_large, convnextv2_huge,
- fasternet_t0, fasternet_t1, fasternet_t2, fasternet_s, fasternet_m, fasternet_l,
- EfficientViT_M0, EfficientViT_M1, EfficientViT_M2, EfficientViT_M3, EfficientViT_M4, EfficientViT_M5,
- efficientformerv2_s0, efficientformerv2_s1, efficientformerv2_s2, efficientformerv2_l,
- vanillanet_5, vanillanet_6, vanillanet_7, vanillanet_8, vanillanet_9, vanillanet_10, vanillanet_11, vanillanet_12, vanillanet_13, vanillanet_13_x1_5, vanillanet_13_x1_5_ada_pool,
- RevCol,
- lsknet_t, lsknet_s,
- SwinTransformer_Tiny,
- repvit_m0_9, repvit_m1_0, repvit_m1_1, repvit_m1_5, repvit_m2_3,
- CSWin_tiny, CSWin_small, CSWin_base, CSWin_large,
- unireplknet_a, unireplknet_f, unireplknet_p, unireplknet_n, unireplknet_t, unireplknet_s, unireplknet_b, unireplknet_l, unireplknet_xl,
- transnext_micro, transnext_tiny, transnext_small, transnext_base,
- RMT_T, RMT_S, RMT_B, RMT_L,
- PKINET_T, PKINET_S, PKINET_B,
- MobileNetV4ConvSmall, MobileNetV4ConvMedium, MobileNetV4ConvLarge, MobileNetV4HybridMedium, MobileNetV4HybridLarge,
- starnet_s050, starnet_s100, starnet_s150, starnet_s1, starnet_s2, starnet_s3, starnet_s4,
- inceptionnext_tiny, inceptionnext_small, inceptionnext_base, inceptionnext_base_384,
- MobileMamba_T2, MobileMamba_T4, MobileMamba_S6, MobileMamba_B1, MobileMamba_B2, MobileMamba_B4,
- mambaout_femto, mambaout_kobe, mambaout_tiny, mambaout_small, mambaout_base
- }:
- if m is RevCol:
- args[1] = [make_divisible(min(k, max_channels) * width, 8) for k in args[1]]
- args[2] = [max(round(k * depth), 1) for k in args[2]]
- m = m(*args)
- c2 = m.channel
- elif m in {EMA, SpatialAttention, BiLevelRoutingAttention, BiLevelRoutingAttention_nchw,
- TripletAttention, CoordAtt, CBAM, BAMBlock, LSKBlock, ScConv, LAWDS, EMSConv, EMSConvP,
- SEAttention, CPCA, Partial_conv3, FocalModulation, EfficientAttention, MPCA, deformable_LKA,
- EffectiveSEModule, LSKA, SegNext_Attention, DAttention, MLCA, TransNeXt_AggregatedAttention,
- FocusedLinearAttention, LocalWindowAttention, ChannelAttention_HSFPN, ELA_HSFPN, CA_HSFPN, CAA_HSFPN,
- DySample, CARAFE, CAA, ELA, CAFM, AFGCAttention, EUCB, EfficientChannelAttention, ContrastDrivenFeatureAggregation,
- FSA, AttentiveLayer}:
- c2 = ch[f]
- args = [c2, *args]
- # print(args)
- elif m in {SimAM, SpatialGroupEnhance}:
- c2 = ch[f]
- args = [*args]
- elif m is ContextGuidedBlock_Down:
- c2 = ch[f] * 2
- args = [ch[f], c2, *args]
- elif m is BiFusion:
- c1 = [ch[x] for x in f]
- c2 = make_divisible(min(args[0], max_channels) * width, 8)
- args = [c1, c2]
- # --------------GOLD-YOLO--------------
- elif m in {SimFusion_4in, AdvPoolFusion}:
- c2 = sum(ch[x] for x in f)
- elif m is SimFusion_3in:
- c2 = args[0]
- if c2 != nc: # if c2 not equal to number of classes (i.e. for Classify() output)
- c2 = make_divisible(min(c2, max_channels) * width, 8)
- args = [[ch[f_] for f_ in f], c2]
- elif m is IFM:
- c1 = ch[f]
- c2 = sum(args[0])
- args = [c1, *args]
- elif m is InjectionMultiSum_Auto_pool:
- c1 = ch[f[0]]
- c2 = args[0]
- args = [c1, *args]
- elif m is PyramidPoolAgg:
- c2 = args[0]
- args = [sum([ch[f_] for f_ in f]), *args]
- elif m is TopBasicLayer:
- c2 = sum(args[1])
- # --------------GOLD-YOLO--------------
- # --------------ASF--------------
- elif m is Zoom_cat:
- c2 = sum(ch[x] for x in f)
- elif m is Add:
- c2 = ch[f[-1]]
- elif m in {ScalSeq, DynamicScalSeq}:
- c1 = [ch[x] for x in f]
- c2 = make_divisible(args[0] * width, 8)
- args = [c1, c2]
- elif m is asf_attention_model:
- args = [ch[f[-1]]]
- # --------------ASF--------------
- elif m is SDI:
- args = [[ch[x] for x in f]]
- elif m is Multiply:
- c2 = ch[f[0]]
- elif m is FocusFeature:
- c1 = [ch[x] for x in f]
- c2 = int(c1[1] * 0.5 * 3)
- args = [c1, *args]
- elif m is DASI:
- c1 = [ch[x] for x in f]
- args = [c1, c2]
- elif m is CSMHSA:
- c1 = [ch[x] for x in f]
- c2 = ch[f[-1]]
- args = [c1, c2]
- elif m is CFC_CRB:
- c1 = ch[f]
- c2 = c1 // 2
- args = [c1, *args]
- elif m is SFC_G2:
- c1 = [ch[x] for x in f]
- c2 = c1[0]
- args = [c1]
- elif m in {CGAFusion, CAFMFusion, SDFM, PSFM}:
- c2 = ch[f[1]]
- args = [c2, *args]
- elif m in {ContextGuideFusionModule}:
- c1 = [ch[x] for x in f]
- c2 = 2 * c1[1]
- args = [c1]
- # elif m in {PSA}:
- # c2 = ch[f]
- # args = [c2, *args]
- elif m in {SBA}:
- c1 = [ch[x] for x in f]
- c2 = c1[-1]
- args = [c1, c2]
- elif m in {WaveletPool}:
- c2 = ch[f] * 4
- elif m in {WaveletUnPool}:
- c2 = ch[f] // 4
- elif m in {CSPOmniKernel}:
- c2 = ch[f]
- args = [c2]
- elif m in {ChannelTransformer, PyramidContextExtraction}:
- c1 = [ch[x] for x in f]
- c2 = c1
- args = [c1]
- elif m in {RCM}:
- c2 = ch[f]
- args = [c2, *args]
- elif m in {DynamicInterpolationFusion}:
- c2 = ch[f[0]]
- args = [[ch[x] for x in f]]
- elif m in {FuseBlockMulti}:
- c2 = ch[f[0]]
- args = [c2]
- elif m in {CrossLayerChannelAttention, CrossLayerSpatialAttention}:
- c2 = [ch[x] for x in f]
- args = [c2[0], *args]
- elif m in {FreqFusion}:
- c2 = ch[f[0]]
- args = [[ch[x] for x in f], *args]
- elif m in {DynamicAlignFusion}:
- c2 = args[0]
- args = [[ch[x] for x in f], c2]
- elif m in {ConvEdgeFusion}:
- c2 = make_divisible(min(args[0], max_channels) * width, 8)
- args = [[ch[x] for x in f], c2]
- elif m in {MutilScaleEdgeInfoGenetator}:
- c1 = ch[f]
- c2 = [make_divisible(min(i, max_channels) * width, 8) for i in args[0]]
- args = [c1, c2]
- elif m in {MultiScaleGatedAttn}:
- c1 = [ch[x] for x in f]
- c2 = min(c1)
- args = [c1]
- elif m is HyperComputeModule:
- c1, c2 = ch[f], args[0]
- c2 = make_divisible(min(c2, max_channels) * width, 8)
- args = [c1, c2, threshold]
- elif m in {WFU, MultiScalePCA, MultiScalePCA_Down}:
- c1 = [ch[x] for x in f]
- c2 = c1[0]
- args = [c1]
- elif m in {HAFB}:
- c1 = [ch[x] for x in f]
- c2 = make_divisible(min(args[0], max_channels) * width, 8)
- args = [c1, c2, *args[1:]]
- elif m in {GetIndexOutput}:
- c2 = ch[f][args[0]]
- else:
- c2 = ch[f]
- if isinstance(c2, list) and m not in {ChannelTransformer, PyramidContextExtraction, CrossLayerChannelAttention, CrossLayerSpatialAttention, MutilScaleEdgeInfoGenetator}:
- is_backbone = True
- m_ = m
- m_.backbone = True
- else:
- m_ = nn.Sequential(*(m(*args) for _ in range(n))) if n > 1 else m(*args) # module
- t = str(m)[8:-2].replace('__main__.', '') # module type
- m_.np = sum(x.numel() for x in m_.parameters()) # number params
- m_.i, m_.f, m_.type = i + 4 if is_backbone else i, f, t # attach index, 'from' index, type
- if verbose:
- LOGGER.info(f"{i:>3}{str(f):>20}{n_:>3}{m_.np:10.0f} {t:<45}{str(args):<30}") # print
- save.extend(x % (i + 4 if is_backbone else i) for x in ([f] if isinstance(f, int) else f) if x != -1) # append to savelist
- layers.append(m_)
- if i == 0:
- ch = []
- if isinstance(c2, list) and m not in {ChannelTransformer, PyramidContextExtraction, CrossLayerChannelAttention, CrossLayerSpatialAttention, MutilScaleEdgeInfoGenetator}:
- ch.extend(c2)
- for _ in range(5 - len(ch)):
- ch.insert(0, 0)
- else:
- ch.append(c2)
- return nn.Sequential(*layers), sorted(save)
- def yaml_model_load(path):
- """Load a YOLOv8 model from a YAML file."""
- path = Path(path)
- if path.stem in (f"yolov{d}{x}6" for x in "nsmlx" for d in (5, 8)):
- new_stem = re.sub(r"(\d+)([nslmx])6(.+)?$", r"\1\2-p6\3", path.stem)
- LOGGER.warning(f"WARNING ⚠️ Ultralytics YOLO P6 models now use -p6 suffix. Renaming {path.stem} to {new_stem}.")
- path = path.with_name(new_stem + path.suffix)
- unified_path = re.sub(r"(\d+)([nslmx])(.+)?$", r"\1\3", str(path)) # i.e. yolov8x.yaml -> yolov8.yaml
- unified_path = re.sub(r'(hyper-yolo)([nslmx])(.+)?$', r'\1\3', str(unified_path))
- unified_path = re.sub(r'(hyper-yolot)(.+)?$', r'\1\2', str(unified_path))
- yaml_file = check_yaml(unified_path, hard=False) or check_yaml(path)
- d = yaml_load(yaml_file) # model dict
- d["scale"] = guess_model_scale(path)
- d["yaml_file"] = str(path)
- return d
- def guess_model_scale(model_path):
- """
- Takes a path to a YOLO model's YAML file as input and extracts the size character of the model's scale. The function
- uses regular expression matching to find the pattern of the model scale in the YAML file name, which is denoted by
- n, s, m, l, or x. The function returns the size character of the model scale as a string.
- Args:
- model_path (str | Path): The path to the YOLO model's YAML file.
- Returns:
- (str): The size character of the model's scale, which can be n, s, m, l, or x.
- """
- try:
- if re.search(r'(hyper-yolo)([tnslmx])', Path(model_path).stem) is not None:
- return re.search(r'(hyper-yolo)([tnslmx])', Path(model_path).stem).group(2)
- else:
- return re.search(r"yolo[v]?\d+([nslmx])", Path(model_path).stem).group(1) # n, s, m, l, or x
- except AttributeError:
- return ""
- def guess_model_task(model):
- """
- Guess the task of a PyTorch model from its architecture or configuration.
- Args:
- model (nn.Module | dict): PyTorch model or model configuration in YAML format.
- Returns:
- (str): Task of the model ('detect', 'segment', 'classify', 'pose').
- Raises:
- SyntaxError: If the task of the model could not be determined.
- """
- def cfg2task(cfg):
- """Guess from YAML dictionary."""
- m = cfg["head"][-1][-2].lower() # output module name
- if m in {"classify", "classifier", "cls", "fc"}:
- return "classify"
- if "detect" in m:
- return "detect"
- if "segment" in m:
- return "segment"
- if "pose" in m:
- return "pose"
- if "obb" in m:
- return "obb"
- # Guess from model cfg
- if isinstance(model, dict):
- try:
- return cfg2task(model)
- except: # noqa E722
- pass
- # Guess from PyTorch model
- if isinstance(model, nn.Module): # PyTorch model
- for x in "model.args", "model.model.args", "model.model.model.args":
- try:
- return eval(x)["task"]
- except: # noqa E722
- pass
- for x in "model.yaml", "model.model.yaml", "model.model.model.yaml":
- try:
- return cfg2task(eval(x))
- except: # noqa E722
- pass
- for m in model.modules():
- if isinstance(m, Segment):
- return "segment"
- elif isinstance(m, Classify):
- return "classify"
- elif isinstance(m, Pose):
- return "pose"
- elif isinstance(m, OBB):
- return "obb"
- elif isinstance(m, (Detect, WorldDetect, v10Detect)):
- return "detect"
- # Guess from model filename
- if isinstance(model, (str, Path)):
- model = Path(model)
- if "-seg" in model.stem or "segment" in model.parts:
- return "segment"
- elif "-cls" in model.stem or "classify" in model.parts:
- return "classify"
- elif "-pose" in model.stem or "pose" in model.parts:
- return "pose"
- elif "-obb" in model.stem or "obb" in model.parts:
- return "obb"
- elif "detect" in model.parts:
- return "detect"
- # Unable to determine task from model
- LOGGER.warning(
- "WARNING ⚠️ Unable to automatically guess model task, assuming 'task=detect'. "
- "Explicitly define task for your model, i.e. 'task=detect', 'segment', 'classify','pose' or 'obb'."
- )
- return "detect" # assume detect
tasks.py at commit 680f06b, no license · at the source
Overview
- Clinical Oncology School of Fujian Medical University, Fujian Cancer Hospital, China
- Division of Biomedical and Life Sciences, Faculty of Health and Medicine, Lancaster University, UK
Abstract
Objective: To address challenges such as blurred boundaries and irregular shapes in brain tumor magnetic resonance imaging scans, we developed a lightweight detection framework to enhance automated diagnosis and meet real-time clinical requirements.
Methods: We proposed an improved You Only Look Once version 12 (YOLOv12n)-based model featuring three modules. First, the Attention-based C2f with Frequency-domain Feed-Forward Network (A2C2f-DFFN) module was incorporated into the backbone network; it combined an attention mechanism with a frequency-domain feedforward network to enhance global context modeling and detailed feature reconstruction. Second, the C2f with Token Statistics Self-Attention and Dynamic Tanh (C2TSSA-DYT) module was employed in the feature fusion neck; it utilized statistical self-attention and a dynamic Tanh activation function to improve robustness in complex backgrounds. Finally, the dynamic upsampling operator was adopted in the feature reconstruction stage; it dynamically generated sampling weights to effectively prevent boundary blurring and detail loss.
Results: On the Kaggle brain tumor dataset, our method achieved 93.2% precision, 88.4% recall, and 94.1% mean average precision at IoU threshold 0.5 (0.5), surpassing YOLOv12n and other lightweight models. It showed excellent performance in patients with glioma and pituitary tumor cases using only 6.0 Giga Floating-point Operations Per Second (GFLOPs) and 2.76 M parameters for efficient real-time inference.
Conclusion: The enhanced YOLOv12n framework proposed in this study achieved good balance between accuracy and efficiency in brain tumor detection tasks, demonstrating strong robustness, which makes it suitable for use in clinical computer-aided diagnosis systems.
Reproduced under the paper's license (CC BY-NC), from the paper cited above.
Repository
Its files are read in the Code ↔ Paper reader above, with 11 matches between paragraphs and lines of code.
weilaibot/my_Brain_tumor
680f06ba0c0f718d150b85643a9f5a149369e4a0, 15 November 2025Availability: 1 check, the latest on 30 September 2026: the link answers
- 30 September 2026: the link answers
845 files
- shenduxuexilvcai_02/
dataset/ , Python, 34 linessplit_data.py - shenduxuexilvcai_02/
dataset/ , Python, 72 linesxml2txt.py - shenduxuexilvcai_02/
dataset/ , Python, 89 linesyolo2coco.py - shenduxuexilvcai_02/
detect.py , Python, 21 lines - shenduxuexilvcai_02/
docs/ , Python, 258 linesbuild_docs.py - shenduxuexilvcai_02/
docs/ , Python, 147 linesbuild_reference.py - shenduxuexilvcai_02/
docs/ , JavaScript, 152 linesoverrides/ javascript/ extra.js - shenduxuexilvcai_02/
export.py , Python, 9 lines - shenduxuexilvcai_02/
get_COCO_metrice.py , Python, 30 lines - shenduxuexilvcai_02/
get_FPS.py , Python, 88 lines - shenduxuexilvcai_02/
get_model_erf.py , Python, 173 lines - shenduxuexilvcai_02/
main_profile.py , Python, 14 lines - shenduxuexilvcai_02/
plot_result.py , Python, 123 lines - shenduxuexilvcai_02/
test_env.py , Python, 29 lines - shenduxuexilvcai_02/
test_yaml.py , Python, 19 lines - shenduxuexilvcai_02/
track.py , Python, 12 lines - shenduxuexilvcai_02/
train.py , Python, 22 lines - shenduxuexilvcai_02/
transform_PGI.py , Python, 36 lines - shenduxuexilvcai_02/
ultralytics/ , Python, 31 lines__init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 874 linescfg/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 26 linesdata/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 54 linesdata/ annotator.py - shenduxuexilvcai_02/
ultralytics/ , Python, 2,738 linesdata/ augment.py - shenduxuexilvcai_02/
ultralytics/ , Python, 313 linesdata/ base.py - shenduxuexilvcai_02/
ultralytics/ , Python, 207 linesdata/ build.py - shenduxuexilvcai_02/
ultralytics/ , Python, 698 linesdata/ converter.py - shenduxuexilvcai_02/
ultralytics/ , Python, 518 linesdata/ dataset.py - shenduxuexilvcai_02/
ultralytics/ , Python, 5 linesdata/ explorer/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 460 linesdata/ explorer/ explorer.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 linedata/ explorer/ gui/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 269 linesdata/ explorer/ gui/ dash.py - shenduxuexilvcai_02/
ultralytics/ , Python, 167 linesdata/ explorer/ utils.py - shenduxuexilvcai_02/
ultralytics/ , Python, 578 linesdata/ loaders.py - shenduxuexilvcai_02/
ultralytics/ , Shell, 18 linesdata/ scripts/ download_weights.sh - shenduxuexilvcai_02/
ultralytics/ , Shell, 60 linesdata/ scripts/ get_coco.sh - shenduxuexilvcai_02/
ultralytics/ , Shell, 17 linesdata/ scripts/ get_coco128.sh - shenduxuexilvcai_02/
ultralytics/ , Shell, 51 linesdata/ scripts/ get_imagenet.sh - shenduxuexilvcai_02/
ultralytics/ , Python, 298 linesdata/ split_dota.py - shenduxuexilvcai_02/
ultralytics/ , Python, 674 linesdata/ utils.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 lineengine/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,205 linesengine/ exporter.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,138 linesengine/ model.py - shenduxuexilvcai_02/
ultralytics/ , Python, 403 linesengine/ predictor.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,741 linesengine/ results.py - shenduxuexilvcai_02/
ultralytics/ , Python, 837 linesengine/ trainer.py - shenduxuexilvcai_02/
ultralytics/ , Python, 241 lines, 1 matchengine/ tuner.py - shenduxuexilvcai_02/
ultralytics/ , Python, 341 linesengine/ validator.py - shenduxuexilvcai_02/
ultralytics/ , Python, 146 lineshub/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 140 lineshub/ auth.py - shenduxuexilvcai_02/
ultralytics/ , Python, 159 lineshub/ google/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 390 lineshub/ session.py - shenduxuexilvcai_02/
ultralytics/ , Python, 246 lineshub/ utils.py - shenduxuexilvcai_02/
ultralytics/ , Python, 9 linesmodels/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesmodels/ fastsam/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 55 linesmodels/ fastsam/ model.py - shenduxuexilvcai_02/
ultralytics/ , Python, 146 linesmodels/ fastsam/ predict.py - shenduxuexilvcai_02/
ultralytics/ , Python, 24 linesmodels/ fastsam/ utils.py - shenduxuexilvcai_02/
ultralytics/ , Python, 40 linesmodels/ fastsam/ val.py - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesmodels/ nas/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 94 linesmodels/ nas/ model.py - shenduxuexilvcai_02/
ultralytics/ , Python, 57 linesmodels/ nas/ predict.py - shenduxuexilvcai_02/
ultralytics/ , Python, 50 linesmodels/ nas/ val.py - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesmodels/ rtdetr/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 54 linesmodels/ rtdetr/ model.py - shenduxuexilvcai_02/
ultralytics/ , Python, 84 lines, 1 matchmodels/ rtdetr/ predict.py - shenduxuexilvcai_02/
ultralytics/ , Python, 102 lines, 1 matchmodels/ rtdetr/ train.py - shenduxuexilvcai_02/
ultralytics/ , Python, 135 linesmodels/ rtdetr/ val.py - shenduxuexilvcai_02/
ultralytics/ , Python, 6 linesmodels/ sam/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 193 linesmodels/ sam/ amg.py - shenduxuexilvcai_02/
ultralytics/ , Python, 350 linesmodels/ sam/ build.py - shenduxuexilvcai_02/
ultralytics/ , Python, 175 linesmodels/ sam/ model.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 linemodels/ sam/ modules/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,129 lines, 1 matchmodels/ sam/ modules/ blocks.py - shenduxuexilvcai_02/
ultralytics/ , Python, 518 linesmodels/ sam/ modules/ decoders.py - shenduxuexilvcai_02/
ultralytics/ , Python, 794 lines, 1 matchmodels/ sam/ modules/ encoders.py - shenduxuexilvcai_02/
ultralytics/ , Python, 237 linesmodels/ sam/ modules/ memory_attention.py - shenduxuexilvcai_02/
ultralytics/ , Python, 956 linesmodels/ sam/ modules/ sam.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,012 linesmodels/ sam/ modules/ tiny_encoder.py - shenduxuexilvcai_02/
ultralytics/ , Python, 373 linesmodels/ sam/ modules/ transformer.py - shenduxuexilvcai_02/
ultralytics/ , Python, 293 linesmodels/ sam/ modules/ utils.py - shenduxuexilvcai_02/
ultralytics/ , Python, 788 linesmodels/ sam/ predict.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 linemodels/ utils/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 358 linesmodels/ utils/ loss.py - shenduxuexilvcai_02/
ultralytics/ , Python, 259 linesmodels/ utils/ ops.py - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesmodels/ yolo/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesmodels/ yolo/ classify/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 59 linesmodels/ yolo/ classify/ predict.py - shenduxuexilvcai_02/
ultralytics/ , Python, 154 linesmodels/ yolo/ classify/ train.py - shenduxuexilvcai_02/
ultralytics/ , Python, 113 lines, 1 matchmodels/ yolo/ classify/ val.py - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesmodels/ yolo/ detect/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 41 linesmodels/ yolo/ detect/ predict.py - shenduxuexilvcai_02/
ultralytics/ , Python, 144 linesmodels/ yolo/ detect/ train.py - shenduxuexilvcai_02/
ultralytics/ , Python, 339 linesmodels/ yolo/ detect/ val.py - shenduxuexilvcai_02/
ultralytics/ , Python, 111 linesmodels/ yolo/ model.py - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesmodels/ yolo/ obb/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 53 linesmodels/ yolo/ obb/ predict.py - shenduxuexilvcai_02/
ultralytics/ , Python, 42 linesmodels/ yolo/ obb/ train.py - shenduxuexilvcai_02/
ultralytics/ , Python, 203 linesmodels/ yolo/ obb/ val.py - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesmodels/ yolo/ pose/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 56 linesmodels/ yolo/ pose/ predict.py - shenduxuexilvcai_02/
ultralytics/ , Python, 79 linesmodels/ yolo/ pose/ train.py - shenduxuexilvcai_02/
ultralytics/ , Python, 282 linesmodels/ yolo/ pose/ val.py - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesmodels/ yolo/ segment/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 55 linesmodels/ yolo/ segment/ predict.py - shenduxuexilvcai_02/
ultralytics/ , Python, 62 linesmodels/ yolo/ segment/ train.py - shenduxuexilvcai_02/
ultralytics/ , Python, 318 linesmodels/ yolo/ segment/ val.py - shenduxuexilvcai_02/
ultralytics/ , Python, 5 linesmodels/ yolo/ world/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 92 linesmodels/ yolo/ world/ train.py - shenduxuexilvcai_02/
ultralytics/ , Python, 109 linesmodels/ yolo/ world/ train_world.py - shenduxuexilvcai_02/
ultralytics/ , Python, 29 linesnn/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 676 linesnn/ autobackend.py - shenduxuexilvcai_02/
ultralytics/ , Python, 400 linesnn/ backbone/ CSwomTramsformer.py - shenduxuexilvcai_02/
ultralytics/ , Python, 659 linesnn/ backbone/ EfficientFormerV2.py - shenduxuexilvcai_02/
ultralytics/ , Python, 402 linesnn/ backbone/ MambaOut.py - shenduxuexilvcai_02/
ultralytics/ , Python, 585 linesnn/ backbone/ SwinTransformer.py - shenduxuexilvcai_02/
ultralytics/ , Python, 470 linesnn/ backbone/ TransNeXt/ TransNext_cuda.py - shenduxuexilvcai_02/
ultralytics/ , Python, 424 linesnn/ backbone/ TransNeXt/ TransNext_native.py - shenduxuexilvcai_02/
ultralytics/ , CUDA, 140 linesnn/ backbone/ TransNeXt/ swattention_extension/ av_bw_kernel.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 88 linesnn/ backbone/ TransNeXt/ swattention_extension/ av_fw_kernel.cu - shenduxuexilvcai_02/
ultralytics/ , Shell, 1 linenn/ backbone/ TransNeXt/ swattention_extension/ commad.sh - shenduxuexilvcai_02/
ultralytics/ , CUDA, 143 linesnn/ backbone/ TransNeXt/ swattention_extension/ qk_bw_kernel.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 88 linesnn/ backbone/ TransNeXt/ swattention_extension/ qk_fw_kernel.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 198 linesnn/ backbone/ TransNeXt/ swattention_extension/ qk_rpb_bw_kernel.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 91 linesnn/ backbone/ TransNeXt/ swattention_extension/ qk_rpb_fw_kernel.cu - shenduxuexilvcai_02/
ultralytics/ , Python, 32 linesnn/ backbone/ TransNeXt/ swattention_extension/ setup.py - shenduxuexilvcai_02/
ultralytics/ , C++, 170 linesnn/ backbone/ TransNeXt/ swattention_extension/ swattention.cpp - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesnn/ backbone/ TransNext.py - shenduxuexilvcai_02/
ultralytics/ , Python, 584 linesnn/ backbone/ UniRepLKNet.py - shenduxuexilvcai_02/
ultralytics/ , Python, 327 linesnn/ backbone/ VanillaNet.py - shenduxuexilvcai_02/
ultralytics/ , Python, 201 linesnn/ backbone/ convnextv2.py - shenduxuexilvcai_02/
ultralytics/ , Python, 456 linesnn/ backbone/ efficientViT.py - shenduxuexilvcai_02/
ultralytics/ , Python, 344 linesnn/ backbone/ fasternet.py - shenduxuexilvcai_02/
ultralytics/ , Python, 358 linesnn/ backbone/ inceptionnext.py - shenduxuexilvcai_02/
ultralytics/ , Python, 201 linesnn/ backbone/ lsknet.py - shenduxuexilvcai_02/
ultralytics/ , Python, 411 linesnn/ backbone/ mobilenetv4.py - shenduxuexilvcai_02/
ultralytics/ , Python, 541 linesnn/ backbone/ pkinet.py - shenduxuexilvcai_02/
ultralytics/ , Python, 458 linesnn/ backbone/ repvit.py - shenduxuexilvcai_02/
ultralytics/ , Python, 273 linesnn/ backbone/ revcol.py - shenduxuexilvcai_02/
ultralytics/ , Python, 601 linesnn/ backbone/ rmt.py - shenduxuexilvcai_02/
ultralytics/ , Python, 152 linesnn/ backbone/ starnet.py - shenduxuexilvcai_02/
ultralytics/ , Python, 385 linesnn/ extra_modules/ CTrans.py - shenduxuexilvcai_02/
ultralytics/ , Python, 2 linesnn/ extra_modules/ DCNv4_op/ DCNv4/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 11 linesnn/ extra_modules/ DCNv4_op/ DCNv4/ functions/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 129 linesnn/ extra_modules/ DCNv4_op/ DCNv4/ functions/ dcnv4_func.py - shenduxuexilvcai_02/
ultralytics/ , Python, 114 linesnn/ extra_modules/ DCNv4_op/ DCNv4/ functions/ flash_deform_attn_func.p y - shenduxuexilvcai_02/
ultralytics/ , Python, 1,355 linesnn/ extra_modules/ DCNv4_op/ DCNv4/ functions/ table.py - shenduxuexilvcai_02/
ultralytics/ , Python, 10 linesnn/ extra_modules/ DCNv4_op/ DCNv4/ modules/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 237 linesnn/ extra_modules/ DCNv4_op/ DCNv4/ modules/ dcnv4.py - shenduxuexilvcai_02/
ultralytics/ , Python, 144 linesnn/ extra_modules/ DCNv4_op/ DCNv4/ modules/ flash_deform_attn.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 linenn/ extra_modules/ DCNv4_op/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Shell, 10 linesnn/ extra_modules/ DCNv4_op/ make.sh - shenduxuexilvcai_02/
ultralytics/ , Python, 61 linesnn/ extra_modules/ DCNv4_op/ scripts/ find_best.py - shenduxuexilvcai_02/
ultralytics/ , Shell, 2 linesnn/ extra_modules/ DCNv4_op/ scripts/ search_bwd.sh - shenduxuexilvcai_02/
ultralytics/ , Python, 131 linesnn/ extra_modules/ DCNv4_op/ scripts/ search_dcnv4.py - shenduxuexilvcai_02/
ultralytics/ , Python, 200 linesnn/ extra_modules/ DCNv4_op/ scripts/ search_dcnv4_bwd.py - shenduxuexilvcai_02/
ultralytics/ , Python, 24 linesnn/ extra_modules/ DCNv4_op/ scripts/ search_dcnv4_bwd_engine. py - shenduxuexilvcai_02/
ultralytics/ , Python, 24 linesnn/ extra_modules/ DCNv4_op/ scripts/ search_dcnv4_engine.py - shenduxuexilvcai_02/
ultralytics/ , Shell, 2 linesnn/ extra_modules/ DCNv4_op/ scripts/ search_fwd.sh - shenduxuexilvcai_02/
ultralytics/ , Python, 144 linesnn/ extra_modules/ DCNv4_op/ scripts/ test_dcnv4.py - shenduxuexilvcai_02/
ultralytics/ , Python, 221 linesnn/ extra_modules/ DCNv4_op/ scripts/ test_dcnv4_bwd.py - shenduxuexilvcai_02/
ultralytics/ , Python, 174 linesnn/ extra_modules/ DCNv4_op/ scripts/ test_flash_deform_attn.p y - shenduxuexilvcai_02/
ultralytics/ , Python, 194 linesnn/ extra_modules/ DCNv4_op/ scripts/ test_flash_deform_attn_b ackward.py - shenduxuexilvcai_02/
ultralytics/ , Python, 72 linesnn/ extra_modules/ DCNv4_op/ setup.py - shenduxuexilvcai_02/
ultralytics/ , C/C++, 216 linesnn/ extra_modules/ DCNv4_op/ src/ cuda/ common.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 176 linesnn/ extra_modules/ DCNv4_op/ src/ cuda/ dcnv4_cuda.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 33 linesnn/ extra_modules/ DCNv4_op/ src/ cuda/ dcnv4_cuda.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 163 linesnn/ extra_modules/ DCNv4_op/ src/ cuda/ flash_deform_attn_cuda.c u - shenduxuexilvcai_02/
ultralytics/ , C/C++, 25 linesnn/ extra_modules/ DCNv4_op/ src/ cuda/ flash_deform_attn_cuda.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 107 linesnn/ extra_modules/ DCNv4_op/ src/ dcnv4.h - shenduxuexilvcai_02/
ultralytics/ , C++, 21 linesnn/ extra_modules/ DCNv4_op/ src/ vision.cpp - shenduxuexilvcai_02/
ultralytics/ , Python, 389 linesnn/ extra_modules/ FreqFusion.py - shenduxuexilvcai_02/
ultralytics/ , Python, 152 linesnn/ extra_modules/ RFAconv.py - shenduxuexilvcai_02/
ultralytics/ , Python, 203 linesnn/ extra_modules/ SMPConv.py - shenduxuexilvcai_02/
ultralytics/ , Python, 17 linesnn/ extra_modules/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 542 linesnn/ extra_modules/ afpn.py - shenduxuexilvcai_02/
ultralytics/ , Python, 465 linesnn/ extra_modules/ ast.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,933 linesnn/ extra_modules/ attention.py - shenduxuexilvcai_02/
ultralytics/ , Python, 4,689 lines, 1 matchnn/ extra_modules/ block.py - shenduxuexilvcai_02/
ultralytics/ , Python, 274 linesnn/ extra_modules/ camixer.py - shenduxuexilvcai_02/
ultralytics/ , Python, 352 linesnn/ extra_modules/ cfpt.py - shenduxuexilvcai_02/
ultralytics/ , CUDA, 42 linesnn/ extra_modules/ cutlass/ cmake/ nop.cu - shenduxuexilvcai_02/
ultralytics/ , JavaScript, 6 linesnn/ extra_modules/ cutlass/ commitlint.config.js - shenduxuexilvcai_02/
ultralytics/ , CUDA, 474 linesnn/ extra_modules/ cutlass/ examples/ 00_basic_gemm/ basic_gemm.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 372 linesnn/ extra_modules/ cutlass/ examples/ 01_cutlass_utilities/ cutlass_utilities.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 188 linesnn/ extra_modules/ cutlass/ examples/ 02_dump_reg_shmem/ dump_reg_shmem.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 114 linesnn/ extra_modules/ cutlass/ examples/ 03_visualize_layout/ options.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 128 linesnn/ extra_modules/ cutlass/ examples/ 03_visualize_layout/ register_layout.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 55 linesnn/ extra_modules/ cutlass/ examples/ 03_visualize_layout/ register_layout.h - shenduxuexilvcai_02/
ultralytics/ , C++, 147 linesnn/ extra_modules/ cutlass/ examples/ 03_visualize_layout/ visualize_layout.cpp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 347 linesnn/ extra_modules/ cutlass/ examples/ 03_visualize_layout/ visualize_layout.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 215 linesnn/ extra_modules/ cutlass/ examples/ 04_tile_iterator/ tile_iterator.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 336 linesnn/ extra_modules/ cutlass/ examples/ 05_batched_gemm/ batched_gemm.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 349 linesnn/ extra_modules/ cutlass/ examples/ 06_splitK_gemm/ splitk_gemm.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 357 linesnn/ extra_modules/ cutlass/ examples/ 07_volta_tensorop_gemm/ volta_tensorop_gemm.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 357 linesnn/ extra_modules/ cutlass/ examples/ 08_turing_tensorop_gemm/ turing_tensorop_gemm.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 750 linesnn/ extra_modules/ cutlass/ examples/ 09_turing_tensorop_conv2 dfprop/ turing_tensorop_conv2dfp rop.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 627 linesnn/ extra_modules/ cutlass/ examples/ 10_planar_complex/ planar_complex.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 678 linesnn/ extra_modules/ cutlass/ examples/ 11_planar_complex_array/ planar_complex_array.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 282 linesnn/ extra_modules/ cutlass/ examples/ 12_gemm_bias_relu/ gemm_bias_relu.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 147 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ b2b_gemm_f16t_f16n_f16t_ tensor_op_f16_sm75.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 534 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ b2b_gemm_run.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 148 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ b2b_gemm_s8n_s8t_s8n_ten sor_op_s32_sm75.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 151 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ b2b_gemm_s8n_s8t_s8n_ten sor_op_s32_sm80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 589 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ b2b_interleaved_gemm_run .h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 409 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ device/ b2b_gemm.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 115 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ fused_gemm.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 412 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ kernel/ b2b_gemm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 349 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ kernel/ default_b2b_gemm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 229 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ threadblock/ b2b_mma_base.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 893 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ threadblock/ b2b_mma_multistage.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 544 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ threadblock/ b2b_mma_pipelined.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 399 linesnn/ extra_modules/ cutlass/ examples/ 13_fused_two_gemms/ threadblock/ default_b2b_mma.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 267 linesnn/ extra_modules/ cutlass/ examples/ 14_ampere_tf32_tensorop_ gemm/ ampere_tf32_tensorop_gem m.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 313 linesnn/ extra_modules/ cutlass/ examples/ 15_ampere_sparse_tensoro p_gemm/ ampere_sparse_tensorop_g emm.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 638 linesnn/ extra_modules/ cutlass/ examples/ 16_large_depthwise_conv2 dfprop/ large_depthwise_conv2dfp rop.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 640 linesnn/ extra_modules/ cutlass/ examples/ 17_large_depthwise_conv2 ddgrad/ large_depthwise_conv2ddg rad.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 626 linesnn/ extra_modules/ cutlass/ examples/ 18_large_depthwise_conv2 dwgrad/ large_depthwise_conv2dwg rad.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 246 linesnn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ backward_data_fp16.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 263 linesnn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ backward_data_fp32.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 243 linesnn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ backward_filter_fp16.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 263 linesnn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ backward_filter_fp32.cu - shenduxuexilvcai_02/
ultralytics/ , Python, 82 linesnn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ depthwise_conv2d_implici t_gemm.py - shenduxuexilvcai_02/
ultralytics/ , CUDA, 249 linesnn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ forward_fp16.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 263 linesnn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ forward_fp32.cu - shenduxuexilvcai_02/
ultralytics/ , C++, 16 linesnn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ frontend.cpp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 10 linesnn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ frontend.h - shenduxuexilvcai_02/
ultralytics/ , Shell, 1 linenn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ make.sh - shenduxuexilvcai_02/
ultralytics/ , Python, 35 linesnn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ setup.py - shenduxuexilvcai_02/
ultralytics/ , Python, 127 linesnn/ extra_modules/ cutlass/ examples/ 19_large_depthwise_conv2 d_torch_extension/ test_correctness.py - shenduxuexilvcai_02/
ultralytics/ , CUDA, 750 linesnn/ extra_modules/ cutlass/ examples/ 22_ampere_tensorop_conv2 dfprop/ ampere_tensorop_conv2dfp rop.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 791 linesnn/ extra_modules/ cutlass/ examples/ 99_turing_conv2ddgrad_in t8/ 99_turing_conv2ddgrad_in t8.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 24 linesnn/ extra_modules/ cutlass/ examples/ common/ helper.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 100 linesnn/ extra_modules/ cutlass/ include/ cutlass/ aligned_buffer.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 77 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ arch.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 62 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ cache_operation.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 381 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ memory.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 278 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ memory_sm75.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 263 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ memory_sm80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 199 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ mma.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 282 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ mma_sm50.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 188 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ mma_sm60.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 108 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ mma_sm61.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 456 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ mma_sm70.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 986 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ mma_sm75.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,690 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ mma_sm80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,390 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ mma_sparse_sm80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 122 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ simd.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 116 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ simd_sm60.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 155 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ simd_sm61.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 225 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ wmma.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 119 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ wmma_sm70.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 179 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ wmma_sm72.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 175 linesnn/ extra_modules/ cutlass/ include/ cutlass/ arch/ wmma_sm75.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 516 linesnn/ extra_modules/ cutlass/ include/ cutlass/ array.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 93 linesnn/ extra_modules/ cutlass/ include/ cutlass/ array_planar_complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 501 linesnn/ extra_modules/ cutlass/ include/ cutlass/ array_subbyte.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 456 linesnn/ extra_modules/ cutlass/ include/ cutlass/ bfloat16.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 509 linesnn/ extra_modules/ cutlass/ include/ cutlass/ complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,492 linesnn/ extra_modules/ cutlass/ include/ cutlass/ constants.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 528 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ conv2d_problem_size.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 449 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ conv3d_problem_size.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 130 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ convolution.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 261 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ device/ implicit_gemm_convolutio n.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 83 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ kernel/ default_conv2d.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 765 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ kernel/ default_conv2d_dgrad.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 267 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ kernel/ default_conv2d_dgrad_tra ns.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 864 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ kernel/ default_conv2d_fprop.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 573 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ kernel/ default_conv2d_wgrad.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 131 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ kernel/ default_conv3d_dgrad.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 131 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ kernel/ default_conv3d_fprop.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 324 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ kernel/ default_conv3d_wgrad.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 404 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ kernel/ implicit_gemm_convolutio n.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 230 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_dgrad_filter_tile _access_iterator_analyti c.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 273 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_dgrad_filter_tile _access_iterator_optimiz ed.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 230 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_dgrad_filter_tile _access_iterator_trans_a nalytic.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 497 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_dgrad_output_grad ient_tile_access_iterato r_analytic.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 415 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_dgrad_output_grad ient_tile_access_iterato r_optimized.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 273 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_fprop_activation_ tile_access_iterator_ana lytic.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 419 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_fprop_activation_ tile_access_iterator_opt imized.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 244 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_fprop_filter_tile _access_iterator_analyti c.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 267 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_fprop_filter_tile _access_iterator_optimiz ed.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 611 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_params.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 158 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_tile_iterator.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 245 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_wgrad_activation_ tile_access_iterator_ana lytic.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 269 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_wgrad_activation_ tile_access_iterator_opt imized.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 223 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_wgrad_output_grad ient_tile_access_iterato r_analytic.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 283 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv2d_wgrad_output_grad ient_tile_access_iterato r_optimized.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 248 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv3d_dgrad_filter_tile _access_iterator_analyti c.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 306 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv3d_dgrad_output_grad ient_tile_access_iterato r_analytic.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 291 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv3d_fprop_activation_ tile_access_iterator_ana lytic.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 248 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv3d_fprop_filter_tile _access_iterator_analyti c.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 271 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv3d_wgrad_activation_ tile_access_iterator_ana lytic.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 353 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv3d_wgrad_activation_ tile_access_iterator_opt imized.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 240 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv3d_wgrad_output_grad ient_tile_access_iterato r_analytic.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 327 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ conv3d_wgrad_output_grad ient_tile_access_iterato r_optimized.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 485 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ implicit_gemm_multistage .h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 331 linesnn/ extra_modules/ cutlass/ include/ cutlass/ conv/ threadblock/ implicit_gemm_pipelined. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 771 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ device/ convolution.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 155 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ device/ default_convolution_conf iguration.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 217 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ device/ implicit_gemm_precomp_co nvolution.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 761 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ kernel/ default_conv2d_dgrad.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,450 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ kernel/ default_conv2d_fprop.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 329 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ kernel/ default_conv2d_wgrad.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 330 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ kernel/ implicit_batched_gemm_dw conv2d_wgrad.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 393 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ kernel/ implicit_batched_gemm_tn _dwconv2d.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 383 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ kernel/ implicit_gemm_nt_convolu tion.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 384 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ kernel/ implicit_gemm_nt_precomp _convolution.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 388 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ kernel/ implicit_gemm_tn_precomp _convolution.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 287 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ conv2d_tile_iterator_nt. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 606 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ conv2d_tile_iterator_nt_ src_dgrad_precomp.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,168 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ conv2d_tile_iterator_nt_ src_fprop_precomp.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 654 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ conv2d_tile_iterator_tn_ dgrad_nhwc_precomp.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 947 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ conv2d_tile_iterator_tn_ fprop_nhwc_precomp.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 362 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ conv2d_tile_params.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 258 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ dwconv2d_tile_iterator_t n.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 456 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ dwconv2d_tile_iterator_t n_filter_dgrad_precomp.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 519 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ dwconv2d_tile_iterator_t n_filter_fprop_precomp.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 210 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ implicit_mma_base.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 131 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ implicit_mma_core.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 764 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ implicit_mma_core_simt.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 332 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ implicit_mma_core_sm70.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,093 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ implicit_mma_core_sm75.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 604 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ implicit_mma_nt_precomp. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 370 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ implicit_mma_pipelined.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 355 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ implicit_mma_singlestage .h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 210 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ implicit_mma_tn_base.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 603 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ implicit_mma_tn_precomp. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 358 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ regular_tile_iterator_tr ansposed.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 365 linesnn/ extra_modules/ cutlass/ include/ cutlass/ convolution/ threadblock/ threadblock_swizzle.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 444 linesnn/ extra_modules/ cutlass/ include/ cutlass/ coord.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 252 linesnn/ extra_modules/ cutlass/ include/ cutlass/ core_io.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 164 linesnn/ extra_modules/ cutlass/ include/ cutlass/ cutlass.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 57 linesnn/ extra_modules/ cutlass/ include/ cutlass/ device_kernel.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 59 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ epilogue.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 187 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ activation.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 333 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ bias_add_linear_combinat ion.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 385 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ bias_add_linear_combinat ion_clamp.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 391 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ bias_add_linear_combinat ion_hswish.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 445 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ bias_add_linear_combinat ion_hswish_clamp.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 388 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ bias_add_linear_combinat ion_relu.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 441 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ bias_add_linear_combinat ion_relu_clamp.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 112 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ conversion_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 212 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ linear_combination.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 610 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ linear_combination_clamp .h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 209 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ linear_combination_gelu. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 242 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ linear_combination_plana r_complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 457 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ linear_combination_relu. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 208 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ linear_combination_sigmo id.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 102 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ numeric_array_converter_ policy.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 85 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ thread/ reduction_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,377 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ bias_tile_iterator.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,096 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ convolution_epilogue.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 378 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ convolution_epilogue_sim t.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 339 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ convolution_epilogue_ten sor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 807 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ convolution_output_tile_ thread_map.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 244 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ convolution_output_tile_ thread_map_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 304 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ convolution_thread_map_s imt.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 229 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ convolution_thread_map_t ensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 214 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ default_epilogue_complex _tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 157 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ default_epilogue_planar_ complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 128 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ default_epilogue_simt.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 308 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ default_epilogue_tensor_ op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 134 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ default_epilogue_volta_t ensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 131 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ default_epilogue_wmma_te nsor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 109 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ default_thread_map_simt. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 195 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ default_thread_map_tenso r_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 186 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ default_thread_map_volta _tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 101 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ default_thread_map_wmma_ tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 248 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ direct_epilogue_tensor_o p.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 196 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ dwconv2d_direct_epilogue _simt.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 247 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ dwconv2d_direct_epilogue _volta_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 162 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ dwconv2d_epilogue_simt.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 161 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ dwconv2d_epilogue_volta_ tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 691 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ dwconv2d_predicated_tile _iterator.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 434 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ epilogue.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 194 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ epilogue_base.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 416 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ epilogue_planar_complex. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 200 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ epilogue_workspace.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 266 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ interleaved_epilogue.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 385 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ interleaved_shared_load_ iterator.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 223 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ interleaved_shared_load_ iterator_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 84 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ output_iterator_paramete r.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 524 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ output_tile_thread_map.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 958 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ predicated_tile_iterator .h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 207 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ predicated_tile_iterator _params.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 375 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ shared_load_iterator.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 539 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ shared_load_iterator_mix ed.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 2,137 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ tensor_predicated_tile_i terator.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 422 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ threadblock/ tensor_predicated_tile_i terator_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 192 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ fragment_iterator_comple x_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 208 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ fragment_iterator_gaussi an_complex_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 159 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ fragment_iterator_simt.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 473 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ fragment_iterator_tensor _op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 269 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ fragment_iterator_volta_ tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 164 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ fragment_iterator_wmma_t ensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 191 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ interleaved_simt_policy. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 378 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ interleaved_tile_iterato r_simt.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 374 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ interleaved_tile_iterato r_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 105 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ simt_policy.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 224 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ tensor_op_policy.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 233 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ tile_iterator_simt.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 419 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ tile_iterator_tensor_op. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 661 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ tile_iterator_tensor_op_ mixed.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 414 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ tile_iterator_volta_tens or_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 201 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ tile_iterator_wmma_tenso r_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 194 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ volta_tensor_op_policy.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 95 linesnn/ extra_modules/ cutlass/ include/ cutlass/ epilogue/ warp/ wmma_tensor_op_policy.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 420 linesnn/ extra_modules/ cutlass/ include/ cutlass/ fast_math.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,603 linesnn/ extra_modules/ cutlass/ include/ cutlass/ functional.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 570 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ device/ default_gemm_configurati on.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 671 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ device/ gemm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 647 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ device/ gemm_array.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 640 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ device/ gemm_batched.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 650 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ device/ gemm_complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 486 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ device/ gemm_sparse.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 583 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ device/ gemm_splitk_parallel.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 316 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ device/ gemm_universal.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 225 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ device/ gemm_universal_adapter.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 412 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ device/ gemm_universal_base.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 387 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ gemm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 698 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ default_gemm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 326 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ default_gemm_complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 264 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ default_gemm_planar_comp lex_universal.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 189 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ default_gemm_sparse.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 116 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ default_gemm_splitk_para llel.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 243 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ default_gemm_universal.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 217 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ default_gemv.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 356 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ gemm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 232 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ gemm_array.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 238 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ gemm_batched.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 135 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ gemm_pipelined.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 645 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ gemm_planar_complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 541 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ gemm_planar_complex_arra y.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 231 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ gemm_splitk_parallel.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 547 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ gemm_universal.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 213 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ gemv_batched_strided.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 386 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ kernel/ sparse_gemm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 86 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ thread/ mma.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 238 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ thread/ mma_sm50.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 899 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ thread/ mma_sm60.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 236 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ thread/ mma_sm61.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 238 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_gemv_core.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 730 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_mma.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 117 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_mma_core.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,235 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_mma_core_simt.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 536 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_mma_core_sm70.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,166 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_mma_core_sm75.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 2,101 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_mma_core_sm80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 841 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_mma_core_sparse_ sm80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 585 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_mma_core_wmma.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 112 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_mma_planar_compl ex_multistage.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 104 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_mma_planar_compl ex_pipelined.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 166 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_multistage_mma_c omplex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 116 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_multistage_mma_c omplex_core.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,682 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_multistage_mma_c omplex_core_sm80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 192 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ default_sparse_mma.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 339 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ gemv.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 221 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ mma_base.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 540 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ mma_multistage.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 343 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ mma_pipelined.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 204 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ mma_planar_complex_base. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 651 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ mma_planar_complex_multi stage.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 433 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ mma_planar_complex_pipel ined.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 276 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ mma_singlestage.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 259 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ mma_sparse_base.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 693 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ mma_sparse_multistage.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 370 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ threadblock/ threadblock_swizzle.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 294 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ default_mma_complex_tens or_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 154 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ default_mma_sparse_tenso r_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 120 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ default_mma_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 165 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ default_mma_tensor_op_sm 80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 113 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ default_mma_wmma_tensor_ op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 56 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 787 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_complex_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 2,427 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_complex_tensor_op_ti le_iterator_sm80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 345 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_gaussian_complex_ten sor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 412 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_gaussian_complex_ten sor_op_tile_iterator_sm8 0.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 176 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_planar_complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 236 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_simt.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 67 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_simt_policy.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,369 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_simt_tile_iterator.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 322 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_sparse_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 385 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 484 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_tensor_op_fragment_i terator.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 64 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_tensor_op_policy.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 252 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_tensor_op_sm70.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 3,775 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_tensor_op_tile_itera tor.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 3,129 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_tensor_op_tile_itera tor_sm70.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 2,367 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_tensor_op_tile_itera tor_sm80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 382 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_tensor_op_tile_itera tor_sparse.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 796 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_tensor_op_tile_itera tor_wmma.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 202 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ mma_tensor_op_wmma.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 249 linesnn/ extra_modules/ cutlass/ include/ cutlass/ gemm/ warp/ tile_iterator_planar_com plex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 794 linesnn/ extra_modules/ cutlass/ include/ cutlass/ half.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 220 linesnn/ extra_modules/ cutlass/ include/ cutlass/ integer_subbyte.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 64 linesnn/ extra_modules/ cutlass/ include/ cutlass/ kernel_launch.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 59 linesnn/ extra_modules/ cutlass/ include/ cutlass/ layout/ layout.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 863 linesnn/ extra_modules/ cutlass/ include/ cutlass/ layout/ matrix.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 254 linesnn/ extra_modules/ cutlass/ include/ cutlass/ layout/ pitch_linear.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 810 linesnn/ extra_modules/ cutlass/ include/ cutlass/ layout/ tensor.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,046 linesnn/ extra_modules/ cutlass/ include/ cutlass/ layout/ tensor_op_multiplicand_s m70.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,155 linesnn/ extra_modules/ cutlass/ include/ cutlass/ layout/ tensor_op_multiplicand_s m75.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,109 linesnn/ extra_modules/ cutlass/ include/ cutlass/ layout/ tensor_op_multiplicand_s m80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 93 linesnn/ extra_modules/ cutlass/ include/ cutlass/ layout/ vector.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 6,887 linesnn/ extra_modules/ cutlass/ include/ cutlass/ matrix.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 150 linesnn/ extra_modules/ cutlass/ include/ cutlass/ matrix_coord.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 59 linesnn/ extra_modules/ cutlass/ include/ cutlass/ matrix_shape.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,758 linesnn/ extra_modules/ cutlass/ include/ cutlass/ numeric_conversion.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 78 linesnn/ extra_modules/ cutlass/ include/ cutlass/ numeric_types.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 893 linesnn/ extra_modules/ cutlass/ include/ cutlass/ platform/ platform.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 540 linesnn/ extra_modules/ cutlass/ include/ cutlass/ predicate_vector.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 516 linesnn/ extra_modules/ cutlass/ include/ cutlass/ quaternion.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 51 linesnn/ extra_modules/ cutlass/ include/ cutlass/ real.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 184 linesnn/ extra_modules/ cutlass/ include/ cutlass/ reduction/ device/ reduce_split_k.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 236 linesnn/ extra_modules/ cutlass/ include/ cutlass/ reduction/ kernel/ reduce_split_k.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 211 linesnn/ extra_modules/ cutlass/ include/ cutlass/ reduction/ thread/ reduce.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 97 linesnn/ extra_modules/ cutlass/ include/ cutlass/ reduction/ thread/ reduction_operators.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 65 linesnn/ extra_modules/ cutlass/ include/ cutlass/ reduction/ threadblock_swizzle.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 191 linesnn/ extra_modules/ cutlass/ include/ cutlass/ relatively_equal.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 117 linesnn/ extra_modules/ cutlass/ include/ cutlass/ semaphore.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 537 linesnn/ extra_modules/ cutlass/ include/ cutlass/ subbyte_reference.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 313 linesnn/ extra_modules/ cutlass/ include/ cutlass/ tensor_coord.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 373 linesnn/ extra_modules/ cutlass/ include/ cutlass/ tensor_ref.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 337 linesnn/ extra_modules/ cutlass/ include/ cutlass/ tensor_ref_planar_comple x.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 271 linesnn/ extra_modules/ cutlass/ include/ cutlass/ tensor_view.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 289 linesnn/ extra_modules/ cutlass/ include/ cutlass/ tensor_view_planar_compl ex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 449 linesnn/ extra_modules/ cutlass/ include/ cutlass/ tfloat32.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 168 linesnn/ extra_modules/ cutlass/ include/ cutlass/ thread/ matrix.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 55 linesnn/ extra_modules/ cutlass/ include/ cutlass/ trace.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 888 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ pitch_linear_thread_map. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 121 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ thread/ transpose.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 97 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ thread/ unaryOp.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,247 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ predicated_tile_access_i terator.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 856 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ predicated_tile_access_i terator_2dthreadtile.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,139 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ predicated_tile_iterator .h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 748 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ predicated_tile_iterator _2dthreadtile.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 55 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ regular_tile_access_iter ator.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 390 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ regular_tile_access_iter ator_pitch_linear.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,113 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ regular_tile_access_iter ator_tensor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,530 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ regular_tile_access_iter ator_tensor_op_sm80.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 56 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ regular_tile_iterator.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 687 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ regular_tile_iterator_pi tch_linear.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 479 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ regular_tile_iterator_pi tch_linear_2dthreadtile. h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,100 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ regular_tile_iterator_te nsor_op.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,348 linesnn/ extra_modules/ cutlass/ include/ cutlass/ transform/ threadblock/ regular_tile_iterator_te nsor_op_sm70.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 70 linesnn/ extra_modules/ cutlass/ include/ cutlass/ wmma_array.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 113 linesnn/ extra_modules/ cutlass/ tools/ library/ include/ cutlass/ library/ arch_mappings.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 381 linesnn/ extra_modules/ cutlass/ tools/ library/ include/ cutlass/ library/ handle.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,109 linesnn/ extra_modules/ cutlass/ tools/ library/ include/ cutlass/ library/ library.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 108 linesnn/ extra_modules/ cutlass/ tools/ library/ include/ cutlass/ library/ manifest.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 464 linesnn/ extra_modules/ cutlass/ tools/ library/ include/ cutlass/ library/ operation_table.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 61 linesnn/ extra_modules/ cutlass/ tools/ library/ include/ cutlass/ library/ singleton.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 187 linesnn/ extra_modules/ cutlass/ tools/ library/ include/ cutlass/ library/ util.h - shenduxuexilvcai_02/
ultralytics/ , Python, 344 linesnn/ extra_modules/ cutlass/ tools/ library/ scripts/ conv2d_operation.py - shenduxuexilvcai_02/
ultralytics/ , Python, 321 linesnn/ extra_modules/ cutlass/ tools/ library/ scripts/ conv3d_operation.py - shenduxuexilvcai_02/
ultralytics/ , Python, 771 linesnn/ extra_modules/ cutlass/ tools/ library/ scripts/ gemm_operation.py - shenduxuexilvcai_02/
ultralytics/ , Python, 2,479 linesnn/ extra_modules/ cutlass/ tools/ library/ scripts/ generator.py - shenduxuexilvcai_02/
ultralytics/ , Python, 537 linesnn/ extra_modules/ cutlass/ tools/ library/ scripts/ library.py - shenduxuexilvcai_02/
ultralytics/ , Python, 354 linesnn/ extra_modules/ cutlass/ tools/ library/ scripts/ manifest.py - shenduxuexilvcai_02/
ultralytics/ , C/C++, 358 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ conv2d_operation.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 355 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ conv3d_operation.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,035 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ gemm_operation.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 1,027 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ handle.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 403 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ library_internal.h - shenduxuexilvcai_02/
ultralytics/ , C++, 100 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ manifest.cpp - shenduxuexilvcai_02/
ultralytics/ , CUDA, 129 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ operation_table.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 58 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ reduction/ init_reduction_operation s.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 123 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ reduction/ reduction_device.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 262 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ reduction/ reduction_operation.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 139 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ reference/ conv2d.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 129 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ reference/ conv3d.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 390 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ reference/ conv_reference_operation .h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 175 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ reference/ gemm.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 334 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ reference/ gemm_reference_operation .h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 58 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ reference/ initialize_reference_ope rations.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 63 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ singleton.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 1,305 linesnn/ extra_modules/ cutlass/ tools/ library/ src/ util.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 1,496 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ conv2d_operation_profile r.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 450 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ conv2d_operation_profile r.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 1,376 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ conv3d_operation_profile r.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 459 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ conv3d_operation_profile r.h - shenduxuexilvcai_02/
ultralytics/ , C++, 307 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ cublas_helpers.cpp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 199 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ cublas_helpers.h - shenduxuexilvcai_02/
ultralytics/ , C++, 436 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ cudnn_helpers.cpp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 517 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ cudnn_helpers.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 179 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ cutlass_profiler.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 89 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ cutlass_profiler.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 53 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ debug.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 1,379 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ device_allocation.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 207 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ device_allocation.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 176 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ device_context.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 113 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ device_context.h - shenduxuexilvcai_02/
ultralytics/ , C++, 245 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ enumerated_types.cpp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 165 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ enumerated_types.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 979 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ gemm_operation_profiler. cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 233 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ gemm_operation_profiler. h - shenduxuexilvcai_02/
ultralytics/ , C++, 108 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ gpu_timer.cpp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 66 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ gpu_timer.h - shenduxuexilvcai_02/
ultralytics/ , C++, 48 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ main.cpp - shenduxuexilvcai_02/
ultralytics/ , CUDA, 655 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ operation_profiler.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 226 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ operation_profiler.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 803 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ options.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 309 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ options.h - shenduxuexilvcai_02/
ultralytics/ , C++, 465 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ performance_report.cpp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 121 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ performance_report.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 55 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ performance_result.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 116 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ performance_result.h - shenduxuexilvcai_02/
ultralytics/ , C++, 1,168 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ problem_space.cpp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 951 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ problem_space.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 159 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ reduction_operation_prof iler.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 568 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ sparse_gemm_operation_pr ofiler.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 209 linesnn/ extra_modules/ cutlass/ tools/ profiler/ src/ sparse_gemm_operation_pr ofiler.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 291 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ command_line.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 133 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ debug.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 190 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ device_dump.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 323 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ device_memory.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 157 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ distribution.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 58 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ exceptions.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 109 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ host_reorder.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 483 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ host_tensor.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 586 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ host_tensor_planar_compl ex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 122 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ host_uncompress.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 123 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ detail/ inner_product.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 88 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ detail/ linear_to_coordinate.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,323 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ convolution.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 310 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ gemm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 228 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ gemm_complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 244 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ gemm_planar_complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 117 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ kernel/ gemm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 172 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ kernel/ tensor_elementwise.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 152 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ kernel/ tensor_foreach.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 202 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ tensor_compare.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,457 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ tensor_fill.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 131 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ tensor_foreach.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 425 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ tensor_reduce.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 125 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ tensor_relu.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 169 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ device/ thread/ gemm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 1,844 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ host/ convolution.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 400 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ host/ gemm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 180 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ host/ gemm_complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 193 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ host/ gemm_planar_complex.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 284 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ host/ tensor_compare.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 206 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ host/ tensor_copy.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 220 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ host/ tensor_elementwise.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 929 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ host/ tensor_fill.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 119 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ host/ tensor_foreach.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 36 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ host/ tensor_norm.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 145 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ reference/ host/ tensor_reduce.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 219 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ tensor_view_io.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 245 linesnn/ extra_modules/ cutlass/ tools/ util/ include/ cutlass/ util/ type_traits.h - shenduxuexilvcai_02/
ultralytics/ , Python, 176 linesnn/ extra_modules/ deconv.py - shenduxuexilvcai_02/
ultralytics/ , Python, 228 linesnn/ extra_modules/ dyhead_prune.py - shenduxuexilvcai_02/
ultralytics/ , Python, 349 linesnn/ extra_modules/ dynamic_snake_conv.py - shenduxuexilvcai_02/
ultralytics/ , Python, 904 linesnn/ extra_modules/ fadc.py - shenduxuexilvcai_02/
ultralytics/ , Python, 171 linesnn/ extra_modules/ hcfnet.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,816 linesnn/ extra_modules/ head.py - shenduxuexilvcai_02/
ultralytics/ , Python, 5 linesnn/ extra_modules/ kan_convs/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 143 linesnn/ extra_modules/ kan_convs/ fast_kan_conv.py - shenduxuexilvcai_02/
ultralytics/ , Python, 102 linesnn/ extra_modules/ kan_convs/ kacn_conv.py - shenduxuexilvcai_02/
ultralytics/ , Python, 154 linesnn/ extra_modules/ kan_convs/ kagn_conv.py - shenduxuexilvcai_02/
ultralytics/ , Python, 147 linesnn/ extra_modules/ kan_convs/ kaln_conv.py - shenduxuexilvcai_02/
ultralytics/ , Python, 147 linesnn/ extra_modules/ kan_convs/ kan_conv.py - shenduxuexilvcai_02/
ultralytics/ , Python, 349 linesnn/ extra_modules/ kernel_warehouse.py - shenduxuexilvcai_02/
ultralytics/ , Python, 92 linesnn/ extra_modules/ mamba/ benchmarks/ benchmark_generation_mam ba_simple.py - shenduxuexilvcai_02/
ultralytics/ , C++, 497 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan.cpp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 101 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan_bwd_bf16_ complex.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan_bwd_bf16_ real.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan_bwd_fp16_ complex.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan_bwd_fp16_ real.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan_bwd_fp32_ complex.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan_bwd_fp32_ real.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 221 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan_common.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 10 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan_fwd_bf16. cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 10 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan_fwd_fp16. cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 10 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ selective_scan_fwd_fp32. cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 25 linesnn/ extra_modules/ mamba/ csrc/ selective_scan/ static_switch.h - shenduxuexilvcai_02/
ultralytics/ , Python, 39 linesnn/ extra_modules/ mamba/ evals/ lm_harness_eval.py - shenduxuexilvcai_02/
ultralytics/ , Shell, 3 linesnn/ extra_modules/ mamba/ make.sh - shenduxuexilvcai_02/
ultralytics/ , Python, 6 linesnn/ extra_modules/ mamba/ mamba_ssm/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 linenn/ extra_modules/ mamba/ mamba_ssm/ distributed/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 144 linesnn/ extra_modules/ mamba/ mamba_ssm/ distributed/ distributed_utils.py - shenduxuexilvcai_02/
ultralytics/ , Python, 296 linesnn/ extra_modules/ mamba/ mamba_ssm/ distributed/ tensor_parallel.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 linenn/ extra_modules/ mamba/ mamba_ssm/ models/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 18 linesnn/ extra_modules/ mamba/ mamba_ssm/ models/ config_mamba.py - shenduxuexilvcai_02/
ultralytics/ , Python, 309 linesnn/ extra_modules/ mamba/ mamba_ssm/ models/ mixer_seq_simple.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 linenn/ extra_modules/ mamba/ mamba_ssm/ modules/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 91 linesnn/ extra_modules/ mamba/ mamba_ssm/ modules/ block.py - shenduxuexilvcai_02/
ultralytics/ , Python, 358 linesnn/ extra_modules/ mamba/ mamba_ssm/ modules/ mamba2.py - shenduxuexilvcai_02/
ultralytics/ , Python, 199 linesnn/ extra_modules/ mamba/ mamba_ssm/ modules/ mamba2_simple.py - shenduxuexilvcai_02/
ultralytics/ , Python, 294 linesnn/ extra_modules/ mamba/ mamba_ssm/ modules/ mamba_simple.py - shenduxuexilvcai_02/
ultralytics/ , Python, 289 linesnn/ extra_modules/ mamba/ mamba_ssm/ modules/ mha.py - shenduxuexilvcai_02/
ultralytics/ , Python, 34 linesnn/ extra_modules/ mamba/ mamba_ssm/ modules/ mlp.py - shenduxuexilvcai_02/
ultralytics/ , Python, 103 linesnn/ extra_modules/ mamba/ mamba_ssm/ modules/ ssd_minimal.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 linenn/ extra_modules/ mamba/ mamba_ssm/ ops/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 357 linesnn/ extra_modules/ mamba/ mamba_ssm/ ops/ selective_scan_interface .py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 linenn/ extra_modules/ mamba/ mamba_ssm/ ops/ triton/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 153 linesnn/ extra_modules/ mamba/ mamba_ssm/ ops/ triton/ k_activations.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,086 linesnn/ extra_modules/ mamba/ mamba_ssm/ ops/ triton/ layer_norm.py - shenduxuexilvcai_02/
ultralytics/ , Python, 437 linesnn/ extra_modules/ mamba/ mamba_ssm/ ops/ triton/ layernorm_gated.py - shenduxuexilvcai_02/
ultralytics/ , Python, 263 linesnn/ extra_modules/ mamba/ mamba_ssm/ ops/ triton/ selective_state_update.p y - shenduxuexilvcai_02/
ultralytics/ , Python, 262 linesnn/ extra_modules/ mamba/ mamba_ssm/ ops/ triton/ ssd_bmm.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,825 linesnn/ extra_modules/ mamba/ mamba_ssm/ ops/ triton/ ssd_chunk_scan.py - shenduxuexilvcai_02/
ultralytics/ , Python, 866 linesnn/ extra_modules/ mamba/ mamba_ssm/ ops/ triton/ ssd_chunk_state.py - shenduxuexilvcai_02/
ultralytics/ , Python, 959 linesnn/ extra_modules/ mamba/ mamba_ssm/ ops/ triton/ ssd_combined.py - shenduxuexilvcai_02/
ultralytics/ , Python, 348 linesnn/ extra_modules/ mamba/ mamba_ssm/ ops/ triton/ ssd_state_passing.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 linenn/ extra_modules/ mamba/ mamba_ssm/ utils/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 387 linesnn/ extra_modules/ mamba/ mamba_ssm/ utils/ generation.py - shenduxuexilvcai_02/
ultralytics/ , Python, 23 linesnn/ extra_modules/ mamba/ mamba_ssm/ utils/ hf.py - shenduxuexilvcai_02/
ultralytics/ , Python, 284 linesnn/ extra_modules/ mamba/ setup.py - shenduxuexilvcai_02/
ultralytics/ , Python, 511 linesnn/ extra_modules/ mambaIR.py - shenduxuexilvcai_02/
ultralytics/ , Python, 246 linesnn/ extra_modules/ mamba_vss.py - shenduxuexilvcai_02/
ultralytics/ , Python, 624 linesnn/ extra_modules/ mamba_yolo.py - shenduxuexilvcai_02/
ultralytics/ , Python, 364 linesnn/ extra_modules/ metaformer.py - shenduxuexilvcai_02/
ultralytics/ , Python, 457 linesnn/ extra_modules/ mhafyolo.py - shenduxuexilvcai_02/
ultralytics/ , Python, 648 linesnn/ extra_modules/ mobileMamba/ csm_triton.py - shenduxuexilvcai_02/
ultralytics/ , Python, 905 linesnn/ extra_modules/ mobileMamba/ csm_tritonk2.py - shenduxuexilvcai_02/
ultralytics/ , Python, 266 linesnn/ extra_modules/ mobileMamba/ csms6s.py - shenduxuexilvcai_02/
ultralytics/ , Python, 535 linesnn/ extra_modules/ mobileMamba/ mobilemamba.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,580 linesnn/ extra_modules/ mobileMamba/ vmambanew.py - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesnn/ extra_modules/ ops_dcnv3/ functions/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 221 linesnn/ extra_modules/ ops_dcnv3/ functions/ dcnv3_func.py - shenduxuexilvcai_02/
ultralytics/ , Shell, 8 linesnn/ extra_modules/ ops_dcnv3/ make.sh - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linesnn/ extra_modules/ ops_dcnv3/ modules/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 422 linesnn/ extra_modules/ ops_dcnv3/ modules/ dcnv3.py - shenduxuexilvcai_02/
ultralytics/ , Python, 75 linesnn/ extra_modules/ ops_dcnv3/ setup.py - shenduxuexilvcai_02/
ultralytics/ , C++, 37 linesnn/ extra_modules/ ops_dcnv3/ src/ cpu/ dcnv3_cpu.cpp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 31 linesnn/ extra_modules/ ops_dcnv3/ src/ cpu/ dcnv3_cpu.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 174 linesnn/ extra_modules/ ops_dcnv3/ src/ cuda/ dcnv3_cuda.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 31 linesnn/ extra_modules/ ops_dcnv3/ src/ cuda/ dcnv3_cuda.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 59 linesnn/ extra_modules/ ops_dcnv3/ src/ dcnv3.h - shenduxuexilvcai_02/
ultralytics/ , C++, 17 linesnn/ extra_modules/ ops_dcnv3/ src/ vision.cpp - shenduxuexilvcai_02/
ultralytics/ , Python, 264 linesnn/ extra_modules/ ops_dcnv3/ test.py - shenduxuexilvcai_02/
ultralytics/ , Python, 703 linesnn/ extra_modules/ orepa.py - shenduxuexilvcai_02/
ultralytics/ , Python, 43 linesnn/ extra_modules/ prepbn.py - shenduxuexilvcai_02/
ultralytics/ , Python, 149 linesnn/ extra_modules/ rational_kat_cu/ example/ cifar10.py - shenduxuexilvcai_02/
ultralytics/ , Python, 91 linesnn/ extra_modules/ rational_kat_cu/ example/ mnist.py - shenduxuexilvcai_02/
ultralytics/ , Python, 4 linesnn/ extra_modules/ rational_kat_cu/ kat_rational/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 158 linesnn/ extra_modules/ rational_kat_cu/ kat_rational/ fit.py - shenduxuexilvcai_02/
ultralytics/ , Python, 59 linesnn/ extra_modules/ rational_kat_cu/ kat_rational/ gain.py - shenduxuexilvcai_02/
ultralytics/ , Python, 160 linesnn/ extra_modules/ rational_kat_cu/ kat_rational/ kat_1dgroup.py - shenduxuexilvcai_02/
ultralytics/ , Python, 156 linesnn/ extra_modules/ rational_kat_cu/ kat_rational/ kat_1dgroup_torch.py - shenduxuexilvcai_02/
ultralytics/ , Python, 97 linesnn/ extra_modules/ rational_kat_cu/ kat_rational/ kat_1dgroup_triton.py - shenduxuexilvcai_02/
ultralytics/ , Python, 95 linesnn/ extra_modules/ rational_kat_cu/ kat_rational/ kat_2dgroup_triton.py - shenduxuexilvcai_02/
ultralytics/ , Python, 298 linesnn/ extra_modules/ rational_kat_cu/ kat_rational/ rational_triton.py - shenduxuexilvcai_02/
ultralytics/ , Python, 247 linesnn/ extra_modules/ rational_kat_cu/ kat_rational/ rational_triton2d.py - shenduxuexilvcai_02/
ultralytics/ , Shell, 2 linesnn/ extra_modules/ rational_kat_cu/ make.sh - shenduxuexilvcai_02/
ultralytics/ , Python, 24 linesnn/ extra_modules/ rational_kat_cu/ setup.py - shenduxuexilvcai_02/
ultralytics/ , C++, 93 linesnn/ extra_modules/ rational_kat_cu/ src/ rational.cpp - shenduxuexilvcai_02/
ultralytics/ , CUDA, 535 linesnn/ extra_modules/ rational_kat_cu/ src/ rational_kernel.cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 263 linesnn/ extra_modules/ rational_kat_cu/ src/ rational_kernel_group.cu - shenduxuexilvcai_02/
ultralytics/ , C/C++, 79 linesnn/ extra_modules/ rational_kat_cu/ src/ utils.h - shenduxuexilvcai_02/
ultralytics/ , Python, 795 linesnn/ extra_modules/ rep_block.py - shenduxuexilvcai_02/
ultralytics/ , Python, 416 linesnn/ extra_modules/ savss.py - shenduxuexilvcai_02/
ultralytics/ , C++, 354 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cus/ selective_scan.cpp - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cus/ selective_scan_core_bwd. cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cus/ selective_scan_core_fwd. cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusndstate/ selective_scan_core_bwd. cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusndstate/ selective_scan_core_fwd. cu - shenduxuexilvcai_02/
ultralytics/ , C++, 341 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusndstate/ selective_scan_ndstate.c pp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 84 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusndstate/ selective_scan_ndstate.h - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusnrow/ selective_scan_core_bwd. cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusnrow/ selective_scan_core_bwd2 .cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 8 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusnrow/ selective_scan_core_bwd3 .cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 8 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusnrow/ selective_scan_core_bwd4 .cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusnrow/ selective_scan_core_fwd. cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusnrow/ selective_scan_core_fwd2 .cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusnrow/ selective_scan_core_fwd3 .cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 9 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusnrow/ selective_scan_core_fwd4 .cu - shenduxuexilvcai_02/
ultralytics/ , C++, 367 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusnrow/ selective_scan_nrow.cpp - shenduxuexilvcai_02/
ultralytics/ , CUDA, 11 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusoflex/ selective_scan_core_bwd. cu - shenduxuexilvcai_02/
ultralytics/ , CUDA, 11 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusoflex/ selective_scan_core_fwd. cu - shenduxuexilvcai_02/
ultralytics/ , C++, 363 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ cusoflex/ selective_scan_oflex.cpp - shenduxuexilvcai_02/
ultralytics/ , C/C++, 90 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ selective_scan.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 210 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ selective_scan_common.h - shenduxuexilvcai_02/
ultralytics/ , C/C++, 25 linesnn/ extra_modules/ selective_scan/ csrc/ selective_scan/ static_switch.h - shenduxuexilvcai_02/
ultralytics/ , Shell, 1 linenn/ extra_modules/ selective_scan/ make.sh - shenduxuexilvcai_02/
ultralytics/ , Python, 166 linesnn/ extra_modules/ selective_scan/ setup.py - shenduxuexilvcai_02/
ultralytics/ , Python, 505 linesnn/ extra_modules/ selective_scan/ test_selective_scan.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,064 linesnn/ extra_modules/ selective_scan/ test_selective_scan_easy .py - shenduxuexilvcai_02/
ultralytics/ , Python, 519 linesnn/ extra_modules/ selective_scan/ test_selective_scan_spee d.py - shenduxuexilvcai_02/
ultralytics/ , Python, 330 linesnn/ extra_modules/ shiftwise_conv.py - shenduxuexilvcai_02/
ultralytics/ , Python, 514 linesnn/ extra_modules/ transformer.py - shenduxuexilvcai_02/
ultralytics/ , Python, 285 linesnn/ extra_modules/ tsdn.py - shenduxuexilvcai_02/
ultralytics/ , Python, 183 linesnn/ extra_modules/ wtconv2d.py - shenduxuexilvcai_02/
ultralytics/ , Python, 165 linesnn/ modules/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 21 linesnn/ modules/ activation.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,425 linesnn/ modules/ block.py - shenduxuexilvcai_02/
ultralytics/ , Python, 343 linesnn/ modules/ conv.py - shenduxuexilvcai_02/
ultralytics/ , Python, 601 linesnn/ modules/ head.py - shenduxuexilvcai_02/
ultralytics/ , Python, 427 linesnn/ modules/ transformer.py - shenduxuexilvcai_02/
ultralytics/ , Python, 84 linesnn/ modules/ utils.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,506 lines, 3 matchesnn/ tasks.py - shenduxuexilvcai_02/
ultralytics/ , Python, 24 linessolutions/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 79 linessolutions/ ai_gym.py - shenduxuexilvcai_02/
ultralytics/ , Python, 307 linessolutions/ analytics.py - shenduxuexilvcai_02/
ultralytics/ , Python, 139 linessolutions/ distance_calculation.py - shenduxuexilvcai_02/
ultralytics/ , Python, 93 linessolutions/ heatmap.py - shenduxuexilvcai_02/
ultralytics/ , Python, 131 linessolutions/ object_counter.py - shenduxuexilvcai_02/
ultralytics/ , Python, 241 linessolutions/ parking_management.py - shenduxuexilvcai_02/
ultralytics/ , Python, 64 linessolutions/ queue_management.py - shenduxuexilvcai_02/
ultralytics/ , Python, 95 linessolutions/ solutions.py - shenduxuexilvcai_02/
ultralytics/ , Python, 76 linessolutions/ speed_estimation.py - shenduxuexilvcai_02/
ultralytics/ , Python, 149 linessolutions/ streamlit_inference.py - shenduxuexilvcai_02/
ultralytics/ , Python, 7 linestrackers/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 124 linestrackers/ basetrack.py - shenduxuexilvcai_02/
ultralytics/ , Python, 233 linestrackers/ bot_sort.py - shenduxuexilvcai_02/
ultralytics/ , Python, 476 linestrackers/ byte_tracker.py - shenduxuexilvcai_02/
ultralytics/ , Python, 104 linestrackers/ track.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1 linetrackers/ utils/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 377 linestrackers/ utils/ gmc.py - shenduxuexilvcai_02/
ultralytics/ , Python, 491 linestrackers/ utils/ kalman_filter.py - shenduxuexilvcai_02/
ultralytics/ , Python, 158 linestrackers/ utils/ matching.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,306 linesutils/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 549 linesutils/ atss.py - shenduxuexilvcai_02/
ultralytics/ , Python, 94 linesutils/ autobatch.py - shenduxuexilvcai_02/
ultralytics/ , Python, 574 linesutils/ benchmarks.py - shenduxuexilvcai_02/
ultralytics/ , Python, 5 linesutils/ callbacks/ __init__.py - shenduxuexilvcai_02/
ultralytics/ , Python, 217 linesutils/ callbacks/ base.py - shenduxuexilvcai_02/
ultralytics/ , Python, 153 linesutils/ callbacks/ clearml.py - shenduxuexilvcai_02/
ultralytics/ , Python, 374 linesutils/ callbacks/ comet.py - shenduxuexilvcai_02/
ultralytics/ , Python, 145 linesutils/ callbacks/ dvc.py - shenduxuexilvcai_02/
ultralytics/ , Python, 112 linesutils/ callbacks/ hub.py - shenduxuexilvcai_02/
ultralytics/ , Python, 137 linesutils/ callbacks/ mlflow.py - shenduxuexilvcai_02/
ultralytics/ , Python, 116 linesutils/ callbacks/ neptune.py - shenduxuexilvcai_02/
ultralytics/ , Python, 29 linesutils/ callbacks/ raytune.py - shenduxuexilvcai_02/
ultralytics/ , Python, 107 linesutils/ callbacks/ tensorboard.py - shenduxuexilvcai_02/
ultralytics/ , Python, 163 linesutils/ callbacks/ wb.py - shenduxuexilvcai_02/
ultralytics/ , Python, 775 linesutils/ checks.py - shenduxuexilvcai_02/
ultralytics/ , Python, 72 linesutils/ dist.py - shenduxuexilvcai_02/
ultralytics/ , Python, 507 linesutils/ downloads.py - shenduxuexilvcai_02/
ultralytics/ , Python, 22 linesutils/ errors.py - shenduxuexilvcai_02/
ultralytics/ , Python, 222 linesutils/ files.py - shenduxuexilvcai_02/
ultralytics/ , Python, 416 linesutils/ instance.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,178 linesutils/ loss.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,902 linesutils/ metrics.py - shenduxuexilvcai_02/
ultralytics/ , Python, 964 linesutils/ ops.py - shenduxuexilvcai_02/
ultralytics/ , Python, 104 linesutils/ patches.py - shenduxuexilvcai_02/
ultralytics/ , Python, 1,334 linesutils/ plotting.py - shenduxuexilvcai_02/
ultralytics/ , Python, 361 linesutils/ tal.py - shenduxuexilvcai_02/
ultralytics/ , Python, 733 linesutils/ torch_utils.py - shenduxuexilvcai_02/
ultralytics/ , Python, 92 linesutils/ triton.py - shenduxuexilvcai_02/
ultralytics/ , Python, 152 lines, 1 matchutils/ tuner.py - shenduxuexilvcai_02/
val.py , Python, 85 lines - README.md, Text, 78 lines
The paper's code and data availability statement is in the Data section.
Tracing map
Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.
What the map holds:
- 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
- 844 scripts, each with its path and the digest of its content;
- 11 matches between paragraphs of the paper and lines of the code (method lexical-v1);
- neither the text of the paper nor the code itself.
Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.
Data
Datasets cited
- kaggle.com/
datasets/ , at Kaggle; found in the referencespkdarabi
Data availability
Publicly available datasets were used for this research. Code: https://
Reproduced under the paper's license (CC BY-NC), from the paper cited above.
Versions
The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.
Version 1, 30 September 2026: the first record
Recorded: type, language, journal, volume, issue, pages, dates, 2 authors, 5 keywords, 7 MeSH terms, 18 references.
Cite
This paper
Zheng, R., & Cai, S. (2026). Brain tumor detection on magnetic resonance imaging scans using the artificial intelligence-based You Only Look Once algorithm. The Journal of international medical research, 54(3), 03000605261422820. https://
BibTeX
@article{zheng2026brain,
author = {Zheng, Ronghui and Cai, Shanshan},
title = {{Brain tumor detection on magnetic resonance imaging scans using the artificial intelligence-based You Only Look Once algorithm}},
journal = {The Journal of international medical research},
year = {2026},
month = mar,
volume = {54},
number = {3},
pages = {03000605261422820},
publisher = {SAGE Publications},
issn = {0300-0605},
doi = {10.1177/
url = {https://
pmid = {41871206},
pmcid = {PMC13009808}
}
RIS
TY - JOUR
AU - Zheng, Ronghui
AU - Cai, Shanshan
TI - Brain tumor detection on magnetic resonance imaging scans using the artificial intelligence-based You Only Look Once algorithm
T2 - The Journal of international medical research
J2 - J Int Med Res
PY - 2026
DA - 2026/
VL - 54
IS - 3
SP - 03000605261422820
SN - 0300-0605
PB - SAGE Publications
DO - 10.1177/
UR - https://
LA - en
ER -
CSL-JSON
{
"id": "10.1177/
"type": "article-journal",
"title": "Brain tumor detection on magnetic resonance imaging scans using the artificial intelligence-based You Only Look Once algorithm",
"container-title": "The Journal of international medical research",
"author": [
{
"family": "Zheng",
"given": "Ronghui"
},
{
"family": "Cai",
"given": "Shanshan"
}
],
"container-title-short":
"volume": "54",
"issue": "3",
"page": "03000605261422820",
"DOI": "10.1177/
"PMID": "41871206",
"PMCID": "PMC13009808",
"ISSN": "0300-0605",
"publisher": "SAGE Publications",
"URL": "https://
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
23
]
]
}
}
The tracing map gets a citation of its own once an author has validated it and it has a DOI.
Similar papers
The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.
- [1] doi:10.1038/s41598-024-66228-1 [code]
- Image classification and reconstruction from low-density EEG.Journal: Scientific reportsIn common: PyWavelets, Hugging Face Transformers, OpenCV, 8 other tools, methods / tools, structural MRI / diffusion
- [2] doi:10.1016/j.crmeth.2024.100964 [code]
- Unifying community whole-brain imaging datasets enables robust neuron identification and reveals determinants of neuron position in C. elegans.Journal: Cell reports methodsIn common: PyWavelets, OpenCV, TensorFlow, 8 other tools, methods / tools
- [3] doi:10.1038/s41467-026-72057-9 [code]
- Sex-specific behavioral feedback modulates sensorimotor processing and drives flexible social behavior.Journal: Nature communicationsIn common: PyWavelets, OpenCV, TensorFlow, 8 other tools
- [4] doi:10.1038/s42003-026-10957-8 [code]
- Brain defence by the extracellular matrix protein Cochlin.Journal: Communications biologyIn common: Hugging Face Transformers, OpenCV, TensorFlow, 8 other tools
- [5] doi:10.1038/s41467-026-74358-5 [code]
- Brain-inspired spatial intelligence for embodied agents.Journal: Nature communicationsIn common: Hugging Face Transformers, OpenCV, TensorFlow, 8 other tools
- [6] doi:10.1038/s41592-026-03057-2 [code]
- CREsted: modeling genomic and synthetic cell-type-specific enhancers across tissues and species.Journal: Nature methodsIn common: PyWavelets, TensorFlow, Pillow, 7 other tools, methods / tools
- [7] doi:10.1002/hbm.70469 [code]
- VarCoNet: A Variability-Aware Self-Supervised Framework for Functional Connectome Extraction From Resting-State fMRI.Journal: Human brain mappingIn common: Hugging Face Transformers, OpenCV, Pillow, 7 other tools, methods / tools
- [8] doi:10.1093/braincomms/fcag253 [code]
- Disease detection and classification in temporal lobe epilepsy: step-wise versus simultaneous AI decision models in a multisite neuroimaging study.Journal: Brain communicationsIn common: Hugging Face Transformers, OpenCV, Pillow, 7 other tools, structural MRI / diffusion
- [9] doi:10.1016/j.patter.2026.101538 [code]
- A multi-modal foundation model for brain disease diagnosis and medical imaging.Journal: Patterns (New York, N.Y.)In common: Hugging Face Transformers, OpenCV, TensorFlow, 7 other tools
- [10] doi:10.1038/s41467-026-76837-1 [code]
- Drug screen and machine learning predict neuroprotective agents in a preclinical human model of childhood dementia.Journal: Nature communicationsIn common: Hugging Face Transformers, OpenCV, Pillow, 7 other tools, other condition
Contribute
The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.
Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.
Claim this paper
Correct its record
Say what each link of this record is, remove the ones that are not the paper's, add the ones that are missing. The correction becomes a new version of the record, in its Versions section.
Validate its tracing map
You validate the map as this page shows it: 1 repository of the authors' code, each at its verified commit and with its license, 844 scripts, and 11 matches between paragraphs and code (see the Code and Map sections). It then receives a DOI on Zenodo, with you (your ORCID iD) and OSCR as its creators; the code itself is not deposited.
The map's fingerprint: sha256:990351b107d6ee3e…
Add the badge to the code's README
If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.
Markdown
<!-- oscr-badge:start -->
[](https://openscicode.org/badge/doi/10.1177/03000605261422820)
<!-- oscr-badge:end -->reStructuredText
.. oscr-badge:start
.. image:: https://openscicode.org/badge/doi/10.1177/03000605261422820.svg
:target: https://openscicode.org/badge/doi/10.1177/03000605261422820
:alt: OSCR
.. oscr-badge:endHTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.1177/03000605261422820"><img src="https://openscicode.org/badge/doi/10.1177/03000605261422820.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->On GitHub, open the README, choose Edit (the pencil), paste the snippet under the title, then "Commit changes".
If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge page.
Request its removal
To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).
Discussion, reproductions, activity
Discussion: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.
Report a mismatch between the code and the paper · Report a code error (signed in)
Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.
Report a reproduction failure (signed in)
Versions of its code: the releases of its code tied to a version of this paper (the preprint, the accepted manuscript, the version of record…), each with the tracing map versioned with it.
Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.
