В этом посте мы рассмотрим некоторые примеры 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.