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

How to get predictions on dataframe in fastai

我将数据束定义为

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())

训练后我

p = learn3.get_preds()
len(p[1])

o/p 是 2500 是正确的

                       .split_by_idx(list(range(500,3000)))

这是2500个号码


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

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

一样的预测
p = learn3.get_preds()

我该怎么做?

                       .split_by_idx(list(range(500,3000)))

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

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

我为此苦苦挣扎了一段时间。我发现的最佳方法是执行以下操作:

test_dl = learn.dls.test_dl(test_data) # Create a test dataloader
learn.get_preds(dl = test_dl) # Make predictions on it