import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'  # wycisza logi

from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.utils import to_categorical

# 1. Wczytanie danych
(x_train, y_train), (x_test, y_test) = mnist.load_data()

# 2. Normalizacja (0–255 -> 0–1)
x_train = x_train / 255.0
x_test = x_test / 255.0

# 3. One-hot encoding
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)

# 4. Model
model = Sequential([
    Flatten(input_shape=(28, 28)),
    Dense(128, activation='relu'),
    Dense(10, activation='softmax')
])

# 5. Kompilacja
model.compile(
    optimizer='adam',
    loss='categorical_crossentropy',
    metrics=['accuracy']
)

# 6. Trenowanie
model.fit(x_train, y_train, epochs=3, batch_size=32)

# 7. Test
loss, accuracy = model.evaluate(x_test, y_test)

print("\nDokładność na danych testowych:", accuracy)