TensorFlow — эталон

машинное обучение TensorFlow Программа перевода самородков алгоритм
TensorFlow — эталон

ориентир

Обзор

Сообщество TensorFlow создало ряд контрольных точек для моделей классификации изображений для мультиплатформенного тестирования. существуетметодВ разделах подробно описано, как выполнять тесты, и даны ссылки на используемые скрипты.

Результаты моделей классификации изображений

InceptionV3 (arXiv:1512.00567), ResNet-50 (arXiv:1512.03385), ResNet-152 (arXiv:1512.03385), VGG16 (arXiv:1409.1556), иAlexNetиспользоватьImageNetтест набора данных. Тесты проводились на Google Compute Cloud Engine, Amazon Compute Cloud (Amazon EC2) и NVIDIA® DGX-1™. В большинстве тестов используются синтетические и реальные данные.

Тестирование на синтетических данных выполняется с помощьюtf.VariableУстановите одинаковую форму, за исключением каждой модели ImageNet. Мы считаем важным включать реальные данные при оценке эталонных показателей платформы. Нагрузочное тестирование базового оборудования и инфраструктуры предназначено для обучения на реальных данных. Мы начали синтезировать данные, чтобы удалить дисковый ввод-вывод в качестве переменной и установить эталон. Затем реальные данные используются для проверки входных данных TensorFlow и базовых вычислительных блоков дискового ввода-вывода.

Обучение с NVIDIA® DGX-1™ (NVIDIA® Tesla® P100)

Подробности и дополнительные результаты вNVIDIA® DGX-1™ (NVIDIA® Тесла® P100) подробностиглава.

Тренируйтесь с NVIDIA® Tesla® K80

Подробности и дополнительные результаты вВычислительный движок Google (NVIDIA® Tesla® K80) ПодробнееиAmazon EC2 (NVIDIA® Tesla® K80) подробнееглава.

Распределенное обучение с NVIDIA® Tesla® K80

Подробности и дополнительные результаты вРаспределенный Amazon EC2 (NVIDIA® Tesla® K80) Подробнееглава.

Сравнение синтетических и реальных данных обучения

NVIDIA® Тесла® P100

NVIDIA® Тесла® K80

NVIDIA® DGX-1™ (NVIDIA® Tesla® P100) Подробнее

Конфигурация среды

  • Instance type: NVIDIA® DGX-1™
  • GPU:8x NVIDIA® Tesla® P100
  • OS: Ubuntu 16.04 LTS with tests run via Docker
  • CUDA / cuDNN: 8.0 / 5.1
  • TensorFlow GitHub hash: b1e174e
  • Benchmark GitHub hash: 9165a70
  • Build Command: bazel build -c opt --copt=-march="haswell" --config=cuda //tensorflow/tools/pip_package:build_pip_package
  • Disk: Local SSD
  • DataSet: ImageNet
  • Test Date: May 2017

Размер партии и оптимизатор для каждой модели показаны в таблице ниже. В дополнение к размеру партии, показанному в таблице ниже, InceptionV3, ResNet-50, ResNet-152 и VGG16 также были протестированы с размером партии 32. Эти результаты находятся вдругие результатыглава.

Options InceptionV3 ResNet-50 ResNet-152 AlexNet VGG16
Batch size per GPU 64 64 64 512 64
Optimizer sgd sgd sgd sgd sgd

Конфигурация для каждой модели.

Model variable_update local_parameter_device
InceptionV3 parameter_server cpu
ResNet50 parameter_server cpu
ResNet152 parameter_server cpu
AlexNet replicated (with NCCL) n/a
VGG16 replicated (with NCCL) n/a

результат

обучение синтетическим данным

GPUs InceptionV3 ResNet-50 ResNet-152 AlexNet VGG16
1 142 219 91.8 2987 154
2 284 422 181 5658 295
4 569 852 356 10509 584
8 1131 1734 716 17822 1081

обучение на реальных данных

GPUs InceptionV3 ResNet-50 ResNet-152 AlexNet VGG16
1 142 218 91.4 2890 154
2 278 425 179 4448 284
4 551 853 359 7105 534
8 1079 1630 708 N/A 898

Как видно из приведенной выше диаграммы, модель AlexNet не использовала 8 графических процессоров для обучения данных из-за ограничения максимального количества входных данных.

