Использование графического процессора 0% во время переподготовки TensorFlow для поэтов

Я следую инструкциям по TensorFlow Retraining for Poets. Использование графического процессора казалось низким, поэтому я инструментировал retrain.py скрипт в соответствии с инструкциями в Использование графического процессора. Журнал подтверждает, что граф TF строится на GPU. Я переучиваюсь на большое количество занятий и образов. Пожалуйста, помогите мне настроить параметры в TF и ​​сценарий переподготовки для использования графического процессора.

Мне известно о этом вопросе, что мне следует уменьшить размер пакета. Неясно, что составляет «размер пакета» для этого сценария. У меня 60 классов и обучающие образы 1ММ. Он начинается с создания файлов узких мест размером 1MM. Эта часть является процессором и медленной, и я это понимаю. Затем он тренируется в 4000 шагов, по 100 изображений за один шаг. Это партия? Увеличится ли загрузка графического процессора, если я уменьшу количество изображений на шаг?

Ваша помощь будет очень признательна!


person Lars Ericson    schedule 03.06.2018    source источник
comment
также были бы полезны любые указания по ускорению выполнения обучающего скрипта, в настоящее время мой тренировочный пробег занимает 2 недели ... (1500 тыс. шагов)   -  person James    schedule 11.06.2020
comment
Я думаю, что ссылка изменилась на новый учебник, ссылка больше не указывает на переподготовку тензорного потока для поэтов. У вас есть оригинальная ссылка?   -  person Frederik Bode    schedule 11.06.2020
comment
Это пришло из, codelabs.developers.google.com/codelabs/tensorflow-for -поэты изначально   -  person James    schedule 16.06.2020
comment
если вы используете графический процессор, будет максимальный размер пакета для переполнения памяти графического процессора, если вам нужно, давайте назначим встречу с масштабированием   -  person 陈海栋    schedule 18.06.2020


Ответы (2)


Обычно я делаю следующее.

  1. Проверьте, используете ли вы графический процессор.

    tf.test.is_gpu_available()
    
  2. Следите за использованием графического процессора.

    watch -n 0.1 nvidia-smi
    
  3. Если у вас низкая загрузка ЦП. Напишите это после

    train_batches = train.shuffle(SHUFFLE_BUFFER_SIZE).batch(BATCH_SIZE)
    
    train_batches = train_batches.prefetch(1) #  This will prefetch one batch
    
  4. Если у вас низкий уровень использования графического процессора.

    batch_size = 128
    
  5. Если у вас по-прежнему низкий уровень графического процессора. Может быть:

    • Your graph is too simple to use more GPU.
    • Ошибка кода или ошибка пакета.
person Xu Qiushi    schedule 17.06.2020

Давайте по очереди зададим ваши вопросы:

  1. Размер пакета - это количество изображений, на которых одновременно выполняется обучение / тестирование / проверка. Вы можете найти соответствующие параметры и их значения по умолчанию, определенные в скрипте:
  parser.add_argument(
      '--train_batch_size',
      type=int,
      default=100,
      help='How many images to train on at a time.'
  )
  parser.add_argument(
      '--test_batch_size',
      type=int,
      default=-1,
      help="""\
      How many images to test on. This test set is only used once, to evaluate
      the final accuracy of the model after training completes.
      A value of -1 causes the entire test set to be used, which leads to more
      stable results across runs.\
      """
  )
  parser.add_argument(
      '--validation_batch_size',
      type=int,
      default=100,
      help="""\
      How many images to use in an evaluation batch. This validation set is
      used much more often than the test set, and is an early indicator of how
      accurate the model is during training.
      A value of -1 causes the entire validation set to be used, which leads to
      more stable results across training iterations, but may be slower on large
      training sets.\
      """
  )

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

python -m retrain --train_batch_size=16

Я также рекомендую вам указать размер пакета как степень двойки (16, 32, 64, 128, ...). И это число зависит от используемого вами графического процессора. Чем меньше памяти у графического процессора, тем меньший размер пакета вам следует использовать. С 8 ГБ в графическом процессоре вы можете попробовать размер пакета 16.

  1. Чтобы узнать, используете ли вы графические процессоры вообще, вы можете выполнить действия, описанные в упомянутой вами документации Tensorflow - просто поставьте tf.debugging.set_log_device_placement(True)

в качестве первого утверждения вашего скрипта.

Ведение журнала размещения устройств приводит к распечатке любых выделений тензорных модулей или операций.

person Max Voitko    schedule 16.06.2020