Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Initialiseer een Adam-optimizer als opt met 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)
Code bewerken en uitvoeren