【发布时间】:2019-05-17 04:14:51
【问题描述】:
我尝试使用 CNN 进行二元分类。使用与https://www.udemy.com/deeplearning/ 中解释的完全相同的代码完成。但是当我在我的 PC(CPU-8 GB RAM)上运行代码时,训练在每个 epoch 中执行非常缓慢,即使我将批量大小设置为 32。但是,它在讲师的计算机(即使他也在使用 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 作为后端。
谢谢!
【问题讨论】:
标签: python image-processing keras conv-neural-network