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
Anleitung zur Übung
- Verwende den Optimierer
.Adam(). - Lade die Daten aus
'kc_house_data.csv'in Batches mit einemchunksizevon 100. - Extrahiere die Spalte
priceausbatch, wandle sie in einnumpy-Array vom Typ 32-Bit-Float um und weise esprice_batchzu. - 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())