Hacker News new | ask | show | jobs
by esperent 1386 days ago
How would you represent a tensor in code, if not by using a multidimensional array?

Ok, you could use a flat array and index into it depending on the dimensions of the tensor (as is often done for matrices), but that's really just a way of saving ram or cpu cycles rather than a different representation.

1 comments

The point is that just because something can be represented as the result of malloc(), doesn't make the data structure the same as that thing. That is, what is:

float* x = malloc(width*height*channels*sizeof(float))

Is x an "Image"? Is x a "tensor"? Is x a "raster"?

For tensors specifically, if x is not itself the product of vector spaces, then it's not a tensor.

tl;dr: While every rank-N tensor can be represented with multidimensional arrays, not all multidimensional arrays are rank-N tensors.

They are isomorphic. That's as close as equal you're ever gonna get - it's turtles all the way down.