Рубрики
Без рубрики

Очень общее введение в Керы

В этой эпохе Deeplerring его применяются на любое место для облегчения жизни людей. Помечено с Depleperning, Python, Keras, введением.

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

Модели Depleperning могут быть созданы и обучены с использованием многих рамок, которые доступны бесплатным, так и открытым источником, таким как:

Каждая из вышеперечисленных структур имеет API для Python, который является здорово! Но и это большое, но что программирование непосредственно в этих рамках несколько не является новичком, поскольку требует от вас глубокое понимание методов Deepreeperning, таких как:

  • Инициализация параметров.
  • Размер весовых тензоров.
  • Выяснение тензора умножения.
  • Много документов API

и так далее. Теперь эти вещи нелегко выясните, и он может легко вытащить вас из идеи написания программы самостоятельно. Вот где Keras входит в картину.

Керас

Keras logo

KERAS – это основа программирования, которая создана для запуска других структурных рамок, таких как упомянутые выше. По своих словах:

KERAS – это высокоуровневые нейронные сети API, написанные в Python и способны работать поверх Tensorflow, CNTK или Theano. Он был разработан с акцентом на предоставление быстрого эксперимента. Возможность отправиться от идеи, чтобы привести к наименьшей возможной задержке, является ключом к хорошим исследованиям.

Теперь давайте просто прыгнем в него!

Установка

Для установки я бы сначала рекомендовал создать виртуальную среду, которая может быть сделана с помощью VirtualenV или CODAS, вы используете AnaConda.

Используя VirtualenV

virtualenv --system-site-packages -p python3 ~/path/to/folder
source ~/path/to/folder/bin/activate
pip install keras jupyter numpy matplotlib

Используя кондей

conda create -n keras python=3.6.7 #use any python3 version
conda activate keras
conda install keras jupyter numpy matplotlib

Теперь, если у вас уже нет никаких бэкэндов, KERAS будет использовать бэкэнд Tensorflow. Numpy и Matplotlib – это библиотеки, которые помогут нам быстрыми матричными/тензорными операциями и построениями соответственно. Теперь, чтобы показать основы KERAS (очень основы), мы будем использовать пример задачи классификации моды-Mnist, используя полностью подключенную нейронную сетевую архитектуру. Теперь, если вы не можете понять, какие эти условия означают, что вы должны либо взять базовый почетной курс, либо придерживаться для веселья!

Предварительные условия

Это то, что вам нужно будет следовать вдоль:

  • Базовый питон
  • Основное глубокое обучение (для понимания терминологий)

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

Программирование

Теперь предполагая, что вы находитесь в той же виртуальной среде, где установлены Keras и Jupyter, введите следующее:

jupyter notebook

Это откроет новую вкладку, управляющую Jupyter Server. Jupyter будет вашим лучшим другом для всех машин обучения и мелочи и погрузочным материалом из-за его особенностей, которые позволяют легко и быстрое эксперименты, которые очень необходимо в области Deeplerning. Затем нажмите на новый значок и выберите Python3. Это откроет новую ноутбуку Jupyter на новой вкладке.

Описание

Теперь сеть, которую мы будем реализовать здесь, будут: Ввод-> Flatten-> плотный (1024) -> плотный (10) сглаживающий слой здесь приседает 2D изображение в 1D вектор, который используется для полного подключения функций ввода (в этом случае значения пикселей) к следующему слою. Плотный слой означает, что каждый узел в этом слое подключен к каждому узлу предыдущего слоя (ваш простой нейронный сетевой уровень). Наконец, выходной слой здесь прогнозирует тип одежды, который является один из десяти возможных, поэтому это слой софтмакса. Все скрытые слои – слои RELU.

Программа

Импортируйте все необходимые модули, которые нам понадобятся.

import numpy as np
%matplotlib inline
from matplotlib import pyplot as plt
from keras.models import Sequential
from keras.layers import Flatten, Dense
from keras.datasets import fashion_mnist
from keras.utils import to_categorical

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

(train_x, train_y), (test_x, test_y) = fashion_mnist.load_data()

Это загрузит тренировочные и тестируемые данные в urn_x, urch_y, test_x и test_y. urs_x и test_x содержат примеры (изображения), в то время как urs_y и test_y содержат соответствующий слой. В следующей клетке давайте узнаем форму этих переменных.

print(train_x.shape, train_y.shape)
print(test_x.shape, test_y.shape)

С вывода мы видим, что набор тренировок содержит 60000 примеров, в то время как тест содержит 10000 примеров, напомнить, что набор тестов всегда меньше, что набор тренировок. Также мы видим, что каждое изображение имеет размер 28 * 28, то есть каждое изображение представляет собой 2D Tensor размером 28 * 28, где каждая ячейка содержит значение серого. Теперь, чтобы увидеть любой из пример тренировок в форме изображения, вы можете сделать это.

plt.imshow(train_x[10], cmap='gray')

Здесь мы посмотрим на 10-й пример тренажера, вы можете разные номера в индексе или посмотреть в переменную Test_x. Теперь мы находимся на стадии предварительной обработки данных, где мы трансформируем данные таким образом, чтобы невращенную сеть было легче тренироваться на этих примерах. Сначала мы нормализуем примеры обучения и тестирования, разделив каждый пример на 255, поскольку максимальное значение любого пикселя может быть 255. Это будет сохранять значения от 0 до 1.

train_x = train_x / 255.0
test_x = test_x / 255.0

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

Затем после одного горячего кодирования это будет

y = [0, 0, 0, 1, 0, 0, 0, 0, 0, 0]

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

train_y = to_categorical(train_y)
test_y = to_categorical(test_y)

Далее его время создать модель, обсуждаемую в начале раздела.

model = Sequential()
model.add(Flatten())
model.add(Dense(1024, activation = 'relu'))
model.add(Dense(10, activation = 'softmax'))

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

model.compile(optimizer='Adam',
              loss = 'categorical_crossentropy',
              metrics = ['accuracy'])

Этот этап определяет алгоритм оптимизации для использования модели, в этом случае мы будем использовать оптимизатор ADAM, который использовал большую часть времени в области приложений Deeplerring. Список других оптимизаторов, таких как SGD, RMSPROP, ETC можно найти на веб-сайт Keras также связано выше. CABLICICAL_CROSSENTRORPY – это функция потери для использования, если вы выполняете задачу классификации, и ваш нейронно-сетевой выход – более чем один. И метрика «Точность» передается, чтобы увидеть точность каждой эпохи после тренировки и тестирования. Эпоха – это один проход через нейронную сеть, которая состоит из переднего прохода и обратного прохода в сети. После составления сети мы готовы ее тренировать. Ну наконец!

model.fit(train_x, train_y, epochs = 10)

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

model.evaluate(test_x, test_y)

Оценка на тестовом наборе дает около 89% точности. Опять же, эта точность теста довольно хороша для простой сети. Теперь есть способы улучшить производительность сети, такую как

  • Использование регуляризации
  • выбывать
  • Строительство более глубокой сети
  • тренировка на более длительное время и многое другое. Но это будет много для начинающего поста включать эти методы.

После этого

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

Окончательно, Спасибо за чтение!

Оригинал: “https://dev.to/abhisarshukla/a-very-general-introduction-to-keras-1g33”