Thanks to theidioms.com

# TensorFlow 2.0 for Deep Learning (Course IX)

## TensorFlow 2.0 for Deep Learning (Course IX)

### Tensor and Tensor Operations in TensorFlow 2.0

In this chapter, you will get introduced to tensors and their operations in TensorFlow 2.0. A tensor is a vector (or matrix) of n-dimensions where all elements have the same data type. In other words, a tensor is a collection of feature vectors (i.e., arrays) of n-dimensions. Some of the examples of tensors are:   TensorFlow 2.0 supports the following 4 types of tensors: Variable, Constant, Placeholder and SparseTensor. Tensor objects will have the following three properties:

• Data (numpy)
• Dimension (shape)
• Data type (dtype)

Except for the Variable, all other tensor types are immutable, i.e., their value will not change during opertions. Here, we will focus primarily on the Variable and Constant tensors.

#### Creating Tensors in TensorFlow 2.0

While creating a tensor object, we need to specify the Data and Data Type.

var = tf.Variable([1, 2], tf.int32)             # Variable Tensor of data type int32
const = tf.constant([1.1, 2.2], tf.float64)     # Constant Tensor of data type float64

print(f'Variable: {var}')                       # Print Variable
print(f'Contant: {const}')                      # Print Constant

print(f'\nData of Variable: {var.numpy()}')     # Print Data of Variable as NumPy array
print(f'Data of Constant: {const.numpy()}')     # Print Data of Constant as NumPy array

print(f'\nShape of Variable: {var.shape}')      # Print Shape of Variable as a tuple
print(f'Shape of Constant: {const.shape}')      # Print Shape of Constant as a tuple

print(f'\nData type of Variable: {var.dtype}')  # Print data type of Variable
print(f'Data type of Constant: {const.dtype}')  # Print data type of Constant
Variable: <tf.Variable 'Variable:0' shape=(2,) dtype=int32, numpy=array([1, 2], dtype=int32)>
Contant: [1.1 2.2]

Data of Variable: [1 2]
Data of Constant: [1.1 2.2]

Shape of Variable: (2,)
Shape of Constant: (2,)

Data type of Variable: <dtype: 'int32'>
Data type of Constant: <dtype: 'float64'>


#### Tensor Operations in TensorFlow 2.0

Various arithmetic operations such as addition, subtraction, multiplication, etc. can be performed on tensors.

# Taking two tensors of type int32
tensor_a = tf.Variable([[1,2]], dtype = tf.int32)
tensor_b = tf.Variable([[3, 4]], dtype = tf.int32)

# Arithmetic Operations

tensor_sub = tf.subtract(tensor_b, tensor_a)        # b - a
print(f'Subtraction: {tensor_sub}')

tensor_mul = tf.multiply(tensor_a, tensor_b)        # a * b
print(f'Multiplication: {tensor_mul}')

tensor_div = tf.divide(tensor_a, tensor_b)          # a / b
print(f'Division: {tensor_div}')

tensor_pow = tf.pow(tensor_a, tensor_b)             # a ^ b
print(f'Power: {tensor_pow}')
Addition: [[4 6]]
Subtraction: [[2 2]]
Multiplication: [[3 8]]
Division: [[0.33333333 0.5       ]]
Power: [[ 1 16]]


Tensors can also be reshaped similar to NumPy arrays.

tensor_a = tf.ones((6 ,6), dtype = tf.int32)  # Create a tensor of shape (6, 6) with all values 1

print(f'Initial Tensor:\n {tensor_a.numpy()}')
print(f'Initial Shape: {tensor_a.shape}')

# Reshape the tensor into shape (9, 4)
reshaped_a = tf.reshape(tensor_a, (9, 4))
print(f'\nReshaped Tensor:\n {reshaped_a.numpy()}')
print(f'Reshaped Shape: {reshaped_a.shape}')
Initial Tensor:
[[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]
[1 1 1 1 1 1]]
Initial Shape: (6, 6)

Reshaped Tensor:
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]
[1 1 1 1]
[1 1 1 1]
[1 1 1 1]
[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
Reshaped Shape: (9, 4)

This is it for the basics of Tensors and Tensor Operations in TensorFlow 2.0. In the next chapter, you will learn to perform Linear Regressing using TensorFlow 2.0. 