non-differentiable
SwarmLoss: a PyTorch loss that trains through non-convex and non-differentiable objectives by fusing particle-swarm optimisation with gradient-based optimisers like Adam.