我正在尝试训练一个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%。