Рубрики
Без рубрики

Простые примеры тензорного потока

Узнайте, Как Определить Одномерный Тензор, Двумерный тензор, Выполнять Математические Операции, Обрезать И Транспонировать изображения, Используя Простые Примеры Тензорного Потока

Автор оригинала: LikeGeeks.

В этом посте мы рассмотрим некоторые примеры TensorFlow и посмотрим, как легко определять тензоры, выполнять математические операции с использованием тензоров и другие примеры машинного обучения.

Что такое тензорный поток?

TensorFlow-это библиотека, разработанная Google для решения сложных математических задач, которые занимают много времени.

На самом деле, TensorFlow может делать много вещей, таких как:

  • Решение сложных математических выражений.
  • Методы машинного обучения, когда вы даете ему выборку данных для обучения, затем вы даете другую выборку данных, чтобы предсказать результат на основе данных обучения. Это искусственный интеллект!!
  • Поддержка GPU. Вы можете использовать графический процессор (графический процессор) вместо процессора для более быстрой обработки. Существует две версии TensorFlow, версия CPU и версия GPU.

Прежде чем мы начнем работать с примерами TensorFlow, нам нужно знать некоторые основы.

Что такое тензор?

Тензор-это основные блоки данных, которые использует TensorFlow, это как переменные, которые TensorFlow использует для работы с данными. Каждый тензор имеет размерность и тип.

Размерность-это строки и столбцы тензора, вы можете определить одномерный тензор, двумерный тензор и трехмерный тензор, как мы увидим позже.

Тип – это тип данных для элементов тензора.

Определить одномерный тензор

Чтобы определить тензор, мы создадим массив NumPy или список Python и преобразуем его в тензор с помощью функции tf_convert_to_tensor.

Мы будем использовать NumPy для создания массива, подобного этому:

import numpy as np arr = np.array([1, 5.5, 3, 15, 20])

arr = np.array([1, 5.5, 3, 15, 20])

Из результатов можно увидеть размер и форму массива.

import numpy as np
 
arr = np.array([1, 5.5, 3, 15, 20])
 
print(arr)
 
print (arr.ndim)
 
print (arr.shape)
 
print (arr.dtype)

Это похоже на список Python, но здесь нет запятой между элементами.

Теперь мы преобразуем этот массив в тензор с помощью функции tf_convert_to_tensor.

import numpy as np
 
import tensorflow as tf
 
arr = np.array([1, 5.5, 3, 15, 20])
 
tensor = tf.convert_to_tensor(arr,tf.float64)
 
print(tensor)

Из результатов вы можете увидеть определение тензора, но вы не можете увидеть элементы тензора.

Ну, чтобы увидеть элементы тензора, вы можете запустить сеанс, подобный этому:

import numpy as np
 
import tensorflow as tf
 
arr = np.array([1, 5.5, 3, 15, 20])
 
tensor = tf.convert_to_tensor(arr,tf.float64)
 
sess = tf.Session()
 
print(sess.run(tensor))
 
print(sess.run(tensor[1]))

Определение двумерного тензора

Так же, как и одномерный массив, но на этот раз мы определим массив следующим образом:

arr.массив([(1, 5.5, 3, 15, 20),(10, 20, 30, 40, 50), (60, 70, 80, 90, 100)])

И вы можете преобразовать его в тензор, подобный этому:

import numpy as np
 
import tensorflow as tf
 
arr = np.array([(1, 5.5, 3, 15, 20),(10, 20, 30, 40, 50), (60, 70, 80, 90, 100)])
 
tensor = tf.convert_to_tensor(arr)
 
sess = tf.Session()
 
print(sess.run(tensor))

Теперь вы знаете, как определить тензоры, как насчет выполнения некоторых математических операций между ними?

Выполнение математики на тензорах

Предположим, что у нас есть 2 таких массива:

arr1 = np.array([(1,2,3),(4,5,6)])
 
arr2 = np.array([(7,8,9),(10,11,12)])

Нам нужно получить их сумму. С помощью TensorFlow можно выполнять множество математических операций.

Вы можете использовать функцию добавления следующим образом:

import numpy as np
 
import tensorflow as tf
 
arr1 = np.array([(1,2,3),(4,5,6)])
 
