https://github.com/tensorly/tensorly

sort by:
Revision Author Date Message Commit Date
3cbf815 Fix the PDF build of the docs The LaTeX preamble wasn't properly included in the latex_elements dictionary in conf.py. 19 December 2018, 21:41:27 UTC
122acd7 Add information on masks (tensorly/tensorly#91) 17 December 2018, 23:04:09 UTC
5c81d44 Merge branch 'sparse-parafac' into sparse-parafac-missing 13 December 2018, 15:28:21 UTC
12e1765 Merge branch 'sparse' into sparse-parafac 13 December 2018, 15:27:45 UTC
02a0942 Merge branch 'sparse' into sparse-docs 13 December 2018, 15:24:27 UTC
895a805 Merge branch 'sparse' of github.com:Quansight/tensorly into sparse 13 December 2018, 15:22:33 UTC
19d538b Merge branch 'sparse' into sparse-robust-pca 13 December 2018, 15:12:03 UTC
952b684 some minor sparse fixes 13 December 2018, 15:11:01 UTC
3c8fec9 Wrap non-negative PARAFAC for the sparse back-end. 13 December 2018, 11:49:53 UTC
4922c55 Fix typo in non-negative PARAFAC kwarg. 13 December 2018, 11:49:27 UTC
ea4ad8f Correct kruskal_to_tensor() with both weights and a mask 12 December 2018, 23:05:30 UTC
3cfd3e4 Make the parafac mask support sparse friendly This required adding a mask flag to kruskal_to_tensor() and kr() so that the mask could be absorbed into the calculation in a sparse friendly way. In order to be sparse friendly, the mask should be a sparse array with a fill value of 1 (True). In other words, the number of missing values should itself be sparse. The generic kr() algorithm was rewritten to use a generic outer product, and kruskal_to_tensor() now uses sum instead of dot (the NumPy kr() just multiplies the mask). 12 December 2018, 22:51:40 UTC
f0ef0a1 Fix nonnegative -> non_negative 12 December 2018, 22:42:45 UTC
7a7ba8a Revert "Add broadcast_to to the backends" Turns out I didn't need it. This reverts commit 729b8b95ab736916929d33d89192423c912b2b4d. 12 December 2018, 21:29:24 UTC
729b8b9 Add broadcast_to to the backends 12 December 2018, 21:29:12 UTC
f8427ef Merge branch 'sparse' into sparse-robust-pca 12 December 2018, 20:06:52 UTC
ae0f5eb Merge branch 'sparse' into sparse-parafac 12 December 2018, 20:06:12 UTC
28ee1fc Merge branch 'sparse' into sparse-docs 12 December 2018, 20:05:18 UTC
1f1c500 remove sparse tensor 12 December 2018, 20:03:59 UTC
218bcac Start adding support for masked values to parafac() The idea to modify the tensor with the masked array is from Tomasi, Giorgio, and Rasmus Bro. "PARAFAC and missing values." Chemometrics and Intelligent Laboratory Systems 75.2 (2005): 163-180. This still needs to be modified to continue to work with sparse arrays. Right now, it fully decomposes the factors to compute the modification, which will not work if the fully decomposed factors do not fit in memory. 11 December 2018, 21:34:11 UTC
367f376 Fix some text in a comment 11 December 2018, 20:45:23 UTC
7a8f205 convert output of svd_threshold() to orginal tensor type, as needed. 11 December 2018, 18:45:05 UTC
492455f Add non_negative_parafac to the sparse backend 10 December 2018, 22:19:44 UTC
66d66a0 Nonnegative PARAFAC supports sparse now as well 10 December 2018, 22:10:02 UTC
15ed539 Fold non_negative_parafac() into parafac(non_negative=True) non_negative_parafac() still exists as a alias to it. 10 December 2018, 21:26:07 UTC
96392e1 tucker should be partial_tucker 10 December 2018, 20:45:34 UTC
d0be36f fix typo: U -> V 10 December 2018, 19:43:04 UTC
2312d75 Add an example showing the parafac decomposition with sparse 10 December 2018, 19:02:05 UTC
a5386f8 Remove cruft 10 December 2018, 18:40:46 UTC
562ee2b Add some more docs about the sparse backends 10 December 2018, 18:39:08 UTC
75cc845 Remove sparse_backend from the development_guide index 10 December 2018, 18:28:25 UTC
d8cfd52 Fix filename spelling 10 December 2018, 18:27:56 UTC
08077ba Add the sparse backend docs to the index 10 December 2018, 18:07:40 UTC
b632cc2 Move the sparse backend docs from the development guide to the user guide 10 December 2018, 18:07:17 UTC
f90b049 Make the docs always builds with the git version of tensorly 10 December 2018, 18:02:55 UTC
ee17745 Convert A and b to csc in sparse.solve This avoids warnings from scipy that csc is more efficient when using solve. 07 December 2018, 20:21:26 UTC
ba19cfc Add kruskal_to_tensor to the sparse backend 06 December 2018, 22:30:10 UTC
fe0694b Adding a KruskalTensor class 06 December 2018, 21:44:34 UTC
2769207 use dense linear alg when needed in partial_svd 06 December 2018, 20:15:45 UTC
6cb7e71 Fix typo in mxnet moveaxis 06 December 2018, 19:25:21 UTC
91d56bc Remove axis keyword argument from prod() call It is a different keyword argument name for different backends. 06 December 2018, 19:23:38 UTC
680c750 Fix stack for the pytorch backend It calls the second argument 'dim' instead of 'axis'. 06 December 2018, 19:15:03 UTC
57f8751 Use an implementation of moveaxis that supports negative indices for mxnet 06 December 2018, 19:09:58 UTC
ce48e52 Make sure the dot product is against a n x 1 vector Only NumPy will take the dot product of a shape (m, n) with shape (n,) array it seems. 06 December 2018, 18:59:30 UTC
d5a2c48 Fix moveaxis for the pytorch backend for negative source or target 06 December 2018, 18:49:08 UTC
0bb275a Fix moveaxis for the tensorflow backend for negative source or target arguments 06 December 2018, 18:47:22 UTC
b51171b Use a.dot(b) for the numpy backend dot This fixes an issue with the sparse library when dotting a sparse array with a dense array. 06 December 2018, 18:33:05 UTC
71150f7 Add stack to the pytorch backend 06 December 2018, 18:15:25 UTC
ca56b96 Fix an instance of array.dot -> tl.dot 06 December 2018, 18:13:29 UTC
814d254 Use tl.dot and tl.transpose instead of .dot and .T 06 December 2018, 18:07:40 UTC
2a0d58c Merge branch 'sparse' into sparse-parafac 06 December 2018, 18:03:58 UTC
21d49b7 Add stack to the other backends 06 December 2018, 17:57:28 UTC
9bf66a4 Use tl.moveaxis instead of np.moveaxis 06 December 2018, 17:51:49 UTC
701b9ec V gets transposed in quick return 05 December 2018, 21:49:57 UTC
ce58bc1 Add explanatory comment 05 December 2018, 21:26:04 UTC
c0bba38 numpy sparse clip() fix and partial_svd fix for nnz == 0 tensors 05 December 2018, 20:07:29 UTC
1cf4b5c Print the variation after 2 iterations instead of 3 05 December 2018, 19:04:08 UTC
d382f20 Easier to read verbose output 05 December 2018, 19:03:59 UTC
ab42284 Fix typo in norm calculation 05 December 2018, 18:53:16 UTC
ccad6e1 Add stack to the backend core so that tl.stack works 04 December 2018, 22:23:56 UTC
a769a0b Remove random-sparse method from initialize_factors() 04 December 2018, 21:50:57 UTC
111e636 Add stack() to the numpy and sparse backends It still needs to be added to the other backends. 04 December 2018, 21:42:43 UTC
0a08c08 Leave in some commented out code, but clarify what it is 04 December 2018, 21:41:59 UTC
3b67a89 Indicate how many modes there are in the verbose message 04 December 2018, 21:40:51 UTC
b9eb244 initial robust_pca wrapping 04 December 2018, 21:13:01 UTC
2b407b2 Fix IndexError in parafac 04 December 2018, 20:04:04 UTC
b3054cc Compute the norm at the end of ALS in a sparse-safe way We can never compute the exact kruskal_to_tensor() for a decomposed sparse tensor, because it will be highly dense due to numerical inaccuracies (the zeroes of the original will become near-zeroes). Rather, we compute ||tensor - kruskal_to_tensor(factors)|| as sqrt(||tensor||^2 + ||factors||^2 - 2<tensor, factors>). The second term can be computed via sum(hadamard_product(f.T.dot(f) for f in factors)). See section 5.2.5 from Bader, Brett W., and Tamara G. Kolda. "Efficient MATLAB computations with sparse and factored tensors." SIAM Journal on Scientific Computing 30.1 (2007): 205-231. The third term can be computed from the matricized Khatri-Rao product computed earlier in the algorithm. The idea was this was taken from the above cited paper and corresponding source code. See https://gitlab.com/tensors/tensor_toolbox/blob/master/cp_als.m and https://gitlab.com/tensors/tensor_toolbox/blob/master/@ktensor/norm.m. The norm computed here is not numerically identical to the norm as previously computed, due to numerical differences. This still requires cleanup to continue to work with non-sparse arrays (I haven't factored out sparse.stack to the backend yet). 04 December 2018, 19:12:46 UTC
4ff986b more docs 03 December 2018, 21:51:38 UTC
e49a448 try to fix local_threadsafe tests 03 December 2018, 20:48:05 UTC
6a5ac92 import tensorly as tl 03 December 2018, 20:38:58 UTC
2c8555a make_session_default -> local_threadsafe 03 December 2018, 20:18:00 UTC
359ee35 Some more verbose printing This commit should eventually be reverted. 30 November 2018, 23:34:37 UTC
c864360 Better variable names 30 November 2018, 23:34:17 UTC
2653b70 Experimental work in progress support for sparse matrix-times-khatri-rao 30 November 2018, 20:30:21 UTC
f2fc3f1 added sparse tensor to initi 29 November 2018, 23:39:35 UTC
1608ad0 added sparse_tensor and backend system docs 29 November 2018, 23:20:50 UTC
6e03faa revert tests to using relative imports 29 November 2018, 22:22:14 UTC
e636133 Sparse developer docs fixes 28 November 2018, 21:13:04 UTC
eeac726 Sparse developer docs 28 November 2018, 19:05:53 UTC
79a29e3 Clear trailing whitespace in candecomp_parafac.py 26 November 2018, 23:32:43 UTC
0bbba71 Split out some variables for easier debugging 26 November 2018, 23:32:26 UTC
29c6ddd Add random-sparse initialize_factors method This is still experimental. I still need to figure out how to reliably get an initial set of factors that are dense for the algorithm to work but sparse enough to work with large sparse tensors. 26 November 2018, 23:30:51 UTC
b1e93bb Add solve for the sparse backend 26 November 2018, 23:29:55 UTC
f1941ec Wrap parafac for sparse (it doesn't actually work yet) 26 November 2018, 23:29:26 UTC
ba1c13b fixed make_session_default tests 26 November 2018, 20:48:05 UTC
f6a908d some minor refactors 26 November 2018, 20:42:21 UTC
f532a16 Skip MPS tests when on tensorflow backend due to unsupported fancy indexing operations 26 November 2018, 19:35:52 UTC
c66bd7b Merge branch 'master' into sparse 26 November 2018, 18:47:37 UTC
3a35360 DOC FIX: home page user_guide link 26 November 2018, 16:25:12 UTC
9fc1f82 Add argmin and argmax for tensorflow 20 November 2018, 19:03:33 UTC
4848bf9 register_method is only for functions that *aren't* defined as staticmethods 19 November 2018, 23:45:40 UTC
23d21ba Fix assert_ import 19 November 2018, 23:32:04 UTC
f7a9519 Add argmin and argmax to __init__.py 19 November 2018, 23:28:15 UTC
e4144a0 Merge branch 'master' into sparse 19 November 2018, 23:09:15 UTC
ff75e67 Add tensorly.contrib.sparse.tenalg 30 October 2018, 14:41:47 UTC
ec8add1 Random: deprecate old functions 29 October 2018, 14:45:26 UTC
841e7e6 DOC: update random module API 29 October 2018, 14:30:25 UTC
e782136 Refactored random module 29 October 2018, 14:29:04 UTC
c5cef8e Sanity checks on rank for MPS 29 October 2018, 14:28:39 UTC
54297a3 FIX: use tl.ones not np. 28 October 2018, 21:00:47 UTC
back to top