Часть II • Введение в TensorFlow.js
используемым примером отнюдь не помешает, ведь именно на нем обычно в первую
очередь тестируют новые алгоритмы глубокого обучения.
Все примеры данных в MNIST представляют собой изображения в оттенках
серого, имеющие размер 28
×
28 (см. пример на рис. 4.1). Они были получены из
реальных написанных вручную цифр от 0 до 9. Размер изображения 28
×
28 вполне
достаточен для уверенного распознавания этих простых фигур, хотя он меньше раз
меров изображений, обычно используемых в задачах машинного зрения. Каждому
изображению соответствует метка, указывающая, какая из десяти цифр на нем
в самом деле представлена. Подобно наборам данных времени скачивания и цен на
бостонскую недвижимость, данные разбиты на обучающий и контрольный наборы.
Обучающий набор данных состоит из 60 000 изображений, а контрольный содержит
10 000 изображений. Набор данных MNIST
1
более или менее сбалансирован в том
смысле, что к каждой из десяти категорий (десяти цифр) относится примерно оди
наковое количество изображений.
4.2. Ваша первая сверточная
нейронная сеть
Исходя из представления данных изображений и их меток нам известно, какие
входные данные должна получать нейронная сеть, предназначенная для работы
с набором MNIST, и какой выходной сигнал она должна генерировать. Входной
сигнал этой сети представляет собой тензор формата NHWC формы
[null,
28,
28,
1]
. Выходной сигнал представляет собой тензор формы
[null,
10]
, где второе
измерение соответствует десяти возможным цифрам. Это каноническое унитарное
кодирование целевых переменных задачи многоклассовой классификации. Оно
аналогично унитарному кодированию видов ирисов из примера в главе 3. Теперь
можно заняться непосредственно реализацией сверточной нейронной сети — метода,
рекомендуемого для использования в задачах классификации изображений наподо
бие MNIST. Не пугайтесь слова «сверточный», оно лишь обозначает определенную
математическую операцию, о которой мы подробнее поговорим позже.
Код вы можете найти в каталоге
mnist
репозитория tfjsexamples. Как и в преды
дущих примерах, получить и запустить код можно с помощью следующих команд:
git clone https://github.com/tensorflow/tfjs-examples.git
cd tfjs-examples/website-phishing
yarn && yarn watch
Листинг 4.1 представляет собой выдержку из основного файла кода
index.js
примера MNIST — функцию, создающую сверточную сеть, с помощью которой мы
собираемся решать задачу MNIST.
1
См.:
LeCun Y., Cortes C., Burges
C. J. C.
The MNIST Database of Handwritten Digits. http://
yann.lecun.com/exdb/mnist/.
Do'stlaringiz bilan baham: |