Fastai-在cpu中使用load_learner后如何预测

时间:2019-07-20 09:28:51

标签: python deep-learning

在我使用load_learner加载模型而没有任何错误之后,我正在使用Googlecolab(gpu)上的fastai训练进行文本分类(NLP)模型,但是当我更改cpu用法时,出现错误“ RuntimeError:_th_index_select不支持在CPUType上的一半” 我有什么办法可以预测CPU使用率结果?

from fastai import *
from fastai.text import *
from sklearn.metrics import f1_score
defaults.device = torch.device('cpu')
@np_func
def f1(inp,targ): return f1_score(targ, np.argmax(inp, axis=-1))
path = Path('/content/drive/My Drive/Test_fast_ai')
learn = load_learner(path)
learn.predict("so sad")

RuntimeError Traceback(最近一次通话)  在()中 ----> 1 learning.predict(“ so sad”)

11张 /usr/local/lib/python3.6/dist-packages/torch/nn/functional.py嵌入(输入,权重,padding_idx,max_norm,norm_type,scale_grad_by_freq,稀疏)    1504#脚本支持set_grad_enabled后删除    第1505章 -> 1506返回割炬。嵌入(重量,输入,padding_idx,scale_grad_by_freq,稀疏)    1507    1508

RuntimeError:一半的CPUType不支持_th_index_select

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。您是否正在使用参数to_fp16()训练模型?我通过从学习者中删除此参数来解决此问题。例如,当我在使用以下命令行进行训练时,使用模型在cpu环境中进行预测时遇到了RuntimeError。

learn_c = text_classifier_learner(data_clas, AWD_LSTM, drop_mult=0.5, metrics=[accuracy]).to_fp16()

要解决此问题,我只删除了后缀.to_fp16(),一切顺利。