Листинг 5.4.
Получение вложений изображений с помощью усеченной MobileNet
Теперь у нас есть способ получить вложения изображений вебкамеры. Но как
с их помощью предсказать, какому направлению соответствует конкретное изо
бражение? Для этого нам понадобится новая модель, входным сигналом которой
служат эти вложения, а выходным сигналом — значения вероятностей для четырех
классов направлений. Для создания подобной модели можно взять код из листин
га 5.5 (из файла
index.js
).
Новая модель, созданная в листинге 5.5, намного меньше усеченной MobileNet.
Она состоит лишь из трех слоев.
z
z
Входной слой — слой схлопывания, преобразующий трехмерные вложения из
усеченной модели в одномерный тензор, подходящий в качестве входных данных
1
Часто спрашивают, как получить значения функций активации промежуточных слоев
моделей TensorFlow.js. Приведенная здесь методика может стать ответом на этот вопрос.
206
Часть II • Введение в TensorFlow.js
последующим плотным слоям. В главе 4 мы уже использовали аналогичным об
разом слои схлопывания в сверточных сетях MNIST.
inputShape
соответствует
форме выходного сигнала исходной усеченной MobileNet (без измерения бат
чей), поскольку на вход новой модели будут подаваться вложения из усеченной
MobileNet.
z
z
Второй слой — скрытый слой. Он скрыт, поскольку не является ни входным,
ни выходным слоем модели, а расположен между двумя другими слоями для
повышения разрешающих возможностей модели, что очень напоминает MLP
из главы 3. Это скрытый плотный слой с функцией активации ReLU. Как вы
помните, в пункте «Избегаем нагромождения слоев без нелинейностей» главы 3
мы обсуждали важность использования нелинейных функций активации для
подобных скрытых слоев.
z
z
Третий слой — завершающий (выходной) слой новой модели. Он включает
многомерную логистическую функцию активации, подходящую для решения
нашей задачи многоклассовой (то есть четырехклассовой: по одному классу для
каждого направления движения Пакмана) классификации.
Листинг 5.5.
Предсказание направлений движения для игровой приставки
с помощью вложений изображений
Таким образом, мы, по существу, построили MLP поверх слоев выделения при
знаков MobileNet. Этот многослойный перцептрон можно рассматривать как новую
верхушку MobileNet, несмотря на то что средство выделения признаков (усеченная
MobileNet) и верхушка в данном случае представляют собой две отдельные модели
(рис. 5.8). В результате подобной схемы из двух моделей обучать новую верхушку
непосредственно на тензорах изображений (формы
[numExamples,
224,
224,
3]
)
невозможно. Следует обучать ее на вложениях изображений — выходном сигнале
Do'stlaringiz bilan baham: |