Как справляться с большим количеством данных в caffe HDF5 и как установить test_iter? [Дубликат]

Попробуйте

if ($_POST['submit']) {
    $success= mail($to, $subject, $body, $from);
    if($success)
    { 
        echo '
        <p>Your message has been sent!</p>
        ';
    } else { 
        echo '
        <p>Something went wrong, go back and try again!</p>
        '; 
    }
}
13
задан Shai 23 May 2016 в 10:47
поделиться

1 ответ

Чтобы установить эти значения значимым образом, вам нужно иметь несколько бит информации о ваших данных:

1. Тренировочный набор определяет общее количество примеров обучения, назовем это количество T. 2. Размер партии тренировки - количество примеров обучения, обработанных вместе в одной партии, обычно устанавливается уровнем входных данных в 'train_val.prototxt'. Например, в этот файл размер партии поезда установлен на 256. Обозначим эту величину через tb. 3. Validation set size - общее количество примеров, которые вы отложили для проверки вашей модели, обозначим это V. 4. Значение размера партии проверки, установленное в batch_size для фазы TEST. В в этом примере установлено значение 50. Назовем это vb.

Теперь, во время обучения, вы хотели бы получить непредвзятую оценку эффективности вашего сетью каждый раз в то время. Для этого вы запускаете свою сеть на основе проверки для итераций test_iter. Чтобы охватить весь набор проверок, вам необходимо иметь test_iter = V/vb. Как часто вы хотели бы получить эту оценку? Это действительно зависит от вас. Если у вас очень большой набор валидаций и медленная сеть, проверка слишком часто сделает процесс обучения слишком длинным. С другой стороны, недостаточно проверять достаточно часто, чтобы вы не заметили, когда и когда ваш процесс обучения не сходится. test_interval определяет, как часто вы проверяете: обычно для больших сетей, которые вы устанавливаете test_interval в порядке 5K, для небольших и более быстрых сетей вы можете выбрать более низкие значения. Опять же, все зависит от вас.

Чтобы покрыть весь набор тренировок (завершение «эпохи»), вам нужно запустить итерации T/tb. Обычно для нескольких эпох, а значит, max_iter=#epochs*T/tb.

Что касается iter_size: это позволяет усреднять градиенты над несколькими обучающими мини-партиями, см. эту нить для получения дополнительной информации.

27
ответ дан Community 22 August 2018 в 03:21
поделиться
  • 1
    Спасибо огромное! Он очистил так много вещей :) – Abhilash Panigrahi 18 November 2015 в 18:41
  • 2
    @Shai - Спасибо за подробный пример. Я все еще запутался из-за моего варианта использования Caffe с AlexNet. У меня есть система с памятью 115GB и с помощью train и val данных, установленных в LMDB, с ImageNet ILSVRC 2012. Я использую этот файл решателя со всеми параметрами, кроме max_iteration=100. Я не понимаю, почему потребление памяти примерно равно 10GB? Он должен быть меньше, поскольку Caffe работает с пакетом изображений вместо полных данных. Любая идея, как этот расчет сделан? – Chetan Arvind Patil 22 October 2017 в 22:51
  • 3
    @ChetanArvindPatil похоже, что вы вводите в заблуждение требования к хранилищу для параметров модели и использования ОЗУ для расчета поездов / валов. Caffe сохраняет в памяти все параметры + их производные, кроме того, он хранит данные (партии поездов / валов) и производные (для backprop). Для некоторых решателей требуется дополнительное хранилище для регулируемой скорости обучения с учетом параметра (например, "Adam"). Все это может потребовать много оперативной памяти. См. эта нить – Shai 23 October 2017 в 05:31
Другие вопросы по тегам:

Похожие вопросы: