В этой главе мы узнаем об основах TensorFlow. Начнем с понимания структуры данных тензора.
Тензорная структура данных
Тензорные элементы используются в качестве основных структур данных в языке TensorFlow. Тензорные элементы представляют соединительные ребра в любой блок-схеме, называемой графиком потока данных. Тензоры определяются как многомерный массив или список.
Тензоры идентифицируются по следующим трем параметрам:
Ранг
Единица размерности, описанная в тензоре, называется рангом. Он идентифицирует количество измерений тензора. Ранг тензора можно описать как порядок или n-размерность тензора.
форма
Количество строк и столбцов вместе определяют форму Tensor.
Тип
Тип описывает тип данных, назначенный элементам Tensor.
Пользователь должен рассмотреть следующие действия для построения Tensor —
- Построить n-мерный массив
- Преобразовать n-мерный массив.
Различные размеры TensorFlow
TensorFlow включает в себя различные размеры. Размеры описаны вкратце ниже —
Одномерный тензор
Одномерный тензор — это нормальная структура массива, которая включает в себя один набор значений одного и того же типа данных.
декларация
>>> import numpy as np >>> tensor_1d = np.array([1.3, 1, 4.0, 23.99]) >>> print tensor_1d
Реализация с выводом показана на скриншоте ниже —
Индексирование элементов такое же, как списки Python. Первый элемент начинается с индекса 0; чтобы распечатать значения через индекс, все, что вам нужно сделать, это указать номер индекса.
>>> print tensor_1d[0] 1.3 >>> print tensor_1d[2] 4.0
Двумерные тензоры
Последовательность массивов используется для создания «двумерных тензоров».
Создание двумерных тензоров описано ниже —
Ниже приводится полный синтаксис для создания двумерных массивов:
>>> import numpy as np >>> tensor_2d = np.array([(1,2,3,4),(4,5,6,7),(8,9,10,11),(12,13,14,15)]) >>> print(tensor_2d) [[ 1 2 3 4] [ 4 5 6 7] [ 8 9 10 11] [12 13 14 15]] >>>
Конкретные элементы двумерных тензоров можно отслеживать с помощью номера строки и номера столбца, указанных в качестве порядковых номеров.
>>> tensor_2d[3][2] 14
Тензорная обработка и манипуляции
В этом разделе мы узнаем о Tensor Handling и Manipulations.
Для начала рассмотрим следующий код —
import tensorflow as tf import numpy as np matrix1 = np.array([(2,2,2),(2,2,2),(2,2,2)],dtype = 'int32') matrix2 = np.array([(1,1,1),(1,1,1),(1,1,1)],dtype = 'int32') print (matrix1) print (matrix2) matrix1 = tf.constant(matrix1) matrix2 = tf.constant(matrix2) matrix_product = tf.matmul(matrix1, matrix2) matrix_sum = tf.add(matrix1,matrix2) matrix_3 = np.array([(2,7,2),(1,4,2),(9,0,2)],dtype = 'float32') print (matrix_3) matrix_det = tf.matrix_determinant(matrix_3) with tf.Session() as sess: result1 = sess.run(matrix_product) result2 = sess.run(matrix_sum) result3 = sess.run(matrix_det) print (result1) print (result2) print (result3)
Выход
Приведенный выше код сгенерирует следующий вывод:
объяснение
Мы создали многомерные массивы в приведенном выше исходном коде. Теперь важно понимать, что мы создали график и сеансы, которые управляют тензорами и генерируют соответствующий вывод. С помощью графика у нас есть выходные данные, определяющие математические вычисления между тензорами.