Машинное обучение
7 функций PyTorch для вашего следующего проекта машинного обучения
Изучение различных функций PyTorch

PyTorch - это библиотека машинного обучения, пользующаяся все большей популярностью. В этой статье мы рассмотрим семь функций, доступных в PyTorch.
Сначала мы импортируем PyTorch, используя import torch
Функция 1: torch.linspace
torch.linspace используется для создания одномерного тензора с равным интервалом между значениями start и end. Мы можем указать размер тензора с помощью параметров steps. По умолчанию steps=100
Пример-1:
torch.linspace(1, 10) Output: tensor([ 1.0000, 1.0909, 1.1818, 1.2727, 1.3636, 1.4545, 1.5455, 1.6364, 1.7273, 1.8182, 1.9091, 2.0000, 2.0909, 2.1818, 2.2727, 2.3636, 2.4545, 2.5455, 2.6364, 2.7273, 2.8182, 2.9091, 3.0000, 3.0909, 3.1818, 3.2727, 3.3636, 3.4545, 3.5455, 3.6364, 3.7273, 3.8182, 3.9091, 4.0000, 4.0909, 4.1818, 4.2727, 4.3636, 4.4545, 4.5455, 4.6364, 4.7273, 4.8182, 4.9091, 5.0000, 5.0909, 5.1818, 5.2727, 5.3636, 5.4545, 5.5455, 5.6364, 5.7273, 5.8182, 5.9091, 6.0000, 6.0909, 6.1818, 6.2727, 6.3636, 6.4545, 6.5455, 6.6364, 6.7273, 6.8182, 6.9091, 7.0000, 7.0909, 7.1818, 7.2727, 7.3636, 7.4545, 7.5455, 7.6364, 7.7273, 7.8182, 7.9091, 8.0000, 8.0909, 8.1818, 8.2727, 8.3636, 8.4545, 8.5455, 8.6364, 8.7273, 8.8182, 8.9091, 9.0000, 9.0909, 9.1818, 9.2727, 9.3636, 9.4545, 9.5455, 9.6364, 9.7273, 9.8182, 9.9091, 10.0000])
Пример-2:
torch.linspace(start=1, end=10, steps=5) Output: tensor([ 1.0000, 3.2500, 5.5000, 7.7500, 10.0000])
Функция 2: torch.eye
torch.eye возвращает двумерный тензор со значениями диагоналей как 1 и другими значениями как 0
Функция ожидает два параметра - n и m. Если m не указан, возвращается двумерный тензор размера nxn.
Пример-1:
torch.eye(n=4, m=5)
Output:
tensor([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.]])
Пример-2:
torch.eye(n=3)
Output:
tensor([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
Функция 3: torch.full
torch.full возвращает тензор размера size со значениями, заполненными fill_value size может быть списком или кортежем.
Пример-1:
torch.full(size=(3,2), fill_value=10)
Output:
tensor([[10., 10.],
[10., 10.],
[10., 10.]])
Пример-2:
torch.full(size=[2, 3, 4], fill_value=5)
Output:
tensor([[[5., 5., 5., 5.],
[5., 5., 5., 5.],
[5., 5., 5., 5.]],
[[5., 5., 5., 5.],
[5., 5., 5., 5.],
[5., 5., 5., 5.]]])
Функция 4: torch.cat
torch.cat объединяет последовательность тензоров по указанному измерению dim. Все тензоры должны быть одинаковой формы.
Пример-1:
a = torch.ones(3,2)
b = torch.zeros(3,2)
torch.cat((a, b)) # default dim=0
Output:
tensor([[1., 1.],
[1., 1.],
[1., 1.],
[0., 0.],
[0., 0.],
[0., 0.]])
Пример-2:
x = torch.full((3,3), fill_value=4)
y = torch.full((3,3), fill_value=7)
torch.cat((x, y), dim=1)
Output:
tensor([[4., 4., 4., 7., 7., 7.],
[4., 4., 4., 7., 7., 7.],
[4., 4., 4., 7., 7., 7.]])
Функция 5: torch.take
torch.take возвращает тензор с элементами входных тензоров по заданным индексам. Входной тензор обрабатывается как одномерный тензор, возвращающий значения.
Пример-1:
# 1D input Tensor b = torch.tensor([10, 20, 30, 40, 50]) torch.take(b, torch.tensor([2])) Output: tensor([30])
Пример-2:
# 2D input tensor
a = torch.tensor([[1, 2, 3],
[4, 5, 6]])
torch.take(a, torch.tensor([3,4]))
Output:
tensor([4, 5])
Функция 6: torch.unbind
torch.unbind удаляет тензорное измерение по заданному измерению dim
Размер по умолчанию равен 0, т.е. dim=0
Пример-1:
a = torch.tensor([[1, 2, 3],
[4, 5, 6]])
torch.unbind(a)
Output:
(tensor([1, 2, 3]), tensor([4, 5, 6]))
Пример-2:
a = torch.tensor([[1, 2, 3],
[4, 5, 6]])
torch.unbind(a, dim=1)
Output:
(tensor([1, 4]), tensor([2, 5]), tensor([3, 6]))
Функция 7: torch.Tensor.clone
torch.Tensor.clone возвращает копию тензора с тем же размером и типом данных.
Когда мы создаем копию тензора с помощью x=y, изменение одной переменной также влияет на другую переменную, поскольку она указывает на то же место в памяти.
Например,
a = torch.tensor([[1., 2.],
[3., 4.],
[5., 6.]])
b = a
a[1,0]=9
b
Output:
tensor([[1., 2.],
[9., 4.],
[5., 6.]])
Чтобы избежать этого, мы можем создать глубокую копию тензора, используя метод .clone.
Пример:
a = torch.tensor([[1., 2.],
[3., 4.],
[5., 6.]])
b = a.clone()
a[1,0]=9
b
Output:
tensor([[1., 2.],
[3., 4.],
[5., 6.]])
Заключение
В этой статье мы увидели работу семи функций, доступных в PyTorch. Надеюсь, эта статья помогла вам разобраться в этих функциях. Есть ряд других полезных функций. Вы можете обратиться к официальной документации за полным списком доступных функций.
использованная литература
Ресурсы
Фрагменты кода, использованные в этой статье, доступны на моей странице GitHub.
Давайте подключимся
LinkedIn: https://www.linkedin.com/in/jimit105/
GitHub: https://github.com/jimit105
Twitter: https://twitter.com/ jimit105