Lesson 1

Welcome to your first TensorFlow lesson! Today we're diving into the basics of **Tensors**, the core components of TensorFlow and deep learning. Tensors are powerful mathematical entities used to represent data across a wide range of dimensions, making them crucial for machine learning and neural networks.

Let's kickstart our journey by learning how to create and work with tensors. This will be our building block for mastering machine learning with TensorFlow.

Great, now that we understand a bit about tensors, let's dive into `TensorFlow`

. Simply put, `TensorFlow`

is a free, open-source software library for high-performance numerical computation. It's flexible architecture allows easy deployment of computation across multiple platforms (CPUs, GPUs, TPUs), and from desktops to clusters of servers to mobile and edge devices. TensorFlow was originally developed by researchers and engineers working on the Google Brain team within Google's Machine Intelligence Research organization to conduct machine learning and deep neural networks research.

One of the main data structures `TensorFlow`

uses to operate is the tensor — hence, TensorFlow!

Before we proceed, you need to have TensorFlow installed. You can install it using `pip`

by running the following command:

Plain text`1pip install tensorflow`

However, you don't need to worry about this in the CodeSignal environment, as all necessary libraries, including TensorFlow, are already set up.

Let's move on to how we can create tensors.

In `TensorFlow`

, we can easily create tensors using various functions, one of which is `tf.constant()`

. This function allows us to create a tensor with fixed values. It requires at least one argument, which will be the data we are passing in. Additionally, we can also specify the datatype of the elements in the tensor.

In the following code, we use `tf.constant()`

to create a 2x3 matrix with integer values:

Python`1import tensorflow as tf 2 3# Creating a constant tensor 4tensor_example = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.int32) 5 6print(tensor_example)`

The output will look something like this:

Plain text`1<tf.Tensor: shape=(2, 3), dtype=int32, numpy= 2array([[1, 2, 3], 3 [4, 5, 6]], dtype=int32)>`

Here, `tf.constant()`

created a tensor object with a shape of `(2,3)`

and a datatype `int32`

.

Now that we know how to create a Tensor, let's talk about its properties. Each Tensor has two important properties: a shape and a datatype.

The shape of a tensor defines its number of dimensions and the size of each dimension. The datatype of a tensor indicates the kind of data the tensor is holding.

We can access these properties using the `.shape`

and `.dtype`

attributes.

Here's a code example:

Python`1import tensorflow as tf 2 3# Creating a constant tensor 4tensor_example = tf.constant([[1, 2, 3], [4, 5, 6]], dtype=tf.int32) 5 6# Displaying basic properties of tensors 7print(f"Shape of tensor: {tensor_example.shape}") 8print(f"Data type of tensor: {tensor_example.dtype}")`

The output of the above code will be:

Plain text`1Shape of tensor: (2, 3) 2Data type of tensor: <dtype: 'int32'>`

This output indicates that our `tensor_example`

has a shape of 2x3, meaning it is a 2-dimensional tensor with sizes 2 and 3 in each dimension, respectively. Additionally, the tensor's datatype is `int32`

, which specifies that the contained values are 32-bit integers.

TensorFlow tensors can be easily converted to NumPy arrays, which can be useful for printing, manipulation, or using NumPy functions. The `.numpy()`

method allows us to convert a tensor to a NumPy array.

Here's how we can do it:

Python`1# Converting the tensor to a NumPy array 2numpy_array = tensor_example.numpy() 3print(f"NumPy array:\n{numpy_array}")`

The output will be:

Plain text`1NumPy array: 2[[1 2 3] 3 [4 5 6]]`

This demonstrates how easy and seamless it is to convert TensorFlow tensors to NumPy arrays, enabling us to leverage the extensive functionalities of NumPy alongside TensorFlow.

In this lesson, our focus was understanding tensors and how to create and manipulate them using `TensorFlow`

. By now you should understand what a tensor is, be able to create a tensor using `TensorFlow`

and access and interpret their properties.

We've learnt the fundamentals, now it's time to get more hands-on exposure with tensors in the upcoming exercises. Practice will reinforce your understanding and equip you with the skills to use `TensorFlow`

and tensors with ease. Your journey has just begun. Let's keep exploring!