帶情境地產生句子
在這個練習中,你將操作一個已訓練好的文字生成模型。環境中已載入 model 變數,以及 initialize_params() 和 get_next_token() 這兩個函式。
後者會使用預訓練模型來預測下一個字元,並回傳三個變數:下一個字元 next_char、更新後的句子 res,以及位移後的文字 seq,用來預測下一個字元。
你將定義一個函式,輸入為一個預訓練模型和一段做為生成句子開頭的字串。這是帶入情境來生成文字的好做法。100 個字元的句子長度只是範例,你在實務中可以使用其他上限(甚至不設上限)。
本練習屬於課程
使用 Keras 建立語言模型的循環神經網路(RNN)
練習說明
- 將變數
initial_text傳入initialize_params()函式。 - 建立條件:當計數器達到 100,或發現句點(
r'.')時停止迴圈。 - 將起始值
res、seq傳入get_next_token()函式以取得下一個字元。 - 列印由你定義的函式所產生的示範句子。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
def generate_phrase(model, initial_text):
# Initialize variables
res, seq, counter, next_char = initialize_params(____)
# Loop until stop conditions are met
while counter < ____ ____ next_char != r'.':
# Get next char using the model and append to the sentence
next_char, res, seq = get_next_token(model, ____, ____)
# Update the counter
counter = counter + 1
return res
# Create a phrase
print(____(model, "I am not insane, "))