【问题标题】:How to get predictions on dataframe in fastai如何在 fastai 中获取数据帧的预测
【发布时间】:2020-07-24 04:27:25
【问题描述】:

我已将数据束定义为

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

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

【问题讨论】:

    标签: deep-learning fast-ai


    【解决方案1】:

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

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

    【讨论】:

    • 这对我在使用 fastAI2 时真的很有帮助。谢谢!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-05-02
      • 2019-11-29
      • 2019-10-13
      • 2012-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-30
      相关资源
      最近更新 更多