implements the SGD optimization loop of one epoch in parallel
SgdEpochTask
00 Remarks
The UMAP optimization is a stochastic gradient descent on a shared embedding vector, two different edges may hit the same vertex at the same time. This class applies the Hogwild style parallel optimization (the same as the parallel option of the official python UMAP): the gradient of each edge is applied to the shared embedding vector without any lock.
As a consequence the embedding result is no longer bit-level reproducible between each run, but the convergence of the optimization is not affected at all.
01 Syntax
Microsoft.VisualBasic.DataMining.UMAP.SgdEpochTask
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| .ctor | 1 |
03 Members
Parameters
| Name | Type | Description |
|---|---|---|
workLen | Int32 | the number of the edges of the graph |
umap | Umap | - |
epoch | Int32 | the index of the current epoch |
clipValue | Double | the gradient clipping value |
workers | Nullable(Of Int32) | the number of the worker threads |