如何在 fastai 中获得数据帧的预测

Raj*_*gah 5 deep-learning fast-ai

我将 databunch 定义为

data = (TabularList.from_df(train_df, path='./', cont_names=cont_names, procs=procs)
                           .split_by_idx(list(range(500,3000)))
                           .label_from_df(cols=dep_var)
                           .add_test(test, label=0)
                           .databunch())
Run Code Online (Sandbox Code Playgroud)

训练后我是

p = learn3.get_preds()
len(p[1])
Run Code Online (Sandbox Code Playgroud)

o/p 是 2500,正确的是

                       .split_by_idx(list(range(500,3000)))
Run Code Online (Sandbox Code Playgroud)

这是 2500 个号码


但现在我有大约几千个输入的其他数据,如果我这样做
for index in range(len(test_df)):
    predictions = learn3.predict(test_df.iloc[index])
    predictions = predictions[1].tolist()
    print(index)
Run Code Online (Sandbox Code Playgroud)

这将花费大量的时间。我想通过 test_df 并获得预测

p = learn3.get_preds()
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点 ?

                       .split_by_idx(list(range(500,3000)))
Run Code Online (Sandbox Code Playgroud)

我们有办法替换它并从其他文件传递数据吗?

Ris*_*Vij 1

您可以使用 fastai learner 的add_test()方法用您的数据替换 learner 的原始测试集。或者,您也可以使用learn.data.test_dl = new_df来实现相同的目的,然后使用get_preds()来获取预测