Zacznij terazZacznij za darmo

Trenowanie modelu liniowego na partiach danych

W tym ćwiczeniu wytrenujemy model regresji liniowej na partiach danych, kontynuując pracę z poprzedniego ćwiczenia. Będziemy przetwarzać zbiór danych partiami i aktualizować zmienne modelu – intercept oraz slope – po każdym kroku. Takie podejście umożliwia trenowanie na zbiorach danych, które są zbyt duże, aby załadować je w całości do pamięci.

Zwróć uwagę, że funkcja straty loss_function(intercept, slope, targets, features) jest już zdefiniowana. Ponadto biblioteka keras została zaimportowana, a numpy jest dostępny jako np. Trenowane zmienne należy wprowadzić do listy var_list w takiej kolejności, w jakiej pojawiają się jako argumenty funkcji straty.

To ćwiczenie jest częścią kursu

Wprowadzenie do TensorFlow w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj optymalizatora .Adam().
  • Wczytaj dane z pliku 'kc_house_data.csv' partiami, ustawiając chunksize na 100.
  • Wyodrębnij kolumnę price z obiektu batch, przekonwertuj ją na tablicę numpy typu 32-bitowego float i przypisz wynik do zmiennej price_batch.
  • Uzupełnij funkcję straty, wypełnij listę trenowanych zmiennych i przeprowadź minimalizację.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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())
Edytuj i uruchom kod