Problems
Loading...
1 / 1

Implement Wasserstein Critic Loss

Loss Functions
Easy

Implement Wasserstein Critic Loss for Wasserstein GANs (WGAN). In WGANs, the discriminator is replaced with a critic that outputs real-valued scores instead of probabilities.

Wasserstein Critic Loss:

L=E[D(fake)]E[D(real)]L = \mathbb{E}[D(\text{fake})] - \mathbb{E}[D(\text{real})]

where D is the critic network (no sigmoid activation)

Function Arguments

  • real_scores: np.ndarray - Critic outputs for real samples
  • fake_scores: np.ndarray - Critic outputs for fake samples
Loading visualization...

Examples

Input: real_scores=[2.0, 1.5, 3.0], fake_scores=[-1.0, 0.0, 0.5]

Output: -2.333

mean(fake)=-0.167, mean(real)=2.167 → -0.167-2.167=-2.333

Input: real_scores=[1.0, 2.0, 3.0], fake_scores=[2.0, 2.0, 2.0]

Output: 0.0

Equal means result in zero loss

Input: real_scores=[0.0, 0.0], fake_scores=[1.0, 2.0, 3.0]

Output: 2.0

Fake scores higher than real scores → positive loss

Hint 1

Convert inputs to numpy arrays and compute means using np.mean().

Hint 2

The loss is simply the difference: mean_fake - mean_real.

Hint 3

Return as scalar: float() to ensure proper type.

Requirements

  • Compute: L = mean(fake_scores) - mean(real_scores)
  • Return scalar loss
  • No activation function; scores are raw critic outputs
  • Handle arrays of different sizes

Constraints

  • Only NumPy
  • No clipping inside this function
  • Time limit: 100ms
Try Similar Problems