gpt4 book ai didi

python - 使用Keras进行图像分类,CNN训练很慢

转载 作者:行者123 更新时间:2023-12-05 09:14:36 25 4
gpt4 key购买 nike

我尝试使用 CNN 进行二元分类。使用与 https://www.udemy.com/deeplearning/ 中解释的完全相同的代码完成.但是,当我在我的 PC(CPU- 8 GB RAM)上运行代码时,即使我将批量大小设置为 32,训练在每个 epoch 中执行一个项目的速度非常慢。但是,它在教师的计算机(即使他也在使用 CPU)。训练集由总共 8000 张图像和包含 2000 张图像的测试集组成。我知道对于这么大的数据,处理肯定会很慢,但我注意到它比平时慢得多。

from keras.layers import Dense
from keras.layers import Convolution2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten
from keras.models import Sequential
classifier=Sequential()

classifier.add(Convolution2D(32, (3, 3 ), input_shape=(64,64,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 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), #since 64,64,pixels
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)

基于目录的图像预处理流程按照 Keras 文档中的说明完成,使用 Tensorflow 作为后端。

谢谢!

最佳答案

Dan 完全正确,在 GPU 上运行将成为救命稻草。但是,我注意到您的“steps_per_epoch”值为 8000,等于训练集中的图像数量。这通常应该等于图像数除以批量大小。在您的情况下,steps_per_epoch 应该等于 8000/32 = 250。

在这里看一个简单的例子:https://github.com/brandonschabell/AircraftClassification/blob/new-model-brandon/BrandonsModel.py

关于python - 使用Keras进行图像分类,CNN训练很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53804330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com