训练CNN时GPU使用率较低

时间:2019-07-21 20:12:23

标签: tensorflow gpu

我正在尝试训练一个CNN来预测图像是在我的GPU上使用带有tensorflow的keras预测的图像是猫还是狗的图像,但是每个时期要花费很多时间。

我遵循了从头开始构建此CNN的教程,因此我已经在CUDA 10.0,Visual Studio Community 2017,GPU和Keras上安装了tensorflow(所有这些都使用Spyder和Anaconda)。但是,当我开始训练CNN时,我打开了任务管理器,发现CUDA的使用率为6-7%。当我使用NVSMI扫描GPU使用情况时,情况相同。

我的GPU是NVIDIA RTX 2060。

这是我正在运行的代码:

from keras.models import Sequential
from keras.layers import Convolution2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten
from keras.layers import Dense
from keras.preprocessing.image import ImageDataGenerator

classifier = Sequential()

classifier.add(Convolution2D(32, (3, 3), padding = 'same', input_shape = (64, 64, 3), activation = 'relu'))

classifier.add(MaxPooling2D(pool_size = (2, 2)))

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


classifier.add(Flatten())


classifier.add(Dense(128, activation = 'relu'))
classifier.add(Dense(1, activation = 'sigmoid'))


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


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(
            'dataset/training_set',
            target_size=(64, 64),
            batch_size=32,
            class_mode='binary')

test_set = test_datagen.flow_from_directory(
            'dataset/test_set',
            target_size=(64, 64),
            batch_size=32,
            class_mode='binary')

classifier.fit_generator(
            training_set,
            steps_per_epoch=8000,
            epochs=10,
            validation_data=test_set,
            validation_steps=2000)

我想知道是否有机会为GPU的使用设置特定值,或者至少使其增长超过6%。

0 个答案:

没有答案