В этом руководстве объясняется использование представления PyTorch в Python. Функция view() возвращает новый тензор с аналогичным количеством данных и должен иметь аналогичное количество элементов.
Функция view() используется для преобразования тензора в 2D-формат, состоящий из строк и столбцов. И у нас должно быть определенное количество строк и столбцов для просмотра.
Синтаксис:
tensor.view(no_of_rows, no_of_columns)
Параметры:
- no_of_rows: есть несколько строк, которые мы можем просмотреть.
- no_of_columns: Есть несколько столбцов, которые мы можем просмотреть.
- Пример
- Просмотр Batchsize
- Просмотр смежных изображений
- Сглаживание PyTorch
- Просмотр PyTorch в numpy
- Размер
- Транспонирование
- Изменение формы
- Функция unsqueeze()
- Создание тензора с 8 элементами и представление с 2 строками и 4 столбцами
- Изменение представления тензора на 8 строк и 1 столбец
Пример
В этом разделе мы узнаем, как реализовать представление 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() возвращается новый тензор, и значения нового тензора печатаются на экране.
Просмотр 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 в 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
Сглаживание определяется как процесс, который используется для преобразования 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 в 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 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 используется для изменения формы или изменения размеров в заданную форму. Тензор определяется как входной тензор.
В следующем коде мы импортируем библиотеку факела, например 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 печатается на экране.
Создание тензора с 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 строк и 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 столбца печатается на экране.