PyTorch is the framework with the application for building and training Machine Learning (ML) algorithms using Python programming language. ML algorithms need data for their training and data should be properly structured to train the model efficiently. Tensors are the structures to store the data and they are saved in the arrays in the numpy without the knowledge about the working of the ML models.

Table of Content

This guide explains the following sections:

How to Convert List to Tensor in PyTorch

PyTorch allows the user to create the tensors to store data efficiently so it can be extracted whenever required to perform some analysis. Sometimes, the user needs to use the lists as the tensors as the built-in tensors don’t allow some values to be generated using them. To avoid these complications, the user can create values in the list and then easily convert them to tensors and train the machine accordingly.

To learn the process of converting the lists to the tensors using the PyTorch framework, simply follow this guide, and the Notebook with the code is attached here:

Prerequisites

Before getting into the main process of converting the list to a tensor, it is required to perform the following prerequisites and if any of the following steps are done, simply skip it:

  • Get Environment for Python
  • Install Modules
  • Import Libraries

Get Environment for Python

To run the code for converting the list to tensors, visit the official website of the Google Colab and click on the “New Notebook” button to open an environment for running the Python script:

Install Modules

On the Python Notebook, install the numpy to build the multi-dimensional arrays and torch for getting the tensors, if they are yet to be installed:

pip install numpy
pip install torch

Install both frameworks separately as displayed in the following screenshot:

Import Libraries

Once the torch is installed successfully, simply import its library using the following code:

import torch

After importing the torch library, use the following code to get its version:

print(torch.__version__)

The following screenshot displays the installed version of the torch which is 2.1.0+cu118:

Method 1: Using tensor() Function 

After completing all the prerequisites, simply head towards the process of converting the list to the tensor using the tensor() method and following the steps below:

  • Step 1: Creating a List
  • Step 2: List to Tensor
  • Step 3: Printing the Tensor

Step 1: Creating a List

Create a variable to initialize it with a list which is a multi-dimensional list:

list_pytorch = [[1,7,3,2],[5,6,0,8],[5,10,11,4]]

To confirm that the variable contains the list, simply execute the following code and the output will display its type:

type(list_pytorch)

Step 2: List to Tensor

Now, convert the list to the tensor using the tensor() method with the variable name as its argument and initialize another variable with the tensor:

pytorch_tensor = torch.tensor(list_pytorch)

Confirm that the variable contains the tensor which is converted from a list by using the following code:

type(pytorch_tensor)

The following screenshot confirms that the tensor is created from the list:

Step 3: Printing the Tensor

Get the data type of the tensor variable by calling the “dtype” with the name of the variable:

pytorch_tensor.dtype

Print the tensor by calling the print() method with the name of the variable in its argument:

print(pytorch_tensor)

The list has been converted to the tensor successfully as the following snippet displays the contents:

Method 2: Using FloatTensor() Function 

The second approach to converting the list in Python to the tensor is using the FloatTensor() method and the following sections explain it:

  • Step 1: Creating a Floating List
  • Step 2: List to Tensor
  • Step 3: Printing the Tensor

Step 1: Creating a Floating List

Create a list with the floating points and assign it to the variable called floatinglist to make the understandability better:

floatinglist = [[1.5,2.7,3.1,4.2],[5.3,6.2,7.0,8.1],[9.5,10.3,11.7,12.4]]

Get the type of the list using the name of the variable in the argument of the type() method:

type(floatinglist)

Step 2: List to Tensor

Convert the list to the tensor using the FloatTensor() method and the name of the variable as its argument:

Ftensor = torch.FloatTensor(floatinglist)

Confirm that the list is converted to the tensor by calling the type() method:

type(Ftensor)

The list has been successfully converted to the tensors as it is displayed in the screenshot:

Step 3: Printing the Tensor

This code is used to check the data type of the values stored in the tensor:

Ftensor.dtype

Get the values stored in the tensor using the following code:

print(Ftensor)

Method 3: Using as_tensor() Function

The next method to convert the list to the tensor is using the as_tensor() function and the following section implements it:

  • Step 1: Creating a List
  • Step 2: List to Tensor
  • Step 3: Printing the Tensor

Step 1: Creating a List

Build a simple list to be stored in the variable which can be used to access the list and get the type of the list as well:

pylist = [5, 4, 3, 2, 1]

print(type(pylist))

Step 2: List to Tensor

Use the as_torch() method to convert the list into the tensor and initialize the tensor in the “pytensor” variable:

pytensor = torch.as_tensor(pylist)

Now, get the type of the values stored in the pytensor variable to confirm that it is converted to the tensor form a list:

print(type(pytensor))

Step 3: Printing the Tensor

Print the values of the tensor using the following code:

print(pytensor)

Method 4: Using from_numpy() Function 

Another method to convert the list to the tensor is by taking the indirect route which is using the numpy arrays. The list can be converted into arrays and then the arrays can be converted to tensors using the from_numpy() method which is explained below:

  • Step 1: Importing “numpy” Library
  • Step 2: List to Array & Array to Tensor
  • Step 3: Printing the Tensor

Step 1: Importing “numpy” Library

To use the from_numpy() method, we need to import the numpy library as np and then use it to get the job done:

import numpy as np

Step 2: List to Array & Array to Tensor

Using the list from the previous section and converting it into the array which is stored in the py_array variable. After that, convert the array to the tensor and store it in the py_tensor variable as the Python code is written below:

py_array = np.array(pylist)
py_tensor = torch.from_numpy(py_array)

Getting the type of the data stored in the py_tensor to validate that the list is successfully converted to the tensor:

print(type(py_tensor))

Step 3: Printing the Tensor

Print the contents of the variable to make sure that the content of the tensor matches that of list’s created earlier:

print(py_tensor)

That’s all about the process of converting the list of the Python to the tensor in PyTorch.

Bonus Tip: Creating Tensor in PyTorch

The user can simply create their tensor provided by the PyTorch framework and the following sections explain the process:

Using a torch.empty() Function

Build the tensor variable and store the values in 3 rows and 4 columns by providing the arguments in the torch.empty() method:

tensor = torch.empty(3, 4)

Print the type of the values stored in the tensor variable:

print(type(tensor))

Also, print the values stored in the tensor variable:

print(tensor)

Using torch.zeros() Function

Store all zeros in the tensor structure by calling the torch.zeros() method with the dimensions as the argument of the method:

zeros = torch.zeros(2, 3)
print(zeros)

Using torch.ones() Function

Store all ones in the tensor and print it on the screen by using the following code:

ones = torch.ones(2, 3)
print(ones)

That’s all about it.

Conclusion

To convert the list to tensor in PyTorch, the framework offers multiple methods like tensor(), FloatTensor(), and as_tensor() methods which are considered as the direct approaches. The indirect approach to converting a list to a tensor is using the from_numpy() method from the numpy library. This guide has explained the process of using all the methods for both approaches with the code implementation.