2016-11-14 79 views
0

从pyvw wrapper调用时的预测文件是空的。 例如,我在做这样的事情,Vowpal Wabbit python wrapper空预测文件

vw = pyvw.vw(" -i cb.model --cb_explore 50 --cover 10 -p prediction.txt") 
ex = vw.example(" | label label2") 
vw.predict(ex) 
vw.finish() 
ex.finish() 

这将创建prediction.txt但不写任何东西给它。

我非常感谢任何指导。

谢谢!

+0

我认为Python包装的目的是你不需要通过文件进行通信。您应该直接提取API调用的预测。也就是说,我同意'pyvw.vw'应该在参数中提供'-p'时产生警告/异常。 –

回答

1

这个片段可以帮助你:

from vowpalwabbit import pyvw 

def to_vw(clf, text, str_label): 
    vw_example = str('{} |f {} '.format(str_label, text)) 
    return clf.example(vw_example) 

clf = vw = pyvw.vw(
    loss_function='logistic', oaa=2, 
    link='logistic', raw_predictions='output.txt' 
) 

ex = to_vw(clf, 'I like vowpal wabbit. But not that much.', '1') 
clf.learn(ex) 
clf.predict(ex, labelType=pyvw.pylibvw.vw.lMulticlass) 

你应该写在output.txt文件的概率。

相关问题