ab42284 | Aaron Meurer | 05 December 2018, 18:53:16 UTC | Fix typo in norm calculation | 05 December 2018, 18:53:16 UTC |
ccad6e1 | Aaron Meurer | 04 December 2018, 22:23:56 UTC | Add stack to the backend core so that tl.stack works | 04 December 2018, 22:23:56 UTC |
a769a0b | Aaron Meurer | 04 December 2018, 21:50:57 UTC | Remove random-sparse method from initialize_factors() | 04 December 2018, 21:50:57 UTC |
111e636 | Aaron Meurer | 04 December 2018, 21:42:43 UTC | 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 | Aaron Meurer | 04 December 2018, 21:41:59 UTC | Leave in some commented out code, but clarify what it is | 04 December 2018, 21:41:59 UTC |
3b67a89 | Aaron Meurer | 04 December 2018, 21:40:51 UTC | Indicate how many modes there are in the verbose message | 04 December 2018, 21:40:51 UTC |
b9eb244 | Anthony Scopatz | 04 December 2018, 21:13:01 UTC | initial robust_pca wrapping | 04 December 2018, 21:13:01 UTC |
2b407b2 | Aaron Meurer | 04 December 2018, 20:04:04 UTC | Fix IndexError in parafac | 04 December 2018, 20:04:04 UTC |
b3054cc | Aaron Meurer | 04 December 2018, 19:12:46 UTC | 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 | Anthony Scopatz | 03 December 2018, 21:51:38 UTC | more docs | 03 December 2018, 21:51:38 UTC |
e49a448 | Anthony Scopatz | 03 December 2018, 20:48:05 UTC | try to fix local_threadsafe tests | 03 December 2018, 20:48:05 UTC |
6a5ac92 | Anthony Scopatz | 03 December 2018, 20:38:58 UTC | import tensorly as tl | 03 December 2018, 20:38:58 UTC |
2c8555a | Anthony Scopatz | 03 December 2018, 20:18:00 UTC | make_session_default -> local_threadsafe | 03 December 2018, 20:18:00 UTC |
359ee35 | Aaron Meurer | 30 November 2018, 23:34:37 UTC | Some more verbose printing This commit should eventually be reverted. | 30 November 2018, 23:34:37 UTC |
c864360 | Aaron Meurer | 30 November 2018, 23:34:17 UTC | Better variable names | 30 November 2018, 23:34:17 UTC |
2653b70 | Aaron Meurer | 30 November 2018, 20:30:21 UTC | Experimental work in progress support for sparse matrix-times-khatri-rao | 30 November 2018, 20:30:21 UTC |
f2fc3f1 | Anthony Scopatz | 29 November 2018, 23:39:35 UTC | added sparse tensor to initi | 29 November 2018, 23:39:35 UTC |
1608ad0 | Anthony Scopatz | 29 November 2018, 23:20:50 UTC | added sparse_tensor and backend system docs | 29 November 2018, 23:20:50 UTC |
6e03faa | Anthony Scopatz | 29 November 2018, 22:22:14 UTC | revert tests to using relative imports | 29 November 2018, 22:22:14 UTC |
e636133 | Anthony Scopatz | 28 November 2018, 21:13:04 UTC | Sparse developer docs fixes | 28 November 2018, 21:13:04 UTC |
eeac726 | Anthony Scopatz | 28 November 2018, 19:05:53 UTC | Sparse developer docs | 28 November 2018, 19:05:53 UTC |
79a29e3 | Aaron Meurer | 26 November 2018, 23:32:43 UTC | Clear trailing whitespace in candecomp_parafac.py | 26 November 2018, 23:32:43 UTC |
0bbba71 | Aaron Meurer | 26 November 2018, 23:32:26 UTC | Split out some variables for easier debugging | 26 November 2018, 23:32:26 UTC |
29c6ddd | Aaron Meurer | 26 November 2018, 23:30:51 UTC | 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 | Aaron Meurer | 26 November 2018, 23:29:55 UTC | Add solve for the sparse backend | 26 November 2018, 23:29:55 UTC |
f1941ec | Aaron Meurer | 26 November 2018, 23:29:26 UTC | Wrap parafac for sparse (it doesn't actually work yet) | 26 November 2018, 23:29:26 UTC |
ba1c13b | Anthony Scopatz | 26 November 2018, 20:48:05 UTC | fixed make_session_default tests | 26 November 2018, 20:48:05 UTC |
f6a908d | Anthony Scopatz | 26 November 2018, 20:42:21 UTC | some minor refactors | 26 November 2018, 20:42:21 UTC |
f532a16 | Anthony Scopatz | 26 November 2018, 19:35:52 UTC | Skip MPS tests when on tensorflow backend due to unsupported fancy indexing operations | 26 November 2018, 19:35:52 UTC |
c66bd7b | Anthony Scopatz | 26 November 2018, 18:47:37 UTC | Merge branch 'master' into sparse | 26 November 2018, 18:47:37 UTC |
3a35360 | Jean Kossaifi | 26 November 2018, 16:25:12 UTC | DOC FIX: home page user_guide link | 26 November 2018, 16:25:12 UTC |
9fc1f82 | Aaron Meurer | 20 November 2018, 19:03:33 UTC | Add argmin and argmax for tensorflow | 20 November 2018, 19:03:33 UTC |
4848bf9 | Aaron Meurer | 19 November 2018, 23:45:40 UTC | register_method is only for functions that *aren't* defined as staticmethods | 19 November 2018, 23:45:40 UTC |
23d21ba | Aaron Meurer | 19 November 2018, 23:32:04 UTC | Fix assert_ import | 19 November 2018, 23:32:04 UTC |
f7a9519 | Aaron Meurer | 19 November 2018, 23:28:15 UTC | Add argmin and argmax to __init__.py | 19 November 2018, 23:28:15 UTC |
e4144a0 | Aaron Meurer | 19 November 2018, 23:09:15 UTC | Merge branch 'master' into sparse | 19 November 2018, 23:09:15 UTC |
ff75e67 | Jim Crist | 30 October 2018, 14:41:47 UTC | Add tensorly.contrib.sparse.tenalg | 30 October 2018, 14:41:47 UTC |
ec8add1 | Jean Kossaifi | 29 October 2018, 14:45:26 UTC | Random: deprecate old functions | 29 October 2018, 14:45:26 UTC |
841e7e6 | Jean Kossaifi | 29 October 2018, 14:30:25 UTC | DOC: update random module API | 29 October 2018, 14:30:25 UTC |
e782136 | Jean Kossaifi | 29 October 2018, 14:29:04 UTC | Refactored random module | 29 October 2018, 14:29:04 UTC |
c5cef8e | Jean Kossaifi | 29 October 2018, 14:28:39 UTC | Sanity checks on rank for MPS | 29 October 2018, 14:28:39 UTC |
54297a3 | Jean Kossaifi | 28 October 2018, 21:00:47 UTC | FIX: use tl.ones not np. | 28 October 2018, 21:00:47 UTC |
8104e06 | Jean Kossaifi | 28 October 2018, 20:53:28 UTC | FIX: (multi_)mode_dot with vector | 28 October 2018, 20:53:28 UTC |
9badf5d | Jean Kossaifi | 28 October 2018, 18:11:22 UTC | Do not set global random seed | 28 October 2018, 18:11:22 UTC |
d4b1854 | Jean Kossaifi | 28 October 2018, 18:02:33 UTC | DOC: add contrib to API | 28 October 2018, 18:02:33 UTC |
f15cf2e | Jean Kossaifi | 28 October 2018, 18:02:01 UTC | Contrib: add decomposition submodule | 28 October 2018, 18:02:01 UTC |
d82e08b | Jean Kossaifi | 28 October 2018, 14:21:49 UTC | Merge pull request #73 from wumming/TTcross Cross-approx algorithm for MSP/tensor-train decomposition | 28 October 2018, 14:21:49 UTC |
a7971af | Jean Kossaifi | 27 October 2018, 19:47:36 UTC | Typos | 27 October 2018, 19:47:36 UTC |
cd25045 | Jean Kossaifi | 27 October 2018, 19:46:30 UTC | Updated guide | 27 October 2018, 19:46:30 UTC |
c8095a4 | Jean Kossaifi | 27 October 2018, 17:13:53 UTC | Removed un-necessary import | 27 October 2018, 17:13:53 UTC |
3ff301c | Jean Kossaifi | 08 October 2018, 12:27:34 UTC | Edit AUTHORS list | 08 October 2018, 12:27:34 UTC |
aa076e5 | Jim Crist | 28 September 2018, 21:20:01 UTC | Add numpy sparse backend | 02 October 2018, 03:22:24 UTC |
404b8bd | Jim Crist | 02 October 2018, 00:33:07 UTC | Test tensorflow backend on travis | 02 October 2018, 00:33:07 UTC |
cd83529 | Jim Crist | 01 October 2018, 23:21:49 UTC | Document generic backend methods | 01 October 2018, 23:21:49 UTC |
3752779 | Jim Crist | 01 October 2018, 22:55:12 UTC | 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 | Jim Crist | 28 September 2018, 19:49:11 UTC | Add tests for set_backend/get_backend | 28 September 2018, 19:49:11 UTC |
f6ebddb | Jim Crist | 28 September 2018, 18:21:20 UTC | 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 | Jim Crist | 28 September 2018, 14:18:12 UTC | flake | 28 September 2018, 14:18:12 UTC |
b9dbf5d | Jim Crist | 28 September 2018, 13:59:21 UTC | Refactor cupy backend | 28 September 2018, 13:59:21 UTC |
7cf259a | Jim Crist | 28 September 2018, 13:46:43 UTC | Refactor tensorflow backend | 28 September 2018, 13:46:43 UTC |
15f1d4d | Jim Crist | 27 September 2018, 22:31:13 UTC | Refactor mxnet backend | 27 September 2018, 22:31:13 UTC |
2b79f10 | Jim Crist | 27 September 2018, 21:36:27 UTC | Refactor pytorch backend, add flake8 | 27 September 2018, 21:40:36 UTC |
b6cebd4 | Jim Crist | 27 September 2018, 21:03:31 UTC | 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 | Jim Crist | 27 September 2018, 17:55:03 UTC | WIP: refactor backends | 27 September 2018, 20:12:24 UTC |
6f85b26 | Zongyi Li | 21 September 2018, 17:16:45 UTC | move check_random_state(1) | 21 September 2018, 17:16:45 UTC |
5ef625f | Jean Kossaifi | 21 September 2018, 11:08:39 UTC | Specify SVD fun for tucker | 21 September 2018, 11:08:39 UTC |
e22fa80 | Zongyi Li | 19 September 2018, 17:49:39 UTC | delete hard coded dtype. | 19 September 2018, 17:49:39 UTC |
fa50f7a | Zongyi Li | 19 September 2018, 17:46:03 UTC | Merge branch 'master' into TTcross | 19 September 2018, 17:46:03 UTC |
47b57dd | Zongyi Li | 19 September 2018, 17:37:51 UTC | Merge branch 'TTcross' of https://github.com/wumming/tensorly into TTcross | 19 September 2018, 17:37:51 UTC |
0c33fc0 | Zongyi Li | 19 September 2018, 16:12:19 UTC | modify pytorch's tl.tensor(). delete int()/tensor_as_indices() | 19 September 2018, 17:33:45 UTC |
4e9ed27 | Zongyi Li | 19 September 2018, 07:10:38 UTC | change int() to tensor_as_indices() and minor changes | 19 September 2018, 17:33:45 UTC |
463b553 | Zongyi Li | 14 September 2018, 18:15:59 UTC | use solve instead of inverse, delete npr.seed() | 19 September 2018, 17:33:45 UTC |
975c84b | Zongyi Li | 08 September 2018, 21:28:00 UTC | Fix bugs for MxNet 1. wrapper Numpy's inverse for MxNet. 2. MxNet is not robust when vector has size 1. Add a base case for it. 3. MxNet is not robust for a/b. transpose b so that a and b are in the same shape. | 19 September 2018, 17:33:45 UTC |
f0cdb8e | Zongyi Li | 03 September 2018, 21:31:50 UTC | candecomp_parafac.py should be in tensorly/decomposition instead of tensorly/contrib | 19 September 2018, 17:33:45 UTC |
2162dda | Zongyi Li | 03 September 2018, 21:27:14 UTC | add back candecomp_parafac.py from master | 19 September 2018, 17:33:45 UTC |
e918a01 | Zongyi Li | 03 September 2018, 03:57:13 UTC | delete candecomp I didn't change candecomp. Only modified mps_cross | 19 September 2018, 17:33:45 UTC |
c0e6781 | Jean Kossaifi | 19 September 2018, 17:06:18 UTC | Import dtypes | 19 September 2018, 17:06:18 UTC |
87e50c8 | Jean Kossaifi | 19 September 2018, 16:22:45 UTC | pytorch backend: don't force default dtype | 19 September 2018, 16:22:45 UTC |
0e08f2b | Zongyi Li | 19 September 2018, 16:12:19 UTC | modify pytorch's tl.tensor(). delete int()/tensor_as_indices() | 19 September 2018, 16:12:19 UTC |
910a1c2 | Zongyi Li | 19 September 2018, 07:10:38 UTC | change int() to tensor_as_indices() and minor changes | 19 September 2018, 07:10:38 UTC |
f08b657 | Zongyi Li | 14 September 2018, 18:15:59 UTC | use solve instead of inverse, delete npr.seed() | 14 September 2018, 18:15:59 UTC |
6be1f6d | Zongyi Li | 08 September 2018, 21:28:00 UTC | Fix bugs for MxNet 1. wrapper Numpy's inverse for MxNet. 2. MxNet is not robust when vector has size 1. Add a base case for it. 3. MxNet is not robust for a/b. transpose b so that a and b are in the same shape. | 08 September 2018, 21:28:00 UTC |
4c4b32e | Zongyi Li | 03 September 2018, 21:31:50 UTC | candecomp_parafac.py should be in tensorly/decomposition instead of tensorly/contrib | 03 September 2018, 21:31:50 UTC |
bd9e00d | Zongyi Li | 03 September 2018, 21:27:14 UTC | add back candecomp_parafac.py from master | 03 September 2018, 21:27:14 UTC |
5f1dae9 | Zongyi Li | 03 September 2018, 03:57:13 UTC | delete candecomp I didn't change candecomp. Only modified mps_cross | 03 September 2018, 03:57:13 UTC |
5206d0d | Zongyi Li | 03 September 2018, 03:39:10 UTC | Merge branch 'tensorly-master' into TTcross Resolve the conflicts on pytorch and tensorflow backends. | 03 September 2018, 03:39:10 UTC |
3db755b | Zongyi Li | 03 September 2018, 03:36:48 UTC | Resolved merge conflict by incorporating both suggestions. | 03 September 2018, 03:36:48 UTC |
3cce636 | wumming | 30 August 2018, 20:45:19 UTC | clear STT | 30 August 2018, 20:45:19 UTC |
5157ba9 | wumming | 30 August 2018, 20:43:58 UTC | delete STT | 30 August 2018, 20:43:58 UTC |
4f73baf | wumming | 30 August 2018, 20:15:08 UTC | merge2 | 30 August 2018, 20:15:08 UTC |
e09b6e7 | Jean Kossaifi | 30 August 2018, 10:21:50 UTC | FIX: properly use svd fun provided | 30 August 2018, 10:21:50 UTC |
4737451 | Jean Kossaifi | 30 August 2018, 10:10:52 UTC | CPD: add svd parameter (default to 'numpy_svd') | 30 August 2018, 10:10:52 UTC |
3448786 | wumming | 30 August 2018, 06:40:08 UTC | merge | 30 August 2018, 06:40:08 UTC |
4fe5366 | Jean Kossaifi | 29 August 2018, 14:58:30 UTC | Merge pull request #70 from eriche7133/patch-1 FIX: init uses `==` instead `is` to check for init options | 29 August 2018, 14:58:30 UTC |
808daad | eriche7133 | 29 August 2018, 14:23:12 UTC | Update candecomp_parafac.py Changed "is" to "==" for comparing strings in the initialize_factors function. | 29 August 2018, 14:23:12 UTC |
f1e7e39 | wumming | 21 August 2018, 23:54:41 UTC | Doc for tensor-train decomposition | 21 August 2018, 23:54:41 UTC |
f28fd20 | Jean Kossaifi | 16 August 2018, 18:39:19 UTC | ENH: adds several options to compute truncated SVD | 16 August 2018, 18:39:19 UTC |
5551175 | Jean Kossaifi | 16 August 2018, 18:39:07 UTC | Update Makefile | 16 August 2018, 18:39:07 UTC |
4d24972 | Jean Kossaifi | 14 August 2018, 11:35:58 UTC | FIX/pytorch: to_numpy detaches variables if needed | 14 August 2018, 11:35:58 UTC |
c7b16c8 | wumming | 14 August 2018, 07:52:27 UTC | greedy maxvol | 14 August 2018, 07:52:27 UTC |