другие результаты

Ниже приведены результаты для партии размером 32.

обучение синтетическим данным

GPUs InceptionV3 ResNet-50 ResNet-152 VGG16
1 128 195 82.7 144
2 259 368 160 281
4 520 768 317 549
8 995 1485 632 820

обучение на реальных данных

GPUs InceptionV3 ResNet-50 ResNet-152 VGG16
1 130 193 82.4 144
2 257 369 159 253
4 507 760 317 457
8 966 1410 609 690

Подробная информация о Google Compute Engine (NVIDIA® Tesla® K80)

Конфигурация среды

  • Instance type: n1-standard-32-k80x8
  • GPU:8x NVIDIA® Tesla® K80
  • OS: Ubuntu 16.04 LTS
  • CUDA / cuDNN: 8.0 / 5.1
  • TensorFlow GitHub hash: b1e174e
  • Benchmark GitHub hash: 9165a70
  • Build Command: bazel build -c opt --copt=-march="haswell" --config=cuda //tensorflow/tools/pip_package:build_pip_package
  • Disk: 1.7 TB Shared SSD persistent disk (800 MB/s)
  • DataSet: ImageNet
  • Test Date: May 2017

Размер партии и оптимизатор для каждой модели показаны в таблице ниже. В дополнение к размеру партии, показанному в таблице ниже, InceptionV3 и ResNet-50 также тестировались с размером партии 32. Эти результаты находятся вдругие результатыглава.

Options InceptionV3 ResNet-50 ResNet-152 AlexNet VGG16
Batch size per GPU 64 64 32 512 32
Optimizer sgd sgd sgd sgd sgd

В конфигурации, используемой каждой моделью, конфигурация variable_update и parameter_server одинакова, а конфигурация local_parameter_device и cpu одинакова.

результат

обучение синтетическим данным

GPUs InceptionV3 ResNet-50 ResNet-152 AlexNet VGG16
1 30.5 51.9 20.0 656 35.4
2 57.8 99.0 38.2 1209 64.8
4 116 195 75.8 2328 120
8 227 387 148 4640 234

обучение на реальных данных

GPUs InceptionV3 ResNet-50 ResNet-152 AlexNet VGG16
1 30.6 51.2 20.0 639 34.2
2 58.4 98.8 38.3 1136 62.9
4 115 194 75.4 2067 118
8 225 381 148 4056 230

другие результаты

обучение синтетическим данным

GPUs InceptionV3 (batch size 32) ResNet-50 (batch size 32)
1 29.3 49.5
2 55.0 95.4
4 109 183
8 216 362

обучение на реальных данных

GPUs InceptionV3 (batch size 32) ResNet-50 (batch size 32)
1 29.5 49.3
2 55.4 95.3
4 110 186
8 216 359

Подробная информация об Amazon EC2 (NVIDIA® Tesla® K80)

Конфигурация среды

  • Instance type: p2.8xlarge
  • GPU:8x NVIDIA® Tesla® K80
  • OS: Ubuntu 16.04 LTS
  • CUDA / cuDNN: 8.0 / 5.1
  • TensorFlow GitHub hash: b1e174e
  • Benchmark GitHub hash: 9165a70
  • Build Command: bazel build -c opt --copt=-march="haswell" --config=cuda //tensorflow/tools/pip_package:build_pip_package
  • Disk: 1TB Amazon EFS (burst 100 MiB/sec for 12 hours, continuous 50 MiB/sec)
  • DataSet: ImageNet
  • Test Date: May 2017

Размер партии и оптимизатор для каждой модели показаны в таблице ниже. В дополнение к размеру партии, показанному в таблице ниже, InceptionV3 и ResNet-50 также тестировались с размером партии 32. Эти результаты находятся вдругие результатыглава.

Options InceptionV3 ResNet-50 ResNet-152 AlexNet VGG16
Batch size per GPU 64 64 32 512 32
Optimizer sgd sgd sgd sgd sgd

Конфигурация для каждой модели.

Model variable_update local_parameter_device
InceptionV3 parameter_server cpu
ResNet-50 replicated (without NCCL) gpu
ResNet-152 replicated (without NCCL) gpu
AlexNet parameter_server gpu
VGG16 parameter_server gpu

результат

обучение синтетическим данным

