# Chapter. Tensor ### Represents one of the outputs of an Operation ##### What is Tensor? Tensor holds a multi-dimensional array of elements of a single data type which is very similar with numpy's ndarray. When the dimension is zero, it can be called a scalar. When the dimension is 2, it can be called a matrix. When the dimension is greater than 2, it is usually called a tensor. If you are very familiar with numpy, then understanding Tensor will be quite easy. Tensoræ¯ä¸ä¸ªå ·æå䏿°æ®ç±»åçå¤ç»´æ°ç»å®¹å¨ï¼å½ç»´åº¦ä¸ºé¶æ¶ï¼å¯ä»¥ç§°ä¹ä¸ºæ éï¼å½ç»´åº¦ä¸º2æ¶ï¼å¯ä»¥ç§°ä¹ä¸ºç©éµï¼å½ç»´åº¦å¤§äº2æ¶ï¼é常称ä¹ä¸ºå¼ éãTensorçæ°æ®ç»æé常类似äºnumpyéçndarrayãå¦æä½ å¯¹numpyé常çæçè¯ï¼é£ä¹å¯¹Tensorççè§£ä¼ç¸å½å®¹æã ##### How to create a Tensor? There are many ways to initialize a Tensor object in TF.NET. It can be initialized from a scalar, string, matrix or tensor. å¨TF.NET䏿å¾å¤ç§æ¹å¼å¯ä»¥åå§åä¸ä¸ªTensor对象ãå®å¯ä»¥ä»ä¸ä¸ªæ éï¼å符串ï¼ç©éµæå¼ 鿥åå§åã ```csharp // Create a tensor holds a scalar value var t1 = new Tensor(3); // Init from a string var t2 = new Tensor("Hello! TensorFlow.NET"); // Tensor holds a ndarray var nd = new NDArray(new int[]{3, 1, 1, 2}); var t3 = new Tensor(nd); Console.WriteLine($"t1: {t1}, t2: {t2}, t3: {t3}"); ``` ##### Data Structure of Tensor TF uses column major order. If we use NumSharp to generate a 2 x 3 matrix, if we access the data from 0 to 5 in order, we won't get a number of 1-6, but we get the order of 1, 4, 2, 5, 3, 6. a set of numbers. TF éç¨çæ¯æåå卿¨¡å¼ï¼å¦ææä»¬ç¨NumSharp产çä¸ä¸ª2 X 3çç©éµï¼å¦ææé¡ºåºä»0å°5è®¿é®æ°æ®çè¯ï¼æ¯ä¸ä¼å¾å°1-6çæ°åçï¼èæ¯å¾å°1ï¼4ï¼ 2ï¼ 5ï¼ 3ï¼ 6è¿ä¸ªé¡ºåºçä¸ç»æ°åã ```cs // Generate a matrix:[[1, 2, 3], [4, 5, 6]] var nd = np.array(1f, 2f, 3f, 4f, 5f, 6f).reshape(2, 3); // The index will be 0 2 4 1 3 5, it's column-major order. ```  