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
Instrukcje do ćwiczenia
- Użyj optymalizatora
.Adam(). - Wczytaj dane z pliku
'kc_house_data.csv'partiami, ustawiającchunksizena 100. - Wyodrębnij kolumnę
pricez obiektubatch, przekonwertuj ją na tablicęnumpytypu 32-bitowego float i przypisz wynik do zmiennejprice_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())