Détails:
GPU : GTX 1080
Formation : ~ 1,1 million d'images appartenant à 10 classes
Validation : ~ 150 mille images appartenant à 10 classes
Temps par époque : ~ 10 heures
J'ai configuré CUDA, cuDNN et Tensorflow (GPU Tensorflow également).
Je ne pense pas que mon modèle soit si compliqué que cela prenne 10 heures par époque. J'ai même vérifié si mon GPU était le problème, mais ce n'était pas le cas.
Le temps de formation est-il dû aux couches entièrement connectées?
Mon modele:
model = Sequential()
model.add()
model.add(Conv2D(64, (3, 3), padding="same", strides=2))
model.add(Activation('relu'))
model.add(Dropout(0.25))
model.add(Conv2D(64, (3, 3), padding="same", strides=2))
model.add(Activation('relu'))
model.add(Dropout(0.25))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(3, 3), strides=2))
model.add(Flatten())
model.add(Dense(256))
model.add(Activation('relu'))
model.add(Dense(4096))
model.add(Activation('relu'))
model.add(Dense(10))
model.add(Activation('softmax'))
model.summary()
opt = keras.optimizers.rmsprop(lr=0.0001, decay=1e-6)
model.compile(loss='categorical_crossentropy',
optimizer=opt,
metrics=['accuracy']
)
Parce qu'il y a beaucoup de données, j'ai utilisé ImageDataGenerator.
gen = ImageDataGenerator(
horizontal_flip=True
)
train_gen = gen.flow_from_directory(
'train/',
target_size=(512, 512),
batch_size=5,
class_mode="categorical"
)
valid_gen = gen.flow_from_directory(
'validation/',
target_size=(512, 512),
batch_size=5,
class_mode="categorical"
)