Что не так с этим кодом, почему потери в этом коде не уменьшаются? - PullRequest
0 голосов
/ 05 марта 2019

Я реализовал VGG-16 в тензорном потоке, VGG-16 - это достаточно глубокая сеть, поэтому потери наверняка уменьшатся.Но в моем коде это не уменьшает.Но когда я снова и снова запускаю модель в одной партии, потери снижаются.Любая идея, почему такое может произойти.

VGG-net следует из здесь .

Обучение было выполнено, собака-против-набор данных cat, с размером изображения 224x224x3.

Параметры сети следующие:

lr_rate: 0,001 batch_size = 16

Поиск кода @ GitHubGist

Выходные данные указаны ниже:

Output

1 Ответ

0 голосов
/ 06 марта 2019

Я предполагаю, что вы следуете архитектурному варианту E из статьи Simonyan & Zisserman, которую вы связали, - тогда я обнаружил несколько проблем с вашим кодом:

  • Используйте activation='relu' для всехскрытые слои.

  • Максимальное объединение должно выполняться через окно 2 x 2, поэтому используйте pool_size=[2, 2] вместо pool_size=[3, 3] в объединяющих слоях.

  • Правильно связать pool13 с conv13:

pool13 = tf.layers.max_pooling2d(conv13, [2, 2], 2, name='pool13')

У меня нет доступного для тестирования графического процессора, но при достаточном количестве итераций потери должны уменьшиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...