9

エラーなしで load_learner を使用してモデルをロードした後、googlecolab (gpu) で fastai train を使用してテキスト分類 (NLP) モデルを実行していますが、CPU 使用率を変更すると、「RuntimeError: _th_index_select not supported on CPUType for Half" 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 (most recent call last)
<ipython-input-13-3775eb2bfe91> in <module>()
----> 1 learn.predict("so sad")

11 frames
/usr/local/lib/python3.6/dist-packages/torch/nn/functional.py in embedding(input, weight, padding_idx, max_norm, norm_type, scale_grad_by_freq, sparse)
   1504         # remove once script supports set_grad_enabled
   1505         _no_grad_embedding_renorm_(weight, input, max_norm, norm_type)
-> 1506     return torch.embedding(weight, input, padding_idx, scale_grad_by_freq, sparse)
   1507 
   1508 

RuntimeError: _th_index_select not supported on CPUType for Half
4

1 に答える 1

1

私は同じ問題を抱えていました。パラメータを使用してモデルをトレーニングしていますto_fp16()か? このパラメーターを学習者から削除することで問題を解決します。たとえば、次のコマンド ラインでトレーニングを行っていたときに、モデルを使用して CPU 環境で予測すると、RuntimeError が発生しました。

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

修正するには、接尾辞を削除するだけで.to_fp16()、すべてがスムーズに進みました。

于 2019-11-26T13:16:08.103 に答える