ラベルスムース、amsoftmax、部分FC、フォーカルロス、デュアルフォーカル、トリプレットロス、giou/diou/ciou-loss/func、affinity-loss、pc_softmax_cross_entropy、ohem-loss(ラインハードマイニング損失に基づくsoftmax)、大規模なマンジンソフトマックス(bmvc2019)、lovasmax(bmvc2019)の実装ダイスロス(一般化されたソフトダイスの損失とバッチソフトサイコロ損失の両方)。たぶんこれは私の将来の仕事で役立ちます。
また、Swish、Hard-Swish(Hswish)、Mish Actionation Functionsを実装しようとしました。
さらに、CUDAベースの1ホット関数が追加されます(サポートラベルスムーズ)。
「指数移動平均(EMA)」オペレーターを新たに追加します。
Coord-Conv2DやDynamic-Conv2D(dy-conv2d)などの畳み込みopsを追加します。
一部のオペレーターはPytorch Cuda拡張機能で実装されているため、最初にコンパイルする必要があります。
$ python -m pip install .
インストール後、必要なものを手に入れて、これらの1つのような損失または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には、 LabelSmoothSoftmaxCEV1 、 LabelSmoothSoftmaxCEV2 、 LabelSmoothSoftmaxCEV3などの3つのバージョンがあることに注意してください。ここでは、 V1 V2なpytorch torch.autogradを使用することを意味しますV3 拡大。一般的に言えば、 V3 OPSはより速く、メモリ効率が高くなります。これは、1つのCudaカーネル関数ですべてを絞ろうとしたため、ほとんどの場合、Pytorch Opsの組み合わせよりもオーバーヘッドが少なくなります。
たまたまこのリポジトリを見つけた人のために、私のコードにエラーが表示されている場合は、私を修正するための問題を自由に開いてください。