## Introduction to TensorFlow Transpose

Tensorflow transpose is the method or function available in the Tensorflow library or package of the Python Machine Learning domain. Whenever we pass the input to the tensorflow model, this function helps us evaluate the transpose of the provided input. In this article, we will have a detailed look at the tensorflow transpose function, how it works, the parameters needed to pass to it, the use of the transpose function, and also have a look at its implementation along with the help of an example. Lastly, we will conclude our statement.

### What is TensorFlow transpose?

Tensorflow transpose is the function provided in the tensorflow, which helps to find out the transpose of the input. Transpose means to flip or reverse the value. For example, IF the matrix is the input, then the transpose of the matrix input will provide the flipping of the values along the diagonal. This causes the switch in the columns and rows of the matrix.

The location of the tensorflow transpose function is found in tensorflow/python/ops/array_ops.py. In tensorflow, the transpose function can be used by using the below-mentioned syntax –

`sampleTF.transpose ( sampleValue, perm = None , name = ‘transpose’ , conjugate = False)`

**Parameters**

In the above syntax, the terminologies involved will be described in the below list –

- sampleValue – It is the input value that is to be transposed. In case of the value of the conjugate is set to true, then the sampleValue dtype can have the value of either complex128 or complex64, and the sampleValue is the transposed and conjugated value.
- Perm – It is the parameter that is responsible for allowing the dimensions of the input.
- Returned Output – The output of the transpose function will be the matrix as per the dimensions permitted by perm[n] and corresponding to the dimensions of the input matrix. By default, the perm value is considered to be (m-1….0) when not specified. Here the value of the m is nothing but the rank of the matrix of tensorflow provided in the input. The default transpose operations are carried out on a 2-dimensional input tensor provided.

### How does tensorflow transpose works?

The working of transpose is similar to the flipping of the row and column values in a diagonal manner. Let us consider one sample input matrix –

[ 21, 22, 23],[ 24, 25, 26],

[ 27, 28, 29],

[30, 31, 32]

Will be transposed to –

[ 21, 24, 27, 30],[ 22, 25, 28, 31],

[ 23, 26, 29, 32]

We can observe that the rows and columns are interchanged.

### Tensorflow Transpose Function

Tensorflow transpose function allows you to flip the tensor matrix passed as the input. This function is defined inside the file whose directory is inside the path tensorflow/python/ops/array_ops.py. If you pass a matrix that contains the dimension [m, n] where m and are the number of rows and columns, respectively. Then the transpose function will flip the tensor’s input matrix, leading to the interchange of rows and columns by flipping them through a diagonal. The output matrix will be diagonal [n, m].

The transpose function can be called by using the syntax –

`sampleTF.transpose(sampleValue, perm = None, name = ‘transpose’, conjugate = False)`

whose parameters and terminologies are already described previously.

### TensorFlow Transpose Examples

Let us consider one example of a python program where we will be implementing and using the transpose function –

Let us understand how the transpose of the input tensor works considering one sample matrix of tensorflow for input. Suppose that we call the transpose function of tensorflow by using the below statement –

`sample = sampleTFObject. Constant ( [[11,12,13], [14,15,16]])`

sampleTFObject. Transpose (sample)

OR

sampleTFObject. Transpose (sample, perm = [1,0])

The output of either of the above two statements will lead to the conversion of the sample matrix to the following where the rows and columns are interchanged –

`[[11,14], [12, 15], [13, 16]]`

Let us consider one example where our input matrix will be a complex matrix involving imaginary numbers. If we set the property of conjugate to true, then it will provide us the transpose of the input matrix –

`Sample = sampleTFObject. Constant ([[11 + 11j, 12 + 12j, 13 + 13j],`

[14 + 14j, 15 + 15j, 16 + 16j]])

sampleTFObject. Transpose (sample, conjugate = True)

The output of the above command will lead to the following transpose –

`# [[11 - 11j, 14 - 14j],`

# [12 - 12j, 15 - 15j],

# [13 - 13j, 16 - 16j]]

Let us consider one more example where we will use perm, which helps specify the permutation of the dimensions of the tensor matrix.

`sample = sampleTFObject .constant([[[ 21, 22, 23],`

[ 24, 25, 26]],

[[ 27, 28, 29],

[30, 31, 32]]])

We have taken a matrix of 0 dimensions which is the shorthand of ‘linalg.transpose’.

Perm value will be [0, 2, 1]

`sampleTFObject. transpose (sample, perm=[0, 2, 1])`

[[[21, 24],

[22, 25],

[23, 26]],

[[27, 30],

[28, 31],

[29, 32]]]

In the above example that we considered, the sampleTFObject is the tensor object, and a perm is the permutation of the required and specified dimensions of the sample. A name can be any name of the object we want to perform. The conjugate parameter will be an optional Boolean value. If we set the value of this parameter to true, then the equivalent mathematical will be to the sampleTFObject. conj (sampleTFObject. transpose (input)). The returned value will be a tensor that is completely transposed and flipped.

The compatibility of NumPy transpose with TensorFlow transpose is not supporting the stride functionality. The numpy transpose is the efficient operation for memory and has constant time as it gives the same output with the new view of the passed data. It just adjusts the strides in the output view.

### Conclusion

The transpose function of tensorflow helps flip the input tensor, leading to the matrix’s interchange of rows and columns.

### Recommended Articles

This is a guide to TensorFlow Transpose. Here we discuss the Introduction, What and How does tensorflow transpose works? Examples with code implementation. You may also have a look at the following articles to learn more –