https://github.com/tensorly/tensorly

sort by:
Revision Author Date Message Commit Date
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
895a805 Merge branch 'sparse' of github.com:Quansight/tensorly into sparse 13 December 2018, 15:22:33 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
ae0f5eb Merge branch 'sparse' into sparse-parafac 12 December 2018, 20:06:12 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
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
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
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
ce58bc1 Add explanatory comment 05 December 2018, 21:26:04 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
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
8104e06 FIX: (multi_)mode_dot with vector 28 October 2018, 20:53:28 UTC
9badf5d Do not set global random seed 28 October 2018, 18:11:22 UTC
d4b1854 DOC: add contrib to API 28 October 2018, 18:02:33 UTC
f15cf2e Contrib: add decomposition submodule 28 October 2018, 18:02:01 UTC
d82e08b Merge pull request #73 from wumming/TTcross Cross-approx algorithm for MSP/tensor-train decomposition 28 October 2018, 14:21:49 UTC
a7971af Typos 27 October 2018, 19:47:36 UTC
cd25045 Updated guide 27 October 2018, 19:46:30 UTC
c8095a4 Removed un-necessary import 27 October 2018, 17:13:53 UTC
3ff301c Edit AUTHORS list 08 October 2018, 12:27:34 UTC
aa076e5 Add numpy sparse backend 02 October 2018, 03:22:24 UTC
404b8bd Test tensorflow backend on travis 02 October 2018, 00:33:07 UTC
cd83529 Document generic backend methods 01 October 2018, 23:21:49 UTC
3752779 Refactor again - Use classes, to hopefully make the backend implementations clearer for others. - Add ability to set backend for all threads. Default is still thread/context local, but we may want to change that later. 01 October 2018, 22:57:11 UTC
9b8ad49 Add tests for set_backend/get_backend 28 September 2018, 19:49:11 UTC
f6ebddb Remove backend-specific test utils Having these as backend specific was unnecessary. - Create `tensorly.testing` - Move all test imports to `tensorly.testing`. - Use absolute imports for test imports. For tests this makes more sense than relative imports, and is standard practice in the numerical python ecosystem. 28 September 2018, 18:21:20 UTC
80ee222 flake 28 September 2018, 14:18:12 UTC
b9dbf5d Refactor cupy backend 28 September 2018, 13:59:21 UTC
7cf259a Refactor tensorflow backend 28 September 2018, 13:46:43 UTC
15f1d4d Refactor mxnet backend 27 September 2018, 22:31:13 UTC
2b79f10 Refactor pytorch backend, add flake8 27 September 2018, 21:40:36 UTC
b6cebd4 Continue refactor - Add docstrings for all public methods - A few style cleanups - Explicitly import things into top-level namespace - Remove a few unnecessary backend methods. 27 September 2018, 21:03:31 UTC
6dcb645 WIP: refactor backends 27 September 2018, 20:12:24 UTC
6f85b26 move check_random_state(1) 21 September 2018, 17:16:45 UTC
5ef625f Specify SVD fun for tucker 21 September 2018, 11:08:39 UTC
back to top