Kom igångKom igång gratis

Transferinlärning

Du har sett att träning av ett inbäddningslager (embedding layer) kräver att många parametrar lärs in.

I den här övningen kommer du att se att det vid transferinlärning går att använda förtränade vikter utan att uppdatera dem. Det innebär att alla parametrar i inbäddningslagret är fasta, och att modellen bara behöver lära sig parametrarna från de övriga lagren.

Funktionen load_glove är redan tillgänglig i miljön och returnerar GloVe-matrisen som en numpy.ndarray-vektor. Den använder den funktion som visades på lektionens slides för att hämta GloVe-vektorer med 200 inbäddningsdimensioner för det ordförråd som används i den här övningen.

Den här övningen är en del av kursen

Återkommande neurala nätverk (RNN) för språkmodellering med Keras

Visa kurs

Övningsinstruktioner

  • Använd den fördefinierade funktionen för att läsa in GloVe-vektorerna.
  • Använd initieraren Constant på de förtränade vektorerna.
  • Lägg till utdatalagret som ett Dense-lager med en enhet.
  • Skriv ut sammanfattningen och kontrollera antalet träningsbara parametrar.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Load the glove pre-trained vectors
glove_matrix = ____('glove_200d.zip')

# Create a model with embeddings
model = Sequential(name="emb_model")
model.add(Embedding(input_dim=vocabulary_size + 1, output_dim=wordvec_dim, 
                    embeddings_initializer=____(glove_matrix), 
                    input_length=sentence_len, trainable=False))
model.add(GRU(128))
model.add(____)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Print the summaries of the model with embeddings
model.____
Redigera och kör kod