这是代码:
# import libraries
from keras.models import Sequential
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten
from keras.layers import Dense
# import dataset
from keras.preprocessing.image import ImageDataGenerator
train_datagen = ImageDataGenerator()
test_datagen = ImageDataGenerator()
training_set = train_datagen.flow_from_directory(
'data/spectrogramme/ensemble_de_formation',
target_size = (64, 64),
batch_size = 128,
class_mode = 'binary')
test_set = test_datagen.flow_from_directory('data/spectrogramme/ensemble_de_test',
target_size = (64, 64),
batch_size = 128,
class_mode = 'binary')
# initializing
reseau = Sequential()
# 1. convolution
reseau.add(Conv2D(32, (3, 3), input_shape = (64, 64, 3), activation = 'relu'))
reseau.add(MaxPooling2D(pool_size = (2, 2)))
reseau.add(Conv2D(32, (3, 3), activation = 'relu'))
reseau.add(MaxPooling2D(pool_size = (2, 2)))
reseau.add(Conv2D(64, (3, 3), activation = 'relu'))
reseau.add(MaxPooling2D(pool_size = (2, 2)))
reseau.add(Conv2D(64, (3, 3), activation = 'relu'))
reseau.add(MaxPooling2D(pool_size = (2, 2)))
# 2. flatenning
reseau.add(Flatten())
# 3. fully connected
from keras.layers import Dropout
reseau.add(Dense(units = 64, activation = 'relu'))
reseau.add(Dropout(0.1))
reseau.add(Dense(units = 128, activation = 'relu'))
reseau.add(Dropout(0.05))
reseau.add(Dense(units = 256, activation = 'relu'))
reseau.add(Dropout(0.03))
reseau.add(Dense(units = 1, activation = 'sigmoid'))
# 4. compile
reseau.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['accuracy'])
# 5. fit
reseau.fit_generator(training_set, steps_per_epoch = 8000, epochs = 1,
validation_data = test_set, validation_steps = 2000)
这应该证明我有安装了 CUDA 和 CUDNN 的 tensorflow GPU 图片
我不知道该怎么办,我已经多次重装 CUDA 和 CUDNN
但是,如果我卸载 tensorflow-gpu,程序运行完美……除了每个纪元需要 5000 秒……我想避免这种情况
仅供参考,这一切都发生在 Windows 上
任何帮助表示赞赏。
原文由 user7804325 发布,翻译遵循 CC BY-SA 4.0 许可协议
tensorflow-gpu 的一个非常麻烦的问题。我花了好几天才找到最好的解决方案。
似乎是什么问题:
我知道您可能在观看了 youtube 视频或互联网文档后安装了 cudnn 和 cuda(就像我一样)。但是由于 cuda 和 cudnn 对版本冲突非常严格,因此您的 tensorflow 、 cuda 或 cudnn 版本之间可能存在版本不匹配。
解决方法是什么:
tensorflow
在安装tensorflow-gpu
2.3 期间由 Anaconda 在 Windows 10 上自动选择的构建似乎有问题。请 在此处 找到解决方法(如果您有 GitHub 帐户,请考虑对 GitHub 答案进行投票)。Python 3.7:
conda install tensorflow-gpu=2.3 tensorflow=2.3=mkl_py37h936c3e2_0
Python 3.8:
conda install tensorflow-gpu=2.3 tensorflow=2.3=mkl_py38h1fcfbd6_0
这些片段会自动下载 cuda 和 cudnn 驱动程序以及 tensorflow-gpu。在尝试了这个解决方案之后,我能够
fit()
tensorflow 模型以及由于安装了 GPU 而提高了速度。忠告:
如果您从事机器学习/数据科学工作。我强烈建议您改用 anaconda 而不是 pip。这将允许您创建虚拟环境并与 jupyter-notebooks 轻松集成。您可以为机器学习任务创建一个单独的虚拟环境,因为它们通常需要升级或降级库。对于虚拟环境,它不会伤害环境之外的其他包。