我最近在笔记本电脑上安装了GPU张量流,CUDA和cuDNN,以使用this教程使用GPU训练模型。我的笔记本电脑是Lenovo Ideapad 510,处理器= i5-7th gen,GPU = GForce 940MX(4GB)。在学习完本教程之后,我安装并配置了使用我的GPU所需的所有必需更改。
每个epoc仅用了6秒钟即可编译60,000张图像。在nvidia-smi
桌上,我可以看到我的GPU内存使用率为19MiB。在本教程中,他的GPU内存使用量为777MiB。
然后,我尝试运行自己的数据集和模型,其中包含88000张图像并运行10次。此培训的nvidia-smi
显示GPU使用情况为19MiB。 tf.test.is_gpu_available()
也返回FALSE。
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进行训练?
答案 0 :(得分:1)
您使用的link有多种安装NVIDIA驱动程序的方法。我不确定您使用哪种方法。通常不建议使用第一种方法,因为大多数情况下会安装回溯驱动程序。 (如果要重新安装驱动程序,请查看tensorflow官方文档中描述的this。)
但是,现在到了重点。
在nvidia-smi
命令起作用的情况下,让我们跳过驱动程序安装部分。
但是,tf.test.is_gpu_available()
返回False
,这可能是由多种原因造成的(即CuDNN或Tensorflow与当前驱动程序不兼容)。
快速解决方案可能是
请检查您当前的GPU驱动程序版本,并搜索与您当前的GPU驱动程序版本兼容的合适的Tensorflow版本。
使用conda环境安装Tensorflow。这将下载正确的CUDA,CuDNN和其他必要的库。
Tensorflow gpu:conda install -c anaconda tensorflow-gpu=<version>
Keras gpu conda install -c anaconda keras-gpu=<version_match_with_tensorflow>
(但是,tf.keras
可能比安装单独的keras更好)
答案 1 :(得分:0)
在笔记本电脑上,它可能会发生应用程序不想使用专用卡的情况,因为它可以在英特尔显示器上正常工作。在3d设置下的nvidia控制面板中检查笔记本电脑是否正在使用Nvidia GPU,然后选择“高性能Nvidia图形”。