Tensorflow python: общие сведения, установка библиотеки / Блог компании RUVDS.com / Хабр

Содержание

общие сведения, установка библиотеки / Блог компании RUVDS.com / Хабр

TensorFlow — это опенсорсная библиотека, созданная Google, которая используется при разработке систем, использующих технологии машинного обучения. Эта библиотека включает в себя реализацию множества мощных алгоритмов, рассчитанных на решение распространённых задач машинного обучения, среди которых можно отметить распознавание образов и принятие решений.

Этот материал посвящён основам TensorFlow и рассчитан на читателей, которые ничего не знают о данной библиотеке.

TensorFlow: современная библиотека машинного обучения


Проект TensorFlow был переведён Google в разряд опенсорсных в 2015 году. Его предшественником был проект DistBelief, годы опыта, накопленные в ходе работы с которым, отразились на TensorFlow.

Разработчики библиотеки TensorFlow стремились к тому, чтобы она была бы гибкой, эффективной, расширяемой, переносимой. В результате ей можно пользоваться в самых разных вычислительных средах — от тех, которые формируются мобильными устройствами, до сред, представленных огромными кластерами.

Библиотека позволяет быстро готовить к реальной работе обученные модели, что устраняет необходимость в создании особых реализаций моделей для продакшн-целей.

Библиотека TensorFlow, с одной стороны, привлекает к себе внимание опенсорс-сообщества и открыта для инноваций, а с другой — пользуется поддержкой крупной корпорации. Это позволяет говорить о том, что у неё есть все шансы на стабильное развитие.

Эта библиотека, благодаря совместным усилиям всех тех, кто работает над ней, подходит для решения задач самых разных масштабов. От тех, которые возникают перед самостоятельным разработчиком, до тех, которые встают перед стартапами и даже перед крупными компаниями вроде Google. С того момента, как эта библиотека стала опенсорсной, с ноября 2015 года, она стала одной из интереснейших библиотек машинного обучения. Её всё чаще и чаще используют при проведении исследований, при разработке реальных приложений, при обучении.

TensorFlow постоянно улучшается, её постоянно снабжают чем-то новым, оптимизируют. Кроме того, растёт и сообщество, сформированное вокруг этой библиотеки.

О названии TensorFlow


Тензор (tensor) — это стандартный способ представления данных в системах глубокого обучения. Тензоры — это многомерные массивы, расширение двумерных таблиц (матриц) для представления данных, имеющих более высокие размерности. Проще говоря, тензор — это n-мерная матрица.

В целом, если вы привыкли к работе с матрицами, тензоры можно представлять себе так же, как вы представляете себе матрицы.

Начнём с установки TensorFlow.

Установка TensorFlow


Если вы начинаете работу с чистой установки Python (возможно, вы установили Python специально ради изучения TensorFlow), для установки TensorFlow достаточно воспользоваться
pip
:
pip install tensorflow

Этот подход прост, но у него есть некоторые неприятные особенности. Они заключаются в том, что при установке TensorFlow, вместо уже установленных пакетов, будут установлены определённые версии пакетов-зависимостей этой библиотеки.

Если вы используете существующую установку Python и для других целей, этим методом пользоваться не рекомендуется. Один из способов установки TensorFlow с обходом вышеописанной особенности заключается в использовании виртуального окружения, которым управляет утилита virtualenv. Возможно, у вас уже эта утилита установлена, возможно — нет. Если она у вас не установлена, установить её можно так:

pip install virtualenv

10 минутное практическое занятие по TensorFlow для начинающих [перевод] / Хабр

Привет, Хабр! Представляю вашему вниманию перевод статьи «TensorFlow Tutorial: 10 minutes Practical TensorFlow lesson for quick learners» автора Ankit Sachan.

Этот туториал по TensorFlow предназначен для тех, кто имеет общее представление о машинном обучении и пытается начать работу с TensorFlow.

Прежде всего у вас должен быть установлен TensorFlow. Вы можете его установить по этому руководству. Этот урок разделен на две части: в первой части мы объясняем основы на рабочем примере, во второй части мы строим модель линейной регрессии.


Часть 1. Основы TensorFlow

TensorFlow — это библиотека для численных расчетов, в которой данные проходят через граф. Данные в TensorFlow представлены n-мерными массивами — тензорами. Граф составлен из данных (тензоров) и математических операций.

В узлах графа находятся математические операции.

Ребра графа представляют тензоры, которые «перетекают» между операциями.

Есть еще один аспект, в котором TensorFlow сильно отличается от любого другого языка программирования. В TensorFlow вам сначала нужно создать проект того, что вы хотите создать. Изначально при создании графа переменные не имеют значений. Позже, когда вы создали полный граф, вы запускаете его в сессии и только тогда переменные будут принимать какие-либо значения.

Давайте начнем учиться на практике. Запустите python и импортируйте TensorFlow:

~$ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information. 
>>>
>>>import tensorflow as tf

Для определения операций используется граф, при этом все операции выполняются в сессии. Графы и сессии создаются независимо друг от друга. Относитесь к графу как к проекту строительства, а к сессии как к строительной площадке.


1.1. Графы в TensorFlow

Граф это основа TensorFlow, все вычисления (операции), переменные находятся на графе. Все, что происходит в коде, находится на дефолтном графе, предоставленном TensorFlow. Вы можете получить доступ к этому графу следующим образом:

graph = tf.get_default_graph()

А так вы можете получить список всех операций в этом графе:

graph.get_operations()

Сейчас ваш граф пуст. Если вам необходимо напечатать название каждой операции выполните следующий код:

for op in graph.get_operations(): 
    print(op.name)

Вывод снова будет пустым. В будущем, после добавления операций в граф, мы будем использовать этот код для вывода их названий.


1.2. Сессии в TensorFlow

Граф только определяет вычисления (создает проект), но не имеет никаких переменных, никаких значений, если мы не запустим граф или часть графа в сессии.

Вы можете создать сессию так:

sess=tf.Session()
... your code ...
... your code ...
sess.close()

Не забывайте, что начав сессию вам необходимо ее завершить или использовать блок with… as, например вот так:

with tf.Session() as sess:
    sess.run(f)

Плюсом использования такого подхода является то что сессия будет закрыта автоматически в конце блока with


1.3. Тензоры в TensorFlow

TensorFlow хранит данные в тензорах — многомерных массивах очень похожих на массивы numPy.

a) Константы — это значения которые не могут быть изменены. Они определяются так:

a=tf.constant(1.0)

при этом при попытке вывода вы получите следующее:

print(a)
<tf. Tensor'Const:0' shape=() dtype=float32>
 print(a)
Tensor("Const:0", shape=(), dtype=float32)

Как вы можете видеть, это отличается от других языков программирования, например от python. Вы не можете распечатать или получить доступ к константе до тех пор пока не запустите сессию. Давайте так и сделаем:

with tf.Session() as sess:
    print(sess.run(a))

Этот код выведет 1.0

b) Переменные это тоже тензоры которые походи на переменные в других языках программирования:

