如何在fastai中对数据框进行预测

5

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

培训后,我已经变得......

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

输出值为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)))

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

2个回答

4

我曾经为此苦恼了一段时间。我发现最好的方法是按照以下步骤进行:

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

1
这对我在使用fastAI2时非常有帮助。谢谢! - goerlitz

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接