0

我在 colab 上使用 simpletransformers 模型训练了变压器,下载了序列化模型,我在使用它进行推理方面几乎没有问题。在 jupyter 上的模型上加载模型是可行的,但是在将它与 fastapi 一起使用时会出现错误这就是我在 jupyter 上使用它的方式:

from scipy.special import softmax
label_cols = ['art', 'politics', 'health', 'tourism']
model = torch.load("model.bin")
pred = model.predict(['i love politics'])[1]
preds = softmax(pred,axis=1)
preds

它给出以下结果:array([[0.00230123, 0.97465035, 0.00475409, 0.01829433]])

我尝试按如下方式使用 fastapi,但不断出现错误:

from pydantic import BaseModel
class Message(BaseModel):
    text : str
model = torch.load("model.bin")
@app.post("/predict")
def predict_health(data: Message):
    prediction = model.predict(data.text)[1]
    preds = softmax(prediction, axis=1)
    return {"results": preds}
4

2 回答 2

0

很难说没有错误。

如果它对您有帮助,可以查看这篇文章,该文章展示了如何使用 Hugging Face 转换器(Bart Large MNLI 模型)和 FastAPI 构建分类:https ://nlpcloud.io/nlp-machine-learning-classification-api-production -fastapi-transformers-nlpcloud.html

于 2021-05-26T15:38:43.017 回答
0

您能否指定您得到的错误,否则很难看到调试

此外,jupyter 代码中的函数似乎将model.predict数组作为输入,而在您的 fastapi 代码中,您将字符串直接传递给该函数。

所以也许试试

...
prediction = model.predict([data.text])[1]
...
于 2020-12-04T21:23:13.127 回答