Definiera modellen och förlustfunktionen
I den här övningen tränar du ett neuralt nätverk för att förutsäga om en kreditkortsinnehavare kommer att ställa in betalningen. De särdrag och målvärden du ska använda för träningen finns tillgängliga i Python-skalet som borrower_features respektive default. Vikterna och biastermerna definierade du i föregående övning.
Observera att lagret predictions definieras som \(\sigma(layer1*w2+b2)\), där \(\sigma\) är sigmoid-aktiveringsfunktionen, layer1 är en tensor med noder för det första dolda täta lagret, w2 är en vikttensor och b2 är biastensorn.
De träningsbara variablerna är w1, b1, w2 och b2. Dessutom har följande operationer importerats åt dig: keras.activations.relu() och keras.layers.Dropout().
Den här övningen är en del av kursen
Introduktion till TensorFlow i Python
Övningsinstruktioner
- Tillämpa en rektifierad linjär enhet (ReLU) som aktiveringsfunktion på det första lagret.
- Tillämpa 25% dropout på
layer1. - Skicka målvärdena,
targets, och de förutsagda värdena,predictions, till korsentriförlustfunktionen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Define the model
def model(w1, b1, w2, b2, features = borrower_features):
# Apply relu activation functions to layer 1
layer1 = keras.activations.____(matmul(features, w1) + b1)
# Apply dropout rate of 0.25
dropout = keras.layers.Dropout(____)(____)
return keras.activations.sigmoid(matmul(dropout, w2) + b2)
# Define the loss function
def loss_function(w1, b1, w2, b2, features = borrower_features, targets = default):
predictions = model(w1, b1, w2, b2)
# Pass targets and predictions to the cross entropy loss
return keras.losses.binary_crossentropy(____, ____)