Aan de slagGa gratis aan de slag

Deel 2: GRU-modellen begrijpen

Je gaat nu zien hoe je Keras-modellen kunt gebruiken die batches invoer met een willekeurige grootte accepteren. De mogelijkheid om batches met willekeurige grootte te accepteren is om veel redenen belangrijk. Zo kun je bijvoorbeeld één Keras-model definiëren en tijdens het trainen met verschillende batchgroottes experimenteren, zonder iets in het model te hoeven wijzigen.

Voor deze oefening zijn keras en numpy (als np) al geïmporteerd.

Deze oefening maakt deel uit van de cursus

Machine Translation met Keras

Cursus bekijken

Oefeninstructies

  • Definieer een invoerlaag die een batch met een willekeurige grootte accepteert met sequentielengte 3 en invoergrootte 4.
  • Definieer een GRU-laag met 10 verborgen units die de vorige invoer verwerkt en een output produceert.
  • Definieer een Model met de naam model dat de invoerlaag als input neemt en de output van de GRU-laag als output geeft. Onthoud dat je de syntaxis keras.models.Model(<argument>=<value>) kunt gebruiken om een model te definiëren.
  • Voorspel de modeloutput voor zowel x1 als x2.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Define an input layer
inp = keras.layers.____(____=(____))
# Define a GRU layer that takes in the input
gru_out = keras.layers.____(____)(____)
# Define a model that outputs the GRU output
____ = keras.models.____(inputs=____, outputs=____)

x1 = np.random.normal(size=(2,3,4))
x2 = np.random.normal(size=(5,3,4))

# Get the output of the model and print the result
y1 = ____.____(____)
y2 = ____.____(____)
print("shape (y1) = ", y1.shape, " shape (y2) = ", y2.shape)
Code bewerken en uitvoeren