b1f9077 | Jean Kossaifi | 23 April 2019, 13:28:48 UTC | FIX kruskal_tensor Now kruskal_tensor should always be (weights, factors) | 23 April 2019, 13:28:48 UTC |
47028b7 | Jean Kossaifi | 22 April 2019, 17:07:29 UTC | Merge branch 'master' into tensor-classes | 22 April 2019, 17:07:29 UTC |
ce9cfaa | Jean Kossaifi | 18 April 2019, 14:11:50 UTC | Merge branch 'master' of https://github.com/tensorly/tensorly | 18 April 2019, 14:11:50 UTC |
5ec54f4 | Jean Kossaifi | 18 April 2019, 13:48:43 UTC | nn-tucker: FIX when only one mode provided | 18 April 2019, 13:48:43 UTC |
82831d8 | Jean Kossaifi | 15 April 2019, 09:14:03 UTC | Merge pull request #90 from Quansight/sparse-robust-pca Sparse robust pca | 15 April 2019, 09:14:03 UTC |
bbc9141 | Jean Kossaifi | 15 April 2019, 08:51:20 UTC | Minor refactor: svd_thresholding always returns a tensor | 15 April 2019, 08:51:20 UTC |
4a64976 | Jean Kossaifi | 11 April 2019, 16:28:48 UTC | Merge branch 'master' into sparse-robust-pca | 11 April 2019, 16:28:48 UTC |
d329bac | Jean Kossaifi | 10 April 2019, 21:51:29 UTC | Merge branch 'master' of https://github.com/tensorly/tensorly | 10 April 2019, 21:51:29 UTC |
3699d2d | Jean Kossaifi | 10 April 2019, 21:50:51 UTC | FIX README: sparse SVD fails on int array... | 10 April 2019, 21:50:51 UTC |
58d6e34 | Jean Kossaifi | 10 April 2019, 12:11:10 UTC | Merge pull request #107 from JeanKossaifi/Quansight-sparse-docs Add sparse docs | 10 April 2019, 12:11:10 UTC |
74ed476 | Jean Kossaifi | 10 April 2019, 12:00:05 UTC | Update sparse documentation. | 10 April 2019, 12:00:05 UTC |
65250b8 | Jean Kossaifi | 10 April 2019, 11:21:27 UTC | Merge branch 'sparse-docs' of git://github.com/Quansight/tensorly into Quansight-sparse-docs | 10 April 2019, 11:21:27 UTC |
3909404 | Jean Kossaifi | 05 April 2019, 10:51:50 UTC | Merge pull request #105 from JeanKossaifi/sparse-missing-values Sparse missing values for PARAFAC | 05 April 2019, 10:51:50 UTC |
82175d1 | Jean Kossaifi | 05 April 2019, 10:51:36 UTC | Merge branch 'master' into sparse-missing-values | 05 April 2019, 10:51:36 UTC |
39c1f27 | Jean Kossaifi | 05 April 2019, 10:47:27 UTC | Added reference | 05 April 2019, 10:47:27 UTC |
b201b5a | Jean Kossaifi | 03 April 2019, 11:00:07 UTC | Merge pull request #106 from JeanKossaifi/maximeguillaud-master Support for complex tensors in CP | 03 April 2019, 11:00:07 UTC |
8d8f035 | Jean Kossaifi | 31 March 2019, 00:09:32 UTC | Support for complex tensors in PARAFAC | 31 March 2019, 00:09:32 UTC |
12748bf | Jean Kossaifi | 31 March 2019, 00:09:27 UTC | Merge branch 'master' of git://github.com/maximeguillaud/tensorly into maximeguillaud-master | 31 March 2019, 00:09:27 UTC |
52b4ed1 | Jean Kossaifi | 29 March 2019, 20:15:42 UTC | Updated README | 29 March 2019, 20:15:42 UTC |
2a95291 | Jean Kossaifi | 29 March 2019, 20:14:27 UTC | Updated README Update tensorly paper reference. | 29 March 2019, 20:14:27 UTC |
0bd6e88 | Jean Kossaifi | 26 March 2019, 23:14:37 UTC | More efficient kruskal_to_tensor | 26 March 2019, 23:14:37 UTC |
a0bde0d | Jean Kossaifi | 26 March 2019, 23:14:11 UTC | Readibility of khatri-rao | 26 March 2019, 23:14:11 UTC |
429b4a7 | Aaron Meurer | 12 March 2019, 18:04:29 UTC | Use tl.kruskal_to_tensor Also remove an unused import. | 12 March 2019, 18:04:29 UTC |
d541246 | Aaron Meurer | 12 March 2019, 17:59:13 UTC | Merge branch 'master' into sparse-parafac-missing | 12 March 2019, 17:59:13 UTC |
d0976b2 | Jean Kossaifi | 12 March 2019, 11:10:40 UTC | Merge pull request #102 from JeanKossaifi/sparse_parafac Adding sparse parafac | 12 March 2019, 11:10:40 UTC |
7d60391 | Jean Kossaifi | 11 March 2019, 20:17:48 UTC | Added test for sparse parafac | 11 March 2019, 20:17:48 UTC |
61ea788 | Jean Kossaifi | 11 March 2019, 12:37:50 UTC | Tests for sparse tenalg | 11 March 2019, 12:37:50 UTC |
8a89e6a | Jean Kossaifi | 11 March 2019, 12:23:18 UTC | TYPO | 11 March 2019, 12:23:18 UTC |
dddc4ed | Jean Kossaifi | 11 March 2019, 12:19:43 UTC | Update Travis + test for sparse with numpy | 11 March 2019, 12:19:43 UTC |
85bab72 | Jean Kossaifi | 10 March 2019, 19:44:02 UTC | Sparse: minor refactor + test tenalg | 10 March 2019, 19:44:02 UTC |
181f83e | Jean Kossaifi | 10 March 2019, 19:00:45 UTC | Adding unfolding_dot_khatri_rao test + misc * wrap unfolding_dot_khatri_rao for sparse * added email for asmeurer | 10 March 2019, 19:00:45 UTC |
8ec55ae | Jean Kossaifi | 07 March 2019, 22:18:24 UTC | Remove unused variable | 07 March 2019, 22:18:24 UTC |
44d7608 | Jean Kossaifi | 07 March 2019, 22:17:44 UTC | Update authors list | 07 March 2019, 22:17:44 UTC |
ab257e6 | Jean Kossaifi | 07 March 2019, 22:09:16 UTC | Refactor mttkrp | 07 March 2019, 22:09:16 UTC |
4996a23 | Jean Kossaifi | 26 February 2019, 14:02:08 UTC | Merge branch 'sparse-parafac' of git://github.com/Quansight/tensorly into sparse_parafac | 26 February 2019, 14:02:08 UTC |
8206345 | Aaron Meurer | 21 February 2019, 02:28:13 UTC | Use tl.shape instead of tensor.shape | 21 February 2019, 02:28:13 UTC |
5d6290b | Aaron Meurer | 21 February 2019, 02:18:18 UTC | Use tl.reshape instead of tensor.reshape | 21 February 2019, 02:18:18 UTC |
d7f320a | Aaron Meurer | 20 February 2019, 23:48:46 UTC | More efficient mttkrp in parafac() It now computes along all ranks at once, while still computing in such a way so as to be sparse-safe (it does not create the full Khatri-Rao as an intermediate array). This is about 3x faster. | 21 February 2019, 00:05:32 UTC |
80e17b5 | Jean Kossaifi | 20 February 2019, 23:54:34 UTC | FIX: sparse imports | 20 February 2019, 23:54:34 UTC |
69db31b | Aaron Meurer | 20 February 2019, 19:16:45 UTC | Fix dot in the numpy backend It must use a.dot(b) for the numpy backend parafac to work properly with sparse inputs. | 20 February 2019, 19:16:45 UTC |
26ce3d1 | Aaron Meurer | 18 February 2019, 19:01:54 UTC | Use direct slicing instead of reshape to create a new axis | 18 February 2019, 19:01:54 UTC |
b491ef1 | Jean Kossaifi | 11 February 2019, 22:57:30 UTC | Merge branch 'sparse-parafac' of git://github.com/Quansight/tensorly into Quansight-sparse-parafac | 11 February 2019, 22:57:30 UTC |
1d54a35 | Aaron Meurer | 11 February 2019, 21:27:36 UTC | Use transpose directly instead of moveaxis in the mttkrp This provides a slight performance improvement. | 11 February 2019, 21:27:36 UTC |
ad0c2a6 | Jean Kossaifi | 06 February 2019, 12:50:37 UTC | FIX for solve in PyTorch backend | 06 February 2019, 12:50:37 UTC |
ddc74bf | Aaron Meurer | 05 February 2019, 20:01:33 UTC | Remove duplicate stack definition | 05 February 2019, 20:01:33 UTC |
cd88d3f | Aaron Meurer | 05 February 2019, 19:45:23 UTC | Fix issues with mxnet backend Some custom methods were not being used because of a bad merge conflict resolution. | 05 February 2019, 19:45:23 UTC |
bbe5336 | Aaron Meurer | 05 February 2019, 18:24:32 UTC | Merge branch 'master' into sparse-parafac | 05 February 2019, 18:24:32 UTC |
2d56a42 | Jean Kossaifi | 05 February 2019, 18:18:43 UTC | Merge pull request #95 from JeanKossaifi/backend-manager Backend refactor + sparse support for numpy | 05 February 2019, 18:18:43 UTC |
114e663 | Jean Kossaifi | 01 February 2019, 15:11:57 UTC | Test backend: remove needless try | 01 February 2019, 15:11:57 UTC |
6fd2894 | Jean Kossaifi | 30 January 2019, 23:58:40 UTC | Add back dynamical dispatch for backend methods Also bump version | 30 January 2019, 23:58:40 UTC |
d4da362 | Maxime Guillaud | 24 January 2019, 19:47:58 UTC | Make parafac() robust to complex tensors | 24 January 2019, 19:47:58 UTC |
99f2d6a | Jean Kossaifi | 14 January 2019, 15:55:22 UTC | FIX sparse backend | 14 January 2019, 15:55:22 UTC |
87dc6d7 | Maxime Guillaud | 13 January 2019, 09:03:09 UTC | Make norm() from numpy backend robust to complex tensors | 13 January 2019, 09:03:09 UTC |
b742c47 | Jean Kossaifi | 10 January 2019, 20:44:06 UTC | FIX contraction tests | 10 January 2019, 20:44:06 UTC |
478d832 | Jean Kossaifi | 10 January 2019, 18:01:10 UTC | Fix the sparse backend | 10 January 2019, 18:01:10 UTC |
c10f44e | Jean Kossaifi | 08 January 2019, 21:55:22 UTC | Merge branch 'master' into backend-manager | 08 January 2019, 21:55:22 UTC |
e1361b8 | Jean Kossaifi | 08 January 2019, 15:55:14 UTC | FIX: forgotten backend registration | 08 January 2019, 15:55:14 UTC |
591f5b7 | Jean Kossaifi | 02 January 2019, 16:16:11 UTC | Revert to functions | 02 January 2019, 16:16:11 UTC |
91f85a5 | Jean Kossaifi | 28 December 2018, 12:10:37 UTC | Refactor + Thread Local + context manager | 28 December 2018, 12:10:37 UTC |
7e69725 | Jean Kossaifi | 25 December 2018, 21:57:43 UTC | update | 25 December 2018, 21:57:43 UTC |
247917c | Jean Kossaifi | 23 December 2018, 23:37:01 UTC | TYPO | 23 December 2018, 23:37:01 UTC |
f04806e | Jean Kossaifi | 23 December 2018, 23:32:26 UTC | MXNET: fix reshape with empty shape | 23 December 2018, 23:32:26 UTC |
05b6b2f | Jean Kossaifi | 23 December 2018, 23:13:49 UTC | Adds tensor contraction | 23 December 2018, 23:13:49 UTC |
3580c8f | Jean Kossaifi | 23 December 2018, 20:57:48 UTC | BackendManager draft | 23 December 2018, 20:57:48 UTC |
3cbf815 | Aaron Meurer | 19 December 2018, 21:41:27 UTC | 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 | Aaron Meurer | 17 December 2018, 23:04:09 UTC | Add information on masks (tensorly/tensorly#91) | 17 December 2018, 23:04:09 UTC |
5c81d44 | Anthony Scopatz | 13 December 2018, 15:28:21 UTC | Merge branch 'sparse-parafac' into sparse-parafac-missing | 13 December 2018, 15:28:21 UTC |
12e1765 | Anthony Scopatz | 13 December 2018, 15:27:45 UTC | Merge branch 'sparse' into sparse-parafac | 13 December 2018, 15:27:45 UTC |
02a0942 | Anthony Scopatz | 13 December 2018, 15:24:27 UTC | Merge branch 'sparse' into sparse-docs | 13 December 2018, 15:24:27 UTC |
895a805 | Anthony Scopatz | 13 December 2018, 15:22:33 UTC | Merge branch 'sparse' of github.com:Quansight/tensorly into sparse | 13 December 2018, 15:22:33 UTC |
19d538b | Anthony Scopatz | 13 December 2018, 15:12:03 UTC | Merge branch 'sparse' into sparse-robust-pca | 13 December 2018, 15:12:03 UTC |
952b684 | Anthony Scopatz | 13 December 2018, 15:11:01 UTC | some minor sparse fixes | 13 December 2018, 15:11:01 UTC |
3c8fec9 | Hameer Abbasi | 13 December 2018, 11:49:53 UTC | Wrap non-negative PARAFAC for the sparse back-end. | 13 December 2018, 11:49:53 UTC |
4922c55 | Hameer Abbasi | 13 December 2018, 11:49:27 UTC | Fix typo in non-negative PARAFAC kwarg. | 13 December 2018, 11:49:27 UTC |
ea4ad8f | Aaron Meurer | 12 December 2018, 23:05:30 UTC | Correct kruskal_to_tensor() with both weights and a mask | 12 December 2018, 23:05:30 UTC |
3cfd3e4 | Aaron Meurer | 12 December 2018, 22:51:40 UTC | 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 | Aaron Meurer | 12 December 2018, 22:42:45 UTC | Fix nonnegative -> non_negative | 12 December 2018, 22:42:45 UTC |
7a7ba8a | Aaron Meurer | 12 December 2018, 21:29:24 UTC | 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 | Aaron Meurer | 12 December 2018, 21:29:12 UTC | Add broadcast_to to the backends | 12 December 2018, 21:29:12 UTC |
f8427ef | Anthony Scopatz | 12 December 2018, 20:06:52 UTC | Merge branch 'sparse' into sparse-robust-pca | 12 December 2018, 20:06:52 UTC |
ae0f5eb | Anthony Scopatz | 12 December 2018, 20:06:12 UTC | Merge branch 'sparse' into sparse-parafac | 12 December 2018, 20:06:12 UTC |
28ee1fc | Anthony Scopatz | 12 December 2018, 20:05:18 UTC | Merge branch 'sparse' into sparse-docs | 12 December 2018, 20:05:18 UTC |
1f1c500 | Anthony Scopatz | 12 December 2018, 20:03:59 UTC | remove sparse tensor | 12 December 2018, 20:03:59 UTC |
218bcac | Aaron Meurer | 11 December 2018, 21:34:11 UTC | 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 | Aaron Meurer | 11 December 2018, 20:45:23 UTC | Fix some text in a comment | 11 December 2018, 20:45:23 UTC |
7a8f205 | Anthony Scopatz | 11 December 2018, 18:45:05 UTC | convert output of svd_threshold() to orginal tensor type, as needed. | 11 December 2018, 18:45:05 UTC |
492455f | Aaron Meurer | 10 December 2018, 22:19:44 UTC | Add non_negative_parafac to the sparse backend | 10 December 2018, 22:19:44 UTC |
66d66a0 | Aaron Meurer | 10 December 2018, 22:10:02 UTC | Nonnegative PARAFAC supports sparse now as well | 10 December 2018, 22:10:02 UTC |
15ed539 | Aaron Meurer | 10 December 2018, 21:26:07 UTC | 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 | Aaron Meurer | 10 December 2018, 20:45:34 UTC | tucker should be partial_tucker | 10 December 2018, 20:45:34 UTC |
d0be36f | Anthony Scopatz | 10 December 2018, 19:43:04 UTC | fix typo: U -> V | 10 December 2018, 19:43:04 UTC |
2312d75 | Aaron Meurer | 10 December 2018, 19:02:05 UTC | Add an example showing the parafac decomposition with sparse | 10 December 2018, 19:02:05 UTC |
a5386f8 | Aaron Meurer | 10 December 2018, 18:40:46 UTC | Remove cruft | 10 December 2018, 18:40:46 UTC |
562ee2b | Aaron Meurer | 10 December 2018, 18:39:08 UTC | Add some more docs about the sparse backends | 10 December 2018, 18:39:08 UTC |
75cc845 | Aaron Meurer | 10 December 2018, 18:28:25 UTC | Remove sparse_backend from the development_guide index | 10 December 2018, 18:28:25 UTC |
d8cfd52 | Aaron Meurer | 10 December 2018, 18:27:56 UTC | Fix filename spelling | 10 December 2018, 18:27:56 UTC |
08077ba | Aaron Meurer | 10 December 2018, 18:07:40 UTC | Add the sparse backend docs to the index | 10 December 2018, 18:07:40 UTC |
b632cc2 | Aaron Meurer | 10 December 2018, 18:07:17 UTC | Move the sparse backend docs from the development guide to the user guide | 10 December 2018, 18:07:17 UTC |
f90b049 | Aaron Meurer | 10 December 2018, 18:02:55 UTC | Make the docs always builds with the git version of tensorly | 10 December 2018, 18:02:55 UTC |
ee17745 | Aaron Meurer | 07 December 2018, 20:21:26 UTC | 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 |