每当训练一个mod

2024-04-20 03:46:01 发布

您现在位置:Python中文网/ 问答频道 /正文

代码如下:

# 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)

这应该证明我已经安装了tensorflow GPU和CUDA和CUDNN pic

我不知道该怎么办,我已经多次重新安装了CUDA和CUDNN

但是,如果我卸载tensorflow gpu,程序将运行正常。。。除了每个历元需要5000秒。。。我想避免那样

仅供参考,这一切都发生在Windows上

如有任何帮助,我们将不胜感激。


Tags: fromtestimportaddsizelayersactivationkeras
3条回答

在我的情况下,我需要安装

conda install keras

我也有同样的问题。在我的例子中,当我使用所有model.add()代码运行块时,笔记本内核就崩溃了。

我去了Jupyter的家,发现另一个笔记本正在运行,尽管我关闭了笔记本浏览器选项卡,但我之前用它在GPU上训练一个模型。正如“伊恩·亨利”所建议的那样。我关闭了那些我没有使用的程序,重新启动内核并再次运行所有的块,这次运行得非常好。

请注意,即使关闭浏览器,笔记本也会在后台运行。如果您选中相应笔记本的图标,则可以使用验证,如果运行,则图标应为绿色,如果不运行,则图标应为灰色。要关闭正在运行的笔记本,只需转到running选项卡,然后单击笔记本名称旁边的shutdown按钮

我在Jupyter笔记本上运行model.fit()时遇到了同样的问题。调试的一个好的起点总是将笔记本下载为.py文件并运行它。这样就可以得到所有的错误和警告。

在解决方案方面-我怀疑这会解决大多数情况,但我安装了cuDNN 7.2(.1)via.deb文件,重新安装了tensorflow gpu,它工作了。毕竟,驱动程序不是版本问题(我有CUDA9.0和384.xx,这是正确的),而是一个有cuDNN的问题。

相关问题 更多 >