我手动安装了CUDA v9.2和相应的cuDNN以安装tensorflow gpu。但是我意识到tensorflow 1.8.0需要CUDA 9.0,所以我运行了
pip install tensorflow-gpu
我从anaconda命令提示符(基础环境)开始,它自动安装了CUDA 9.0和相应的cuDNN。然后我从同一个命令提示符中启动了Spyder。 这是我使用Python 3.6编写的代码,在该代码中,我使用keras和tensorflow训练超过8000张图像 -
# Convolutional Neural Networks
# Part 1 - Building the CNN
# Not important
# Part 2- Fitting the CNN to the images -
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(
'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')
with tf.device("/gpu:0"): # Notice THIS
classifier.fit_generator(
training_set,
steps_per_epoch=8000,
epochs=25,
validation_data=test_set,
validation_steps=2000)
注意,在最后拟合数据集之前,我将其放在里面。
with tf.device("/gpu:0"):
我认为这应该确保使用GPU进行训练?我不确定,因为将“gpu:0”更改为“cpu:0”会导致训练时间完全相同(每个时期18-20分钟)。如何确保Spyder中的tensorflow使用我的GPU?
我有一张NVIDIA GTX 970,所以它是CUDA兼容的。 此外,我正在使用Python 3.6,这是个问题吗? 我应该创建一个单独的Python 3.5环境,并在其中类似地安装tensorflow-gpu并尝试吗?