В этом посте вы начнете с самых оснований глубокой структуры обучения. Тензоры
Так что в основном нейронная сеть – куча Узлы, которые принимают один или несколько входов, обрабатывают их и возвращает один или несколько выходов Отказ
Стол содержания
- Что такое тензоры
- Создание тензоров
- Типы тензора и их преобразования
- Формы и размеры
- Реширование тензоров
Что такое тензоры
Тензуры – это строительные блоки нейронной сети. Tensor Pytorch – это Обобщенная форма массивов в
Тензор может быть любой размерности. В этом курсе вы узнаете только о следующих измерении только
- 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. Если у вас есть сомнения или любая идея, достичь меня через следующие источники
- Электронная почта: tbhaxor@gmail.com. (Рекомендуемые)
- Twitter: @tbhaxor.
- GitHub: @tbhaxor.
- LinkedIn: @ Гуркират – сингх
- Instagram: @_tbhaxor_
Оригинал: “https://dev.to/tbhaxor/pytorch-understanding-tensors-part-1-od8”