# ctc_loss — CPU crash
# 根因: labels/input_lengths/label_lengths 含 0-size 维度

# case 1: labels batch=0
nn.functional.ctc_loss(log_probs=Tensor.float32((40, 128, 6625)), labels=Tensor.int32((0, 25)), input_lengths=Tensor.int64((128,)), label_lengths=Tensor.int64((128,)), blank=0, reduction="none", norm_by_times=False)

# case 2: input_lengths 为 0-size
nn.functional.ctc_loss(log_probs=Tensor.float32((40, 128, 6625)), labels=Tensor.int32((128, 25)), input_lengths=Tensor.int64((0,)), label_lengths=Tensor.int64((128,)), blank=0, reduction="none", norm_by_times=False)

# case 3: label_lengths 为 0-size
nn.functional.ctc_loss(log_probs=Tensor.float32((40, 128, 6625)), labels=Tensor.int32((128, 25)), input_lengths=Tensor.int64((128,)), label_lengths=Tensor.int64((0,)), blank=0, reduction="none", norm_by_times=False)
