tensorr: sparse tensors in R
tensorr provides methods to manipulate and store sparse tensors. Tensors are multi-dimensional generalizations of matrices (two dimensional) and vectors (one dimensional).
It has three main goals:
- Provide an efficient format to store sparse tensors in R.
- Provide standard tensor operations such as multiplication and unfolding.
- Provide standard tensor decomposition techniques such as CP and Tucker.
The development version of tensorr is available on github.
See the introduction vignette for a comprehensive overview. To create a sparse tensor you have to provide the non-zero values, subscripts to the non-zero values, and the overall dimensions of the tensor.
library(tensorr) subs <- list(c(1,1,1), c(1,1,2)) vals <- c(10, 20) dims <- c(2,2,2) x <- sptensor(subs, vals, dims) x #> <A 2x2x2 sparse tensor with 2 non-zero entries> #> subs: <1,1,1> <1,1,2> #> vals: 10 20
Many of the dense and sparse implementation ideas were adpated from:
- B. W. Bader and T. G. Kolda. Algorithm 862: MATLAB tensor classes for fast algorithm prototyping, ACM Transactions on Mathematical Software 32(4):635-653, December 2006.
- B. W. Bader and T. G. Kolda. Efficient MATLAB computations with sparse and factored tensors, SIAM Journal on Scientific Computing 30(1):205-231, December 2007.
For a review on tensors, see:
- T. G. Kolda and B. W. Bader, Tensor Decompositions and Applications, SIAM Review 51(3):455-500, September 2009