我正在尝试使用tensorflow-gpu运行RNN,因为使用CPU花费了我大约13分钟的时间来处理1个时期(在训练中为8000皮图/在测试中为2000皮图)。但是,我尝试在Windows 10上多次安装tensorflow-gpu,但无法成功运行它。我有以下配置:
GPU 1:NVIDIA GeForce GTX 1650 GPU 0:Intel®UHG Graphics 630 CPU:Intel(R)CoreTM i7-9750H CPU @ 2.60GHz
我在pip的virtualenv Tensorflow中安装了以下内容:pip packages
我遵循了以下教程:
由于这是一个受欢迎的问题,因此我尝试了其他主题中建议的不同解决方案,例如:
目前,我有tensorflow-gpu 2.00,CUDA 10.0,Cudnn 7.4.1.5,这似乎与定义的内容兼容(https://www.tensorflow.org/install/source_windows 已安装Visual Studio,并且最新的驱动程序可以使用我的英特尔卡。
但是我还发现启用CUDA(https://developer.nvidia.com/cuda-gpus)的NVIDIA gpu中没有提到我的GeForce GTX 1650,不知道这可能是问题吗?
我得到的错误消息是:UnknownError:无法获得卷积算法。这可能是因为cuDNN初始化失败,所以请尝试查看上面是否打印了警告日志消息。 [Op:Conv2D]
from tensorflow.keras import backend
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import MaxPooling2D
from tensorflow.keras.layers import Flatten
from tensorflow.keras.layers import Dense
classifier = Sequential()
classifier.add(Conv2D(32, (3, 3), input_shape = (64, 64, 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 = 1, activation = 'sigmoid'))
classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
from tensorflow.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')
classifier.fit_generator(training_set,
steps_per_epoch = 8000,
epochs = 25,
validation_data = test_set,
validation_steps = 2000)
答案 0 :(得分:0)
您的图像都是RGB吗?由于模型和数据之间存在尺寸错误,导致出现此错误。
(64,64,1)
,并且与模型的输入形状(64,64,3)
不兼容。 花一些时间检查生成器的结果:
print('training data shapes:')
for i in range(len(training_set)):
print(training_set[i][0].shape)
print('\ntest data shapes:')
for i in range(len(test_set)):
print(test_set[i][0].shape)
还花一些时间绘制生成器中带有其类的一些图像。