Учебники

TensorFlow — Основы

В этой главе мы узнаем об основах 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)

Выход

Приведенный выше код сгенерирует следующий вывод:

Тензорная обработка и манипуляции

объяснение

Мы создали многомерные массивы в приведенном выше исходном коде. Теперь важно понимать, что мы создали график и сеансы, которые управляют тензорами и генерируют соответствующий вывод. С помощью графика у нас есть выходные данные, определяющие математические вычисления между тензорами.