>>>b = tf.Variable(2.0,name="test_var")
>>>b
<tensorflow.python.ops.variables.Variable object at 0x7f37ebda1990>

В отличие от констант переменные могут менять свое содержимое. Однако переменные в TensorFlow должны быть инициализированы в отдельной операции инициализации. Может быть достаточно трудоемко инициализировать все переменные, но TensorFlow предоставляет механизм для инициализации всех переменных за раз:

init_op = tf. global_variables_initializer()

Теперь необходимо запустить операцию инициализации до того как вы попытаетесь получить доступ к переменной:

with tf.Session() as sess:
    sess.run(init_op)
    print(sess.run(b))

Этот код выведет 2.0
Если вы теперь попробуете распечатать операции в графе

graph = tf.get_default_graph()
for op in graph.get_operations(): 
    print(op.name)

то получите следующий вывод:

Const
test_var/initial_value
test_var
test_var/Assign
test_var/read
init

Как видите, мы объявили «a» как Const и она была добавлена к графику. Аналогично, для переменной b в граф TensorFlow было добавлено много состояний «test_var», таких как test_var/initial_value, test_var/read и т. д. Вы можете визуализировать всю сеть, используя TensorBoard, который представляет собой инструмент для визуализации графика TensorFlow и процесса обучения.

с) Плейсхолдеры — это тензоры, ожидающие инициализации данными. Они используются для данных которые будут предоставлены только когда код фактически будет выполнен в сеансе. То, что передается в плейсхолдер это словарь который содержит названия плейсхолдеров и их значения:

a = tf.placeholder("float")
b = tf.placeholder("float")
y = tf.multiply(a, b)
fd = {a: 2, b: 3}
with tf.Session() as sess:
    print(sess.run(y, fd))

Данный код выведет 6.0


1.4. Устройства в TensorFlow

TensorFlow имеет очень мощные встроенные возможности для запуска вашего кода на GPU, CPU или кластерах. Он предоставляет вам возможность выбрать устройство, на котором вы хотите запускать ваш код. Однако, это не то о чем стоит задумываться когда вы только начинаете знакомство с TF.
Итак вот полная картина того, как устроены вычисления в TensorFlow:


Часть 2. Туториал по TensorFlow с простым примером

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

Создание случайного нормального распределения:

Используйте random_normal для создания случайных значений из нормального распределения. В этом примере w — это переменная размерности 784 * 10 со случайными значениями со стандартным отклонением 0,01.

w=tf.Variable(tf.random_normal([784, 10], stddev=0.01))

Reduce_mean — вычисляет среднее значение массива

b = tf.Variable([10,20,30,40,50,60],name='t')
with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    sess.run(tf.reduce_mean(b))

Данный код выведет 35

argmax — очень похож на argmax в Python. Получает максимальное значение из тензора вдоль указанной оси.

a=[ [0.1, 0.2,  0.3  ],
    [20,  2,       3   ]
    ]
b = tf.Variable(a,name='b')
with tf.Session() as sess:
    sess.run(tf.initialize_all_variables())
    sess.run(tf.argmax(b,1))

Выведет массив ([2, 0]), который показывает индекс максимального значения в каждой из строк a.


Задача линейной регрессии

Постановка задачи: имеется большое количество точек данных, пытаетесь им в соответствие прямую линию. Для этого примера мы создадим 100 точек данных и попытаемся поставить им в соответствие линию.


2.1. Создание тренировочного набора данных

trainX содержит значения между -1 и 1, а trainY — увеличенное в 3 раза значение trainX плюс некоторую случайную величину:

import tensorflow as tf
import numpy as np

trainX = np.linspace(-1, 1, 101)
trainY = 3 * trainX + np.random.randn(*trainX.shape) * 0.33

2.2. Плейсхолдеры
X = tf.placeholder("float")
Y = tf.placeholder("float")

2.3. Моделирование

Модель линейной регрессии имеет вид


— мы должны вычислить значение w. Давайте инициализируем w нулевым значением и создадим модель для решения этой проблемы. Мы определяем функцию стоимость как


TensorFlow поставляется со многими оптимизаторами, которые рассчитывают и обновляют градиенты после каждой итерации, пытаясь минимизировать указанной функции стоимости. Мы собираемся определить операцию обучения используя GradientDescentOptimizer, чтобы минимизировать нашу функцию стоимости при скорости обучения 0,01. Затем мы запустим это операцию обучения в цикле.
w = tf.Variable(0.0, name="weights")
y_model = tf.multiply(X, w)

cost = (tf.pow(Y-y_model, 2))
train_op = tf.train.GradientDescentOptimizer(0.01).minimize(cost)

2.4. Обучение

До этого момента мы только определили граф. Никаких вычислений не происходило, ни одна из переменных TensorFlow не имеет значения. Чтобы запустить этот граф, нам нужно создать сессию и выполнить ее. Перед этим нам нужно создать операцию инициализации для всех переменных:

init = tf.initialize_all_variables()

with tf.Session() as sess:
    sess.run(init)
    for i in range(100):
        for (x, y) in zip(trainX, trainY):
            sess.run(train_op, feed_dict={X: x, Y: y})
    print(sess.run(w))

Обратите внимание, что первое, что было сделано, — это инициализация переменных путем вызова init внутри session. run(). Позже мы запускаем train_op, скармливая ей feed_dict. Наконец, мы печатаем значение w (снова внутри sess.run()), которое должно быть около 3.


Упражнение:

Если вы создадите новую сессию после этого кода и попытаетесь напечатать w, что выведется?

with tf.Session() as sess:
    sess.run(init)
    print(sess.run(w))

Да, вы правильно поняли, выведется 0.0. Как только мы вышли из сессии, созданной ранее, все операции перестают существовать.

Надеюсь, этот урок даст вам быстрый старт с TensorFlow. Пожалуйста, не стесняйтесь задавать свои вопросы в комментариях. Полный код можно скачать здесь.

TensorFlow туториал. Часть 2: установка и начальная настройка

Теперь, когда вы получше узнали TensorFlow, пора приступить к работе с ним и установить библиотеку. Важно знать, что TensorFlow предоставляет API для Python, C ++, Haskell, Java, Go, Rust. Также существует сторонний пакет для R.

Читайте также Часть 1: тензоры и векторы

После прочтения этого туториала вы сможете скачать версию TensorFlow, которая позволит вам написать код для проекта по глубокому обучению на Python. На странице установки TensorFlow представлены некоторые из наиболее распространенных способов установки (и советы по ним) с использованием virtualenv, pip, Docker, а также несколько других способов инсталляции.

Примечание. Если вы работаете на Windows, можно установить TensorFlow с помощью Conda. Однако, поскольку существует сообщество для помощи при инсталляции TensorFlow, лучше изучить официальные инструкции по установке.

Проверим, что TensorFlow установлен корректно. Для этого его нужно импортировать в рабочую область под названием tf:

import tensorflow as tf

