Arhn - архитектура программирования

Обнаружение объектов Tensorflow: используйте Adam вместо RMSProp

Я тренирую CNN с помощью этого [файла .config][1]:

rms_prop_optimizer: {
    learning_rate: {
      exponential_decay_learning_rate {
        initial_learning_rate: 0.004
        decay_steps: 800720
        decay_factor: 0.95
      }
    }
   momentum_optimizer_value: 0.9
   decay: 0.9
   epsilon: 1.0
}   

}
Как видите, в качестве оптимизатора используется rms_prop. Что, если я захочу использовать Адама? Как я должен редактировать этот файл?


  • Пожалуйста, покажите код или строки, на которых вы сосредоточились, и покажите нам более подробную информацию об этом вопросе. 19.08.2018
  • @InfiniteLoops нет кода. Используя Tensorflow Object Detection, вы должны настроить конвейер со всеми деталями вашей сети: размер входных данных, мини-пакет, отклонение градиента, скорость обучения и т. д. Затем вы запускаете скрипт (legacy/train.py), который принимает в качестве входных данных этот .config. файл. Итак, основная часть — это конфигурация. Надеюсь, я был достаточно ясен. 19.08.2018
  • Я имею в виду, что вместо того, чтобы просто указать ссылку на файл, вы можете напрямую скопировать и вставить строки, на которые вы ссылаетесь, чтобы всем было легче их увидеть. Потому что ваш вопрос выглядит слишком коротким. 19.08.2018
  • хорошо, я отредактирую пост 19.08.2018

Ответы:


1

если я прав, вы пытаетесь использовать модель object_detection с предварительно обученной сетью, предлагаемой Tensorflow, я прав? Затем, если вы немного разбираетесь в программировании, вы можете заглянуть в models/research/object_detection/builders/optimizer_builder.py и посмотреть, какие оптимизаторы можно использовать и с какими параметрами. Вместо этого, если вам просто нужно готовое решение, вот как я это сделал:

optimizer {
    # momentum_optimizer {
    adam_optimizer: {
      learning_rate: {
        manual_step_learning_rate {
          initial_learning_rate: .0002
          schedule {
            step: 4500
            learning_rate: .0001
          }
          schedule {
            step: 7000
            learning_rate: .00008
          }
          schedule {
            step: 10000
            learning_rate: .00004
          }
        }
      }
      # momentum_optimizer_value: 0.9
    }
    use_moving_average: false
  }

По своему (небольшому) опыту я заметил, что использование того же Learning_experience, что и momentum_optimizer, делает обучение слишком быстрым и/или приводит к NaN Losses, поэтому я обычно уменьшаю его в 10 и более раз. Я пытаюсь прямо сейчас. :)

19.08.2018
  • Большое спасибо Джованни за ваш ответ. Я успешно провел новое обучение с использованием оптимизатора adam и, как программист, рад, что наконец-то понял, как работает optimizer_builder.py :-) 20.08.2018
  • Здравствуйте, я пытался использовать оптимизатор Adam, но получил эту ошибку: Key Conv/biases/Adam не найден в контрольной точке [[node save/RestoreV2 (определено в /truong/object-detection-tf-api/models/research/object_detection/ model_lib.py:490) ]] 22.05.2019
  • Я думаю, что вы пытаетесь восстановить модель, которую уже пробовали тренировать с другим оптимизатором. Если это так, к сожалению, вы не можете изменить оптимизатор во время обучения, даже если вы его возобновляете. Поэтому вам следует снова начать обучение с другим оптимизатором и посмотреть, работает ли он. 23.05.2019
  • Но я планировал использовать предварительно обученный более быстрый rcnn в своем собственном наборе данных, и, поскольку я получил некоторую ошибку относительно потери NaN, я решил изменить оптимизатор на Adam (ранее это был оптимизатор импульса). И я даже не могу изменить оптимизатор? :( 30.05.2019
  • Может я плохо понял. Если вы тренируете свою сеть с импульсом, а затем, с контрольной точки, пытаетесь продолжить с другим оптимизатором, это невозможно. Хотя если начать доводку с нуля (то есть никаких уже настроенных вами чекпойнтов) другим оптимизатором, то должно работать. Ваш случай первый или второй? 31.05.2019
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..