Глава 4. Распознавание изображений и звуковых сигналов
173
ями). Для ответа на этот вопрос взглянем на описание модели, основанной на node
(листинг 4.5). Она формируется в импортируемом
main.js
файле
model.js
.
Листинг 4.5.
Описание усовершенствованной сверточной сети для задачи MNIST в Node.js
Сводка топологии модели:
_________________________________________________________________
Layer (type) Output shape Param #
=================================================================
conv2d_Conv2D1 (Conv2D) [null,26,26,32] 320
_________________________________________________________________
conv2d_Conv2D2 (Conv2D) [null,24,24,32] 9248
_________________________________________________________________
max_pooling2d_MaxPooling2D1 [null,12,12,32] 0
_________________________________________________________________
conv2d_Conv2D3 (Conv2D) [null,10,10,64] 18496
174
Часть II • Введение в TensorFlow.js
_________________________________________________________________
conv2d_Conv2D4 (Conv2D) [null,8,8,64] 36928
_________________________________________________________________
max_pooling2d_MaxPooling2D2 [null,4,4,64] 0
_________________________________________________________________
flatten_Flatten1 (Flatten) [null,1024] 0
_________________________________________________________________
dropout_Dropout1 (Dropout) [null,1024] 0
_________________________________________________________________
dense_Dense1 (Dense) [null,512] 524800
_________________________________________________________________
dropout_Dropout2 (Dropout) [null,512] 0
_________________________________________________________________
dense_Dense2 (Dense) [null,10] 5130
=================================================================
Total params: 594922
Trainable params: 594922
Non-trainable params: 0
_________________________________________________________________
Вот список основных различий между моделью tfjsnode и браузерной моделью.
z
z
Основанная на node модель содержит четыре слоя conv2d — на один больше, чем
браузерная.
z
z
Количество нейронов скрытого плотного слоя модели, основанной на node, боль
ше (512), чем у его аналога в браузерной модели (100).
z
z
В целом количество весовых коэффициентов модели, основанной на node,
в 18 раз больше, чем у браузерной.
z
z
Модель, основанная на node, включает два слоя
дропаута
, вставленных между
слоем схлопывания и плотным слоем.
Благодаря первым трем различиям разрешающие возможности модели, основан
ной на node, больше, чем у браузерной. Но они же определяют слишком большие
(для обучения в браузере с приемлемой скоростью) требования этой модели к опе
ративной памяти и вычислительным ресурсам. Как вы узнаете в главе 5, большие
разрешающие возможности модели означают и больший риск переобучения. Этот
риск в некоторой степени гасится за счет четвертого различия, а именно включения
в модель слоев дропаута.
Снижение риска переобучения с помощью слоев дропаута
Дропаут — еще один новый тип слоя TensorFlow.js, с которым вам предстоит по
знакомиться в этой главе. Он предоставляет один из самых эффективных и широко
используемых способов сокращения переобучения в глубоких нейронных сетях.
Функциональность такого слоя довольно проста.
z
z
На этапе обучения (во время вызовов метода
Model.fit()
) он случайным образом
обнуляет часть элементов входного тензора (фактически отбрасывает их) и воз
вращает полученный результат в качестве выходного тензора. В данном примере
Do'stlaringiz bilan baham: |