Träna en linjär modell i batchar
I den här övningen tränar vi en linjär regressionsmodell i batchar och fortsätter där vi slutade i föregående övning. Vi gör det genom att stega igenom datamängden i batchar och uppdatera modellens variabler, intercept och slope, efter varje steg. Det här tillvägagångssättet gör det möjligt att träna på datamängder som annars är för stora för att rymmas i minnet.
Observera att förlustfunktionen loss_function(intercept, slope, targets, features) redan är definierad. Dessutom har keras importerats och numpy är tillgängligt som np. De träningsbara variablerna ska anges i var_list i samma ordning som de förekommer i förlustfunktionens argument.
Den här övningen är en del av kursen
Introduktion till TensorFlow i Python
Övningsinstruktioner
- Använd
.Adam()-optimeraren. - Läs in data från
'kc_house_data.csv'i batchar med ettchunksizepå 100. - Extrahera kolumnen
pricefrånbatch, konvertera den till ennumpy-array av typen 32-bitars float och tilldela resultatet tillprice_batch. - Fyll i förlustfunktionen, ange listan med träningsbara variabler och utför minimeringssteget.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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())