В этом руководстве объясняется использование представления PyTorch в Python. Функция view() возвращает новый тензор с аналогичным количеством данных и должен иметь аналогичное количество элементов.

Функция view() используется для преобразования тензора в 2D-формат, состоящий из строк и столбцов. И у нас должно быть определенное количество строк и столбцов для просмотра.

Синтаксис:

tensor.view(no_of_rows, no_of_columns)

Параметры:

  • no_of_rows: есть несколько строк, которые мы можем просмотреть.
  • no_of_columns: Есть несколько столбцов, которые мы можем просмотреть.
Содержание

Пример

В этом разделе мы узнаем, как реализовать представление PyTorch, на примере.

Функция PyTorch view() возвращает новый тензор с аналогичным количеством данных и должен иметь аналогичное количество элементов.

В следующем коде мы импортируем библиотеку факела, например import torch.

  • a = torch.randn(6, 6): Здесь мы объявляем переменную с помощью функции torch.randn().
  • b = a.view(36): Здесь мы описываем переменную с помощью функции view().
  • c = a.view(-1, 12): здесь размер -1 выводится из другого измерения.
 # Import library
import torch
# Describe a variable
a = torch.randn(6, 6)
torch.Size([6, 6])
# Using view() function
b = a.view(36)
# Print output
print(b)
b.size()
torch.Size([36])
# The size -1 is deduced from other dimensions
c = a.view(-1, 12)  
print(c)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что после использования функции view() возвращается новый тензор, и значения нового тензора печатаются на экране.

Использование функции view()

Просмотр Batchsize

Прежде чем двигаться дальше, мы должны иметь некоторые знания о размере пакета.

Размер партии определяется как процесс, в котором обновляется количество образцов, подготовленных до модели.

Пакетный размер представления PyTorch используется для возврата нового тензора с аналогичным количеством данных.

В следующем коде сначала мы импортируем библиотеку факела, например import torch.

  • pertens = torch.tensor([1,3,4]): здесь мы объявляем переменную Pertens с помощью функции torch.tensor().
  • pertens.view(3): здесь мы используем функцию view(), которая возвращает новый тензор с аналогичным количеством данных.
# Import library
import torch

# Describe a variable
pertens = torch.tensor([1,3,4])

# Using view() function
pertens.view(3)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значение размера пакета PyTorch печатается на экране.

PyTorch просмотреть размер пакета

Просмотр смежных изображений

В этом разделе мы узнаем о непрерывном представлении PyTorch в Python. Прежде чем двигаться дальше, мы должны иметь некоторые знания о смежных.

Непрерывное определяется как следующее или вместе в последовательности, или мы можем сказать, что оно имеет общую границу.

Здесь мы исходим из рассмотрения непрерывного тензора, который порождает несмежный тензор.

В следующем коде мы импортируем модуль факела, например import torch.

  • c = torch.rand(6, 6): Здесь мы описываем переменную с помощью функции torch.rand().
  • c.storage().data_ptr() == b.storage().data_ptr() используется для совместного использования одних и тех же базовых данных.
  • s = torch.tensor([[1, 2],[3, 4]]): здесь мы объявляем переменную s с помощью функции torch.tensor().
  • c = s.transpose(0, 1): Здесь c — представление s.
  • m = c.contigious(): Здесь мы получаем непрерывный тензор, вызывая функцию contigious() и копируя данные, когда c не является смежным.
# Import library
import torch
c = torch.rand(6, 6)
d = c.view(4, 9)
# c and d share the same underlying data.
c.storage().data_ptr() == b.storage().data_ptr()  
# Modifying view tensor changes base tensor as well.
d[0][0] = 3.14
c[0][0]

s = torch.tensor([[1, 2],[3, 4]])
s.is_contiguous()

 # c is a view of s. 
c = s.transpose(0, 1) 
# View tensors might be non-contiguous.
c.is_contiguous()

# Here we get a contiguous tensor by calling contiguous() function
# And copying the data when c is not contiguous.
m = c.contiguous()
print(m)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что смежные значения представления PyTorch печатаются на экране.

PyTorch: просмотр смежных изображений

Сглаживание PyTorch

Сглаживание определяется как процесс, который используется для преобразования n-мерного тензора в одномерный тензор.

