Train een lineair model
In deze oefening gaan we verder waar de vorige oefening stopte. De snijterm en helling, intercept en slope, zijn gedefinieerd en geïnitialiseerd. Daarnaast is er een functie gedefinieerd, loss_function(intercept, slope), die de loss berekent met de gegevens en modelvariabelen.
Je gaat nu een optimalisatiebewerking definiëren als opt. Vervolgens train je een univariaat lineair model door de loss te minimaliseren om de optimale waarden van intercept en slope te vinden. Let op: de opt-bewerking zal bij elke stap dichter bij het optimum proberen te komen, maar heeft veel stappen nodig om het te vinden. Je moet de bewerking dus herhaaldelijk uitvoeren.
Deze oefening maakt deel uit van de cursus
Introductie tot TensorFlow in Python
Oefeninstructies
- Initialiseer een Adam-optimizer als
optmet een learning rate van 0,5. - Pas de methode
.minimize()toe op de optimizer. - Geef
loss_function()met de juiste argumenten door als een lambda-functie aan.minimize(). - Geef de lijst met variabelen die geüpdatet moeten worden mee aan
var_list.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Initialize an Adam optimizer
opt = keras.optimizers.____(0.5)
for j in range(100):
# Apply minimize, pass the loss function, and supply the variables
opt.____(lambda: ____(____, ____), var_list=[____, ____])
# Print every 10th value of the loss
if j % 10 == 0:
print(loss_function(intercept, slope).numpy())
# Plot data and regression line
plot_results(intercept, slope)