Рубрики
Без рубрики

Pytorch :: Понимание тензоров (часть 1)

В этом посте вы начнете с самых оснований глубокой структуры обучения. Тензоры Таким образом, в основном … с меченым глубоким обучением, Python, Pytorch, нейронными сетью.

В этом посте вы начнете с самых оснований глубокой структуры обучения. Тензоры

Так что в основном нейронная сеть – куча Узлы, которые принимают один или несколько входов, обрабатывают их и возвращает один или несколько выходов Отказ

Стол содержания

  1. Что такое тензоры
  2. Создание тензоров
  3. Типы тензора и их преобразования
  4. Формы и размеры
    • Реширование тензоров

Что такое тензоры

Тензуры – это строительные блоки нейронной сети. Tensor Pytorch – это Обобщенная форма массивов в n n n Размеры Чтобы запустить произвольные вычисления на GPU. [Подробнее]

Тензор может быть любой размерности. В этом курсе вы узнаете только о следующих измерении только

  • 0D -> Скалярные номера, такие как 0 , 10 , 20 и т.д. равномерные тензоры
  • 1D -> Массив номеров, таких как [1, 2, 3] или [20, 30, 10] и Т. Д.
  • 2D -> Матрица номеров, таких как [[1, 2, 3], [2, 3, 4]]

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

Перед созданием и использованием тензоров в Pytorch установите его, следуя инструкциям отсюда: https://pytorch.org/get-started/locally/

Создание тензоров

Вы можете создать тензоры, импортируя Факел и используя Torch.tensor (данные) метод.

import torch

t0 = torch.tensor(10)                     # 0-D tensor
t1 = torch.tensor([1, 2, 3, 4])           # 1-D tensor
t2 = torch.tensor([[1, 2, 3], [2, 3, 4]]) # 2-D tensor

print(t0)
print(t1)
print(t2)
tensor(10)
tensor([1, 2, 3, 4])
tensor([[1, 2, 3],
        [2, 3, 4]])

Чтобы преобразовать его в Numpy Array, просто используйте Tensor.Numpy () метод и использовать его, как вы хотите

print(t2.numpy())
array([[1, 2, 3],
       [2, 3, 4]])

Типы тензора и их преобразования

Pytorch поддерживает следующие типы данных тензоров

Чтобы получить тип данных, используйте Tensor.dtype недвижимость и Tensor.type () чтобы получить тип тензора Pytorch

print(t2.dtype)
print(t2.type())
torch.int64
torch.LongTensor

Примечание Разница между .dtype. и .тип () лучше объяснить здесь

Чтобы явно создать тензор определенного типа, либо пропустите Dtype Определение тензора в Torch.tensor Метод или используйте тензорное конструктор.

Например, вот я создаю тензор поплавок, предоставляя INT32 данные

tf0 = torch.tensor([1, 2, 3, 4], dtype=torch.float32)
print(tf0)
print(tf0.dtype)

tf1 = torch.FloatTensor([5, 6, 7, 8])
print(tf1)
print(tf1.dtype)
tensor([1., 2., 3., 4.])
torch.float32
tensor([5., 6., 7., 8.])
torch.float32

Вы можете передать тип данных в Tensor.type ([Тип]) Метод, чтобы изменить тип данных существующего тензора.

Например, Изменение поплавкового тензора на INT32

tf0 = tf0.type(torch.int32) # after changing, it returns a new tensor object of that type
print(tf0.dtype)
torch.int32

Формы и размеры

Во время обучения модели вы будете иметь дело с более высокими размерами и нейронной сетью, только принимаем размерность, которая определяется на входном слое при архитектуре модели.

Размер в основном рассказывает, является ли тензор 0-D или 1-D или 2-D или даже выше, чем это. Размер тензора также называется рангом тензора Отказ

Чтобы получить размер, который вы можете использовать Tensor.size () метод или Tensor.shape Собственность и получить размер тензора, используйте Tensor.ndimension () метод или Tensor.ndim имущество.

print(t1.size())
print(t1.ndim)

print(t2.shape)
print(t2.ndimension())
torch.Size([4])
1
torch.Size([2, 3])
2

Реширование тензоров

Иногда работаю с нейронной сетью, вы столкнетесь с ситуацией, когда вы должны изменить размер тензора. Это можно сделать с помощью Tensor.View (nrows, ncols) Способ тензора

Например, у меня есть тензор [[1, 2, 3], [2, 3, 4]] и я хочу преобразовать его в 2D с 1 ряд и 6 столбцов

tx = t2.view(1, 6)
print(tx)
tensor([[1, 2, 3, 2, 3, 4]])

Примечание Количество параметров в .Посмотреть Метод – общее количество измерений

# Converting 2D to 1D tensor
tx = t2.view(6)
print(tx)
tensor([1, 2, 3, 2, 3, 4])

Существуют специальные значения для метода просмотра. Предположим, вы не знаете, сколько рядов было бы хорошо, а затем измените размер вашей матрицы, вы можете установить его на -1, она автоматически настроила строки для вас. То же самое идет с колоннами.

# Telling PyTorch to keep the max 2 elements in one column and make as many rows as you want
tr = t2.view(-1, 2)
print(tr)

# Telling PyTorch to keep max 2 rows and adjust columns automatically
tc = t2.view(2, -1)
tc
tensor([[1, 2],
        [3, 2],
        [3, 4]])
tensor([[1, 2, 3],
        [2, 3, 4]])

Примечание Как строки, так и столбцы не могут быть установлены на -1 в то же время.

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

Оригинал: “https://dev.to/tbhaxor/pytorch-understanding-tensors-part-1-od8”