Skip to content

TSNE sets kl_divergence wrong #6507

@ssaeger

Description

@ssaeger

In commit 6bf63f6 error was replaced by kl_divergence, but line 850 was missed so that the final kl_divergence value is actually an old value that misses the final optimization step. This is especially a problem since people can access the kl_divergence in the current version as described in #6477.

Even in the verbose output one can see that the error/kl_divergence value from iteration 100 is kept as the final value at iteration 200.

[t-SNE] Iteration 25: error = 8.0242269, gradient norm = 0.0014062
[t-SNE] Iteration 50: error = 7.9942951, gradient norm = 0.0014150
[t-SNE] Iteration 75: error = 7.9053034, gradient norm = 0.0014402
[t-SNE] Iteration 100: error = 7.8706691, gradient norm = 0.0014515
[t-SNE] KL divergence after 100 iterations with early exaggeration: 7.870669
[t-SNE] Iteration 125: error = 0.5025748, gradient norm = 0.0009721
[t-SNE] Iteration 150: error = 0.4773589, gradient norm = 0.0009048
[t-SNE] Iteration 175: error = 0.4710594, gradient norm = 0.0008880
[t-SNE] Iteration 200: error = 0.4693623, gradient norm = 0.0008834
[t-SNE] Error after 200 iterations: 7.870669

If this confirms to be a bug, I will create a PR for it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions