การเตรียมข้อมูลสำหรับการฝึกโมเดล
ในแบบฝึกหัดนี้ จะทำการเตรียมข้อมูลต่อเนื่องเพื่อฝึกโมเดล หลังจากสร้างอาร์เรย์ของประโยคและตัวอักษรถัดไปแล้ว จำเป็นต้องแปลงข้อมูลเหล่านั้นให้เป็นค่าตัวเลขที่โมเดลนำไปใช้งานได้
ขั้นตอนนี้จำเป็นเพราะโมเดล RNN รับเฉพาะตัวเลขเท่านั้น ไม่ใช่ข้อความ จะสร้างอาร์เรย์ตัวเลขที่มีค่าศูนย์หรือหนึ่งในตำแหน่งที่แทนตัวอักษรซึ่งปรากฏในประโยค โดยค่าหนึ่ง (หรือ True) หมายความว่าตัวอักษรนั้นปรากฏอยู่ ส่วนค่าศูนย์ (หรือ False) หมายความว่าตัวอักษรนั้นไม่ปรากฏในตำแหน่งดังกล่าว
ตัวแปร sentences, next_char, n_vocab, chars_window, num_seqs (จำนวนประโยคในข้อมูลฝึก) ถูกโหลดไว้ในสภาพแวดล้อมแล้ว รวมถึง numpy ในชื่อ np
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Recurrent Neural Networks (RNNs) สำหรับ Language Modeling ด้วย Keras
คำแนะนำการฝึกหัด
- สร้าง
np.array()ที่เต็มไปด้วยค่าศูนย์ โดยมีรูปร่างเป็น(จำนวนประโยค, หน้าต่างตัวอักษร, ขนาดคลังคำศัพท์) - ใช้พจนานุกรม
char_to_indexเพื่อกำหนดตำแหน่งของตัวอักษรปัจจุบันให้เป็น1 - กำหนดตัวอักษรถัดไปปัจจุบันให้เป็น
1 - แสดงผลตำแหน่งแรกของแต่ละอาร์เรย์
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Instantiate the variables with zeros
numerical_sentences = np.zeros((____, ____, ____), dtype=np.bool)
numerical_next_chars = np.zeros((num_seqs, n_vocab), dtype=np.bool)
# Loop for every sentence
for i, sentence in enumerate(sentences):
# Loop for every character in sentence
for t, char in enumerate(sentence):
# Set position of the character to 1
numerical_sentences[i, t, ____] = ____
# Set next character to 1
____[i, char_to_index[next_chars[i]]] = 1
# Print the first position of each
print(____, ____, sep="\n")