Classificazione Multiclasse
Un modello Keras creato da chatGPT
Ho provato dando ampia libertà a chat GPT
Prompt Generico
Nel linguaggio python leggi in data set MNIST, costruisci una rete neurale che identifichi le immagini, Il data set test è il 10%.Numero di strati nascosti, nodi in grado di fornire il miglior risultato
Codice Completo
from keras.datasets import mnist
from keras.models import Sequential
from keras.layers import Dense, Flatten
from keras.utils import to_categorical
# Caricamento del dataset MNIST
(X_train, y_train), (X_test, y_test) = mnist.load_data()
# Normalizzazione delle immagini
X_train = X_train.astype('float32') / 255.0
X_test = X_test.astype('float32') / 255.0
# Codifica one-hot delle etichette di output
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)
# Costruzione del modello
model = Sequential()
model.add(Flatten(input_shape=(28, 28))) # Appiattisce le immagini 28x28 in un vettore 1D
# Aggiunta degli strati nascosti
model.add(Dense(512, activation='relu')) # Primo strato nascosto con 512 nodi e funzione di attivazione ReLU
model.add(Dense(256, activation='relu')) # Secondo strato nascosto con 256 nodi e funzione di attivazione ReLU
# Strato di output
model.add(Dense(10, activation='softmax')) # Strato di output con 10 nodi e funzione di attivazione softmax
# Compilazione del modello
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
# Addestramento del modello
model.fit(X_train, y_train, epochs=10, batch_size=128, validation_split=0.1)
# Valutazione del modello sul test set
loss, accuracy = model.evaluate(X_test, y_test)
print(f'Funzione di costo: {loss}')
print(f'Accuracy: {accuracy}')
Risultato
Loss: 0.0761
-contro 0.08130357414484024
accuracy: 0.9801
-contro 0.9750000238418579
Che migliora fino a
Funzione di costo: 0.09939996898174286
Accuracy: 0.9822999835014343
Con 20 epoche !!
Da notare pero' che questo codice non avrebbe significato
senza conoscere Python e le reti neurali