Aan de slagGa gratis aan de slag

Een lineair model trainen in batches

In deze oefening trainen we een lineair regressiemodel in batches, voortbouwend op de vorige oefening. We lopen in stappen door de gegevensset en updaten na elke stap de modelvariabelen intercept en slope. Met deze aanpak kun je trainen met gegevenssets die anders te groot zijn om in het geheugen te passen.

Let op: de verliesfunctie loss_function(intercept, slope, targets, features) is al voor je gedefinieerd. Daarnaast is keras geïmporteerd en is numpy beschikbaar als np. Voer de trainbare variabelen in var_list in, in dezelfde volgorde als waarin ze als argumenten van de verliesfunctie voorkomen.

Deze oefening maakt deel uit van de cursus

Introductie tot TensorFlow in Python

Cursus bekijken

Oefeninstructies

  • Gebruik de .Adam()-optimizer.
  • Laad de data uit 'kc_house_data.csv' in batches met een chunksize van 100.
  • Haal de kolom price uit batch, zet deze om naar een numpy-array van het type 32-bits float en ken deze toe aan price_batch.
  • Maak de verliesfunctie compleet, vul de lijst met trainbare variabelen in en voer de minimisatie uit.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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())
Code bewerken en uitvoeren