model = km.Sequential() model.add(kl.Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28,28, 1), data_format="channels_last")) model.add(kl.Conv2D(64, (3, 3), activation='relu')) model.add(kl.MaxPooling2D(pool_size=(2, 2))) model.add(kl.Dropout(0.25)) model.add(kl.Flatten()) model.add(kl.Dense(128, activation='relu')) model.add(kl.Dropout(0.5)) model.add(kl.Dense(N_classes, activation='softmax')) # Résumé model.summary() # Apprentissage model.compile(loss="sparse_categorical_crossentropy", optimizer=ko.Adadelta(), metrics=['accuracy']) ts=time.time() model.fit(X_train_conv, Y_train, batch_size=batch_size, epochs=epochs, verbose=1, validation_data=(X_test_conv, Y_test)) te=time.time() t_train_conv = te-ts