TensorFlow – это программная система глубокого обучения с открытым исходным кодом, созданная Google для обучения нейронных сетей.
TensorFlow может выполнять распознавание изображений, распознавание звука на человеческом языке и решать уравнения в частных производных.
Мы установим TensorFlow и все пакеты, необходимые для использования TensorFlow в виртуальной среде Python на Ubuntu.
Это изолирует вашу среду TensorFlow от других программ Python на той же машине.
Шаг 1) Установка TensorFlow
Мы собираемся создать виртуальную среду и установить TensorFlow.
Сначала создайте каталог проекта с именем tf-test:
$ mkdir ~/tf-test
И перейдем в наш недавно созданный каталог tf-test:
$ cd ~/tf-test
Теперь мы собираемся создать новую виртуальную среду tenorflow-venv. Выполните следующую команду, чтобы создать среду:
$ python3 -m venv tensorflow-venv
Запустите команду ниже, чтобы активировать среду.
$ source tensorflow-venv/bin/activate
Запустите следующую команду, чтобы установить и обновить до последней версии TensorFlow, доступной в PyPi.
(tensorflow-venv)$ pip install --upgrade tensorflow
Output Collecting tensorflow Downloading tensorflow-1.4.0-cp36-cp36m-macosx_10_11_x86_64.whl (39.3MB) 100% |████████████████████████████████| 39.3MB 35kB/s ... Successfully installed bleach-1.5.0 enum34-1.1.6 html5lib-0.9999999 markdown-2.6.9 numpy-1.13.3 protobuf-3.5.0.post1 setuptools-38.2.3 six-1.11.0 tensorflow-1.4.0 tensorflow-tensorboard-0.4.0rc3 werkzeug-0.12.2 wheel-0.30
Теперь мы приведем примеры, использующие tensorflow.
Пример 1) Простые константы
Чтобы создать простую константу с Tensorflow, которую TF хранит как тензорный объект:
>>> import tensorflow as tf
Мы создадим строковую константу следующим образом:
>>> hello = tf.constant('Hello World')
Чтобы узнать тип объекта hello:
>>> type(hello)
output tensorflow.python.framework.ops.Tensor
Мы создадим целочисленную константу следующим образом:
>>> x = tf.constant(300)
>>> type(x)
output tensorflow.python.framework.ops.Tensor
Пример 2) Запуск сессий
Теперь мы можем создать сеанс
TensorFlow, который является классом для выполнения операций TensorFlow.
>>> sess = tf.Session()
>>> sess.run(hello)
output b'Hello World'
b для индикации Unicode.
>>>type(sess.run(hello))
output bytes
для второй константы.
>>> sess.run(x)
output 300
>>>type(sess.run(x))
output numpy.int32
Пример 3) Операции
Мы можем выстроить несколько операций Tensorflow для выполнения во время сеанса:
>>> x = tf.constant(20) >>> y = tf.constant(30)
>>> with tf.Session() as sess: print('Operations with Constants') print('Addition',sess.run(x+y)) print('Subtraction',sess.run(x-y)) print('Multiplication',sess.run(x*y)) print('Division',sess.run(x/y))
output Operations with Constants Addition 50 Subtraction -10 Multiplication 600 Division 0.666666666667
Пример 4) Заполнитель
У нас не всегда могут быть константы сразу, и мы можем ожидать появления константы после цикла операций. tf.placeholder – это инструмент для этого.
Он вставляет заполнитель для тензора
Примечание: этот тензор выдаст ошибку при оценке. Его значение должно быть передано с использованием необязательного аргумента feed_dict в Session.run ().
>>> x = tf.placeholder(tf.int32) >>> y = tf.placeholder(tf.int32)
Мы собираемся определить операции.
>>> add = tf.add(x,y) >>> sub = tf.sub(x,y) >>> mul = tf.mul(x,y)
Мы собираемся создать словарь, чтобы сделать операции над ним.
>>> d = {x:20,y:30}
>>> with tf.Session() as sess: print('Operations with Constants') print('Addition',sess.run(add,feed_dict=d)) print('Subtraction',sess.run(sub,feed_dict=d)) print('Multiplication',sess.run(mul,feed_dict=d))
output Operations with Constants Addition 50 Subtraction -10 Multiplication 600
Пример 5) Умножение матриц
Теперь мы собираемся использовать матричное умножение. Сначала нам нужно создать матрицы:
>>> import numpy as np
>>> a = np.array([[5.0,5.0]]) >>> b = np.array([[2.0],[2.0]])
>>> print(a)
output array([[ 5., 5.]])
>>> print(a.shape)
output (1, 2)
>>> print(b)
output array([[ 2.], [ 2.]])
>>> print(b.shape)
output (2, 1)
Теперь мы собираемся создать постоянные тензорные объекты.
>>> mat1 = tf.constant(a) >>> mat2 = tf.constant(b)
Операция умножения матриц:
>>> matrix_multi = tf.matmul(mat1,mat2)
Теперь мы запускаем сеанс для выполнения операции:
>>> with tf.Session() as sess: result = sess.run(matrix_multi) print(result)
output [[ 20.]]