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

искусственный интеллект Python

Будет слишком поздно, если вы не войдете в яму.С концепцией глубокой нейронной сети разобрались.Как выглядит простейшая нейронная сеть?

Gamma watcher.blog.CSDN.net/article/decent…

Студенты учатся углубленному изучению и создают среду, будет слишком поздно, если они не войдут в яму

Gamma watcher.blog.CSDN.net/article/decent…

Комментарии доставляются бесплатно! ! ! Numpy, основа глубокого обучения, Xiaobai может легко начать работу с numpy

Gamma watcher.blog.CSDN.net/article/decent…

Matplotlib, который является основой глубокого обучения, может получить каждый пример в одной статье, рекомендуется собрать его для дальнейшего использования.Gamma watcher.blog.CSDN.net/article/decent…

Привет всем, я Кориандр, не легко быть оригинальным, добро пожаловать, лайкайте и комментируйте, учитесь вместе

Самая важная концепция в pytorch и tensorflow — это тензор.Название фреймворка tensorflow очень простое, то есть поток тензора, поэтому первый урок изучения глубокого обучения — понять, что такое тензор.Узнайте сегодня, хорошо, возьмите выключенный

1. Что такое тензор? Tensor означает «тензор» (перевод действительно трудно понять, нарушая концепцию). Фактически, это тот же формат, что и массивы, векторы и матрицы numpy. Но он специально разработан для графического процессора, может работать на графическом процессоре для повышения эффективности вычислений, не пугайтесь.

В PyTorch тензор Tensor является самой базовой операционной единицей.Как и NDArray в NumPy, тензор представляет собой многомерную матрицу. Разница в том, что Tensor в PyTorch может работать на GPU, а NumPy NDArray может работать только на CPU. Поскольку Tensor может работать на графическом процессоре, скорость работы значительно увеличивается.

Резюме одним предложением: многомерные данные, которые могут работать на графическом процессоре

х = факел.нули (5) Отладить, чтобы посмотреть, что это за штука в памяти и какие у нее свойства, не болтай, смотри на картинку.

image.png

2. Создание тензора Какой бы продвинутой ни была концепция тензора, это всего лишь структура данных, класс, как создать этот объект, есть следующие способы.

Создать напрямую Способ создания тензора, предоставленный pytorch

torch.tensor(data, dtype=None, device=None,requires_grad=False)

данные - могут быть списком, кортежем, массивом numpy, скаляром или другим типом

dtype — можно вернуть желаемый тип тензора

устройство - можно указать возвращаемое устройство

require_grad — можно указать, записывать ли операцию графа, по умолчанию — False

создание ярлыка

t1 = torch.FloatTensor([[1,2],[5,6]])

получить данные из numpy Numpy — это часто используемая библиотека в разработке, поэтому как отправлять данные из numpy в тензор, этот pytorch также предоставляет интерфейс, что очень удобно

факел.from_numpy(ндарри) Примечание. Сгенерированный тензор будет делиться данными с ndarry, любая операция с тензором повлияет на ndarry, и наоборот.

Встроенный метод создания тензора torch.empty(size) возвращает пустой тензор размера фигуры

torch.zeros(size) - это тензор со всеми нулями

torch.zeros_like(input) возвращает нулевой тензор того же размера, что и входной тензор

torch.ones(size) тензор со всеми единицами

torch.ones_like(input) возвращает тензор «все один» того же размера, что и входной тензор.

torch.arange(start=0, end, step=1) возвращает последовательность от начала до конца, вы можете ввести только один конечный параметр, как в python range(). На самом деле в PyTorch тоже есть range(), но он будет упразднен и заменен на arange

torch.full(size, fill_value) иногда более удобен, превращая число fill_value в тензор в форме размера

torch.randn(5) случайным образом генерирует тензор один за другим

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

tensor 转为numpy
a = torch.ones(5)
print(a)
b = a.numpy()
print(b)
tensor 转为list
data = torch.zeros(3, 3)
data = data.tolist()
print(data)

4. Операции над тензорами Размерное улучшение

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

метод:

Пройдите все измерения, начиная с хвостового измерения, каждое соответствующее измерение либо одного размера, либо одно из них равно 1, либо одно из них не существует. Если он не существует, разверните текущие данные.Вы можете увидеть красную рамку на рисунке ниже, и данные развернуты.

image.png

a = torch.zeros(2, 3)
b = torch.ones(3)
print(a)
print(b)
print(a + b)

Проверьте результаты, вы можете видеть, что окончательный результат равен 1:

image.png

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

добавление

image.png

y = t.rand(2, 3)        # 使用[0,1]均匀分布构建矩阵
z = t.ones(2, 3)        # 2x3 的全 1 矩阵

# 3 中加法操作等价
print(y + z)            ### 加法1
t.add(y, z)             ### 加法2
减法
a = t.randn(2, 1)
b = t.randn(2, 1)
print(a)
### 等价操作
print(a - b)
print(t.sub(a, b))
print(a)        ### sub 后 a 没有变化

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

image.png

t.mul(input, other, out=None): матрица, умноженная на число

t.matmul(mat, mat, out=None): умножение матриц

t.mm(mat, mat, out=None): в основном эквивалентно matmul

a=torch.randn(2,3) b=torch.randn(3,2)

Эквивалентная операция

print(torch.mm(a,b)) # mat x mat print(torch.matmul(a,b)) # mat x mat

Эквивалентная операция

print(torch.mul(a,3)) # число, умноженное на число печать (а * 3) некоторые другие операции Pytorch также поддерживает больше операций.Эти операции не будут вводиться одна за другой.Вы можете проверить результаты при их использовании.


t.div(input, other, out=None)#:除法
 
t.pow(input, other, out=None)#:指数
 
t.sqrt(input, out=None)#:开方
 
t.round(input, out=None)#:四舍五入到整数
 
t.abs(input, out=None)#:绝对值
 
t.ceil(input, out=None)#:向上取整
 
t.clamp(input, min, max, out=None)#:把 input 规范在 min 到 max 之间,超出用 min 和 max 代替,可理解为削尖函数
 
t.argmax(input, dim=None, keepdim=False)#:返回指定维度最大值的索引

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