GPUs InceptionV3 ResNet-50 ResNet-152 AlexNet VGG16
1 30.8 51.5 19.7 684 36.3
2 58.7 98.0 37.6 1244 69.4
4 117 195 74.9 2479 141
8 230 384 149 4853 260

обучение на реальных данных

GPUs InceptionV3 ResNet-50 ResNet-152 AlexNet VGG16
1 30.5 51.3 19.7 674 36.3
2 59.0 94.9 38.2 1227 67.5
4 118 188 75.2 2201 136
8 228 373 149 N/A 242

Поскольку наша EFS не обеспечивала достаточной пропускной способности, на приведенном выше графике мы исключили статистику использования 8 графических процессоров для обучения модели AlexNet.

другие результаты

обучение синтетическим данным

GPUs InceptionV3 (batch size 32) ResNet-50 (batch size 32)
1 29.9 49.0
2 57.5 94.1
4 114 184
8 216 355

обучение на реальных данных

GPUs InceptionV3 (batch size 32) ResNet-50 (batch size 32)
1 30.0 49.1
2 57.5 95.1
4 113 185
8 212 353

Подробная информация о Amazon EC2 Distributed (NVIDIA® Tesla® K80)

Конфигурация среды

  • Instance type: p2.8xlarge
  • GPU:8x NVIDIA® Tesla® K80
  • OS: Ubuntu 16.04 LTS
  • CUDA / cuDNN: 8.0 / 5.1
  • TensorFlow GitHub hash: b1e174e
  • Benchmark GitHub hash: 9165a70
  • Build Command: bazel build -c opt --copt=-march="haswell" --config=cuda //tensorflow/tools/pip_package:build_pip_package
  • Disk: 1.0 TB EFS (burst 100 MB/sec for 12 hours, continuous 50 MB/sec)
  • DataSet: ImageNet
  • Test Date: May 2017

Размер партии и оптимизатор для каждой модели показаны в таблице ниже. В дополнение к размеру партии, показанному в таблице ниже, InceptionV3 и ResNet-50 также тестировались с размером партии 32. Эти результаты находятся вдругие результатыглава.

Options InceptionV3 ResNet-50 ResNet-152
Batch size per GPU 64 64 32
Optimizer sgd sgd sgd

Конфигурация для каждой модели.

Model variable_update local_parameter_device cross_replica_sync
InceptionV3 distributed_replicated n/a True
ResNet-50 distributed_replicated n/a True
ResNet-152 distributed_replicated n/a True

Чтобы упростить настройку сервера, экземпляры EC2 (p2.8xlarge) запускают рабочие серверы и серверы параметров. Для одинакового количества рабочих серверов и серверов параметров использовалась следующая конфигурация:

  • InceptionV3: 8 instances / 6 parameter servers
  • ResNet-50: (batch size 32) 8 instances / 4 parameter servers
  • ResNet-152: 8 instances / 4 parameter servers

результат

обучение синтетическим данным

GPUs InceptionV3 ResNet-50 ResNet-152
1 29.7 52.4 19.4
8 229 378 146
16 459 751 291
32 902 1388 565
64 1783 2744 981

другие результаты

обучение синтетическим данным

GPUs InceptionV3 (batch size 32) ResNet-50 (batch size 32)
1 29.2 48.4
8 219 333
16 427 667
32 820 1180
64 1608 2315

метод

Приведенный выше результат используетсценарийСоздан для работы на различных платформах.«Высокопроизводительные модели»В статье подробно описаны приемы в скрипте с примерами выполнения скрипта.

Чтобы получить максимально воспроизводимые результаты, каждый тест запускался 5 раз, а затем усреднялся. На данной платформе графический процессор работает по умолчанию. Для NVIDIA® Tesla® K80 это означает отказ от использованияGPU Boost.

Для каждого теста необходимо выполнить 10 разминок, а затем в среднем выполняется 100 тестов.

Программа перевода самородковэто сообщество, которое переводит высококачественные технические статьи из ИнтернетаНаггетсДелитесь статьями на английском языке на . Охват контентаAndroid,iOS,внешний интерфейс,задняя часть,блокчейн,продукт,дизайн,искусственный интеллектЕсли вы хотите видеть более качественные переводы, пожалуйста, продолжайте обращать вниманиеПрограмма перевода самородков,официальный Вейбо,Знай колонку.