Addestrare un modello lineare a lotti
In questo esercizio alleneremo un modello di regressione lineare a lotti, ripartendo da dove ci eravamo fermati nell'esercizio precedente. Lo faremo scorrendo l'insieme di dati a lotti e aggiornando le variabili del modello, intercept e slope, dopo ogni passo. Questo approccio ci permette di addestrare con insiemi di dati troppo grandi per essere caricati interamente in memoria.
Nota che la funzione di perdita, loss_function(intercept, slope, targets, features), è già stata definita per te. Inoltre, keras è stato importato e numpy è disponibile come np. Le variabili allenabili devono essere inserite in var_list nell'ordine in cui compaiono come argomenti della funzione di perdita.
Questo esercizio fa parte del corso
Introduzione a TensorFlow in Python
Istruzioni dell'esercizio
- Usa l'ottimizzatore
.Adam(). - Carica i dati da
'kc_house_data.csv'a lotti conchunksizepari a 100. - Estrai la colonna
pricedabatch, convertila in un arraynumpydi tipo float a 32 bit e assegnala aprice_batch. - Completa la funzione di perdita, compila l'elenco delle variabili allenabili ed esegui la minimizzazione.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Initialize Adam optimizer
opt = keras.optimizers.____
# Load data in batches
for batch in pd.read_csv('____', ____=____):
size_batch = np.array(batch['sqft_lot'], np.float32)
# Extract the price values for the current batch
price_batch = np.array(batch['____'], np.____)
# Complete the loss, fill in the variable list, and minimize
opt.minimize(lambda: loss_function(____, slope, price_batch, size_batch), var_list=[intercept, ____])
# Print trained parameters
print(intercept.numpy(), slope.numpy())