В следующем коде мы импортируем библиотеку факела, например import torch.

  • a = torch.tensor([[2,4,6,8,10,12], [2,4,6,8,10,12]]): Здесь мы создаем двумерный тензор с шестью элементами, используя функция torch.tensor().
  • print(a) используется для отображения фактического тензора.
  • print(torch.flatten(a)) используется для выравнивания тензора с помощью функции Flatten().
  • a.view(2,6): Здесь мы используем функцию view(), которая возвращает новый тензор.
# import torch module
import torch
 
# create an two dimensional tensor with 6 elements each
a = torch.tensor([[2,4,6,8,10,12],
                  [2,4,6,8,10,12]])
 
# Here we are displaying actual tensor
print(a)
 
# flatten a tensor with flatten() function
print(torch.flatten(a))

# Using view() function
a.view(2,6)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значения выравнивания представления PyTorch печатаются на экране.

Представление PyTorch сглаживается

Просмотр PyTorch в numpy

Представление Pytorch используется для регистрации тензора факела для преобразования его формы. И преобразуйте форму ndarray с помощью функции numpy().

В следующем коде сначала мы импортируем библиотеку факела, например import torch.

  • m = torch.ones((4, 6, 8)): здесь мы объявляем переменную с помощью функции torch.ones().
  • m.view(-1, 12).size(): Здесь мы используем функцию view(), которая используется для возврата нового тензора.
  • torch.Size([2, 12]): здесь мы объявляем размер с помощью функции torch.size().
# Import library
import torch
# Describe a variable
m = torch.ones((4, 6, 8))
m.size()
torch.Size([4, 6, 8])
# Using view() function
m.view(-1, 12).size()
# Declaring the size
torch.Size([2, 12])

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что представление PyTorch со значением numpy печатается на экране.

Просмотр PyTorch в numpy

Размер

Как мы знаем, функция PyTorch view() возвращает новый тензор с похожими данными и должен иметь одинаковое количество элементов, но разные размеры. Размер представления может соответствовать его реальному размеру.

В следующем коде сначала мы импортируем библиотеку факела, например import torch.

  • x = torch.randn(2, 4, 6, 8): здесь мы описываем переменную с помощью функции torch.randn().
  • torch.Size([2, 4, 6, 8]) используется для определения размера тензора.
  • y = x.view(2, 6, 4, 8): здесь мы используем функцию view(), которая не меняет расположение тензора в памяти.
  • y.size(): Здесь мы определяем размер представления.
# Import Library
import torch
# Describing a variable
x = torch.randn(2, 4, 6, 8)
# Define the size of the tensor
x.size()
torch.Size([2, 4, 6, 8])
# Using view() function that does not change tensor layout in a memory
y = x.view(2, 6, 4, 8) 
# Define the size of the view 
y.size()

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором вы можете видеть, что значение размера представления PyTorch отображается на экране.

Размер

Транспонирование

Транспонирование представления PyTorch определяется как процесс, который переносит тензор в другой контекст или место, или мы можем сказать, что это изменение места двух или более вещей.

В следующем коде мы импортируем библиотеку факела, например import torch.

  • x = torch.randn(4,8,16,24): Здесь мы описываем переменную с помощью функции torch.randn().
  • torch.Size([4,8,16,24]): Здесь мы определяем размер тензора.
  • y = x.transpose(2, 3): Здесь мы меняем местами третье и четвертое измерения.
  • z = x.view(4,8,24,16): Здесь мы используем функцию view(), которая не меняет расположение тензора в памяти.
# Import Library
import torch
# Describing a variable
x = torch.randn(4,8,16,24)
# Define the size of the tensor
x.size()
torch.Size([4,8,16,24])
# Here we are swapping the third and fourth dimension
y = x.transpose(2, 3)  
y.size()
torch.Size([4,8,16,24])
# Using view() function that does not change tensor layout in a memory
z = x.view(4,8,24,16)  
z.size()
torch.Size([4,8,24,16])
torch.equal(y, z)

Выход:

В приведенном ниже выводе вы можете видеть, что значение транспонирования представления PyTorch печатается на экране.

Транспонирование представления PyTorch

Изменение формы

Функция изменения формы представления PyTorch используется для изменения формы или изменения размеров в заданную форму. Тензор определяется как входной тензор.

