LoslegenKostenlos loslegen

Ein lineares Modell in Batches trainieren

In dieser Übung trainieren wir ein lineares Regressionsmodell in Batches und knüpfen an die vorherige Aufgabe an. Wir gehen den Datensatz batchweise durch und aktualisieren nach jedem Schritt die Modellvariablen intercept und slope. So können wir mit Datensätzen trainieren, die sonst zu groß wären, um sie im Speicher zu halten.

Beachte: Die Verlustfunktion loss_function(intercept, slope, targets, features) ist bereits für dich definiert. Außerdem wurde keras schon importiert und numpy ist als np verfügbar. Die trainierbaren Variablen sollten in var_list in der Reihenfolge eingetragen werden, in der sie als Argumente der Verlustfunktion erscheinen.

Diese Übung ist Teil des Kurses

Einführung in TensorFlow mit Python

Kurs anzeigen

Anleitung zur Übung

  • Verwende den Optimierer .Adam().
  • Lade die Daten aus 'kc_house_data.csv' in Batches mit einem chunksize von 100.
  • Extrahiere die Spalte price aus batch, wandle sie in ein numpy-Array vom Typ 32-Bit-Float um und weise es price_batch zu.
  • Vervollständige die Verlustfunktion, fülle die Liste der trainierbaren Variablen und führe die Minimierung durch.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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 bearbeiten und ausführen