簡體   English   中英

GPU tensorflow 在筆記本電腦上運行速度比 CPU tensorflow 慢?

[英]GPU tensorflow running slower than CPU tensorflow on laptop?

我最近在筆記本電腦上安裝了 GPU tensorflow、CUDA 和 cuDNN,以使用教程使用 GPU 訓練我的模型。 我的筆記本電腦是聯想 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 進行訓練?

您使用的鏈接有多種安裝 NVIDIA 驅動程序的方法。 我不確定您使用的是哪種方法。 第一種方法一般不推薦,因為大多數時候安裝過時的驅動程序。 (如果你想重新安裝驅動程序,請看看這個tensorflow官方文檔中描述。)

但是,現在進入重點。

由於nvidia-smi命令正在運行,讓我們跳過驅動程序安裝部分。

但是, tf.test.is_gpu_available()返回False ,這可能是由多種原因引起的。(即 CuDNN 或 Tensorflow 與您當前的驅動程序不兼容)。

一個快速的解決方案可能是

  1. 請檢查您當前的 GPU 驅動程序版本,並搜索與您當前的 GPU 驅動程序版本兼容的合適的 Tensorflow 版本。

  2. 使用 conda 環境安裝 tensorflow。 這將下載正確的 CUDA、CuDNN 和其他必要的庫。

Tensorflow GPU: conda conda install -c anaconda tensorflow-gpu=<version>

Keras gpu conda install -c anaconda keras-gpu=<version_match_with_tensorflow> (但是, tf.keras可能比這個單獨的 keras 安裝更好)

在筆記本電腦上,應用程序不想使用專用卡,因為它是通過英特爾顯示器工作的。 檢查您的筆記本電腦是否在 3d 設置下的 nvidia 控制面板中使用 Nvidia GPU,選擇高性能 Nvidia 圖形。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM