Требования к версии Python:
PaddlePaddle>=1.6.2 или разработка
В настоящее время для использования крупномасштабной библиотеки классификации в PaddlePaddle требуется версия GPU.
pip install paddlepaddle-gpu>=1.6.2
Для получения информации о совместимости PaddlePaddle с операционными системами, CUDA, cuDNN и другими программными версиями, а также для получения дополнительных инструкций по установке PaddlePaddle, обратитесь к документации PaddlePaddle.
Если вам необходимо использовать версию PaddlePaddle для разработки, сначала удалите установленную версию PaddlePaddle через командную строку и установите версию для разработки. Для получения дополнительной информации о том, как получить и установить версию PaddlePaddle для разработки, см. список версий whl-пакетов.
pip uninstall paddlepaddle-gpu
Вы можете напрямую установить PLSC для крупномасштабной классификации через pip:
pip install plsc
PLSC предоставляет комплексное решение для всего процесса от обучения модели до оценки её эффективности и развёртывания. В этом разделе описывается, как использовать PLSC для быстрого завершения обучения модели и проверки её эффективности.
Мы предполагаем, что структура данных пользователя выглядит следующим образом:
train_data/
|-- agedb_30.bin
|-- cfp_ff.bin
|-- cfp_fp.bin
|-- images
|-- label.txt
`-- lfw.bin
Здесь train_data — это корневой каталог пользовательских данных, agedb_30.bin, cfp_ff.bin, cfp_fp.bin и lfw.bin — разные наборы проверочных данных, которые не являются обязательными. В данном руководстве предполагается использование lfw.bin в качестве набора проверочных данных. Поэтому при просмотре этого руководства убедитесь, что набор проверочных данных lfw.bin доступен. Каталог images содержит изображения обучающего набора в формате JPEG, а каждая строка файла label.txt соответствует изображению обучающего набора и его категории.
Пример содержимого файла label.txt:
images/00000000.jpg 0
images/00000001.jpg 0
images/00000002.jpg 0
images/00000003.jpg 0
... ...
Здесь каждая строка представляет путь к изображению и категорию изображения, разделённые пробелом.
Ниже представлен скрипт train.py для выполнения обучения с использованием PLSC:
from plsc import Entry
if __name__ == "__main__":
ins = Entry()
ins.set_train_epochs(1)
ins.set_model_save_dir("./saved_model")
# ins.set_with_test(False) # При отсутствии набора проверочных данных отключите комментирование этой строки.
# ins.set_loss_type('arcface') # Если доступна только одна видеокарта, отключите комментирование этой строки.
ins.train()
Процесс обучения с помощью PLSC включает в себя следующие основные шаги:
По умолчанию метод train использует метод вычисления потерь 'dist_arcface', который требует наличия двух или более видеокарт. Если доступна только одна видеокарта, можно использовать следующую инструкцию для изменения метода вычисления потерь на 'arcface':
ins.set_loss_type('arcface')
По умолчанию процесс обучения после каждого цикла обучения будет проверять модель с помощью набора проверочных данных. Если набор проверочных данных недоступен, вы можете отключить проверку модели, используя следующую инструкцию:
ins.set_with_test(False)
Следующий пример показывает, как запустить задачу обучения с использованием указанного скрипта:
python -m paddle.distributed.launch \
--cluster_node_ips="127.0.0.1" \
--node_ip="127.0.0.1" \
--selected_gpus=0,1,2,3,4,5,6,7 \
train.py
Модуль paddle.distributed.launch используется для запуска задач распределённого обучения на нескольких машинах или нескольких видеокартах, упрощая процесс запуска задач обучения. Каждый параметр имеет следующее значение:
Для задач обучения на одной машине с несколькими видеокартами можно опустить параметры cluster_node_ips и node_ip, например:
python -m paddle.distributed.launch \
--selected_gpus=0,1,2,3,4,5,6,7 \
train.py
При использовании только одной видеокарты для обучения можно запустить задачу обучения следующим образом:
python train.py
В этом разделе мы используем набор проверочных данных lfw.bin в качестве примера для объяснения того, как оценить эффективность модели.
Ниже приведен пример скрипта val.py для оценки модели:
from plsc import Entry
if __name__ == "__main__":
ins = Entry()
ins.set_checkpoint_dir("./saved_model/0/")
ins.test()
Во время процесса обучения мы сохраняем параметры модели в каталоге './saved_model', а параметры модели каждого цикла обучения сохраняются в отдельном подкаталоге, например, параметры модели первого цикла обучения сохраняются в каталоге './saved_model/0'.
На этапе проверки модели нам нужно сначала установить каталог параметров модели, а затем вызвать метод test класса Entry, чтобы начать проверку модели.
Следующий пример демонстрирует, как запустить задачу проверки с использованием указанного выше скрипта:
python -m paddle.distributed.launch \
--selected_gpus=0,1,2,3,4,5,6,7 \
val.py
Используя этот скрипт, задача проверки будет выполняться параллельно на нескольких видеокартах, сокращая время проверки.
Если доступна только одна видеокарта для проверки, можно запустить задачу проверки следующим образом:
python val.py
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.