Transfer learning
จากที่เห็นไปแล้วว่า การฝึก embedding layer ต้องเรียนรู้ parameters จำนวนมาก
ในแบบฝึกหัดนี้ จะได้เห็นว่า Transfer learning ช่วยให้ใช้ weights ที่ผ่านการฝึกมาแล้วได้โดยไม่ต้องอัปเดต ซึ่งหมายความว่า parameters ทั้งหมดของ embedding layer จะถูกตรึงไว้ และโมเดลจะเรียนรู้เฉพาะ parameters จาก layer อื่น ๆ เท่านั้น
ฟังก์ชัน load_glove ถูกโหลดไว้ในสภาพแวดล้อมแล้ว และใช้สำหรับดึง glove matrix ในรูปแบบ numpy.ndarray โดยใช้ฟังก์ชันที่กล่าวถึงในสไลด์บทเรียน เพื่อดึง glove vectors ที่มี 200 มิติสำหรับ vocabulary ที่ใช้ในแบบฝึกหัดนี้
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras
คำแนะนำการฝึกหัด
- ใช้ฟังก์ชันที่กำหนดไว้ล่วงหน้าเพื่อโหลด glove vectors
- ใช้
Constantinitializer กับ pre-trained vectors - เพิ่ม output layer เป็น
Denseที่มีหนึ่ง unit - แสดง summary และตรวจสอบจำนวน trainable parameters
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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.____