Antrenarea unui model liniar pe loturi
În acest exercițiu, vom antrena un model de regresie liniară pe loturi, continuând de unde am rămas în exercițiul anterior. Vom parcurge setul de date în loturi și vom actualiza variabilele modelului, intercept și slope, după fiecare pas. Această abordare ne permite să antrenăm modele pe seturi de date prea mari pentru a fi încărcate integral în memorie.
Reține că funcția de pierdere loss_function(intercept, slope, targets, features) a fost deja definită pentru tine. De asemenea, keras a fost importat, iar numpy este disponibil ca np. Variabilele antrenabile trebuie introduse în var_list în ordinea în care apar ca argumente ale funcției de pierdere.
Acest exercițiu face parte din cursul
Introducere în TensorFlow în Python
Instrucțiuni pentru exercițiu
- Folosește optimizatorul
.Adam(). - Încarcă datele din
'kc_house_data.csv'în loturi, cu unchunksizede 100. - Extrage coloana
pricedinbatch, convertește-o într-un arraynumpyde tip float pe 32 de biți și atribuie rezultatul variabileiprice_batch. - Completează funcția de pierdere, definește lista variabilelor antrenabile și efectuează minimizarea.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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())