Что такое Pytorch?

  • PyTorch - это библиотека машинного обучения с открытым исходным кодом, основанная на библиотеке Torch, используемая для таких приложений, как компьютерное зрение и обработка естественного языка, в основном разработанная исследовательской лабораторией Facebook AI Research (FAIR). Это бесплатное программное обеспечение с открытым исходным кодом, выпущенное под модифицированной лицензией BSD. Хотя интерфейс Python более совершенен и является основным направлением разработки, PyTorch также имеет интерфейс C ++.
  • Ряд программ глубокого обучения построен на основе PyTorch, в том числе Uber's Pyro, HuggingFace’s Transformers и Catalyst.
  • Это также одна из предпочтительных платформ для исследования глубокого обучения, созданная для обеспечения максимальной гибкости и скорости. Он известен тем, что предоставляет две самые высокоуровневые функции; а именно тензорные вычисления с сильной поддержкой ускорения графического процессора и построение глубоких нейронных сетей на ленточных системах автоградации.
  • Пыточ Официальный сайт.

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

  • PyTorch Tensor в основном такой же, как массив numpy: он ничего не знает о глубоком обучении, вычислительных графах или градиентах и ​​представляет собой просто общий n-мерный массив, который используется для произвольных числовых вычислений.
  • Самая большая разница между массивом numpy и PyTorch Tensor заключается в том, что PyTorch Tensor может работать как на CPU, так и на GPU.

Давайте посмотрим на некоторые математические операции в тензорах Pytorch:

Для начала вам нужно установить библиотеку torch. Установите его с помощью следующих команд в блокноте jupyter:

!conda install pytorch cpuonly -c pytorch -y

Импортировать библиотеку резака:

import torch

Математические операции:

1. torch.abs ()

torch.abs (вход, выход = Нет) → Тензор

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

out = | ввод |

Параметры

  • input (Tensor) - входной тензор.
  • out (Tensor, необязательно) - выходной тензор.

Пример :

In[]  : torch.abs(torch.tensor([-10, -22, 3]))
Out[] : tensor([10, 22,  3])

2. torch.add ()

torch.add (input, other, out = None)

Эта функция добавляет скаляр к каждому элементу ввода и возвращает новый результирующий тензор.

out = ввод + другое

Параметры

  • input (Tensor) - входной тензор.
  • value (Number) - число, которое будет добавлено к каждому элементу ввода

Пример :

In[]  : a = torch.randn(3)
        a
Out[] : tensor([-2.5680, -0.8406,  0.2862])
In[]  : torch.add(a, 20)
Out[] : tensor([17.4320, 19.1594, 20.2862])

3. torch.sub ()

torch.sub (input, other, out = None) → Тензор

Эта функция вычитает скаляр из другого к каждому элементу ввода и возвращает новый результирующий тензор.

out = input - другое

Параметры

  • input (Tensor) - входной тензор.
  • other (Number) - число, которое нужно вычесть к каждому элементу ввода

Пример :

In[]  : a = torch.randn(3)
        a
Out[] : tensor([ 1.7225,  0.5430, -1.1199])
In[]  : torch.sub(a,4)
Out[] : tensor([-2.2775, -3.4570, -5.1199])

4. torch.div ()

torch.div (input, other, out = None) → Тензор

Эта функция делит каждый элемент ввода на другой скаляр и возвращает новый результирующий тензор.

out = ввод / другое

Параметры

  • input (Tensor) - входной тензор.
  • другой (Число) - число, которое нужно разделить на каждый элемент ввода

Пример :

In[]  : a = torch.randn(5)
        a
Out[] : tensor([ 0.1227, -0.0442,  2.6160,  1.6794,  1.5719])
In[]  : torch.div(a, 0.2)
Out[] : tensor([ 0.6136, -0.2208, 13.0801,  8.3970,  7.8596])

5. torch.mul ()

torch.mul (вход, прочее, выход = Нет)

