2016-11-14 48 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文件的概率。

相關問題