在我使用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
答案 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()
,一切顺利。