-  3.39.17
Public Member Functions | Public Attributes | List of all members
pyfaust.proj.sptril Class Reference

Functor for the SPTRIL projector. More...

Public Member Functions

def __init__ (self, shape, k, normalized=True, pos=False)
 
- Public Member Functions inherited from pyfaust.proj.proj_gen
def __init__ (self, shape)
 
def __call__ (self, M)
 

Public Attributes

 constraint
 
- Public Attributes inherited from pyfaust.proj.proj_gen
 shape
 

Detailed Description

Functor for the SPTRIL projector.

A, the image matrix, is such that the upper triangular part is 0 and \(\| A \|_0 = k, \| A\|_F = 1\) (if normalized == True).

Examples

>>> from pyfaust.proj import sptril
>>> from numpy.random import rand, seed
>>> import numpy as np
>>> seed(42) # just for reproducibility
>>> M = np.round(rand(5,5), decimals=2)
>>> M
array([[0.37, 0.95, 0.73, 0.6 , 0.16],
[0.16, 0.06, 0.87, 0.6 , 0.71],
[0.02, 0.97, 0.83, 0.21, 0.18],
[0.18, 0.3 , 0.52, 0.43, 0.29],
[0.61, 0.14, 0.29, 0.37, 0.46]])
>>> p = sptril(M.shape, 3, normalized=False)
>>> p(M)
array([[0. , 0. , 0. , 0. , 0. ],
[0. , 0. , 0. , 0. , 0. ],
[0. , 0.97, 0.83, 0. , 0. ],
[0. , 0. , 0. , 0. , 0. ],
[0.61, 0. , 0. , 0. , 0. ]])
>>> np.linalg.norm(np.triu(p(M), 1)) == 0
True
>>> np.count_nonzero(p(M)) == 3
True
See also
sptriu

Constructor & Destructor Documentation

◆ __init__()

def pyfaust.proj.sptril.__init__ (   self,
  shape,
  k,
  normalized = True,
  pos = False 
)
Parameters
shape(tuple(int,int)) the size of the input matrix.
k(int) the number of nonzeros of the projection image.
normalized(bool) True to normalize the projection image according to its Frobenius norm.
pos(bool) True to skip negative values (replaced by zero) of the matrix to project.

Member Data Documentation

◆ constraint

pyfaust.proj.sptril.constraint

The documentation for this class was generated from the following file:
pyfaust.seed
def seed(s)
(Re)Initializes the pyfaust pseudo-random generator.
Definition: __init__.py:5247
pyfaust.rand
def rand(num_rows, num_cols, num_factors=None, dim_sizes=None, density=None, fac_type='sparse', per_row=True, dev='cpu', dtype='float64', field=None, seed=0)
Generates a random Faust.
Definition: __init__.py:4936
pyfaust.proj
This module provides matrix projectors.
Definition: proj.py:1