Как убедиться, что мой код использует всю емкость графического процессора? - PullRequest
0 голосов
/ 07 июня 2019

Я тренирую сеть ResNet-50 на большой базе данных. Проверяя процент использования моего графического процессора, я обнаружил, что он варьируется от 0% до 4%! хотя я использую tenorflow-GPU. Вот мой коэффициент использования процессора и графического процессора: enter image description here

Когда я запускаю эти две командные строки:

 from tensorflow.python.client import device_lib
 print(device_lib.list_local_devices())

Я получаю

 [name: "/device:CPU:0"
 device_type: "CPU"
 memory_limit: 268435456
 locality {
  }
 incarnation: 4622338339054789933
 , name: "/device:GPU:0"
 device_type: "GPU"
 memory_limit: 13594420839
 locality {
 bus_id: 1
 links {
 }
 }
 incarnation: 17927686236275886371
 physical_device_desc: "device: 0, name: Quadro 
 P5000, pci bus id: 0000:01:00.0, compute 
 capability: 6.1"
 ]

и когда я бегу NVIDIA-СМИ я получил enter image description here

Может ли кто-нибудь помочь мне с простым объяснением, как правильно и полностью использовать мой графический процессор? Я должен упомянуть, что во время обучения я использую объект ImageDataGenerator с двумя его методами flow_from_directory и fit_generator, поэтому я могу установить конкретные параметры, такие как параметр working, чтобы повысить частоту использования моего графического процессора. Вот как я использую ImageDataGenerator

  input_imgen = ImageDataGenerator()
  train_it = input_imgen.flow_from_directory(directory=data_path_l,target_size= 
  (224,224),
                                      color_mode="rgb",
                                      batch_size=batch_size,
                                      class_mode="categorical",
                                      shuffle=False,
                                      )

  valid_it = input_imgen.flow_from_directory(directory=test_data_path_l,target_size= 
  (224,224),
                                      color_mode="rgb",
                                      batch_size=batch_size,
                                      class_mode="categorical",
                                      shuffle=False,
                                      )

  model = resnet.ResnetBuilder.build_resnet_50((img_channels, img_rows, 
  img_cols), num_classes)
  model.compile(loss='categorical_crossentropy',
          optimizer='adam',
          metrics=['accuracy'])

  filepath=".\conv2D_models\weights-improvement-{epoch:02d}- 
  {val_acc:.2f}.hdf5"

  mc = ModelCheckpoint(filepath, save_weights_only=False, verbose=1, 
  monitor='loss', mode='min')

  history=model.fit_generator(train_it,
                    steps_per_epoch= train_images // batch_size,
                    validation_data = valid_it, 
                    validation_steps = val_images// batch_size,
                    epochs = epochs,callbacks=[mc],
                    shuffle=False)
...