cohenjer
cohenjer
I really love this issue @yngvem ! MTTKRP is a big topic, in fact there are several ways to write it (as tensor-vector contractions, as tensor - matrix product +...
Nice catch @MarieRoald! I can also think of another option: check at the first iteration if A is all-negative before clipping. If this is the case, - print a warning...
Indeed it is probably a interesting feature. I think something very similar is implemented, for instance, in tensorlab v3 and later, where a tensor may be stored as a structured...
I have made a first version of an optimization module in the tensorly.contrib of [my tensorly fork](https://github.com/cohenjer/tensorly). For now, I basically copied the ALS implementation of tl.decomp.parafac_candecomp.parafac into a tl.contrib.optim.optim_tensor_ls,...
Yes I agree with you, solution (2) seems more appealing. I think (1) would be formally nice, but practically either slow or difficult to optimize in terms of computation performance....
Ok here is a tentative API skeleton for such a class. I think now is also a good time to add the discussion around missing data #4 and fixed modes...
Hi Jean, I'll be working on implementing the Parafac class and probably a few algorithms for unconstrained (Conjugate gradient, ALS with line search) and nonnegative CPD (HALS, a first version...
Some demo: https://github.com/cohenjer/tensorly/blob/master/tensorly/contrib/optimization/tests/test_class_parafac.ipynb Should I open a pull request ? There is still lots to do (in particular, there is a large amount of work to do in rewriting some...
I agree with you @JeanKossaifi; at the end of the day I wanted to signal that the error message is not very instructive. Updating the doc, and even the existence...
So, supposing you are using an alternating procedure such as ALS, and supposing you are regularizing with the l1 norm of some factor (lets suppose you are regularizing only one...