Основные понятия тензоров
Глубокое обучение
Предисловие
Базовая структура данных всех современных систем машинного обучения использует тензоры, что свидетельствует о ее важности для области глубокого обучения. Давайте представим это подробно.
Подобно спискам и кортежам, тензоры являются контейнерами данных, но почти все они представляют собой числовые данные. Его можно разделить на тензоры различной структуры в соответствии с разными размерностями. Проиллюстрируем это.
Скаляр
Скаляр — это тензор, содержащий только одно значение.
ex: 1 , 2 , 3 …
Он также называется тензором нулевого порядка , тензором нулевой оси или 0D-тензором . float32 или float64 — это своего рода скалярный тензор. Ниже введите атрибут, чтобы проверить, сколько осей имеет тензор.
import numpy as np x = np.array(20) //use number 20 to build a tensor (numpy array) x.ndim
Результатом этого кода является 0. Это означает, что ось (порядок) равна 0. Следовательно, вы можете понять, что тензор оси 0 равен скалярному тензору и тензору 0-го порядка. Вы можете импортировать numpy и использовать его метод array() для создания массива numpy.
Вектор
Вектор состоит из группы чисел и представляет собой массив.
ex: [x,y] , [x,y,z] …
Он называется тензором первого порядка , одноосным тензором или одномерным тензором, потому что это только одна ось. Давайте создадим вектор Numpy (1D тензор)
x = np.array([8,14,17,21,32,14]) //use array() method to create a six dimensional 1D tensor x.ndim
Результат равен 1. Важно отметить, что этот вектор состоит из 6 элементов. Поэтому мы можем назвать это шестимерным одномерным тензором.
1D тензор: D означает, сколько осей.
Матрица
Матрица состоит из группы векторов и представляет собой массив.
Его также называют тензором второго порядка, двухосным тензором или двумерным тензором. Матрицаимеет 2 оси. Одна ось называется строкой, а другая — столбцом. Давайте создадим матрицу Numpy
x = np.array([[1,2,3,4,5], //use array() to create 2D tensor 4*5(dimensional) [6,7,8,9,10], [11,12,13,14,15], [16,17,18,19,20]]) x.ndim
Результат приведенного выше кода равен 2. В приведенной выше матрице [1,2,3,4,5] — это строка 0 числа x, [1,6,11,16] — столбец 0 числа x.
Более высокого порядка
Это относится к трехмерным тензорам или тензорам более высокого порядка. В следующем примере в качестве примера используется тензор третьего порядка. Давайте сначала посмотрим на график трехмерного тензора.
Вы можете представить его в виде трехмерного куба. Тензоры более высокого порядка не могут быть визуализированы людьми графически.
x = np.array([[[4,12,5,6,13], [6,8,46,51,42], [7,81,12,17,19]], [[1,3,5,7,82], [17,44,45,47,82], [0,23,4,56,98]] [[4,5,6,78,74], [77,88,99,11,22], [49,51,53,55,57]]) x.ndim
Результат приведенного выше кода равен 3. Трехмерный тензор состоит из группы матриц, которые должны быть массивом. И так далее и тому подобное, помещение нескольких трехмерных тензоров в массив становится четырехмерным тензором.
Характеристики
Тензоры определяются тремя ключевыми свойствами в глубоком обучении.
- число осей: это число осей, упомянутое в приведенном выше примере, вы можете использовать ndim, например, метрика равна 2.
- shape : используется для описания количества измерений каждой оси в тензоре . В программе кортеж, состоящий из целых чисел, используется для представления структуры данных тензора. Например, форма вектора (x), форма матрицы (x, y), форма трехмерного тензора (x, y, z), а форма скаляра представлена к ().
- тип данных (называемый dtype в Python): это относится к типу данных в тензоре, например, float32, uint8, float64 и т. д. Существуют также другие строковые типы. тензоры.
количество осей =›
x = np.array([8,14,17,32]) x.ndim
результат :
1
форма =›
x = np.array([[8,14,17,32], [12,41,13,5]]) x.shape
результат :
(4,2)
тип данных =›
x = np.array(20) x.dtype
результат:
dtype('float32')
Применение тензора в глубоком обучении
Итак, где мы можем использовать тензоры в глубоком обучении?
Двухмерный тензор (вектор): его форма (образцы, признаки). Каждая выборка представляет собой вектор числовых признаков.
Данные временного ряда или последовательные данные: здесь используется трехмерный тензор, и его форма (выборки, временные шаги, функции). Каждая выборка представляет собой последовательность нескольких векторов признаков с длиной временных шагов.
Изображение. Здесь используется 4D-тензор, и его форма (выборки, высота, ширина, каналы) или (выборки, каналы, высота, ширина). Каждый образец представляет собой двумерную сетку (высота * ширина) пикселей, и каждый пиксель выражается в виде вектора, длина которого равна каналам.
Видео: использование 5D-тензора, и его форма (выборки, кадры, высота, ширина, каналы). Каждый образец представляет собой последовательность изображений с длиной кадров.
Спасибо за ваше чтение .🥴