Обратите внимание, что название, использованное в данной строчке кода, является своего рода соглашением. Оно общепринято как в сообществе разработчиков, использующих TensorFlow в своих проектах Data Science, так и в TensorFlow-проектах с открытым исходным кодом.

Начало работы с TensorFlow

Обычно TensorFlow-программы запускаются блоками. На первый взгляд это противоречит принципам программирования на Python. Однако, если вы хотите, можно также использовать интерактивные сессии TensorFlow, в которых работа с библиотекой идет более тесно. Это особенно удобно, если вы уже работали с IPython.

В этом туториале мы рассмотрим второй вариант: это поможет вам изучить глубокое обучение в TensorFlow. Но прежде чем перейти к сложным задачам, давайте сначала попробуем решить несколько примитивных.

Во-первых, импортируйте библиотеку tensorflow под названием tf, как было показано в предыдущем разделе. Затем инициализируйте две переменные-константы. Подайте массив из четырех чисел в функцию constant().

Обратите внимание, что можно также подать целое число, но чаще всего вы будете работать с массивами. Как вы увидели во введении, тензоры — это и есть массивы! Так что убедитесь, что передаете массив. Затем можно использовать multiply() для перемножения двух переменных. Сохраните результат в переменной result. Окончательно, выведите результат с помощью функции print().

# Import `tensorflow`
import tensorflow as tf

# Initialize two constants
x1 = tf.constant([1,2,3,4])
x2 = tf.constant([5,6,7,8])

# Multiply
result = tf.multiply(x1, x2)

# Print the result
print(result)

Обратите внимание, что для запуска интерактивной сессии можно использовать нижеследующий код. Запустите result и автоматически закройте сессию после вывода output:

# Import `tensorflow`
import tensorflow as tf

# Initialize two constants
x1 = tf.constant([1,2,3,4])
x2 = tf.constant([5,6,7,8])

# Multiply
result = tf.multiply(x1, x2)

# Initialize Session and run `result`
with tf. Session() as sess:
output = sess.run(result)
print(output)

В этих блоках вы только что определили сессию по умолчанию, но можно и задавать параметры. Например, можно указать аргумент config и затем использовать буфер протокола ConfigProto для добавления параметров конфигурации сессии.

Например, если добавить

config= tf.ConfigProto (log_device_placement = True)

к сессии, вы убедитесь, что зарегистрировали устройство GPU или CPU, назначенное для этой операции. Затем вы получите информацию о том, какие устройства используются в сессии для каждой операции. Если вы используете мягкие ограничения для размещения устройств, можно использовать следующую конфигурацию сессии:

congif= tf.ConfigProto (allow_soft_placement = True)

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

В следующей части — работа с данными в TensorFlow.

TensorFlow туториал. Часть 1: тензоры и векторы

TensorFlow — это ML-framework от Google, который предназначен для проектирования, создания и изучения моделей глубокого обучения. Глубокое обучение — это область машинного обучения, алгоритмы в которой были вдохновлены структурой и работой мозга. Вы можете использовать TensorFlow, чтобы производить численные вычисления. Само по себе это не кажется специфичным, однако эти вычисления производятся с помощью data-flow графов. В этих графах вершины представляют собой математические операции, в то время как ребра представляют собой данные, которые обычно представляются в виде многомерных массивов или тензоров, которые сообщаются между этими ребрами.

Поняли? Название «Tensor Flow» происходит от вычислений, которые нейросеть производит с многомерными данными и тензорами! Буквально — поток тензоров. На данный момент это все, что нужно знать о тензорах, но мы вернемся к ним чуть позже.

TensorFlow туториал познакомит вас с глубоким обучением в интерактивной форме:

  • Сначала вы узнаете больше о тензорах;
  • Затем, туторил плавно расскажет о там, как установить TensorFlow;
  • Далее вы узнаете об основах Tesorflow: как произвести свои первые простейшие вычисления;
  • Следующий этап — настоящая задача на реальных данных: данные по Бельгийскому дорожным знаком и обработка с помощью статистики;
  • Научитесь размечать данные таким образом, чтобы “скормить” эти данные нейросети;
  • Наконец, разработаете свою модель нейронной сети — слой за слоем;
  • Как только архитектура будет готова, вы сможете тренировать сеть интерактивно, а также производить оценку эффективности, использую тестовую выборку;
  • Последнее — вы получите указания, как можно улучшить свою модель и как можно дальше работать с TensorFlow.

Введение в тензоры

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

Плоские векторы

Перед тем, как мы перейдем к плоским векторам, неплохо бы вспомнить о том, что такое вектор. Вектор — это особый вид матрицы, прямоугольный массив с числами. Так как векторы — это упорядоченный набор чисел, то они часто представляются в виде столбцов матриц. Другими словами, вектор — скалярная величина, которой дали направление.

Пример скаляра — “5 метров” или “60 м/с”, тогда как вектор — “5 метров на север” или “60 м/с на восток”.

Разница между ними очевидна: вектор имеет направление. Тем не менее, примеры могут быть очень далеки от тех векторов, с которыми вы столкнетесь, занимаясь машинными обучением.

Длина математического вектора — величина абсолютная, в то время как направление — относительная. Длина измеряется относительно направления, а в качестве единиц выступают градусы или радианы. Обычно считается, что направление положительно и отсчитывается против часовой стрелки относительно начальной точки отсчета.

Визуально, конечно, векторы представляют собой стрелки, как на картинке выше. Это означает, что вы можете рассматривать векторы, как стрелки определенной длины и направления.

Так что же с плоскими векторами?

Плоский вектор — это простейший тензор. Они очень похожи на обычные векторы, такие как вы видели выше, с тем небольшим отличием, что они могут сами определять себя в векторном пространстве.

Чтобы понять, что это значит, рассмотрим пример: пусть есть вектор 2 X 1. Это означает, что вектор принадлежит множеству действительных чисел, которые объединены в пары. Или, иначе говоря, элемент двумерного пространства. В таких случаях вы можете задавать вектор на координатной плоскости, как стрелки или лучи.

Работая на координатной плоскости, вы можете узнать х координату конца луча с началом в (0, 0), посмотрев на первую строчку вектора, а у координату — на вторую.

Замечание: если вы рассматриваете вектор размера 3 X 1, то вы работаете трехмерном пространстве. Здесь вы можете представить вектор как стрелку в трехмерном пространстве, которая обычно задается тремя осями х, у и z.

Замечательно иметь данные вектора и их представление на координатной плоскости, но в сущности важно лишь то, какие вы можете производить над ними операции. В этом вам поможет выражение данных векторов через базисные или единичные вектора.

Единичные векторы — векторы длины 1. Двумерные или трехмерные вектора хорошо раскладываются в сумму ортогональных единичных векторов, таких как оси координат.

Тензоры

Плоский вектор — это частный случай тензора. Помните, вектор определялся в прошлом разделе как скаляр, которому задали направление. Тензор же — это математическое представление физической сущности, которая может быть задана величиной и несколькими направлениями.

