2021-07-05T14:55:22,518 DEPRECATION: Python 3.5 reached the end of its life on September 13th, 2020. Please upgrade your Python as Python 3.5 is no longer maintained. pip 21.0 will drop support for Python 3.5 in January 2021. pip 21.0 will remove support for this functionality.
2021-07-05T14:55:23,194 Created temporary directory: /tmp/pip-ephem-wheel-cache-8s47gz1j
2021-07-05T14:55:23,199 Created temporary directory: /tmp/pip-req-tracker-_0aun663
2021-07-05T14:55:23,200 Initialized build tracking at /tmp/pip-req-tracker-_0aun663
2021-07-05T14:55:23,200 Created build tracker: /tmp/pip-req-tracker-_0aun663
2021-07-05T14:55:23,200 Entered build tracker: /tmp/pip-req-tracker-_0aun663
2021-07-05T14:55:23,202 Created temporary directory: /tmp/pip-wheel-tk_lqk75
2021-07-05T14:55:23,262 Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
2021-07-05T14:55:23,266 2 location(s) to search for versions of matrix-fact:
2021-07-05T14:55:23,266 * https://pypi.org/simple/matrix-fact/
2021-07-05T14:55:23,266 * https://pypi.ngc.nvidia.com/matrix-fact/
2021-07-05T14:55:23,267 Fetching project page and analyzing links: https://pypi.org/simple/matrix-fact/
2021-07-05T14:55:23,269 Getting page https://pypi.org/simple/matrix-fact/
2021-07-05T14:55:23,274 Found index url https://pypi.org/simple
2021-07-05T14:55:23,504 Found link https://files.pythonhosted.org/packages/11/2e/c979994d0cff31bfb39218e8b5f26b632f651349582bd60a13a24955b285/matrix-fact-1.0.1.tar.gz#sha256=5488e7eca9842f32b0235ddf09c2678f27e900aefe7f00c3d6acf753b1a18c74 (from https://pypi.org/simple/matrix-fact/), version: 1.0.1
2021-07-05T14:55:23,505 Found link https://files.pythonhosted.org/packages/39/8a/e2d537aced3afacdb93d822823580f460ee95fc834d0b0f5ad25e21a1066/matrix-fact-1.1.0.tar.gz#sha256=850c6b9f4a3ca0d9e094e7691403779ed798afb9d0e2cc0c5221946769867e44 (from https://pypi.org/simple/matrix-fact/), version: 1.1.0
2021-07-05T14:55:23,506 Found link https://files.pythonhosted.org/packages/44/6d/a8144f7aa9e57d0de9278a6903f94cf771ba212608e089247fb098f78be7/matrix-fact-1.1.1.tar.gz#sha256=865250a0212fbe372e5c38c9d3979350517b0696def64a87eb6b35af33cbd0b6 (from https://pypi.org/simple/matrix-fact/), version: 1.1.1
2021-07-05T14:55:23,506 Found link https://files.pythonhosted.org/packages/e0/31/1221f472055654406d1c352f5110f031f4f255d5947692df73557b11f15f/matrix-fact-1.1.2.tar.gz#sha256=5ece899deafbb1912f8c01f92b54dddd889c5202447100044f335ccca52abc6e (from https://pypi.org/simple/matrix-fact/), version: 1.1.2
2021-07-05T14:55:23,507 Fetching project page and analyzing links: https://pypi.ngc.nvidia.com/matrix-fact/
2021-07-05T14:55:23,508 Getting page https://pypi.ngc.nvidia.com/matrix-fact/
2021-07-05T14:55:23,510 Found index url https://pypi.ngc.nvidia.com
2021-07-05T14:55:24,518 Could not fetch URL https://pypi.ngc.nvidia.com/matrix-fact/: 404 Client Error: Not Found for url: https://developer.download.nvidia.com/compute/redist/matrix-fact/ - skipping
2021-07-05T14:55:24,554 Given no hashes to check 1 links for project 'matrix-fact': discarding no candidates
2021-07-05T14:55:24,585 Collecting matrix-fact==1.1.2
2021-07-05T14:55:24,590 Created temporary directory: /tmp/pip-unpack-9fsffpvt
2021-07-05T14:55:24,813 Downloading matrix-fact-1.1.2.tar.gz (34 kB)
2021-07-05T14:55:25,134 Added matrix-fact==1.1.2 from https://files.pythonhosted.org/packages/e0/31/1221f472055654406d1c352f5110f031f4f255d5947692df73557b11f15f/matrix-fact-1.1.2.tar.gz#sha256=5ece899deafbb1912f8c01f92b54dddd889c5202447100044f335ccca52abc6e to build tracker '/tmp/pip-req-tracker-_0aun663'
2021-07-05T14:55:25,136 Running setup.py (path:/tmp/pip-wheel-tk_lqk75/matrix-fact_001cb7f03804400fa82bd67911f8f982/setup.py) egg_info for package matrix-fact
2021-07-05T14:55:25,137 Created temporary directory: /tmp/pip-pip-egg-info-qvttx9j9
2021-07-05T14:55:25,138 Running command python setup.py egg_info
2021-07-05T14:55:27,243 ## MatrixFact
2021-07-05T14:55:27,245 ### Install
2021-07-05T14:55:27,245 ```
2021-07-05T14:55:27,246 pip install matrix-fact
2021-07-05T14:55:27,247 ```
2021-07-05T14:55:27,248 ### What is matrix-fact?
2021-07-05T14:55:27,249 matrix-fact contains modules for constrained/unconstrained matrix factorization (and related) methods for both sparse and dense matrices. The repository can be found at https://github.com/gentaiscool/matrix_fact. The code is based on https://github.com/ChrisSchinnerl/pymf3 and https://github.com/rikkhill/pymf. We updated the code to support the latest library. It requires cvxopt, numpy, scipy and torch. We just added the support for PyTorch-based SNMF.
2021-07-05T14:55:27,250 ### Packages
2021-07-05T14:55:27,251 The package includes:
2021-07-05T14:55:27,252 * Non-negative matrix factorization (NMF) [three different optimizations used]
2021-07-05T14:55:27,253 * Convex non-negative matrix factorization (CNMF)
2021-07-05T14:55:27,254 * Semi non-negative matrix factorization (SNMF)
2021-07-05T14:55:27,254 * Archetypal analysis (AA)
2021-07-05T14:55:27,255 * Simplex volume maximization (SiVM) [and SiVM for CUR, GSAT, ... ]
2021-07-05T14:55:27,256 * Convex-hull non-negative matrix factorization (CHNMF)
2021-07-05T14:55:27,256 * Binary matrix factorization (BNMF)
2021-07-05T14:55:27,257 * Singular value decomposition (SVD)
2021-07-05T14:55:27,258 * Principal component analysis (PCA)
2021-07-05T14:55:27,258 * K-means clustering (Kmeans)
2021-07-05T14:55:27,259 * C-means clustering (Cmeans)
2021-07-05T14:55:27,260 * CUR decomposition (CUR)
2021-07-05T14:55:27,260 * Compaxt matrix decomposition (CMD)
2021-07-05T14:55:27,261 * PyTorch SNMF
2021-07-05T14:55:27,262 ### Usage
2021-07-05T14:55:27,263 Given a dataset, most factorization methods try to minimize the Frobenius norm |data - W*H|
by finding a suitable set of basis vectors W
and coefficients H. The syntax for calling the various methods is quite similar. Usually, one has to submit a desired number of basis vectors and the maximum number of iterations. For example, applying NMF to a dataset data aiming at 2 basis vectors within 10 iterations works as follows:
2021-07-05T14:55:27,264 ```python
2021-07-05T14:55:27,265 >>> import matrix_fact
2021-07-05T14:55:27,266 >>> import numpy as np
2021-07-05T14:55:27,266 >>> data = np.array([[1.0, 0.0, 2.0], [0.0, 1.0, 1.0]])
2021-07-05T14:55:27,267 >>> nmf_mdl = matrix_fact.NMF(data, num_bases=2, niter=10)
2021-07-05T14:55:27,268 >>> nmf_mdl.initialization()
2021-07-05T14:55:27,268 >>> nmf_mdl.factorize()
2021-07-05T14:55:27,269 ```
2021-07-05T14:55:27,270 The basis vectors are now stored in nmf_mdl.W
, the coefficients in nmf_mdl.H
. To compute coefficients for an existing set of basis vectors simply copy W to nmf_mdl.W, and set compW to False:
2021-07-05T14:55:27,271 ```python
2021-07-05T14:55:27,272 >>> data = np.array([[1.5], [1.2]])
2021-07-05T14:55:27,273 >>> W = np.array([[1.0, 0.0], [0.0, 1.0]])
2021-07-05T14:55:27,273 >>> nmf_mdl = matrix_fact.NMF(data, num_bases=2, niter=1, compW=False)
2021-07-05T14:55:27,274 >>> nmf_mdl.initialization()
2021-07-05T14:55:27,275 >>> nmf_mdl.W = W
2021-07-05T14:55:27,275 >>> nmf_mdl.factorize()
2021-07-05T14:55:27,276 ```
2021-07-05T14:55:27,277 By changing py_fact.NMF to e.g. py_fact.AA or py_fact.CNMF Archetypal Analysis or Convex-NMF can be applied. Some methods might allow other parameters, make sure to have a look at the corresponding >>>help(py_fact.AA)
documentation. For example, CUR, CMD, and SVD are handled slightly differently, as they factorize into three submatrices which requires appropriate arguments for row and column sampling.
2021-07-05T14:55:27,279 For PyTorch-SNMF
2021-07-05T14:55:27,279 ```python
2021-07-05T14:55:27,280 >>> data = torch.FloatTensor([[1.5], [1.2]])
2021-07-05T14:55:27,281 >>> nmf_mdl = matrix_fact.NMF(data, num_bases=2)
2021-07-05T14:55:27,281 >>> nmf_mdl.factorize(niter=1000)
2021-07-05T14:55:27,282 ```
2021-07-05T14:55:27,283 ### Very large datasets
2021-07-05T14:55:27,284 For handling larger datasets py_fact supports hdf5 via h5py. Usage is straight forward as h5py allows to map large numpy matrices to disk. Thus, instead of passing data as a np.array, you can simply send the corresponding hdf5 table. The following example shows how to apply py_fact to a random matrix that is entirely stored on disk. In this example the dataset does not have to fit into memory, the resulting low-rank factors W,H
have to.
2021-07-05T14:55:27,285 ```python
2021-07-05T14:55:27,286 >>> import h5py
2021-07-05T14:55:27,287 >>> import numpy as np
2021-07-05T14:55:27,287 >>> import matrix_fact
2021-07-05T14:55:27,288 >>>
2021-07-05T14:55:27,289 >>> file = h5py.File('myfile.hdf5', 'w')
2021-07-05T14:55:27,289 >>> file['dataset'] = np.random.random((100,1000))
2021-07-05T14:55:27,290 >>> sivm_mdl = matrix_fact.SIVM(file['dataset'], num_bases=10)
2021-07-05T14:55:27,291 >>> sivm_mdl.factorize()
2021-07-05T14:55:27,291 ```
2021-07-05T14:55:27,292 If the low-rank matrices W,H
also do not fit into memory, they can be initialized as a h5py matrix.
2021-07-05T14:55:27,294 ```python
2021-07-05T14:55:27,294 >>> import h5py
2021-07-05T14:55:27,295 >>> import numpy as np
2021-07-05T14:55:27,295 >>> import matrix_fact
2021-07-05T14:55:27,296 >>>
2021-07-05T14:55:27,296 >>> file = h5py.File('myfile.hdf5', 'w')
2021-07-05T14:55:27,297 >>> file['dataset'] = np.random.random((100,1000))
2021-07-05T14:55:27,298 >>> file['W'] = np.random.random((100,10))
2021-07-05T14:55:27,298 >>> file['H'] = np.random.random((10,1000))
2021-07-05T14:55:27,299 >>> sivm_mdl = matrix_fact.SIVM(file['dataset'], num_bases=10)
2021-07-05T14:55:27,300 >>> sivm_mdl.W = file['W']
2021-07-05T14:55:27,301 >>> sivm_mdl.H = file['H']
2021-07-05T14:55:27,301 >>> sivm_mdl.factorize()
2021-07-05T14:55:27,302 ```
2021-07-05T14:55:27,304 Please note that currently not all methods work well with hdf5. While they all accept hdf5 input matrices, they sometimes lead to very high memory consumption on intermediate computation steps. This is difficult to avoid unless we switch to a completely disk-based storage.
2021-07-05T14:55:27,305 running egg_info
2021-07-05T14:55:27,306 creating /tmp/pip-pip-egg-info-qvttx9j9/matrix_fact.egg-info
2021-07-05T14:55:27,307 writing requirements to /tmp/pip-pip-egg-info-qvttx9j9/matrix_fact.egg-info/requires.txt
2021-07-05T14:55:27,308 writing /tmp/pip-pip-egg-info-qvttx9j9/matrix_fact.egg-info/PKG-INFO
2021-07-05T14:55:27,310 writing top-level names to /tmp/pip-pip-egg-info-qvttx9j9/matrix_fact.egg-info/top_level.txt
2021-07-05T14:55:27,313 writing dependency_links to /tmp/pip-pip-egg-info-qvttx9j9/matrix_fact.egg-info/dependency_links.txt
2021-07-05T14:55:27,317 writing manifest file '/tmp/pip-pip-egg-info-qvttx9j9/matrix_fact.egg-info/SOURCES.txt'
2021-07-05T14:55:27,683 reading manifest file '/tmp/pip-pip-egg-info-qvttx9j9/matrix_fact.egg-info/SOURCES.txt'
2021-07-05T14:55:27,695 writing manifest file '/tmp/pip-pip-egg-info-qvttx9j9/matrix_fact.egg-info/SOURCES.txt'
2021-07-05T14:55:27,829 Source in /tmp/pip-wheel-tk_lqk75/matrix-fact_001cb7f03804400fa82bd67911f8f982 has version 1.1.2, which satisfies requirement matrix-fact==1.1.2 from https://files.pythonhosted.org/packages/e0/31/1221f472055654406d1c352f5110f031f4f255d5947692df73557b11f15f/matrix-fact-1.1.2.tar.gz#sha256=5ece899deafbb1912f8c01f92b54dddd889c5202447100044f335ccca52abc6e
2021-07-05T14:55:27,831 Removed matrix-fact==1.1.2 from https://files.pythonhosted.org/packages/e0/31/1221f472055654406d1c352f5110f031f4f255d5947692df73557b11f15f/matrix-fact-1.1.2.tar.gz#sha256=5ece899deafbb1912f8c01f92b54dddd889c5202447100044f335ccca52abc6e from build tracker '/tmp/pip-req-tracker-_0aun663'
2021-07-05T14:55:27,840 Created temporary directory: /tmp/pip-unpack-ij20reyb
2021-07-05T14:55:27,842 Building wheels for collected packages: matrix-fact
2021-07-05T14:55:27,850 Created temporary directory: /tmp/pip-wheel-vvkolzqw
2021-07-05T14:55:27,851 Building wheel for matrix-fact (setup.py): started
2021-07-05T14:55:27,851 Destination directory: /tmp/pip-wheel-vvkolzqw
2021-07-05T14:55:27,852 Running command /usr/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-wheel-tk_lqk75/matrix-fact_001cb7f03804400fa82bd67911f8f982/setup.py'"'"'; __file__='"'"'/tmp/pip-wheel-tk_lqk75/matrix-fact_001cb7f03804400fa82bd67911f8f982/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-vvkolzqw
2021-07-05T14:55:29,582 ## MatrixFact
2021-07-05T14:55:29,584 ### Install
2021-07-05T14:55:29,585 ```
2021-07-05T14:55:29,585 pip install matrix-fact
2021-07-05T14:55:29,586 ```
2021-07-05T14:55:29,587 ### What is matrix-fact?
2021-07-05T14:55:29,588 matrix-fact contains modules for constrained/unconstrained matrix factorization (and related) methods for both sparse and dense matrices. The repository can be found at https://github.com/gentaiscool/matrix_fact. The code is based on https://github.com/ChrisSchinnerl/pymf3 and https://github.com/rikkhill/pymf. We updated the code to support the latest library. It requires cvxopt, numpy, scipy and torch. We just added the support for PyTorch-based SNMF.
2021-07-05T14:55:29,589 ### Packages
2021-07-05T14:55:29,590 The package includes:
2021-07-05T14:55:29,590 * Non-negative matrix factorization (NMF) [three different optimizations used]
2021-07-05T14:55:29,591 * Convex non-negative matrix factorization (CNMF)
2021-07-05T14:55:29,591 * Semi non-negative matrix factorization (SNMF)
2021-07-05T14:55:29,592 * Archetypal analysis (AA)
2021-07-05T14:55:29,592 * Simplex volume maximization (SiVM) [and SiVM for CUR, GSAT, ... ]
2021-07-05T14:55:29,593 * Convex-hull non-negative matrix factorization (CHNMF)
2021-07-05T14:55:29,594 * Binary matrix factorization (BNMF)
2021-07-05T14:55:29,594 * Singular value decomposition (SVD)
2021-07-05T14:55:29,595 * Principal component analysis (PCA)
2021-07-05T14:55:29,595 * K-means clustering (Kmeans)
2021-07-05T14:55:29,596 * C-means clustering (Cmeans)
2021-07-05T14:55:29,597 * CUR decomposition (CUR)
2021-07-05T14:55:29,597 * Compaxt matrix decomposition (CMD)
2021-07-05T14:55:29,598 * PyTorch SNMF
2021-07-05T14:55:29,599 ### Usage
2021-07-05T14:55:29,600 Given a dataset, most factorization methods try to minimize the Frobenius norm |data - W*H|
by finding a suitable set of basis vectors W
and coefficients H. The syntax for calling the various methods is quite similar. Usually, one has to submit a desired number of basis vectors and the maximum number of iterations. For example, applying NMF to a dataset data aiming at 2 basis vectors within 10 iterations works as follows:
2021-07-05T14:55:29,601 ```python
2021-07-05T14:55:29,602 >>> import matrix_fact
2021-07-05T14:55:29,602 >>> import numpy as np
2021-07-05T14:55:29,603 >>> data = np.array([[1.0, 0.0, 2.0], [0.0, 1.0, 1.0]])
2021-07-05T14:55:29,604 >>> nmf_mdl = matrix_fact.NMF(data, num_bases=2, niter=10)
2021-07-05T14:55:29,604 >>> nmf_mdl.initialization()
2021-07-05T14:55:29,605 >>> nmf_mdl.factorize()
2021-07-05T14:55:29,605 ```
2021-07-05T14:55:29,607 The basis vectors are now stored in nmf_mdl.W
, the coefficients in nmf_mdl.H
. To compute coefficients for an existing set of basis vectors simply copy W to nmf_mdl.W, and set compW to False:
2021-07-05T14:55:29,608 ```python
2021-07-05T14:55:29,608 >>> data = np.array([[1.5], [1.2]])
2021-07-05T14:55:29,609 >>> W = np.array([[1.0, 0.0], [0.0, 1.0]])
2021-07-05T14:55:29,610 >>> nmf_mdl = matrix_fact.NMF(data, num_bases=2, niter=1, compW=False)
2021-07-05T14:55:29,610 >>> nmf_mdl.initialization()
2021-07-05T14:55:29,611 >>> nmf_mdl.W = W
2021-07-05T14:55:29,611 >>> nmf_mdl.factorize()
2021-07-05T14:55:29,612 ```
2021-07-05T14:55:29,614 By changing py_fact.NMF to e.g. py_fact.AA or py_fact.CNMF Archetypal Analysis or Convex-NMF can be applied. Some methods might allow other parameters, make sure to have a look at the corresponding >>>help(py_fact.AA)
documentation. For example, CUR, CMD, and SVD are handled slightly differently, as they factorize into three submatrices which requires appropriate arguments for row and column sampling.
2021-07-05T14:55:29,615 For PyTorch-SNMF
2021-07-05T14:55:29,616 ```python
2021-07-05T14:55:29,616 >>> data = torch.FloatTensor([[1.5], [1.2]])
2021-07-05T14:55:29,617 >>> nmf_mdl = matrix_fact.NMF(data, num_bases=2)
2021-07-05T14:55:29,617 >>> nmf_mdl.factorize(niter=1000)
2021-07-05T14:55:29,618 ```
2021-07-05T14:55:29,619 ### Very large datasets
2021-07-05T14:55:29,620 For handling larger datasets py_fact supports hdf5 via h5py. Usage is straight forward as h5py allows to map large numpy matrices to disk. Thus, instead of passing data as a np.array, you can simply send the corresponding hdf5 table. The following example shows how to apply py_fact to a random matrix that is entirely stored on disk. In this example the dataset does not have to fit into memory, the resulting low-rank factors W,H
have to.
2021-07-05T14:55:29,621 ```python
2021-07-05T14:55:29,622 >>> import h5py
2021-07-05T14:55:29,623 >>> import numpy as np
2021-07-05T14:55:29,623 >>> import matrix_fact
2021-07-05T14:55:29,624 >>>
2021-07-05T14:55:29,624 >>> file = h5py.File('myfile.hdf5', 'w')
2021-07-05T14:55:29,625 >>> file['dataset'] = np.random.random((100,1000))
2021-07-05T14:55:29,626 >>> sivm_mdl = matrix_fact.SIVM(file['dataset'], num_bases=10)
2021-07-05T14:55:29,626 >>> sivm_mdl.factorize()
2021-07-05T14:55:29,627 ```
2021-07-05T14:55:29,628 If the low-rank matrices W,H
also do not fit into memory, they can be initialized as a h5py matrix.
2021-07-05T14:55:29,629 ```python
2021-07-05T14:55:29,630 >>> import h5py
2021-07-05T14:55:29,631 >>> import numpy as np
2021-07-05T14:55:29,631 >>> import matrix_fact
2021-07-05T14:55:29,632 >>>
2021-07-05T14:55:29,632 >>> file = h5py.File('myfile.hdf5', 'w')
2021-07-05T14:55:29,633 >>> file['dataset'] = np.random.random((100,1000))
2021-07-05T14:55:29,634 >>> file['W'] = np.random.random((100,10))
2021-07-05T14:55:29,634 >>> file['H'] = np.random.random((10,1000))
2021-07-05T14:55:29,635 >>> sivm_mdl = matrix_fact.SIVM(file['dataset'], num_bases=10)
2021-07-05T14:55:29,635 >>> sivm_mdl.W = file['W']
2021-07-05T14:55:29,636 >>> sivm_mdl.H = file['H']
2021-07-05T14:55:29,637 >>> sivm_mdl.factorize()
2021-07-05T14:55:29,637 ```
2021-07-05T14:55:29,638 Please note that currently not all methods work well with hdf5. While they all accept hdf5 input matrices, they sometimes lead to very high memory consumption on intermediate computation steps. This is difficult to avoid unless we switch to a completely disk-based storage.
2021-07-05T14:55:29,989 running bdist_wheel
2021-07-05T14:55:30,004 running build
2021-07-05T14:55:30,005 running build_py
2021-07-05T14:55:30,345 creating build
2021-07-05T14:55:30,346 creating build/lib
2021-07-05T14:55:30,347 creating build/lib/matrix_fact
2021-07-05T14:55:30,349 copying matrix_fact/sivm_sgreedy.py -> build/lib/matrix_fact
2021-07-05T14:55:30,354 copying matrix_fact/pmf.py -> build/lib/matrix_fact
2021-07-05T14:55:30,359 copying matrix_fact/sivm_search.py -> build/lib/matrix_fact
2021-07-05T14:55:30,363 copying matrix_fact/greedy.py -> build/lib/matrix_fact
2021-07-05T14:55:30,368 copying matrix_fact/cnmf.py -> build/lib/matrix_fact
2021-07-05T14:55:30,373 copying matrix_fact/sivm.py -> build/lib/matrix_fact
2021-07-05T14:55:30,379 copying matrix_fact/cur.py -> build/lib/matrix_fact
2021-07-05T14:55:30,386 copying matrix_fact/wnmf.py -> build/lib/matrix_fact
2021-07-05T14:55:30,391 copying matrix_fact/pca.py -> build/lib/matrix_fact
2021-07-05T14:55:30,396 copying matrix_fact/svd.py -> build/lib/matrix_fact
2021-07-05T14:55:30,400 copying matrix_fact/sivm_cur.py -> build/lib/matrix_fact
2021-07-05T14:55:30,404 copying matrix_fact/torch_snmf.py -> build/lib/matrix_fact
2021-07-05T14:55:30,408 copying matrix_fact/bnmf.py -> build/lib/matrix_fact
2021-07-05T14:55:30,413 copying matrix_fact/cursl.py -> build/lib/matrix_fact
2021-07-05T14:55:30,419 copying matrix_fact/dist.py -> build/lib/matrix_fact
2021-07-05T14:55:30,425 copying matrix_fact/aa.py -> build/lib/matrix_fact
2021-07-05T14:55:30,431 copying matrix_fact/base.py -> build/lib/matrix_fact
2021-07-05T14:55:30,438 copying matrix_fact/abnmf.py -> build/lib/matrix_fact
2021-07-05T14:55:30,444 copying matrix_fact/greedycur.py -> build/lib/matrix_fact
2021-07-05T14:55:30,449 copying matrix_fact/nndsvd.py -> build/lib/matrix_fact
2021-07-05T14:55:30,455 copying matrix_fact/chnmf.py -> build/lib/matrix_fact
2021-07-05T14:55:30,461 copying matrix_fact/cmeans.py -> build/lib/matrix_fact
2021-07-05T14:55:30,466 copying matrix_fact/__init__.py -> build/lib/matrix_fact
2021-07-05T14:55:30,471 copying matrix_fact/awnmf.py -> build/lib/matrix_fact
2021-07-05T14:55:30,476 copying matrix_fact/kmeans.py -> build/lib/matrix_fact
2021-07-05T14:55:30,480 copying matrix_fact/laesa.py -> build/lib/matrix_fact
2021-07-05T14:55:30,484 copying matrix_fact/nmf.py -> build/lib/matrix_fact
2021-07-05T14:55:30,489 copying matrix_fact/snmf.py -> build/lib/matrix_fact
2021-07-05T14:55:30,493 copying matrix_fact/cmde.py -> build/lib/matrix_fact
2021-07-05T14:55:30,498 copying matrix_fact/sivm_gsat.py -> build/lib/matrix_fact
2021-07-05T14:55:30,519 installing to build/bdist.linux-armv7l/wheel
2021-07-05T14:55:30,520 running install
2021-07-05T14:55:30,522 running install_lib
2021-07-05T14:55:30,529 creating build/bdist.linux-armv7l
2021-07-05T14:55:30,530 creating build/bdist.linux-armv7l/wheel
2021-07-05T14:55:30,534 creating build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,536 copying build/lib/matrix_fact/sivm_sgreedy.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,541 copying build/lib/matrix_fact/pmf.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,546 copying build/lib/matrix_fact/sivm_search.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,551 copying build/lib/matrix_fact/greedy.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,557 copying build/lib/matrix_fact/cnmf.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,563 copying build/lib/matrix_fact/sivm.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,569 copying build/lib/matrix_fact/cur.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,576 copying build/lib/matrix_fact/wnmf.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,581 copying build/lib/matrix_fact/pca.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,587 copying build/lib/matrix_fact/svd.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,594 copying build/lib/matrix_fact/sivm_cur.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,599 copying build/lib/matrix_fact/torch_snmf.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,605 copying build/lib/matrix_fact/bnmf.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,611 copying build/lib/matrix_fact/cursl.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,616 copying build/lib/matrix_fact/dist.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,623 copying build/lib/matrix_fact/aa.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,629 copying build/lib/matrix_fact/base.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,636 copying build/lib/matrix_fact/abnmf.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,642 copying build/lib/matrix_fact/greedycur.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,648 copying build/lib/matrix_fact/nndsvd.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,653 copying build/lib/matrix_fact/chnmf.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,660 copying build/lib/matrix_fact/cmeans.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,666 copying build/lib/matrix_fact/__init__.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,671 copying build/lib/matrix_fact/awnmf.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,677 copying build/lib/matrix_fact/kmeans.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,682 copying build/lib/matrix_fact/laesa.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,688 copying build/lib/matrix_fact/nmf.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,695 copying build/lib/matrix_fact/snmf.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,701 copying build/lib/matrix_fact/cmde.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,706 copying build/lib/matrix_fact/sivm_gsat.py -> build/bdist.linux-armv7l/wheel/matrix_fact
2021-07-05T14:55:30,712 running install_egg_info
2021-07-05T14:55:30,759 running egg_info
2021-07-05T14:55:30,761 writing matrix_fact.egg-info/PKG-INFO
2021-07-05T14:55:30,766 writing top-level names to matrix_fact.egg-info/top_level.txt
2021-07-05T14:55:30,769 writing requirements to matrix_fact.egg-info/requires.txt
2021-07-05T14:55:30,771 writing dependency_links to matrix_fact.egg-info/dependency_links.txt
2021-07-05T14:55:30,803 reading manifest file 'matrix_fact.egg-info/SOURCES.txt'
2021-07-05T14:55:30,820 writing manifest file 'matrix_fact.egg-info/SOURCES.txt'
2021-07-05T14:55:30,823 Copying matrix_fact.egg-info to build/bdist.linux-armv7l/wheel/matrix_fact-1.1.2-py3.5.egg-info
2021-07-05T14:55:30,848 running install_scripts
2021-07-05T14:55:31,045 creating build/bdist.linux-armv7l/wheel/matrix_fact-1.1.2.dist-info/WHEEL
2021-07-05T14:55:31,378 Building wheel for matrix-fact (setup.py): finished with status 'done'
2021-07-05T14:55:31,383 Created wheel for matrix-fact: filename=matrix_fact-1.1.2-py3-none-any.whl size=57522 sha256=8f12c3560f3278d5f560c08d99c2c8a819f69dcda76532742300ae55bd04ce27
2021-07-05T14:55:31,384 Stored in directory: /tmp/pip-ephem-wheel-cache-8s47gz1j/wheels/cb/96/60/03f1d2cf12a0128543a9b479959ff9f80fe1aeb58319ae00cd
2021-07-05T14:55:31,405 Successfully built matrix-fact
2021-07-05T14:55:31,419 Removed build tracker: '/tmp/pip-req-tracker-_0aun663'