Träna en linjär modell
I den här övningen fortsätter vi där föregående övning slutade. Konstanttermen och lutningen, intercept och slope, har definierats och initierats. Dessutom har en funktion definierats, loss_function(intercept, slope), som beräknar förlusten med hjälp av data och modellvariabler.
Du ska nu definiera en optimeringsoperation som opt. Sedan tränar du en univariat linjär modell genom att minimera förlusten för att hitta de optimala värdena för intercept och slope. Observera att operationen opt försöker röra sig närmare optimum för varje steg, men kräver många steg för att nå dit. Du måste därför köra operationen upprepade gånger.
Den här övningen är en del av kursen
Introduktion till TensorFlow i Python
Övningsinstruktioner
- Initiera en Adam-optimerare som
optmed en inlärningshastighet på 0,5. - Använd metoden
.minimize()på optimeraren. - Skicka
loss_function()med lämpliga argument som en lambda-funktion till.minimize(). - Ange listan med variabler som ska uppdateras till
var_list.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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)