И так же как вы представляли скаляр одним числом, а трехмерный вектор как тройку чисел, тензор представляется в виде массива 3R чисел в трехмерном пространстве. R чисел. Этим объясняется, почему скаляры часто называют тензорами размера 0: у них нет направления, и они могут быть представлены только одним числом.

Видео про тензоры на примере обычных объектов (на английском языке, можно включить перевод на русский в субтитрах):

Можно достаточно легко различать векторы, скаляры и тензоры: скаляры представляются одним числом, векторы — последовательностью чисел, тензоры — массивом чисел.

Что делает тензоры такими особенными, так это комбинация компонентов и базисных векторов: все операция производится над тензорами сохраняют отношения между базисными векторами и компонентами такими же.

В следующей частиустановка TensorFlow и первые шаги.


Интересные статьи:

Искусственный интеллект на Python и Tensorflow

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

В прошлой статье мы рассмотрели базовые концепции нейронной сети. На этот раз мы создадим куда более сложный проект, что будет распознавать пользовательские картинки. Нейронная сеть будет понимать: находится ли на фото изображение кота или же изображение собачки.

Что будет в нашей программе?

Наш искусственный интеллект не будет распознавать все объекты, по типу: машин, других животных, людей и тому прочее. Не будет он это делать по одной причине. Мы в качестве датасета или же, другими словами, набора данных для тренировки – будем использовать датасет от компании Microsoft. В датасете у них собрано более 25 000 фотографий котов и собачек, что даст нам возможность натренировать правильные весы для распознавания наших собственных фото.

Мы не будем сами искать варианты для обучения нейронной сети и на это есть два фактора:

  1. В этом нет смысла, так как для подобных задач, зачастую, уже есть различные датасеты с подготовленными данными, которые можно использовать.  
  2. У нас уйдет слишком много времени и сил на тренировку своей нейронной сети. Только представьте, нам потребуется найти и произвести обучение на тысячах фотографиях. Это не только очень сложно, но и дорого.

По этой причине для нашей программы мы воспользуемся готовым набором данных.

Какие библиотеки нам потребуются?

В прошлой статье мы использовали лишь одну библиотеку – numpy. Без этой библиотеки нам не обойтись и в этот раз. 

Numpy – библиотека, что позволяет поддерживать множество функций для работы с массивами, а также содержит поддержку высокоуровневых математических функций, предназначенных для работы с многомерными массивами.

По причине того, что нейронные сети – это математика, массивы и наборы данных, то без numpy – не обойтись.

Также мы будем использовать библиотеку Tensorflow. Она создана компанией Google и служит для решения задач построения и тренировки нейронной сети. За счет неё процесс обучение нейронки немного проще, нежели при написании с использованием только numpy.


Ну и последняя, но не менее важная – библиотека Matplotlib. Она служит для визуализации данных двумерной графикой. На её основе можно построить графики, изображения и прочие визуальные данные, которые человеком воспринимаются гораздо проще и лучше, нежели нули и единицы.

Среда разработки

В качестве среды разработки мы будем использовать специальный сервис от Google — Colab. Colab позволяет любому писать и выполнять произвольный код Python через браузер и особенно хорошо подходит для машинного обучения, анализа данных и обучения.


Colab полностью бесплатен и позволяет выполнять код блоками. К примеру, мы можем выполнить блок кода, где у нас идет обучение нейронки, а далее мы можем всегда выполнять не всю программу с начала и до конца, а лишь тот участок кода, где мы указываем новые данные для тестирования уже обученной нейронки.

Такой принцип существенно экономит время и по этой причине мы и будем использовать сервис Google Colab.

Создание проекта

Полная разработка проекта показывается в видео. Вы можете просмотреть его ниже:


Полезные ссылки:

Код для реализации проекта из видео:

# Импорт библиотек и классов
import numpy as np
import tensorflow as tf
import tensorflow_datasets as tfds
from tensorflow.keras.preprocessing.image import load_img, img_to_array
from tensorflow.keras.layers import Dense, GlobalAveragePooling2D, Dropout
import matplotlib.pyplot as plt
from google.colab import files

# Подгрузка датасета от Microsoft
train, _ = tfds.load('cats_vs_dogs', split=['train[:100%]'], with_info=True, as_supervised=True)

# Функция для изменения размеров изображений
SIZE = (224, 224)

def resize_image(img, label):
	img = tf.cast(img, tf.float32)
	img = tf.image.resize(img, SIZE)
	img /= 255.0
	return img, label
	

# Уменьшаем размеры всех изображений, полученных из датасета
train_resized = train[0].map(resize_image)
train_batches = train_resized. shuffle(1000).batch(16)

# Создание основного слоя для создания модели
base_layers = tf.keras.applications.MobileNetV2(input_shape=(SIZE[0], SIZE[1], 3), include_top=False)

# Создание модели нейронной сети
model = tf.keras.Sequential([
	base_layers,
	GlobalAveragePooling2D(),
	Dropout(0.2),
	Dense(1)
])
model.compile(optimizer='adam', loss=tf.keras.losses.BinaryCrossentropy(from_logits=True), metrics=['accuracy'])

# Обучение нейронной сети (наши картинки, одна итерация обучения)
model.fit(train_batches, epochs=1)

# Функция для подгрузки изображений
files.upload()


# Сюда укажите названия подгруженных изображений
images = []

# Перебираем все изображения и даем нейронке шанс определить что находиться на фото
for i in images:
	img = load_img(i)
	img_array = img_to_array(img)
	img_resized, _ = resize_image(img_array, _)
	img_expended = np.expand_dims(img_resized, axis=0)
	prediction = model.predict(img_expended)
	plt.figure()
	plt.imshow(img)
	label = 'Собачка' if prediction > 0 else 'Кошка'
	plt. title('{}'.format(label))

Изучение программирования

А вы хотите стать программистом и начать разрабатывать самостоятельно ИИ или хотя бы использовать уже готовые для своих собственных проектов? Предлагаем нашу программу обучения по языку Python. В ходе программы вы научитесь работать с языком, изучите построение мобильных проектов, научитесь создавать полноценные веб сайты на основе фреймворка Джанго, а также в курсе будет модуль по изучению нескольких готовых библиотек для искусственного интеллекта.

TensorFlow — Установка | ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Для установки TensorFlow важно, чтобы в вашей системе был установлен «Python». Python версии 3.4+ считается наилучшим для начала установки TensorFlow.

Для установки TensorFlow в операционной системе Windows выполните следующие шаги.

Шаг 1 – Убедитесь, что версия Python устанавливается.

 

Шаг 2 – Пользователь может выбрать любой механизм для установки TensorFlow в систему. Мы рекомендуем «Pip» и «Anaconda». Pip – это команда, используемая для выполнения и установки модулей в Python.

Перед установкой TensorFlow нам необходимо установить инфраструктуру Anaconda в нашей системе.

 

После успешной установки проверьте в командной строке команду «conda».

 

Шаг 3 – Выполните следующую команду, чтобы инициализировать установку TensorFlow:

conda create --name tensorflow python = 3.5

 

Он загружает необходимые пакеты, необходимые для установки TensorFlow.

 

Шаг 4 – После успешной настройки среды важно активировать модуль TensorFlow.

activate tensorflow

 

Шаг 5 – Используйте pip для установки «Tensorflow» в системе. Команда, используемая для установки, указана ниже:

pip install tensorflow

 

А также,

pip install tensorflow-gpu

 

После успешной установки важно знать пример выполнения программы TensorFlow.

Следующий пример помогает нам понять основную программу создания «Привет мир» в TensorFlow.

Код для реализации первой программы упомянут ниже:

>> activate tensorflow
>> python (activating python shell)
>> import tensorflow as tf
>> hello = tf.constant(‘Привет мир’)
>> sess = tf.Session()
>> print(sess.run(hello))

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

TensorFlow Tutorial: Deep Learning for Beginner’s

  • Home
  • Testing

      • Back
      • Agile Testing
      • BugZilla
      • Cucumber
      • 9000 J2000
      • 9000 Testing
      • 9000 J2000
      • 9000
      • 9000 J2 Назад
      • JUnit
      • LoadRunner
      • Ручное тестирование
      • Мобильное тестирование
      • Mantis
      • Почтальон
      • QTP
      • Назад
      • Центр качества (ALM)
      • SAP Testing
      • Управление тестированием
      • TestLink
  • SAP

      • Назад
      • ABAP
      • APO
      • Начинающий
      • Basis
      • BODS
      • BI
      • BPC
      • CO
      • Назад
      • CRM
      • Crystal Reports
      • Crystal Reports
      • FICO
      • Заработная плата
      • Назад
      • PI / PO
      • PP
      • SD
      • SAPUI5
      • Безопасность
      • Менеджер решений
      • Successfactors
      • SAP Tutorials
      4
    • Web
    • Apache
    • AngularJS
    • ASP.Net
    • C
    • C #
    • C ++
    • CodeIgniter
    • СУБД
    • JavaScript
    • Назад
    • Java
    • JSP
    • Kotlin
    • Linux
    • Linux
    • Kotlin
    • Linux
    • js
    • Perl
    • Назад
    • PHP
    • PL / SQL
    • PostgreSQL
    • Python
    • ReactJS
    • Ruby & Rails
    • Scala
    • SQL
    • 000
    • SQL
    • 000
    • SQL
    • 000 0003 SQL 000
    • UML
    • VB.Net
    • VBScript
    • Веб-службы
    • WPF
  • Обязательно учите!

      • Назад
      • Бухгалтерский учет
      • Алгоритмы
      • Android
      • Блокчейн
      • Бизнес-аналитик
      • Создание веб-сайта
      • Облачные вычисления
      • COBOL
      • Compiler Embedded
      • 9003
      • 9002

      TensorFlow — AMI

      для глубокого обучения

      Активация TensorFlow

      В этом руководстве показано, как активировать TensorFlow на экземпляре, на котором запущено глубокое обучение. AMI с Conda (DLAMI на Conda) и запустите программу TensorFlow.

      Когда выпускается стабильный пакет фреймворка Conda, он тестируется и предварительно устанавливается. на ДЛАМИ. Если вы хотите запустить последнюю непроверенную ночную сборку, вы можете установить ночную сборку TensorFlow (экспериментальную) вручную.

      Для запуска TensorFlow на DLAMI с Conda

      1. Для активации TensorFlow откройте инстанс Amazon Elastic Compute Cloud (Amazon EC2). ДЛАМИ с Конда.

        • Для TensorFlow и Keras 2 на Python 3 с CUDA 9.0 и MKL-DNN запустите это команда:

             $  источник активировать tenorflow_p36  
        • для TensorFlow и Keras 2 на Python 2 с CUDA 9.0 и MKL-DNN, запустите это команда:

             $  источник активировать tenorflow_p27  
      2. Запустите терминал iPython:

           (tenorflow_p36) $  ipython  
      3. Запустите программу TensorFlow, чтобы убедиться, что она работает правильно:

         
        
        импортировать тензорный поток как tf
        привет = tf.constant ('Привет, TensorFlow!')
        сессия = tf.Session ()
        print (sessions.run (привет))
          

        Здравствуйте, TensorFlow! На вашем экране должен появиться .

      Установите ночную сборку TensorFlow (экспериментальную)

      Вы можете установить последнюю сборку TensorFlow в любой или оба TensorFlow. Среды Conda на вашем AMI глубокого обучения с Conda.

      Для установки TensorFlow из ночной сборки

        • Для среды Python 3 TensorFlow выполните следующую команду:

             $  источник активировать tenorflow_p36  
        • Для среды Python 2 TensorFlow выполните следующую команду:

             $  источник активировать tenorflow_p27  
      1. Удалите текущий установленный TensorFlow.

        Остальные шаги предполагают, что вы используете tenorflow_p36 Окружающая среда.

           (tensorflow_p36) $  pip удалить tenorflow  
      2. Установите последнюю ночную сборку TensorFlow.

           (tensorflow_p36) $  pip install tf-nightly  
      3. Чтобы убедиться, что вы успешно установили последнюю ночную сборку, запустите IPython терминал и проверьте версию TensorFlow.

           (tenorflow_p36) $  ipython  
          импорт тензорного потока
        печать (tensorflow.__version__)  

        Результат должен напечатать что-то похожее на 1.12.0-dev20181012

      Дополнительные уроки

      TensorFlow с Horovod

      TensorBoard

      Обслуживание TensorFlow

      Учебники см. В папке под названием Deep Learning AMI with Conda tutorials в домашней папке. Справочник ДЛАМИ.

      Дополнительные руководства и примеры см. В документации TensorFlow для TensorFlow Python API или см. веб-сайт TensorFlow.

      Учебник по рекуррентным нейронным сетям и LSTM в Python и TensorFlow

      В процессе глубокого обучения на этом веб-сайте я представил плотные нейронные сети и сверточные нейронные сети (CNN), которые объясняют, как выполнять задачи классификации статических изображений.Мы видели хорошие результаты, особенно с CNN. Однако что произойдет, если мы захотим анализировать динамические данные? А как насчет видео, распознавания голоса или последовательностей текста? Есть способы сделать это с помощью CNN, но наиболее популярным методом выполнения классификации и другого анализа последовательностей данных являются рекуррентные нейронные сети. Это руководство будет всесторонним введением в рекуррентные нейронные сети и подмножество таких сетей — сети с долговременной памятью (или сети LSTM).Я также покажу вам, как реализовать такие сети в TensorFlow, включая этап подготовки данных. Это будет долгий процесс, так что освоитесь и наслаждайтесь этими ключевыми сетями в области глубокого обучения — в конце этого поста вы получите очень твердое представление о повторяющихся нейронных сетях и LSTM. Кстати, если вы хотите узнать, как создавать сети LSTM в Keras, посмотрите это руководство.

      Как всегда, весь код для этого поста можно найти в репозитории Github этого сайта.

      Рекуррентная нейронная сеть на самом фундаментальном уровне — это просто тип плотносвязной нейронной сети (введение в такие сети см. В моем руководстве).Однако ключевым отличием от обычных сетей с прямой связью является введение времени — в частности, выходной сигнал скрытого слоя в рекуррентной нейронной сети передается обратно самому себе . Диаграммы здесь помогают, поэтому обратите внимание:

      Схема рекуррентной нейронной сети с указанными узлами

      На диаграмме выше у нас есть простая рекуррентная нейронная сеть с тремя входными узлами. Эти входные узлы подаются в скрытый слой с сигмовидной активацией, как в любой нормальной плотносвязной нейронной сети.{t-1} $ в скрытый слой. Какой в ​​этом смысл? Просто дело в том, что теперь мы можем моделировать , время или данные, зависящие от последовательности.

      Особенно хорошим примером этого является прогнозирование текстовых последовательностей. Рассмотрим следующую текстовую строку: «Девушка зашла в бар и спросила:« Можно мне выпить? ». Бармен сказал: «Конечно {}». Есть много вариантов того, что можно заполнить символом {} в приведенной выше строке, например, «промахнулся», «мэм» и так далее. Однако могут подходить и другие слова, такие как «сэр», «мистер» и т. Д.Чтобы определить правильный род существительного, нейронная сеть должна «вспомнить», что использовались два предыдущих слова, обозначающих вероятный пол (т.е. «девушка» и «она»). Этот тип потока информации во времени (или последовательности) в рекуррентной нейронной сети показан на диаграмме ниже, на которой разворачивает последовательность:

      Развернутая рекуррентная нейронная сеть

      В левой части приведенной выше диаграммы у нас в основном та же диаграмма, что и первая (та, которая явно показывает все узлы).На предыдущей диаграмме не было явным образом показано, что мы фактически всегда предоставляем в такие сети только последовательности конечной длины — поэтому мы можем развернуть сеть, как показано в правой части диаграммы выше. Эта развернутая сеть показывает, как мы можем передать поток данных в рекуррентную нейронную сеть. Например, сначала мы передаем вектор слов для «A» (подробнее о векторах слов позже) в сеть F — выходные данные узлов в F передаются в «следующую» сеть и также действуют как автономный вывод ($ h_0 $).Следующая сеть (хотя на самом деле это та же сеть) F в момент времени t = 1 берет следующий вектор слова для «девушки» и предыдущий вывод $ h_0 $ в свои скрытые узлы, создавая следующий вывод $ h_1 $ и так далее.

      Как обсуждалось выше, сами слова, то есть «А», «девушка» и т. Д., Не вводятся непосредственно в нейронную сеть. Также они не являются популярными представлениями векторного типа — скорее, для каждого слова используется вектор вложения. Вектор внедрения — это эффективное векторное представление слова (часто от 50 до 300 в длину), которое должно поддерживать какое-то значение или контекст слова.Встраивание слов здесь не рассматривается подробно, так как я подробно рассмотрел его в других сообщениях — учебник по внедрению слов Word2Vec в Python и TensorFlow, учебник по Word2Vec Keras и учебник по Python gensim Word2Vec с TensorFlow и Keras. Это интересная тема, на изучение которой стоит потратить время.

      Теперь вернемся к рекуррентным нейронным сетям. Рекуррентные нейронные сети очень гибкие. В реализации, показанной выше, у нас есть модель «многие ко многим» — другими словами, у нас есть входная последовательность «Девушка вошла в бар…» и множество выходных данных — от $ h_0 $ до $ h_t $.У нас также может быть несколько других конфигураций. Другой вариант — «один ко многим», то есть предоставление одного ввода, скажем «девушка», и прогнозирование нескольких выходов от $ h_0 $ до $ h_t $ (т.е. попытка создания предложений на основе одного начального слова). Еще одна конфигурация — «многие к одному», то есть ввод много слов, например предложение «Девушка вошла в бар и сказала:« Можно мне выпить, пожалуйста? ». Бармен сказал: «Конечно, {}» и угадал следующее слово, то есть {}. На диаграмме ниже показан пример конфигурации «один ко многим» и «многие к одному» соответственно (слова рядом с выходными данными — это целевые слова, которые мы будем вводить во время обучения).

      Рекуррентная нейронная сеть — конфигурация один-ко-многим

      TensorFlow Tutorial | Глубокое обучение с использованием TensorFlow

      Я разработал это руководство по TensorFlow для профессионалов и энтузиастов, которые заинтересованы в применении алгоритма глубокого обучения с использованием TensorFlow для решения различных проблем. TensorFlow — это библиотека глубокого обучения с открытым исходным кодом, основанная на концепции графов потоков данных для построения моделей. Он позволяет создавать крупномасштабные нейронные сети с множеством слоев.Изучение использования этой библиотеки также является фундаментальной частью учебной программы курса AI & Deep Learning . В этом учебном блоге TensorFlow будут обсуждаться следующие темы:

      • Что такое TensorFlow
      • Основы кода TensorFlow
      • TensorFlow UseCase

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

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

      Как показано на изображении выше, тензоры — это просто многомерные массивы, которые позволяют вам представлять данные с более высокой размерностью. В общем, Deep Learning имеет дело с многомерными наборами данных, где измерения относятся к различным функциям, присутствующим в наборе данных. Фактически, название «TensorFlow» произошло от операций, которые нейронные сети выполняют с тензорами. Это буквально поток тензоров.Поскольку вы поняли, что такое тензоры, давайте продолжим в этом руководстве по TensorFlow и поймем — что такое TensorFlow?

      Что такое TensorFlow?

      TensorFlow — это библиотека на основе Python, которая предоставляет различные типы функций для реализации моделей глубокого обучения. Как обсуждалось ранее, термин TensorFlow состоит из двух терминов — Tensor & Flow:

      В TensorFlow термин тензор относится к представлению данных в виде многомерного массива, тогда как термин поток относится к серии операций, которые one работает с тензорами, как показано на изображении выше.

      Теперь мы достаточно подробно рассказали о TensorFlow.

      Далее в этом руководстве по TensorFlow мы обсудим основы кода TensorFlow.

      TensorFlow Tutorial: Code Basics

      По сути, весь процесс написания программы TensorFlow состоит из двух шагов:

      1. Построение вычислительного графа
      2. Запуск вычислительного графа

      по одному:

      1.Построение вычислительного графа

      Итак, что такое вычислительный граф? Ну, вычислительный граф — это серия операций TensorFlow, организованных в виде узлов на графе. Каждый узел принимает 0 или более тензоров на входе и производит тензор на выходе. Позвольте мне привести пример простого вычислительного графа, который состоит из трех узлов — a , b и c , как показано ниже:

      Объяснение вышеприведенного вычислительного графика:
      • Узлы констант используются для хранения константных значений, так как они принимают нулевой ввод, но производят сохраненные значения в качестве вывода.В приведенном выше примере a и b — постоянные узлы со значениями 5 и 6 соответственно.

      • Узел c представляет операцию умножения постоянного узла a на b. Следовательно, выполнение node c приведет к умножению const node a & b.

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

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

      2. Запуск вычислительного графа

      Давайте возьмем предыдущий пример вычислительного графа и поймем, как его выполнить. Ниже приведен код из предыдущего примера:

      Пример 1:
      импортировать тензорный поток как tf
      
      # Построить график
      а = tf.constant (5.0)
      b = tf.constant (6.0)
      с = а * б
       

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

      Сеанс инкапсулирует управление и состояние среды выполнения TensorFlow, то есть хранит информацию о порядке, в котором будут выполняться все операции, и передает результат уже вычисленной операции следующей операции в конвейере.Позвольте мне показать вам, как запустить приведенный выше вычислительный граф в рамках сеанса (объяснение каждой строки кода было добавлено в качестве комментария):

      # Создаем объект сеанса
      сессия = tf.Session ()
      
      # Запустить график в рамках сеанса и сохранить результат в переменной
      output_c = sessions.run (c)
      
      # Распечатать вывод узла c
      печать (output_c)
      
      # Закройте сеанс, чтобы освободить ресурсы
      сесс.close ()
       
        Выход: 
      30 

      Итак, все было о сеансе и запуске в нем вычислительного графа.Теперь давайте поговорим о переменных и заполнителях, которые мы будем широко использовать при построении модели глубокого обучения с использованием TensorFlow.

      Константы, заполнители и переменные

      В TensorFlow константы, заполнители и переменные используются для представления различных параметров модели глубокого обучения. Поскольку константы я уже обсуждал ранее, начну с заполнителей.

      Заполнитель:

      Константа TensorFlow позволяет сохранять значение, но что, если вы хотите, чтобы ваши узлы принимали входные данные во время выполнения? Для такого рода функций используются заполнители, которые позволяют вашему графику принимать внешние входные данные в качестве параметров.По сути, заполнитель — это обещание предоставить значение позже или во время выполнения. Позвольте привести пример, чтобы упростить задачу:

      импортировать тензорный поток как tf
      
      # Создание заполнителей
      а = tf. заполнитель (tf.float32)
      б = tf. заполнитель (tf.float32)
      
      # Назначение операции умножения w.r.t. а & amp; amp; b в узел Mul
      mul = a * b
      
      # Создать объект сеанса
      сессия = tf.Session ()
      
      # Выполнение mul путем передачи значений [1, 3] [2, 4] для a и b соответственно
      output = sessions.run (mul, {a: [1,3], b: [2, 4]})
      print ('Умножение a b:', вывод)
       
        Выход: 
      [2.12.] 
      Что следует помнить о заполнителях:
      • Заполнители не инициализируются и не содержат данных.
      • Необходимо предоставить входы или каналы для заполнителя, которые учитываются во время выполнения.
      • При выполнении заполнителя без ввода возникает ошибка.

      А теперь давайте продолжим и поймем — что такое переменные?

      Переменные

      В глубоком обучении заполнители используются для ввода произвольных входных данных в вашу модель или график.Помимо ввода данных, вам также необходимо изменить график, чтобы он мог выдавать новые выходные данные по сравнению с те же входы. Для этого вы будете использовать переменные. В двух словах, переменная позволяет вам добавлять такие параметры или узлы к графу, которые можно обучить, то есть значение может быть изменено в течение определенного периода времени. Переменные определяются путем предоставления их начального значения и типа, как показано ниже:

      var = tf.Variable ([0.4], dtype = tf.float32)
       

      Примечание:

      • Если вы не указали тип данных явно, TensorFlow определит тип константы / переменной из инициализированного значения.
      • TensorFlow имеет множество собственных типов данных, таких как tf.float32 , tf.int32 и т. Д. Вы можете обратиться ко всем из них здесь.

      Константы инициализируются, когда вы вызываете tf.constant , и их значение никогда не может измениться. Напротив, переменные не инициализируются при вызове tf.Variable . Чтобы инициализировать все переменные в программе TensorFlow, вы должны явно вызвать специальную операцию, как показано ниже:

      init = tf.global_variables_initializer ()
      сесс.run (инициализация)
       

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

      Примечание: Переменные TensorFlow — это буферы в памяти, которые содержат тензоры, но в отличие от обычных тензоров, которые создаются только при запуске графика и сразу удаляются после этого, переменные сохраняются при многократном выполнении графика.

      Теперь, когда мы рассмотрели достаточно основ TensorFlow, давайте продолжим и поймем, как реализовать модель линейной регрессии с помощью TensorFlow.

      Модель линейной регрессии с использованием TensorFlow

      Модель линейной регрессии используется для прогнозирования неизвестного значения переменной (зависимая переменная) на основе известного значения других переменных (независимая переменная) с использованием уравнения линейной регрессии, как показано ниже:

      Следовательно, для создания линейной модели вам необходимы:

      1. Зависимая или выходная переменная (Y)
      2. Переменная наклона (w)
      3. Y — пересечение или смещение (b)
      4. Независимая или входная переменная (X)

      Итак, приступим к построению линейной модели с использованием TensorFlow:

      Скопируйте код, нажав кнопку, приведенную ниже:

      # Создание переменной для крутизны параметра (W) с начальным значением 0.4
      W = tf.Variable ([. 4], tf.float32)
      
      # Создание переменной для параметра bias (b) с начальным значением -0.4
      b = tf.Variable ([- 0,4], tf.float32)
      
      # Создание заполнителей для ввода или независимой переменной, обозначенной x
      x = tf.placeholder (tf.float32)
      
      # Уравнение линейной регрессии
      linear_model = W * x + b
      
      # Инициализация всех переменных
      сессия = tf.Session ()
      init = tf.global_variables_initializer ()
      сесс.run (инициализация)
      
      # Запуск регрессионной модели для расчета выходного w.r.t. для предоставленных значений x
      печать (сесс.запустить (линейная_модель {x: [1, 2, 3, 4]}))
       

      Выход:

      [0. 0.40000001 0.80000007 1.20000005]
       

      Приведенный выше код просто представляет основную идею реализации регрессионной модели, то есть того, как вы следуете уравнению линии регрессии, чтобы получить выходные данные относительно. набор входных значений. Но есть еще две вещи, которые нужно добавить в эту модель, чтобы сделать ее полной регрессионной моделью:

      • Во-первых, нам нужно предоставить механизм, с помощью которого наша модель может автоматически обучаться на основе заданного набора входов и соответствующих выходов. .
      • Второе, что нам нужно, это проверить нашу обученную модель, сравнив ее выходные данные с желаемыми или целевыми выходными данными на основе заданного набора значений x.

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

      Функция потерь — проверка модели

      Функция потерь измеряет, насколько далеко текущий выход модели отстоит от желаемого или целевого выхода. Я буду использовать наиболее часто используемую функцию потерь для моей модели линейной регрессии, которая называется Sum of Squared Error или SSE.SSE рассчитано относительно выход модели (представлен linear_model) и желаемый или целевой выход (y) как:

      y = tf.placeholder (tf.float32)
      error = linear_model - y
      squared_errors = tf.square (ошибка)
      loss = tf.reduce_sum (квадрат_ошибки)
      print (sessions.run (потеря, {x: [1,2,3,4], y: [2, 4, 6, 8]})
       
        Выход: 
      90,24 

      Как видите, мы получаем большие убытки. Следовательно, нам необходимо скорректировать наши веса (W) и смещение (b), чтобы уменьшить получаемую нами ошибку.

      tf.train API — обучение модели

      TensorFlow предоставляет оптимизаторов , которые медленно изменяют каждую переменную, чтобы минимизировать функцию потерь или ошибку. Самый простой оптимизатор — градиентный спуск . Он изменяет каждую переменную в соответствии с величиной производной потерь по этой переменной.

      # Создание экземпляра оптимизатора градиентного спуска
      optimizer = tf.train.GradientDescentOptimizer (0,01)
      
      поезд = оптимизатор.минимизировать (убыток)
      
      для i в диапазоне (1000):
           сесс.run (поезд, {x: [1, 2, 3, 4], y: [2, 4, 6, 8]})
      print (sessions.run ([W, b]))
       
        Выход:
         [array ([1.99999964], dtype = float32), array ([9.86305167e-07], dtype = float32)] 

      Итак, вот как вы создаете линейную модель с помощью TensorFlow и обучаете ее для получения желаемого результата.

      Теперь, когда вы знаете о глубоком обучении, ознакомьтесь с Deep Learning with TensorFlow Training от Edureka, надежной компании онлайн-обучения с сетью из более чем 250 000 довольных учащихся по всему миру.Курс Edureka Deep Learning with TensorFlow Certification Training помогает учащимся стать экспертами в обучении и оптимизации базовых и сверточных нейронных сетей, используя проекты и задания в реальном времени, а также такие концепции, как функция SoftMax, нейронные сети с автокодированием, ограниченная машина Больцмана (RBM).

      Есть к нам вопрос? Пожалуйста, укажите это в комментариях, и мы свяжемся с вами.

      Python : Использование серверной части TensorFlow._ 水 亦 心 的 博客 -CSDN 博客

      先 说 个 故事 吧! 有 一个 农夫 一套 农具 , 就 买来 一些 工具 有了 工具 依然 不会 用 就 去找 别人 帮忙 有 一个 人 教 给 , 农夫 高兴 地就 回家 了。

      农夫 发现 用 这个 人 给 的 方法 , 跟 自己 的 工具 不 匹配。 别人 说 人 害人 不 浅!

      为什么 要说 这个 故事 呢?

      CSDN 自己 遇到 的 问题 解决 的 方案 , 希望 的 是 , 的 解决 方案 能够 的。 但是.到 了 , 并且 使用 本文 的 方法 进行 了 解决。 下面 就 有人 评论 说 我 害人 , 坑人。

      首先 我 , 的 方法 可能 问题 , 或者 表述 有 错误 , 当时 我 遇到 的 情况 及 大家 有 大给 我 提供 意见 和 建议。

      , 的 方法 不一定 适合 所有人。 遇到 问题 , 在 网上 找 解决 方案 , 子 就 找到 , 可能 的 方案 并不 需要 很多 人的 , 需要 不断 探索 , 不断 查找 , 在 这些 中 找到 某 一个 , 能够 解决 的 问题 。 而 其他 不能解决 这个 的。 的 本意 也是 共享 000 到 000

      不 知道 那些 说 我 害人 的 , 说 我 坑人 的 , 是 出于 什么 我 相信 公道 自在 人心

      用 Python 做 数据 处理 时 , 有 如下 提示 :

        Использование серверной части TensorFlow.ПРЕДУПРЕЖДЕНИЕ: tensorflow: From E: \ ProgramData \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ framework \ op_def_library.py: 263: colocate_with (из tensorflow.python.framework.ops) устарел и будет удален в будущем версия.
      Инструкция по обновлению:
      Colocations обрабатываются автоматически россыпью.
      ПРЕДУПРЕЖДЕНИЕ: tensorflow: из E: \ ProgramData \ Anaconda3 \ lib \ site-packages \ keras \ backend \ tensorflow_backend.py: 3445: выпадение вызова (из tensorflow.python.ops.nn_ops) с keep_prob устарело и будет удалено в будущая версия.Инструкция по обновлению:
      Пожалуйста, используйте `rate` вместо` keep_prob`. Ставка должна быть установлена ​​на `rate = 1 - keep_prob`.
      ПРЕДУПРЕЖДЕНИЕ: tensorflow: из E: \ ProgramData \ Anaconda3 \ lib \ site-packages \ tensorflow \ python \ ops \ math_ops.py: 3066: to_int32 (из tensorflow.python.ops.math_ops) устарел и будет удален в будущем версия.
      Инструкция по обновлению:
      Вместо этого используйте tf.cast.  

      报错 翻译 过来 是 :

      TensorFlow 后端

      警告 : tenorflow: 来自 e: \ programdata \ anaconda3 \ lib \ site packages \ tensorflow \ python \ framework \ op-def-library.py: 263: 与 (来自 tensorflow.python.framework.ops) 并 置 不 推荐 , 将 在 将来 的 中本 中 删除。

      更新 说明 :

      冒号 由 放置 程序 自动 处理。

      警告 : tenorflow: из e: \ programdata \ anaconda3 \ lib \ site packages \ keras \ backend \ tensorflow_backend.py: 3445: 使用 keep_prob 调用 dropout (来自 tensorflow.python.ops.nn_ops) 已 被 弃用 , 将在 将来 的 中本 中 删除。

      更新 说明 :

      请 使用 «rate» 而 不是 «keep-prob» 。Rate 应 设置 为 «Rate = 1-Keep_Prob»。

      警告 : tenorflow: из e: \ programdata \ anaconda3 \ lib \ site packages \ tensorflow \ python \ ops \ math_ops.py: 3066: to_int32 (из tensorflow.python.ops.math_ops) 已 弃用 , 将 在 将来 的 中 中 删除。

      更新 说明 :

      改用 tf.cast。

      产生 是 tensorflow 已经 有 更新 , 的 内容 已经 不 适用。

      我们 需要 升级 一下 TensorFlow , 有 如下 两种 方法 :

      1 重装 TensorFlow

      1. 打开 Подсказка Anaconda :

      2. 依次 输入 如下 四行 , 每 输入 一行 , 执行 :

        pip удалить tenorflow
      
      pip удалить tenorflow-gpu
      
      pip install tensorflow
      
      pip установить tenorflow-gpu  

      2 、 用 Анаконда 安装

      1.打开 Анаконда Навигатор

      2. 找到 未 安装 的 文件

      3. 找到 tenorflow-gpu 并 安装

      4. 安装 应用

      然后 就 可以 啦!

      .
  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Theme: Overlay by Kaira Extra Text
    Cape Town, South Africa