Эта функция умножает каждый элемент входного ввода на другой скаляр и возвращает новый результирующий тензор.

out = ввод * другое

Параметры

  • input (Tensor) - входной тензор.
  • other (Number) - число, которое нужно умножить на каждый элемент ввода

Пример :

In[]  : a = torch.randn(3)
        a
Out[] : tensor([ 0.2845, -1.0132,  0.2563])
In[]  : torch.mul(a, 5)
Out[] : tensor([ 1.4227, -5.0661,  1.2814])

6. torch.neg ()

torch.neg (вход, выход = Нет) → Тензор

Эта функция возвращает новый тензор с отрицательным из элементов input.

выход = -1 × вход

Параметры

  • input (Tensor) - входной тензор.
  • out (Tensor, необязательно) - выходной тензор.

Пример :

In[]  : a = torch.randn(3)
        a
Out[] : tensor([ 1.0753,  0.5619, -2.2713])
In[]  : torch.neg(a)
Out[] : tensor([-1.0753, -0.5619,  2.2713])

7. torch.pow ()

torch.pow (вход, показатель степени, выход = Нет) → Тензор

Он принимает мощность каждого элемента на входе с показателем степени и возвращает тензор с результатом.

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

out = input ^ экспонента

Параметры

  • input (Tensor) - входной тензор.
  • exponent (float или tenor) - показатель степени
  • out (Tensor, необязательно) - выходной тензор.

Пример :

In[]  : a = torch.arange(1., 6.)
        a
Out[] : tensor([1., 2., 3., 4., 5.])
In[]  : torch.pow(a, 2)
Out[] : tensor([ 1.,  4.,  9., 16., 25.])

8. torch.reciprocal ()

torch.reciprocal (вход, выход = Нет) → Тензор

Эта функция возвращает новый тензор, обратно пропорциональный входным элементам.

выход = 1 / вход

Параметры

  • input (Tensor) - входной тензор.
  • out (Tensor, необязательно) - выходной тензор.

Пример :

In[]  : a = torch.randn(5)
        a
Out[] : tensor([ 0.2661, -1.2168,  1.6755,  0.5949, -0.2095])
In[]  : torch.reciprocal(a)
Out[] : tensor([ 3.7579, -0.8218,  0.5968,  1.6811, -4.7739])

9. torch.remainder ()

torch.remainder (input, other, out = None) → Тензор

Эта функция вычисляет поэлементный остаток от деления. Делитель и делимое могут содержать как целые числа, так и числа с плавающей запятой. У остатка тот же знак, что и у делителя.

out = ввод% другой

Параметры

  • input (Tensor) - дивиденд
  • other (Tensor или float) - делитель, который может быть числом или тензором той же формы, что и делимое
  • out (Tensor, необязательно) - выходной тензор.

Пример :

In[]  : torch.remainder(torch.tensor([-30., -12, -10, 11, 22, 3]), 2)
Out[] : tensor([0., 0., 0., 1., 0., 1.])

10. torch.square ()

torch.square (вход, выход = Нет) → Тензор

Эта функция возвращает новый тензор с квадратом входных элементов.

выход = вход * вход

Параметры

  • input (Tensor) - входной тензор.
  • out (Tensor, необязательно) - выходной тензор.

Пример :

In[]  : a = torch.randn(4)
        a
Out[] : tensor([ 1.1735, -0.9121,  0.0543, -0.5389])
In[]  : torch.square(a)
Out[] : tensor([1.3772, 0.8320, 0.0029, 0.2905])

Вывод :

Теперь мы знаем 10 различных функций математических операций, которые предопределены в тензорах Pytorch. Это всего 10 функций, а на официальном сайте документации pytorch их гораздо больше. Надеюсь, что эти функции помогут узнать что-то новое сегодня.

Ресурс:

  1. Вы можете узнать больше на официальном сайте Pytorch.
  2. Моя личная записная книжка Jovain

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