Skip to content

Releases: MaksimEkin/pyCP_ALS

Release v0.0.1

04 Apr 06:42
a33b2a8
Compare
Choose a tag to compare

pyCP_ALS


pyCP_ALS is the Python implementation of CP-ALS algorithm that was originally introduced in the MATLAB Tensor Toolbox [1,2].

Installation

Option 1: Install using pip

pip install git+https://github.com/MaksimEkin/pyCP_ALS.git

Option 2: Install from source

git clone https://github.com/MaksimEkin/pyCP_ALS.git
cd pyCP_ALS
conda create --name pyCP_ALS python=3.8.5
source activate pyCP_ALS
python setup.py install

Example Usage

from pyCP_ALS import CP_ALS
import pickle

data = pickle.load(open("data/toy_tensor.p", "rb"))
nnz_values = data["nnz_values"]
nnz_coords = data["nnz_coords"]

model = CP_ALS(
    tol=1e-4, 
    n_iters=50, 
    verbose=True, 
    fixsigns=True, 
    random_state=42,
)

M = model.fit(
    coords=nnz_coords, 
    values=nnz_values, 
    rank=2, 
    Minit="random",
)

See the examples for more.

How to Cite pyCP_ALS?

If you use pyCP_ALS, please cite it.

@MISC{Eren2022pyCP_ALS,
  author = {M. E. {Eren}},
  title = {pyCP_ALS},
  year = {2022},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/MaksimEkin/pyCP_ALS}}
}

Developer Test Suite

Developer test suites are located under tests/ directory. Tests can be ran from this folder using python -m unittest *.

References

[1] General software, latest release: Brett W. Bader, Tamara G. Kolda and others, Tensor Toolbox for MATLAB, Version 3.2.1, www.tensortoolbox.org, April 5, 2021.

[2] Sparse, Kruskal, and Tucker tensors: B. W. Bader and T. G. Kolda, Efficient MATLAB Computations with Sparse and Factored Tensors, SIAM J. Scientific Computing, 30(1):205-231, 2007, http://dx.doi.org/10.1137/060676489.