Using the SeanNaren pytorch bindings for warp-ctc, I sometimes get different results for the same function call. This is running on K40 GPUs. Also, it sometimes gives negatives results which I believe should be impossible since warp-ctc computes loss as negative log-likelikhood, and the preceding softmax function is built into the implementation.
In [1]: loss
Out[1]:
Variable containing:
-0.1428
[torch.FloatTensor of size 1]
In [2]: ctc_loss(nn_output, labels_concatenated, prob_lengths, label_lengths)
Out[2]:
Variable containing:
8504.0830
[torch.FloatTensor of size 1]
In [3]: ctc_loss(nn_output, labels_concatenated, prob_lengths, label_lengths)
Out[3]:
Variable containing:
8504.0830
[torch.FloatTensor of size 1]
In [4]: ctc_loss(nn_output, labels_concatenated, prob_lengths, label_lengths)
Out[4]:
Variable containing:
-0.1497
[torch.FloatTensor of size 1]