【问题标题】:GPU tensorflow running slower than CPU tensorflow on laptop?GPU tensorflow 在笔记本电脑上的运行速度比 CPU tensorflow 慢?
【发布时间】:2020-05-13 17:34:07
【问题描述】:

我最近在笔记本电脑上安装了 GPU tensorflow、CUDA 和 cuDNN,以使用我的 GPU 使用 this 教程训练我的模型。我的笔记本电脑是联想 Ideapad 510,处理器 = i5-7 代,GPU = GForce 940MX(4GB)。按照教程,我安装并配置了使用 GPU 所需的所有更改。

在 GPU 上训练 mnist 数据集的结果

每个 epoc 只需 6 秒即可编译 60,000 张图像。在nvidia-smi 表上,我可以看到我的 GPU 内存使用量为 19MiB。在教程中,他的 GPU 内存使用量为 777MiB。

然后我尝试运行我自己的数据集和模型,它有 88000 张图像并运行了 10 个 epoc。此训练的 nvidia-smi 显示 GPU 使用量为 19MiB。 tf.test.is_gpu_available() 也返回 FALSE。

CNN 模型

classifier = Sequential()


classifier.add(Conv2D(32, (3, 3), input_shape = (100, 100, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Conv2D(32, (3, 3), activation = 'relu'))
classifier.add(MaxPooling2D(pool_size = (2, 2)))

classifier.add(Flatten())

classifier.add(Dense(units = 128, activation = 'relu'))
classifier.add(Dense(units = 39, activation = 'softmax'))

classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])



from keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(rescale = 1./255,
                                   shear_range = 0.2,
                                   zoom_range = 0.2,
                                   horizontal_flip = True)

test_datagen = ImageDataGenerator(rescale = 1./255)

training_set = train_datagen.flow_from_directory('train',
                                                 target_size = (100,100),
                                                 batch_size = 32,
                                                 class_mode = 'categorical')

test_set = test_datagen.flow_from_directory('test',
                                            target_size = (100, 100),
                                            batch_size = 32,
                                            class_mode = 'categorical')

classifier.fit_generator(training_set,
                         steps_per_epoch = 88534,
                         epochs = 10,
                         validation_data = test_set,
                         validation_steps = 1418)

classifier.save('/home/harish/Desktop/asl-alphabet/asl_pred.h5')

为什么我不能比通常的 CPU 更快地训练数据?如何启用 GPU 进行训练?

【问题讨论】:

    标签: python tensorflow keras gpu cpu


    【解决方案1】:

    在笔记本电脑上,应用程序不想使用专用卡,因为它是通过英特尔显示器工作的。检查您的笔记本电脑是否使用 Nvidia GPU,在 3d 设置下的 nvidia 控制面板中选择高性能 Nvidia 图形。

    【讨论】:

      【解决方案2】:

      你使用的link有多种安装NVIDIA驱动的方法。我不确定您使用的是哪种方法。通常不推荐第一种方法,因为大多数时候安装的是过时的驱动程序。 (如果要重装驱动,请查看tensorflow官方文档中描述的this。)

      但是,现在进入重点。

      由于nvidia-smi 命令有效,我们跳过驱动安装部分。

      但是,tf.test.is_gpu_available() 返回 False 这可能是由多种原因引起的。(即 CuDNN 或 Tensorflow 与您当前的驱动程序不兼容)。

      快速解决方案可能是

      1. 请检查您当前的 GPU 驱动程序版本,并搜索与您当前的 GPU 驱动程序版本兼容的合适 Tensorflow 版本。

      2. 使用 conda 环境安装 tensorflow。这将下载正确的 CUDA、CuDNN 和其他必要的库。

      张量流显卡:conda install -c anaconda tensorflow-gpu=<version>

      Keras gpu conda install -c anaconda keras-gpu=<version_match_with_tensorflow>(不过,tf.keras 可能比这个单独的 keras 安装更好)

      【讨论】:

      • 我目前正在运行 GPU 驱动程序版本 440.44,NVIDIA-SMI 是 430.50,系统中安装的 cuda 版本是 10.2。最新版本的 TensorFlow 是否与这些组件兼容?
      • Diver 看起来不错。但是,tensorflow 目前支持 CUDA = 10.1(它没有提到像 10.1+ 或 10.2 这样的东西)。请您尝试使用 CUDA 10.1 好吗? tensorflow.org/install/gpu#software_requirements
      猜你喜欢
      • 2019-11-06
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 2019-12-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多