Modificare la funzione di loss
Nel precedente esercizio hai definito una funzione di loss di tensorflow e l’hai poi valutata una volta su un insieme di valori reali e previsti. In questo esercizio calcolerai la loss all’interno di un’altra funzione chiamata loss_function(), che prima genera i valori previsti a partire dai dati e dalle variabili. L’obiettivo è costruire una funzione delle variabili allenabili del modello che restituisce la loss. Potrai quindi valutare ripetutamente questa funzione per diversi valori delle variabili finché non trovi il minimo. In pratica, passerai questa funzione a un ottimizzatore in tensorflow. Nota che features e targets sono già stati definiti e sono disponibili. Inoltre, Variable, float32 e keras sono disponibili.
Questo esercizio fa parte del corso
Introduzione a TensorFlow in Python
Istruzioni dell'esercizio
- Definisci una variabile,
scalar, con valore iniziale 1.0 e tipofloat32. - Definisci una funzione chiamata
loss_function(), che prendescalar,featuresetargetscome argomenti, in quest’ordine. - Usa una funzione di loss mean absolute error.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Initialize a variable named scalar
scalar = ____(1.0, ____)
# Define the model
def model(scalar, features = features):
return scalar * features
# Define a loss function
def loss_function(____, features = features, targets = targets):
# Compute the predicted values
predictions = model(scalar, features)
# Return the mean absolute error loss
return keras.losses.____(targets, predictions)
# Evaluate the loss function and print the loss
print(loss_function(scalar).numpy())