My implementation of label-smooth, amsoftmax, partial-fc, focal-loss, dual-focal-loss, triplet-loss, giou/diou/ciou-loss/func, affinity-loss, pc_softmax_cross_entropy, ohem-loss(softmax based on line hard mining loss), large-margin-softmax(bmvc2019), lovasz-softmax-loss, dan kerugian dadu (keduanya kehilangan dadu lunak yang digeneralisasi dan kehilangan dadu lunak batch). Mungkin ini berguna dalam pekerjaan saya di masa depan.
Juga mencoba menerapkan fungsi swish, hard-swish (HSWISH) dan mish.
Selain itu, fungsi satu-panas berbasis CUDA ditambahkan (label dukungan SMOL).
Baru menambahkan operator "Exponential Moving Average (EMA)".
Tambahkan OP Convolution, seperti Coord-ConV2D, dan Dynamic-ConV2D (DY-CONV2D).
Beberapa operator diimplementasikan dengan ekstensi Pytorch Cuda, jadi Anda perlu mengkompilasinya terlebih dahulu:
$ python -m pip install .
Setelah menginstal, sekarang Anda dapat mengambil apa yang Anda butuhkan dan menggunakan kerugian atau ops seperti salah satu ini:
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 Perhatikan bahwa beberapa kerugian atau op memiliki 3 versi, seperti LabelSmoothSoftmaxCEV1 , LabelSmoothSoftmaxCEV2 , LabelSmoothSoftmaxCEV3 , di V2 V1 berarti implementasi dengan pytorch pytorch pytorch torch.autograd yang V3 . ekstensi. Secara umum, V3 OPS lebih cepat dan lebih efisien memori, karena saya telah mencoba memeras semuanya dalam satu fungsi kernel CUDA, yang dalam banyak kasus membawa overhead lebih sedikit daripada kombinasi operasi pytorch.
Bagi mereka yang kebetulan menemukan repo ini, jika Anda melihat kesalahan dalam kode saya, jangan ragu untuk membuka masalah untuk mengoreksi saya.