|
187 | 187 |
|
188 | 188 |
|
189 | 189 | <div class="version">
|
190 |
| - <a href='http://pytorch.org/docs/versions.html'>1.8.0a0+4c84d88 ▼</a> |
| 190 | + <a href='http://pytorch.org/docs/versions.html'>1.8.0a0+71094fd ▼</a> |
191 | 191 | </div>
|
192 | 192 |
|
193 | 193 |
|
@@ -381,20 +381,18 @@ <h1>Source code for torch._lowrank</h1><div class="highlight"><pre>
|
381 | 381 |
|
382 | 382 | <span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span><span class="s1">'svd_lowrank'</span><span class="p">,</span> <span class="s1">'pca_lowrank'</span><span class="p">]</span>
|
383 | 383 |
|
384 |
| -<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Tuple</span><span class="p">,</span> <span class="n">Optional</span> |
385 |
| - |
386 |
| -<span class="kn">import</span> <span class="nn">torch</span> |
387 | 384 | <span class="kn">from</span> <span class="nn">torch</span> <span class="kn">import</span> <span class="n">Tensor</span>
|
| 385 | +<span class="kn">import</span> <span class="nn">torch</span> |
388 | 386 | <span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">_linalg_utils</span> <span class="k">as</span> <span class="n">_utils</span>
|
389 | 387 | <span class="kn">from</span> <span class="nn">.overrides</span> <span class="kn">import</span> <span class="n">has_torch_function</span><span class="p">,</span> <span class="n">handle_torch_function</span>
|
390 | 388 |
|
| 389 | +<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Tuple</span> |
391 | 390 |
|
392 |
| -<span class="k">def</span> <span class="nf">get_approximate_basis</span><span class="p">(</span><span class="n">A</span><span class="p">,</span> <span class="c1"># type: Tensor</span> |
393 |
| - <span class="n">q</span><span class="p">,</span> <span class="c1"># type: int</span> |
394 |
| - <span class="n">niter</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="c1"># type: Optional[int]</span> |
395 |
| - <span class="n">M</span><span class="o">=</span><span class="kc">None</span> <span class="c1"># type: Optional[Tensor]</span> |
396 |
| - <span class="p">):</span> |
397 |
| - <span class="c1"># type: (...) -> Tensor</span> |
| 391 | +<span class="k">def</span> <span class="nf">get_approximate_basis</span><span class="p">(</span><span class="n">A</span><span class="p">:</span> <span class="n">Tensor</span><span class="p">,</span> |
| 392 | + <span class="n">q</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span> |
| 393 | + <span class="n">niter</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> |
| 394 | + <span class="n">M</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Tensor</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span> |
| 395 | + <span class="p">)</span> <span class="o">-></span> <span class="n">Tensor</span><span class="p">:</span> |
398 | 396 | <span class="sd">"""Return tensor :math:`Q` with :math:`q` orthonormal columns such</span>
|
399 | 397 | <span class="sd"> that :math:`Q Q^H A` approximates :math:`A`. If :math:`M` is</span>
|
400 | 398 | <span class="sd"> specified, then :math:`Q` is such that :math:`Q Q^H (A - M)`</span>
|
@@ -460,8 +458,8 @@ <h1>Source code for torch._lowrank</h1><div class="highlight"><pre>
|
460 | 458 | <span class="k">return</span> <span class="n">Q</span>
|
461 | 459 |
|
462 | 460 |
|
463 |
| -<div class="viewcode-block" id="svd_lowrank"><a class="viewcode-back" href="../../generated/torch.svd_lowrank.html#torch.svd_lowrank">[docs]</a><span class="k">def</span> <span class="nf">svd_lowrank</span><span class="p">(</span><span class="n">A</span><span class="p">,</span> <span class="n">q</span><span class="o">=</span><span class="mi">6</span><span class="p">,</span> <span class="n">niter</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">M</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> |
464 |
| - <span class="c1"># type: (Tensor, Optional[int], Optional[int], Optional[Tensor]) -> Tuple[Tensor, Tensor, Tensor]</span> |
| 461 | +<div class="viewcode-block" id="svd_lowrank"><a class="viewcode-back" href="../../generated/torch.svd_lowrank.html#torch.svd_lowrank">[docs]</a><span class="k">def</span> <span class="nf">svd_lowrank</span><span class="p">(</span><span class="n">A</span><span class="p">:</span> <span class="n">Tensor</span><span class="p">,</span> <span class="n">q</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="mi">6</span><span class="p">,</span> <span class="n">niter</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> |
| 462 | + <span class="n">M</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Tensor</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tuple</span><span class="p">[</span><span class="n">Tensor</span><span class="p">,</span> <span class="n">Tensor</span><span class="p">,</span> <span class="n">Tensor</span><span class="p">]:</span> |
465 | 463 | <span class="sa">r</span><span class="sd">"""Return the singular value decomposition ``(U, S, V)`` of a matrix,</span>
|
466 | 464 | <span class="sd"> batches of matrices, or a sparse matrix :math:`A` such that</span>
|
467 | 465 | <span class="sd"> :math:`A \approx U diag(S) V^T`. In case :math:`M` is given, then</span>
|
@@ -508,8 +506,8 @@ <h1>Source code for torch._lowrank</h1><div class="highlight"><pre>
|
508 | 506 | <span class="k">return</span> <span class="n">_svd_lowrank</span><span class="p">(</span><span class="n">A</span><span class="p">,</span> <span class="n">q</span><span class="o">=</span><span class="n">q</span><span class="p">,</span> <span class="n">niter</span><span class="o">=</span><span class="n">niter</span><span class="p">,</span> <span class="n">M</span><span class="o">=</span><span class="n">M</span><span class="p">)</span></div>
|
509 | 507 |
|
510 | 508 |
|
511 |
| -<span class="k">def</span> <span class="nf">_svd_lowrank</span><span class="p">(</span><span class="n">A</span><span class="p">,</span> <span class="n">q</span><span class="o">=</span><span class="mi">6</span><span class="p">,</span> <span class="n">niter</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">M</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> |
512 |
| - <span class="c1"># type: (Tensor, Optional[int], Optional[int], Optional[Tensor]) -> Tuple[Tensor, Tensor, Tensor]</span> |
| 509 | +<span class="k">def</span> <span class="nf">_svd_lowrank</span><span class="p">(</span><span class="n">A</span><span class="p">:</span> <span class="n">Tensor</span><span class="p">,</span> <span class="n">q</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="mi">6</span><span class="p">,</span> <span class="n">niter</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span> |
| 510 | + <span class="n">M</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="n">Tensor</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tuple</span><span class="p">[</span><span class="n">Tensor</span><span class="p">,</span> <span class="n">Tensor</span><span class="p">,</span> <span class="n">Tensor</span><span class="p">]:</span> |
513 | 511 | <span class="n">q</span> <span class="o">=</span> <span class="mi">6</span> <span class="k">if</span> <span class="n">q</span> <span class="ow">is</span> <span class="kc">None</span> <span class="k">else</span> <span class="n">q</span>
|
514 | 512 | <span class="n">m</span><span class="p">,</span> <span class="n">n</span> <span class="o">=</span> <span class="n">A</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="o">-</span><span class="mi">2</span><span class="p">:]</span>
|
515 | 513 | <span class="n">matmul</span> <span class="o">=</span> <span class="n">_utils</span><span class="o">.</span><span class="n">matmul</span>
|
@@ -553,8 +551,8 @@ <h1>Source code for torch._lowrank</h1><div class="highlight"><pre>
|
553 | 551 | <span class="k">return</span> <span class="n">U</span><span class="p">,</span> <span class="n">S</span><span class="p">,</span> <span class="n">V</span>
|
554 | 552 |
|
555 | 553 |
|
556 |
| -<div class="viewcode-block" id="pca_lowrank"><a class="viewcode-back" href="../../generated/torch.pca_lowrank.html#torch.pca_lowrank">[docs]</a><span class="k">def</span> <span class="nf">pca_lowrank</span><span class="p">(</span><span class="n">A</span><span class="p">,</span> <span class="n">q</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">center</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">niter</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span> |
557 |
| - <span class="c1"># type: (Tensor, Optional[int], bool, int) -> Tuple[Tensor, Tensor, Tensor]</span> |
| 554 | +<div class="viewcode-block" id="pca_lowrank"><a class="viewcode-back" href="../../generated/torch.pca_lowrank.html#torch.pca_lowrank">[docs]</a><span class="k">def</span> <span class="nf">pca_lowrank</span><span class="p">(</span><span class="n">A</span><span class="p">:</span> <span class="n">Tensor</span><span class="p">,</span> <span class="n">q</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">int</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span> <span class="n">center</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">True</span><span class="p">,</span> |
| 555 | + <span class="n">niter</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">2</span><span class="p">)</span> <span class="o">-></span> <span class="n">Tuple</span><span class="p">[</span><span class="n">Tensor</span><span class="p">,</span> <span class="n">Tensor</span><span class="p">,</span> <span class="n">Tensor</span><span class="p">]:</span> |
558 | 556 | <span class="sa">r</span><span class="sd">"""Performs linear Principal Component Analysis (PCA) on a low-rank</span>
|
559 | 557 | <span class="sd"> matrix, batches of such matrices, or sparse matrix.</span>
|
560 | 558 |
|
|
0 commit comments