Skip to main content

A package for computing SVD via gradient descent

Project description

GDSVD is a package for computing SVD via gradient descent.

Example usage:

  1. Import:

    from gdsvd import gd_svd
    
  2. Memmap input data, recommended for large datasets

    U_true = np.memmap("datasets/ranklogn-exp-500_U.bin", dtype=np.float64, mode='r', shape=(500, 6))
    S_true = np.memmap("datasets/ranklogn-exp-500_S.bin", dtype=np.float64, mode='r', shape=(6,))
    Vt_true = np.memmap("datasets/ranklogn-exp-500_Vt.bin", dtype=np.float64, mode='r', shape=(6, 500))
    M = np.memmap("datasets/ranklogn-exp-500_M.bin", dtype=np.float64, mode='r', shape=(500, 500))
    
  3. Ensure that the arrays are contiguous

    U_true = np.ascontiguousarray(U_true)
    S_true = np.ascontiguousarray(S_true)
    Vt_true = np.ascontiguousarray(Vt_true)
    M = np.ascontiguousarray(M)
    
  4. To run the method normally:

    U,S,Vt = gd_svd(M)
    
  5. To run the method with convergence tracking written to conv_out.txt:

     U,S,Vt = gd_svd(M, record_conv = 'conv_out.txt', U_true = U_true, S_true = S_true, Vt_true = Vt_true)
    

gdsvd is implemented as Algorithm 4 in the reference paper.

Included in the package are gdsvd3 (Algorithm 3) and power-method (Algorithm 5), which is the GD method with alternate stopping and the power method, respectively.

Reference: k-SVD via gradient descent

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gdsvd-0.1.2.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gdsvd-0.1.2-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file gdsvd-0.1.2.tar.gz.

File metadata

  • Download URL: gdsvd-0.1.2.tar.gz
  • Upload date:
  • Size: 4.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for gdsvd-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c49a7bc7c2ec4a3db886f2fd0ecffb98d0f85a3907e0adc374eba75446bf18dc
MD5 a5506ec324148f276706bb75c9823d0b
BLAKE2b-256 89e486b1be9914c2866724d186eafc06c4cf30d080e27bd7dc5fd12ac3b65203

See more details on using hashes here.

File details

Details for the file gdsvd-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: gdsvd-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.12

File hashes

Hashes for gdsvd-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4043f8e8b8bb2ed00f8c7b9cf32ff280e99b30e0bb347f76b2fc3a4aefebe528
MD5 28df7be70aaed3e9bafd964d4fc76c08
BLAKE2b-256 7755576916124dc5c5f7b6ac1c73a9c96e4d8482dd1bbc63c7b52d7cb910d5ab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page