在训练Keras模型期间GPU使用率为1%

时间:2020-11-03 08:42:57

标签: python tensorflow keras deep-learning

我是Tensorflow的新手,我正在尝试训练一个使用ImageDataGenerator的模型:

data_gen = tf.keras.preprocessing.image.ImageDataGenerator(
        rotation_range=40,
        width_shift_range=0.2,
        height_shift_range=0.2,
        rescale=1./255,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True,
        fill_mode='nearest')

BATCH_SIZE = 32

train_gen = data_gen.flow_from_dataframe(
    mapping_train,
    x_col = 'path',
    y_col = 'label',
    target_size = (256, 256),
    batch_size = BATCH_SIZE
)

mapping_train是一个包含path_to_image和class_label列的数据框。

我正在使用VGG16应用转移学习,并将fit_generator方法调用为:

model_1.fit_generator(train_gen,
                      steps_per_epoch=mapping_train.shape[0] / BATCH_SIZE,
                      epochs=3
                     )

但是,我的GPU始终始终不到2%,但是我的VRAM使用率几乎已满(4GB),批处理大小为32。

TensorFlow确实可以识别我的GPU,并调用tf.config.list_physical_devices('GPU') 在我的控制台上打印GTX 1050Ti。

我尝试过:

  • 增加batch_size:导致OOM错误
  • 使用use_multiprocessing = Trueworkers = 4answer进行了尝试
  • 通过将我的标签投射到np.uint8
  • 中来对此answer进行了尝试

他们都没有工作。非常感谢您提供一些帮助。

0 个答案:

没有答案