from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout, BatchNormalization import time start = time.time() model = Sequential([ #Pierwszy blok konwoucyjny Conv2D(32, (3, 3), activation='relu', padding='same', input_shape=(28,28,1)), BatchNormalization(), MaxPooling2D((2,2)), Dropout(0.25), #Drugi blok konwoucyjny Conv2D(64, (3, 3), activation='relu', padding='same'), BatchNormalization(), MaxPooling2D((2,2)), Dropout(0.25), #blok gęsty Flatten(), Dense(128, activation='relu'), BatchNormalization(), Dropout(0.5), Dense(10, activation='softmax') ]) model.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["accuracy"]) history = model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_test, y_test)) loss, accuracy = model.evaluate(x_test, y_test, verbose=0) print(f"Strata: {loss:.4f}, Dokładność: {accuracy:.4f}") end = time.time() print(f"Czas wykonania: {end - start:.2f} sekundy")