【问题标题】:How to get access to tokenzier after loading a saved custom BERT model using Keras and TF2?使用 Keras 和 TF2 加载保存的自定义 BERT 模型后如何访问 tokenzier?
【发布时间】:2021-12-02 12:00:41
【问题描述】:

我正在研究意图分类问题,需要您的帮助。

我微调了一个用于文本分类的 BERT 模型。在一个小数据集上对其进行训练和评估,以检测五个意图。我使用了以下代码Intent Recognition with BERT using Keras and TensorFlow 2 它工作正常! 我已经保存了模型,以便以后可以使用,而无需在以后再次重新训练模型。

# Save the entire model as a SavedModel.
!mkdir -p saved_model
model.save('saved_model/intentclassifiermodel')

并压缩并下载它以单独使用它

!zip -r saved_model.zip saved_model/

现在,我正在尝试使用此模型来预测意图识别。为此,我创建了另一个 google colab notebook 并加载了模型

from google.colab import drive
drive.mount('/content/gdrive')

!pip install tensorflow==2.2

!pip install bert-for-tf2 >> /dev/null

import bert

from tensorflow import keras
model = keras.models.load_model('/content/gdrive/MyDrive/NLPMODELS/saved_model/intentclassifiermodel')

model.summary()

模型加载成功,现在我要预测。为此,我使用以下代码 sn-p(它与基本代码中的代码相同)

sentences = [
  
  "are you a bot?",
  "how to create a bot"
]

pred_tokens = map(tokenizer.tokenize, sentences)
pred_tokens = map(lambda tok: ["[CLS]"] + tok + ["[SEP]"], pred_tokens)
pred_token_ids = list(map(tokenizer.convert_tokens_to_ids, pred_tokens))

pred_token_ids = map(lambda tids: tids +[0]*(data.max_seq_len-len(tids)),pred_token_ids)
pred_token_ids = np.array(list(pred_token_ids))

predictions = model.predict(pred_token_ids).argmax(axis=-1)

for text, label in zip(sentences, predictions):
  print("text:", text, "\nintent:", classes[label])
  print()

**但是,此代码失败,因为我不确定如何在此处访问标记器。 **

这是错误

你能帮我如何获得分词器吗?

感谢和问候, 罗希特·达米亚

【问题讨论】:

  • @AloneTogether 谢谢,但似乎答案已经过时且与今天无关。如果我错了,请纠正我。
  • 你试过接受的答案吗?
  • @AloneTogether 所以我们需要两个资产 - 模型文件夹和 tokenizer.pickle 文件吗?我认为该模型将拥有我们需要的一切。
  • @AloneTogether 谢谢!我可以让它工作!

标签: python tensorflow keras tokenize bert-language-model


【解决方案1】:

感谢@AloneTogether 指出SO

所以,除了保存模型评估文件夹之外,我还保存了分词器。

为了使代码正常工作,我需要另外两件事

data.max_seq_len 和类值。

现在,我在保存模型的同时提取它们并在我的程序中使用它。

谢谢!

【讨论】:

    猜你喜欢
    • 2019-11-01
    • 2020-05-11
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 2020-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多