Глубокое обучение повсюду. Большинство новичков (и даже экспертов😅) использовали Keras для создания нейронных сетей и успокаивали свою жизнь !!

но с легкостью приходит ограничение.

Керас временами бывает непреклонным, и это время, когда большинство специалистов по анализу данных движутся к небывалым вершинам !!

TensorFlow

Итак, давайте нырнем

1. Тензор: n-мерный массив.

Например, тензор 1 × 1 - это скаляр, тензор 1 × n - вектор, n × n тензор - это матрица, а тензор n × n × n - это просто трехмерный массив.

2. Узлы: узел представляет собой операцию, возможно, применяемую к некоторому входу, и может генерировать выходные данные, которые передаются другим узлам.

Пример: a = matmul (x, w). Здесь matmul () - это узел

Узлы вычисляются не на ходу, а с использованием объекта Session (обсуждается ниже)

3. Объекты Edges / Tensor: как мы знаем, узлы не вычисляются на ходу. Но перед вызовом объекта Session необходимо создать граф. Следовательно, ссылка на их результат, который должен быть вычислен, может быть передан - поток - другому узлу при создании графа. Эти ссылки, которые мы называем ребрами / тензорными объектами.

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

Изображение ниже объясняет это лучше

5. Default_graph: Если не упомянуто отдельно, все переменные, константы и прочее добавляются в один график, называемый default_graph.

Чтобы создать другой график, создайте новый объект Graph () и установите его как default_graph.

6. Константы: они похожи на постоянные переменные C / Java, значения которых нельзя изменить.

Пример: a = tf.constant (1.0, dtype = tf.float32). Вы не можете изменить значение «a» сейчас !!

7. Переменная: Как следует из названия, именно они могут изменять значение.

Пример: a = tf.variable (1, dtype = tf.float32). Вы можете изменить «a».

8. Matmul & Multiply: matmul представляет собой матричное умножение, а multiply - поэлементное умножение.

LHS: умножить ()

Правая сторона: matmul ()

9. Reduce_mean: то же самое, что и np.mean, используемый для вычисления среднего тензора. Параметр «ось» можно использовать для вычисления среднего значения тензора по строкам или столбцам.

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

Взгляните, чтобы понять объект сеанса

11. Global_variable_initializer: В TensorFlow все переменные и константы должны быть инициализированы перед созданием сеанса. Global_variable_initializer помогает нам сразу инициализировать все переменные / константы, связанные с текущим графиком.

12. Выборки: это относится к переменной / list_of_variables, которую мы хотим вычислить, переданной в session.run (). Мы должны помнить, что никакая переменная не будет вычисляться, если не упомянута в «выборках» или не использовалась для вычисления какой-либо переменной «выборки».

13. Логиты: это может сильно сбивать с толку, поскольку в Интернете у него много значений. В нейронной сети, использующей Tensorflow, он обращается к выходам слоя Final Dense перед применением любой функции активации (в основном softmax).

14. Заполнители: их можно использовать как контейнеры для передачи различных динамических значений в нейронную сеть.

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

Теперь некоторые крутые

15. tf.nn._: Здесь '_' можно заменить любым слоем (плотный, conv2d и т. д.). Это операция низкого уровня для слоев нейронной сети (conv2d, drop и т. д.), активация -функции, такие как сигмоид и т. д., обеспечивает некоторую гибкость над tf. слоями

16. tf.layers._: Его можно использовать как оболочку для tf.nn. Как и в tf.nn, ‘_’ может принимать различные значения. Он внутренне вызывает tf.nn._

tf.layers автоматически обрабатывает множество параметров, таких как смещение и веса, в то время как все это должно указываться извне в tf.nn (так как это низкий уровень). Но, как уже упоминалось, tf.Layers может быть жестким для определенных параметров и, следовательно, уменьшает гибкость

17. tf.contrib: это модуль / коды (с дополнительными функциями), которые скоро будут включены в основную библиотеку Tensorflow. Коды здесь могут быть изменены в будущем, и нет никаких гарантий.

ПОПРОБУЙТЕ НА СВОЙ СОБСТВЕННЫЙ РИСК

18. softmax_cross_entropy_with_logits: Вы встретите этот термин довольно часто. Разобьем это на 3 части.

  • Логиты - вывод плотного слоя
  • SoftMax:

здесь тета представляет логиты.

  • Cross_Entropy: смотрите ниже

Следовательно, softmax_cross_entropy_with_logits = Cross_entropy (softmax (logits))

19. feed_dict: Когда мы используем заполнители в tf-модели при использовании session.run (), нам нужно использовать feed_dict для передачи значений этим заполнителям. Пример:

20. Random_normal (shape, mean, std): Эта функция возвращает тензор заданной формы из нормального распределения с заданным средним и стандартным отклонением.

21. Truncated_normal (shape, mean, std): эта функция возвращает тензор заданной формы из усеченного нормального распределения с заданными средним и стандартным_ отклонением. Из усеченного подразумевается, что экстремальные значения не включаются . Изображение ниже проясняет некоторые вещи.

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

22. Variable_scope: Область видимости переменных в Tensorflow - одна из самых полезных концепций, которые помогают нам делиться переменными tf. Он создает пространство имен (пул) для всех переменных, констант, операций (например, +, -, * и т. Д.) И помогает нам избежать похожих имен на графике и повторно использовать предопределенные переменные.

23. Name_scope: Очень похоже на variable_scope, он также полезен для той же цели, что и variable_scope, но с разницей. Он не учитывает переменные, созданные с помощью tf.get_variable ().

Они оба добавляют префикс к имени переменной, как показано ниже:

См. Названия различных переменных, используемых в разных областях.

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

Чтобы быть конкретным, Сводка - это специальная операция TensorBoard, которая принимает обычные данные и выводит сводные данные на ваш диск (то есть в файл событий). Более подробную информацию можно найти здесь.

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

Этого хватило бы, чтобы занять неделю !!!

Если вы хотите узнать больше, изучите ниже: