Hacker News new | ask | show | jobs
by ogoparootbbo 1380 days ago
I think TPUs and Tensorflow misname multidimension arrays as tensors and don;t actually use tensors. It could be the case I'm being a stickler https://math.stackexchange.com/questions/1134809/are-there-a...
3 comments

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.

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.
There's a certain amount of ambiguity about the term "tensor" and what it means in any given context. I think there was a fairly highly discussed article or essay here on HN a couple of years ago where readers seemed to realize people were using the term in similar, but not identical ways.
In physics we say that an object is a tensor if it transforms like a tensor. Self-referential, yes, but hints at the fact that not all possible multidimensional arrays are tensors.
This is talking about tensors in AI.

I don't know much about tensors used in AI or in physics. But I do know quite a bit about mathematical constructs being used across different domains and very often the definition is subtly different, so you cannot make a statement about the definition of tensors in physics and assume it'll hold for tensors in AI.