Моя реализация с гладкой меткой, AMSoftmax, Partial-FC, фокусировкой, двойным потерей, триплет-потери, Giou/diou/ciou-loss/func, сфтооплатой, PC_Softmax_cross_Entropy, ohem-loss (Softmax на основе линейного завода), большой мотор-мотор-softmax (bmavc2019), на основе линейного манипуляции), большой мотор-мотор-softmax (bmavc2019), на основе линейного манипуляции), большой мотор-мотор (bmavc2019), на основе линейной жесткой добычи), большую модель. Lovasz-Softmax-Loss и потери кубиков (как генерализованная потеря мягких костей, так и потерю мягких костей в кости). Может быть, это полезно в моей будущей работе.
Также попытались реализовать функции активации Swish, Hard-Swish (HSWISH) и MISH.
Кроме того, добавлена однонациональная функция на основе CUDA (гладкая опорная метка).
Вновь добавьте оператор «экспоненциального скользящего среднего (EMA)».
Добавить Convolution Ops, такие как COARD-CONV2D и Dynamic-Conv2D (DY-CONV2D).
Некоторые операторы реализованы с расширением Pytorch Cuda, поэтому вам нужно сначала скомпилировать его:
$ python -m pip install .
После установки, теперь вы можете выбрать то, что вам нужно, и использовать потери или OPS, как один из них:
from pytorch_loss import SwishV1 , SwishV2 , SwishV3
from pytorch_loss import HSwishV1 , HSwishV2 , HSwishV3
from pytorch_loss import MishV1 , MishV2 , MishV3
from pytorch_loss import convert_to_one_hot , convert_to_one_hot_cu , OnehotEncoder
from pytorch_loss import EMA
from pytorch_loss import TripletLoss
from pytorch_loss import SoftDiceLossV1 , SoftDiceLossV2 , SoftDiceLossV3
from pytorch_loss import PCSoftmaxCrossEntropyV1 , PCSoftmaxCrossEntropyV2
from pytorch_loss import LargeMarginSoftmaxV1 , LargeMarginSoftmaxV2 , LargeMarginSoftmaxV3
from pytorch_loss import LabelSmoothSoftmaxCEV1 , LabelSmoothSoftmaxCEV2 , LabelSmoothSoftmaxCEV3
from pytorch_loss import GIOULoss , DIOULoss , CIOULoss
from pytorch_loss import iou_func , giou_func , diou_func , ciou_func
from pytorch_loss import FocalLossV1 , FocalLossV2 , FocalLossV3
from pytorch_loss import Dual_Focal_loss
from pytorch_loss import GeneralizedSoftDiceLoss , BatchSoftDiceLoss
from pytorch_loss import AMSoftmax
from pytorch_loss import AffinityFieldLoss , AffinityLoss
from pytorch_loss import OhemCELoss , OhemLargeMarginLoss
from pytorch_loss import LovaszSoftmaxV1 , LovaszSoftmaxV3
from pytorch_loss import TaylorCrossEntropyLossV1 , TaylorCrossEntropyLossV3
from pytorch_loss import InfoNceDist
from pytorch_loss import PartialFCAMSoftmax
from pytorch_loss import TaylorSoftmaxV1 , TaylorSoftmaxV3
from pytorch_loss import LogTaylorSoftmaxV1 , LogTaylorSoftmaxV3
from pytorch_loss import CoordConv2d , DY_Conv2d Обратите внимание, что некоторые потери или OPS имеют 3 версии, такие как LabelSmoothSoftmaxCEV1 , LabelSmoothSoftmaxCEV2 , LabelSmoothSoftmaxCEV3 , здесь V1 означает реализацию с чистыми писателями и используйте torch.autograd для обратной вычисления, V2 означает реализацию с чистым питателем, но используйте самостоятельную формулу для обратной вычислительности, с помощью V2-среда, с V2, с помощью V2, с помощью V2-среда, и V3, с помощью V2, с помощью V2-среда, и V3 . расширение. Вообще говоря, V3 OPS более быстрой и более эффективной памяти, поскольку я пытался сжать все в одной функции ядра CUDA, которая в большинстве случаев приносит меньше накладных расходов, чем комбинация Pytorch Ops.
Для тех, кто обнаружил этот репо, если вы видите ошибки в моем коде, не стесняйтесь открывать проблему, чтобы исправить меня.