如何在解包模型后使用Keras模型预测输出

时间:2017-11-07 22:30:39

标签: machine-learning keras lstm rnn

我可以将我的RNN模型解压缩到我的网站上,但是我无法使用列表作为输入来预测一个数组的预测(只包含一个名为text的字符串但需要是{{ 1}}用于从我收集的内容进行预处理,我遇到了问题:

list

以下是我目前使用该模型进行预处理和预测的方法:

ValueError: Error when checking : expected embedding_1_input to have shape (None, 72) 
but got array with shape (1, 690)

这就是我训练模型的方式:

tokenizer = Tokenizer(num_words = 5000, split=' ')
tokenizer.fit_on_texts([text])
X = tokenizer.texts_to_sequences([text])
X = pad_sequences(X)

prediction = loadedModel.predict(X)
print(prediction)

如何在代码框中修复预处理代码,从“tokenizer”开始,以停止获取ValueError? 谢谢,我绝对可以提供更多代码或扩展项目的目的。

1 个答案:

答案 0 :(得分:1)

所以这里有两个问题:

  1. max_len中设置pad_sequences:似乎您的所有训练序列都填充了72长度所以 - 您需要更改以下行:

    X = pad_sequences(X, max_len=72)
    
  2. 使用培训Tokenizer:这是一个微妙的问题 - 您正在创建并拟合一个全新的Tokenizer,因此它可能与您用于培训的不同。{1}}。这可能会导致问题 - 因为不同的单词可能有不同的索引 - 这将使您的模型工作糟糕。尝试pickle您的培训Tokenizer并在部署期间加载它,以便将句子转换为正确输入模型的数据点。