【发布时间】: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