【发布时间】:2020-04-14 19:02:31
【问题描述】:
我正在尝试使用 tensorflow-gpu 运行 RNN,因为使用 CPU 大约需要 13 分钟来处理 1 个 epoch(训练中的 8000 张图片/测试中的 2000 张图片)。但是,我多次尝试在 Windows 10 上安装 tensorflow-gpu,但无法成功运行它。我有以下配置:
GPU 1:NVIDIA GeForce GTX 1650 GPU 0:英特尔(R) UHG 显卡 630 CPU:Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
我在 pip 中的 virtualenv Tensorflow 中安装了以下内容:pip packages
我遵循了以下教程:
- https://www.tensorflow.org/install/gpu
- https://towardsdatascience.com/installing-tensorflow-with-cuda-cudnn-and-gpu-support-on-windows-10-60693e46e781
- https://www.pugetsystems.com/labs/hpc/The-Best-Way-to-Install-TensorFlow-with-GPU-Support-on-Windows-10-Without-Installing-CUDA-1187/
此外,由于这是一个热门问题,我尝试了其他主题中建议的不同解决方案,例如:
- tensorflow-gpu / CUDA / Cudnn 之间的兼容性(我尝试了不同的组合 CUDA 9.0/ ..)
- 我将我的 tensoflow-gpu 降级到 1.8.0 但没有工作
目前,我有 tensorflow-gpu 2.00、CUDA 10.0、Cudnn 7.4.1.5,这似乎与定义的内容兼容 (https://www.tensorflow.org/install/source_windows) 已安装 Visual Studio,并为我的 Intel 卡安装了最新的驱动程序。
但我也发现我的 GeForce GTX 1650 在启用 CUDA 的 NVIDIA gpu 中没有提到 (https://developer.nvidia.com/cuda-gpus) 不知道这是否是问题?
我得到的错误信息是:UnknownError: Failed to get convolution algorithm。这可能是因为 cuDNN 初始化失败,因此请尝试查看上面是否打印了警告日志消息。 [操作: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)
【问题讨论】:
标签: python tensorflow keras deep-learning gpu