Разница между Tensor и Variable в Pytorch

Тензоры в Pytorch Программирование и разработка

В этой статье мы увидим разницу между тензором и переменной в Pytorch.

Pytorch — это библиотека машинного обучения с открытым исходным кодом, используемая для компьютерного зрения, обработки естественного языка и обработки глубоких нейронных сетей. Это библиотека на основе факелов. Он содержит фундаментальный набор функций, которые позволяют выполнять численные вычисления, развертывание и оптимизацию. Pytorch построен с использованием класса тензора. Он был разработан исследователями искусственного интеллекта Facebook в 2016 году. Две основные особенности Pytorch: он похож на NumPy ;но поддерживает GPU, автоматическая дифференциация используется для создания и обучения сетей глубокого обучения, а модели могут быть развернуты в мобильных приложениях, что делает их быстрыми и простыми в использовании. Мы должны быть знакомы с некоторыми модулями Pytorch, такими как nn (используется для построения нейронных сетей), autograd (автоматическое дифференцирование всех операций, выполняемых с тензорами), optim (для оптимизации весов нейронной сети для минимизации потерь) и utils (предоставить классы по обработке данных).

Tensors

Основной единицей Pytorch является тензор. Тензор — это n-мерный массив или матрица. Он содержит элементы одного типа данных. Он используется для ввода, а также для отображения вывода. Тензоры используются для мощных вычислений в моделях глубокого обучения. Он похож на массив NumPy, но может работать на графических процессорах. Их можно создать из массива, инициализировав его либо нулями, либо единицами, либо случайными значениями, либо массивами NumPy. Доступ к элементам тензоров можно получить так же, как и в любом другом языке программирования, и к ним также можно получить доступ в пределах указанного диапазона, который можно использовать для нарезки. Над тензорами можно выполнять множество математических операций. Небольшой код, чтобы получить четкое представление о тензорах

Python3

import torch
 
x = torch.ones((3, 2))
print(x)
 
arr = [[3, 4]]   
tensor = torch.Tensor(arr)
print(tensor)

Output:

tensor([[1., 1.],
        [1., 1.],
        [1., 1.]])
tensor([[3., 4.]])

В приведенном выше коде мы создаем тензоры из массива, а также используем их для создания тензора.

Читайте также:  Функция Vector Erase () в C++

Variables

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

havecalculate

Выход:

tensor(6.)
None

В приведенном выше коде мы использовали переменные для переноса тензора и выполнили суммирование. Поскольку сумма равна 6, что является константой, поэтому градиент, который является ничем иным, как производной, равен None.

Разница между Tensor и Variable в Pytorch

Tensor

Variable

Тензор — основная единица Pytorch. Переменная обтекает тензор.
Тензор может быть многомерным. Переменные действуют на тензоры и имеют две части данных

и градиент.

Тензоры могут выполнять такие операции, как сложение

вычитание и др.

Переменные могут выполнять все операции, которые выполняются над

тензоры плюс вычисляет градиент.

Тензоры обычно постоянны. Переменные представляют изменения в данных.
Тензоры могут поддерживать целочисленные типы данных. Если для require_grad установлено значение True, переменные могут поддерживать только плавающие и сложные типы данных.

Оцените статью
bestprogrammer.ru
Добавить комментарий

Adblock
detector