Classificazione Multiclasse
Creare un modello con Keras
Creazione di un modello
Dopo aver fatto la fase di preprocessing, adesso il momento di creare una rete neurale con Keras.
rete Neurale con keras
Questo il codice con il promptCrea una rete neurale con keras .
Primo strato nascosto 512 nodi, funzione attivazione Relu,.
Secondo strato nascosto 256 nodi, funzione attivazione Relu.
Terzo strato nascosto 128 nodi, funzione attivazione Relu.
Ultimo output 10 classi, funzione di attivazione softmax.
model.summary() fornira' parametri da analizzare
from keras.models import Sequential
from keras.layers import Dense
# Crea il modello
model = Sequential()
# Aggiungi il primo strato nascosto con 512 nodi e funzione di attivazione ReLU
model.add(Dense(512, activation='relu', input_shape=(28*28,)))
# Aggiungi il secondo strato nascosto con 256 nodi e funzione di attivazione ReLU
model.add(Dense(256, activation='relu'))
# Aggiungi il terzo strato nascosto con 128 nodi e funzione di attivazione ReLU
model.add(Dense(128, activation='relu'))
# Aggiungi l'ultimo strato di output con 10 nodi e funzione di attivazione softmax per la classificazione multiclasse
model.add(Dense(10, activation='softmax'))
# Visualizza un riassunto del modello
model.summary()
Come risposta otterremo :
Total params: 567434 (2.16 MB)
Compilazione e valutazione dei dati
Ancora il prompt per chatGPTCompila il codice il codice model.compile con funzione di costo=categorical_crossentropy, optimizer=sgd, metrics=['accuracy']).
Fai partire addestramento per 20 epoche.
Verifica anche il test set con model.evaluate.
Voglio visualizzare sia il valore della finzione di costo che accuracy
Ultimo stampa il numero di proprieta' del data set
Codice per la compilazione
from keras.optimizers import SGD
# Compila il modello
model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
# Addestra il modello per 20 epoche
history = model.fit(X_train.reshape(-1, 28*28), y_train_dump, epochs=20, batch_size=128, validation_data=(X_test.reshape(-1, 28*28), y_test_dump))
# Valuta il modello sul test set
loss, accuracy = model.evaluate(X_test.reshape(-1, 28*28), y_test_dump)
print("Test Loss:", loss)
print("Test Accuracy:", accuracy)
# Stampa il numero di proprietà del dataset
num_properties = X_train.shape[1] * X_train.shape[2]
print("Numero di proprietà del dataset:", num_properties)
Dopo 2 minuti e 26 secondi su Google Colab
Si ottiene
Test Loss: 0.11675428599119186
Test Accuracy: 0.9656000137329102
ho provato con 40 epoche
Test Loss: 0.08130357414484024
Test Accuracy: 0.9750000238418579