arr2 = np.array([(7,8,9),(10,11,12)])
 
arr3 = tf.add(arr1,arr2)
 
sess = tf.Session()
 
tensor = sess.run(arr3)
 
print(tensor)

Вы можете умножать массивы следующим образом:

import numpy as np
 
import tensorflow as tf
 
arr1 = np.array([(1,2,3),(4,5,6)])
 
arr2 = np.array([(7,8,9),(10,11,12)])
 
arr3 = tf.multiply(arr1,arr2)
 
sess = tf.Session()
 
tensor = sess.run(arr3)
 
print(tensor)

Теперь у тебя есть идея.

Трехмерный тензор

Мы видели, как работать с одномерными и двумерными тензорами, теперь мы увидим трехмерные тензоры, но на этот раз мы не будем использовать числа, мы будем использовать изображение RGB, где каждый фрагмент изображения задается координатами x, y и z.

Эти координаты-ширина, высота и глубина цвета.

Во-первых, давайте импортируем изображение с помощью matplotlib. Вы можете установить matplotlib с помощью pip , если он не установлен в вашей системе.

Теперь поместите свой файл в тот же каталог, что и файл Python, и импортируйте изображение с помощью matplotlib следующим образом:

import matplotlib.image as img
 
myfile = "likegeeks.png"
 
myimage = img.imread(myfile)
 
print(myimage.ndim)
 
print(myimage.shape)

Как вы можете видеть, это трехмерное изображение, ширина которого равна 150, высота-150, а глубина цвета-3.

Вы можете просмотреть изображение следующим образом:

import matplotlib.image as img
 
import matplotlib.pyplot as plot
 
myfile = "likegeeks.png"
 
myimage = img.imread(myfile)
 
plot.imshow(myimage)
 
plot.show()

Круто!!

Как насчет манипулирования изображением с помощью TensorFlow? Очень просто.

Обрезка Или Срез Изображения С Помощью TensorFlow

Во-первых, мы помещаем значения в заполнитель, как это:

myimage = tf.placeholder("int32",[None,None,3])

Чтобы срезать изображение, мы будем использовать оператор среза следующим образом:

cropped = tf.slice(myimage,[10,0,0],[16,-1,-1])

Наконец, запустите сеанс:

result = sess.run(cropped, feed\_dict={slice: myimage})

Затем вы можете увидеть изображение результата с помощью matplotlib.

Таким образом, весь код будет выглядеть следующим образом:

import tensorflow as tf
 
import matplotlib.image as img
 
import matplotlib.pyplot as plot
 
myfile = "likegeeks.png"
 
myimage = img.imread(myfile)
 
slice = tf.placeholder("int32",[None,None,3])
 
cropped = tf.slice(myimage,[10,0,0],[16,-1,-1])
 
sess = tf.Session()
 
result = sess.run(cropped, feed_dict={slice: myimage})
 
plot.imshow(result)
 
plot.show()

Потрясающе!!

Транспонирование изображений с помощью TensorFlow

В этом примере TensorFlow мы выполним простое преобразование с использованием TensorFlow.

Сначала укажите входное изображение и инициализируйте переменные TensorFlow:

myfile = "likegeeks.png"
 
myimage = img.imread(myfile)
 
image = tf.Variable(myimage,name='image')
 
vars = tf.global_variables_initializer()

Затем мы будем использовать функцию транспонирования, которая переворачивает оси 0 и 1 входной сетки:

sess = tf.Session()
 
flipped = tf.transpose(image, perm=[1,0,2])
 
sess.run(vars)
 
result=sess.run(flipped)

Затем вы можете показать полученное изображение с помощью matplotlib.

import tensorflow as tf
 
import matplotlib.image as img
 
import matplotlib.pyplot as plot
 
myfile = "likegeeks.png"
 
myimage = img.imread(myfile)
 
image = tf.Variable(myimage,name='image')
 
vars = tf.global_variables_initializer()
 
sess = tf.Session()
 
flipped = tf.transpose(image, perm=[1,0,2])
 
sess.run(vars)
 
result=sess.run(flipped)
 
plot.imshow(result)
 
plot.show()

Все эти примеры TensorFlow показывают вам, как легко работать с TensorFlow.