Автор оригинала: Pankaj Kumar.
Tensorflow Был разработан для внутреннего использования Google Google Magn Compare, но система достаточно общего, чтобы их применяться к широкому разнообразию доменов. 9 ноября 2015 года они решили открыть исходный и выпустить его в соответствии с лицензией открытого исходного кода Apache 2.0. Сегодня мы рассмотрим основные основы Tensorflow, а затем некоторые программы примера Tensorflow Python.
Tensorflow
Tensorflow использует различные методы оптимизации, чтобы сделать расчеты более эффективными. Когда дело доходит до вычисления на несколько машин и включает в себя огромные наборы данных, Tensorflow предлагает высокую масштабируемость. Эти функции собраны вместе, делают Tensorflow идеальной рамками для машинного обучения.
Терминологии Tensorflow
В этом посту мы узнаем больше о Tensorflow и узнаем некоторые примеры, чтобы увидеть, как Tensorflow можно использовать для визуализации, настройки и отладки библиотек, созданных с ним, но прежде чем мы будем работать с Tensorflow, мы должны знать, что являются тензорами и тензором Единицы измерения.
Тензоры
Tensor является центральным устройством данных в Tensorflow. Он состоит из примитивных значений, хранящихся в форме многомерного массива. Количество размеров тензор называется его Ранг Отказ
Tensor ранг 0 – это просто скаляр Отказ Чтобы сохранить вещи простыми, мы можем сказать, что тензор довольно необычное название массива, и теперь мы называем номер измерения в качестве ранга. Давайте посмотрим, какие тензоры выглядят:
Тензор на 1 ранг:
[1,2,3,4]
Тензор на 2 ранга:
[[1,2,3,4,],[5,6,7,8]]
Блоки для обработки тензора (TPU)
TPU – это программируемый AI Accelerator, предназначенный для обеспечения высокой пропускной способности арифметики с низкой точностью. Он направлен на использование или эксплуатацию моделей, а не обучение их. Как объявлено Google, они бегут в TPU внутри своих центров обработки данных более года и нашли их для обеспечения порядок более оптимизированной производительности на ватту для машинного обучения.
TPU второго поколения доставляют до 180 терафлопов производительности, а также при организации в кластеры 64 TPU, предоставляют до 11,5 петафлопа.
Начало работы с Tensorflow
Мы начнем с установки Tensorflow.
Установка Tensorflow
Мы будем использовать Tensorflow Python API, он работает с Python 2.7 и Python 3.3, а затем.
Только для Linux: версия GPU требует CUDA 7.0. + И CUDNN C2 +.
После того, как у вас есть эти требования, выполненные, вы можете начать с установки. Для установки мы можем использовать любую предание, либо PIP, в зависимости от того, что вам удобнее.
Установка PIP стандартная для установки, используя PIP, просто запустив следующую команду в вашем терминале (Sudo не является обязательным):
$ pip install tensorflow
Или вы можете установить с помощью CODA, используя следующую команду:
$ conda create --name TensorflowEnv biopython $ source activate TensorFlowEnv $ conda install tensorflow
Мы устанавливаем биопатон в первой команде, чтобы облегчить вещи, так как оно содержит еще несколько пакетов, которые нам могут понадобиться.
Используя Tensorflow
Чтобы использовать Tensorflow в любом месте вашего сценария, просто импортируйте его, используя следующий оператор импорта.
import tensorflow
Tensorflow Простые выражения
Давайте посмотрим на простые элементы, и как они выглядят как в Tensorflow, прежде чем мы на самом деле добраться до работы со своими элементами.
Константы Tensorflow
Если вам нужны константы в вашей учебной модели, вы можете использовать постоянный объект. В константах Tensorflow создаются с использованием постоянной функции.
Подпись функции:
constant(value, dtype=None, shape=None, name='Const', verify_shape=False)
Здесь форма и имя являются необязательными параметрами. Давайте попробуем создать объект, используя подпись:
myConstant = tf.constant(4.5, name="x", dtype=tf.float32)
Переменные Tensorflow
Переменные TenSorflow являются важной частью любой структуры, так как невозможно программировать без переменных, они используются для удержания и обновления значений.
В переменных Tensorflow имеет большое использование, когда мы являемся учебными моделями. В качестве постоянных мы должны вызвать конструктор для инициализации переменной, начальное значение может быть передано в качестве аргумента. Создание переменной легко и может быть сделано следующим образом:
myVariable = tf.Variable(tf.zeros([1]), name="myVariable")
Если мы хотим, чтобы переменная была использована только для расчетов, и она не должна быть обучена, мы можем использовать этот тренажерный флаг, такой как это:
k = tf.Variable(tf.add(a, b), trainable=False)
Переменные могут быть легко добавлены к вычислительному графу, позвонив конструктору.
Сеансы Tensorflow
Сеанс инкапсулирует контроль и состояние выполнения Tensorflow. Урок сеанса принимает параметр графа. Если мы не передам никаких параметров на сеанс, он будет использовать график по умолчанию, созданный на текущем сеансе.
Давайте посмотрим на сессию в действии, чтобы узнать его лучше:
# Import tensorflow import tensorflow as tf # Initialize some constants to be used in session x = tf.constant(-2.0, name="x", dtype=tf.float32) a = tf.constant(5.0, name="a", dtype=tf.float32) b = tf.constant(13.0, name="b", dtype=tf.float32) # Declare a Variable y = tf.Variable(tf.add(tf.multiply(a, x), b)) # Assign variable initializer to init init = tf.global_variables_initializer() # Start the session with tf.Session() as session: session.run(init) print(session.run(y))
Давайте начнем сеанс, запустив выше код в терминале:
Код принты 3.0, который должен быть значение Y после вычислений. Кроме того, пожалуйста, игнорируйте предупреждение перед выходом. Вы можете получить это, а также из-за нескольких версий Python и другие факторы.
Определение вычислительных графов
График вычислений является встроенным процессом в Tensorflow, нам не нужно создавать экземпляр объектов графа явно.
В Tensorflow объект графа может быть создан с помощью простой строки кода, такой как:
c = tf.add(a, b)
Это создает узел операции для суммирования двух чисел.
Tensorflow Placeholder.
Если мы хотим вводить данные в график вычисления, мы должны использовать механизм, названный в качестве заполнителя. Заполнители связаны внутри некоторых выражений. Типичный заполнитель выглядит как:
placeholder(dtype, shape=None, name=None)
Защитники позволяют нам не предоставлять данные заранее для операций и графиков вычислений, и данные могут быть добавлены во время выполнения от внешних источников.
Давайте посмотрим на пример. Мы постараемся умножить два целых числа в Tensorflow путь, мы будем использовать здесь заполнители:
import tensorflow as tf # Declare placeholders, Notice we didn't pass any values here x = tf.placeholder(tf.float32, name="x") y = tf.placeholder(tf.float32, name="y") z = tf.multiply(x, y, name="z") # Start the session to see the result, and pass values from the feed with tf.Session() as session: print(session.run(z, feed_dict={x: 2.6, y: 2.0}))
Давайте запустим программу и посмотрим, что мы получаем:
Математика с Tensorflow
У нас уже было кратко о тензорах, здесь мы посмотрим, как мы можем преобразовать numpy массив в тензор. Для преобразования мы должны использовать встроенные функции convert_to_tensor
Отказ Эта функция принимает тензорные объекты, Numpy массивы, Списки Python и Python скаляры. Попробуем преобразовать 2-D массив в тензор.
import tensorflow as tf import numpy as np # create several numpy arrays tensor_2d = np.array(np.random.rand(4, 4), dtype='float32') tensor_2d_1 = np.array(np.random.rand(4, 4), dtype='float32') tensor_2d_2 = np.array(np.random.rand(4, 4), dtype='float32') # convert to tensor m1 = tf.convert_to_tensor(tensor_2d) m2 = tf.convert_to_tensor(tensor_2d_1) m3 = tf.convert_to_tensor(tensor_2d_2) # perform matrix operation on tensors mat_product = tf.matmul(m1, m2) mat_sum = tf.add(m2, m3) mat_det = tf.matrix_determinant(m3) # run session and see the results with tf.Session() as session: print(session.run(mat_product)) print(session.run(mat_sum)) print(session.run(mat_det))
Давайте запустим код:
Мы пробовали некоторые матричные операции выше с TensorFlow, но как насчет элементных операций, таких как синус, косинус. Хорошо, что процесс остается прежним, однако, если мы попробуем операцию косинуса на векторе, результаты, настолько формируемые, будут элементными. Давайте посмотрим на это в действии с помощью примера:
import numpy as np import tensorflow as tf # Create a numpy array tensor_1d = np.array([0, 0, 0]) # Convert to tensor tensor = tf.convert_to_tensor(tensor_1d, dtype=tf.float64) # Run and let's find cos of this tensor with tf.Session() as session: print(session.run(tf.cos(tensor)))
Теперь давайте запустим это:
Машина обучения с Tensorflow
Мы посмотрим на минимальный пример машинного обучения и того, как мы можем работать алгоритм, как линейная регрессия с Tensorflow.
Линейная регрессия
Линейная регрессия представляет собой широко используемый алгоритм в области машинного обучения. Этот алгоритм основан на двух важных концепциях машинного обучения: функция затрат и градиентного происхождения.
Итак, давайте поработаем этот алгоритм с Tensorflow:
import tensorflow as tf import numpy as np # Declare some imporant constants test_data_size = 2000 iterations = 10000 learn_rate = 0.005 # Generate Test Values def generate_test_values(): train_x = [] train_y = [] for _ in range(test_data_size): x1 = np.random.rand() x2 = np.random.rand() x3 = np.random.rand() y_f = 2 * x1 + 3 * x2 + 7 * x3 + 4 train_x.append([x1, x2, x3]) train_y.append(y_f) return np.array(train_x), np.transpose([train_y]) # Create place holders for various values x = tf.placeholder(tf.float32, [None, 3], name="x") W = tf.Variable(tf.zeros([3, 1]), name="W") b = tf.Variable(tf.zeros([1]), name="b") y = tf.placeholder(tf.float32, [None, 1]) model = tf.add(tf.matmul(x, W), b) # Compute cost function cost = tf.reduce_mean(tf.square(y - model)) # Training Model train = tf.train.GradientDescentOptimizer(learn_rate).minimize(cost) train_dataset, train_values = generate_test_values() init = tf.global_variables_initializer() with tf.Session() as session: session.run(init) for _ in range(iterations): session.run(train, feed_dict={ x: train_dataset, y: train_values }) print( "cost = {}".format(session.run(cost, feed_dict={ x: train_dataset, y: train_values }))) print( "W = {}".format(session.run(W))) print( "b = {}".format(session.run(b)))
Давайте запустим программу. Выходные параметры W и B должны быть такими же, как те, которые определены в функции Generate_Test_Values:
Учебник Tensorflow Python
В этом уроке мы видели, что Tensorflow – это мощная структура и позволяет легко работать с несколькими математическими функциями и многомерными массивами, она также позволяет легко выполнить графики данных и масштабирование.
Tensorflow вырос популярным среди разработчиков со временем. Возможно, вам может потребоваться некоторое время, чтобы привыкнуть к Tensorflow, но как только вы это сделаете, машинное обучение в производственной масштабе менее утомительно.