Entraîner un modèle linéaire par lots
Dans cet exercice, nous allons entraîner un modèle de régression linéaire par lots, en repartant de l’état obtenu à l’exercice précédent. Nous allons parcourir l’ensemble de données par lots et mettre à jour les variables du modèle, intercept et slope, après chaque étape. Cette approche permet d’entraîner sur des jeux de données trop volumineux pour tenir en mémoire.
Notez que la fonction de perte, loss_function(intercept, slope, targets, features), a été définie pour vous. De plus, keras a été importé et numpy est disponible sous le nom np. Les variables entraînables doivent être saisies dans var_list dans l’ordre où elles apparaissent comme arguments de la fonction de perte.
Cet exercice fait partie du cours
Introduction à TensorFlow en Python
Instructions
- Utilisez l’optimiseur
.Adam(). - Chargez les données de
'kc_house_data.csv'par lots avec unchunksizede 100. - Extrayez la colonne
pricedebatch, convertissez-la en tableaunumpyde type flottant 32 bits et affectez-la àprice_batch. - Complétez la fonction de perte, renseignez la liste des variables entraînables et effectuez la minimisation.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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())