https://github.com/tensorly/tensorly
moments.py
import tensorly as tl
from . import batched_outer
def higher_order_moment(tensor, order):
"""Computes the Higher-Order Momemt
Parameters
----------
tensor : 2D-tensor -- or ND-tensor
matrix of size (n_samples, n_features)
or tensor of size(n_samples, D1, ..., DN)
order : int
order of the higher-order moment to compute
Returns
-------
tensor : moment
if tensor is a matrix of size (n_samples, n_features),
tensor of size (n_features, )*order
"""
moment = tensor
for _ in range(order - 1):
moment = batched_outer(moment, tensor)
return tl.mean(moment, axis=0)