В следующем коде мы импортируем библиотеку факела, например import torch.

  • r = torch.tensor([2, 4, 6, 8, 10, 12]): здесь мы создаем одномерный тензор с элементами размера, используя функцию torch.tensor().
  • print(r.shape) используется для печати формы тензора.
  • print(r) используется для отображения фактической формы.
  • print(r.reshape([3, 2])) используется для преобразования тензора в три строки и два столбца.
  • print(r.shape) используется, чтобы показать форму тензора изменения формы.
  • r.view(3,2): Здесь мы используем функцию view(), которая возвращает новый тензор.
# Import linrary
import torch
 
# Here we are creating  a one-dimensional tensor with 6 elements
r = torch.tensor([2, 4, 6, 8, 10, 12])
 
# Showing tensor shape
print(r.shape)
 
# Showing  actual tensor
print(r)
 
# Reshape tensor into 3 rows and 2 columns
print(r.reshape([3, 2]))
 
# Showing the shape of reshaped tensor
print(r.shape)

# Using view() function
r.view(3,2)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значение изменения формы представления PyTorch печатается на экране.

Изменение формы

 

Функция unsqueeze()

Функция unsqueeze() возвращает новый тензор размером один, вставленный в определенную позицию.

В следующем коде мы импортируем библиотеку факела, например import torch.

  • a = torch.tensor([2, 3, 4, 5]): здесь мы объявляем переменную с помощью функции torch.tensor().
  • m=torch.unsqueeze(a, 0): Здесь мы используем функцию unsqueeze() для добавления размера.
  • print(m) используется для печати вывода с помощью функции print().
  • m.view(2,2): Здесь мы используем функцию view(), которая возвращает новый тензор.
# Import library
import torch

# Declare a variable
a = torch.tensor([2, 3, 4, 5])
# Using unsqueeze() method to add dimension
m=torch.unsqueeze(a, 0)
# Print output
print(m)

# Using view() function
m.view(2,2)

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором видим, что значение разжатия представления PyTorch печатается на экране.

Функция unsqueeze()

Создание тензора с 8 элементами и представление с 2 строками и 4 столбцами

Здесь мы используем функцию view(), которая используется для преобразования тензора в строки и столбцы двумерного формата, и здесь мы создаем тензор с 8 элементами и представление с 2 строками и 4 столбцами.

В следующем коде сначала мы импортируем библиотеку факела, например import torch.

  • a=torch.FloatTensor([25, 30, 35, 40, 45,50,55,60]): здесь мы создаем одномерный тензор с 8 элементами.
  • print(a.view(2, 4)) используется для просмотра тензора в 2 строках и 4 столбцах.
  • print(a.view(2, 4)) используется для просмотра тензора в 3 строках и 4 столбцах.
# import torch library
import torch
 
# Here we are creating one dimensional tensor with 8 elements
a=torch.FloatTensor([25, 30, 35, 40,
                     45,50,55,60]) 
 
# view tensor in 2 rows and 4 columns
print(a.view(2, 4))
  
# view tensor in 3 rows and 4 columns
print(a.view(2, 4))

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что на экране печатается одномерный тензор PyTorch с 8 элементами и представлением со значениями 2 строк и 4 столбцов.

Создание тензора с 8 элементами и представление с 2 строками и 4 столбцами

Изменение представления тензора на 8 строк и 1 столбец

Как мы знаем, функция просмотра PyTorch используется для преобразования тензора в 2D-формат, состоящий из строк и столбцов. И у нас должно быть определенное количество строк и столбцов для просмотра.

В следующем коде мы импортируем модуль факела, например import torch.

  • a = torch.FloatTensor([25, 30, 35, 40, 45,50,55,60]): Здесь мы создаем одномерный тензор с восемью элементами.
  • print(a.view(8, 1)): Здесь мы просматриваем тензор в 8 строках и 1 столбце.
  • print(a.view(1, 8)): Здесь мы просматриваем тензор в 1 строке и 8 столбцах.
# import torch
import torch
 
# Here we are creating one dimensional tensor 8 elements
a = torch.FloatTensor([25, 30, 35, 40,
                     45,50,55,60]) 
 
# Here we are viewing tensor in 8 rows and 1 column
print(a.view(8, 1))
  
# Here we are viewing tensor in 1 row and 8 columns
print(a.view(1, 8))

Выход:

После запуска приведенного выше кода мы получаем следующий вывод, в котором мы видим, что изменяющийся тензор представления на значения 8 строк и 1 столбца печатается на экране.

Изменение представления тензора на 8 строк и 1 столбец

Добавить комментарий