from vowpalwabbit import pyvw
vw = pyvw.vw("--cb 3 --epsilon 0.2 --quiet")
input = "2:-5:0.2 | Anna"
vw.learn(input)
input = "3:-20:0.2 | Anna \n 2:-20:0.2 | Anna \n 1:-20:0.2 | Anna"
vw.learn([vw.example(string) for string in input.split('\n')])
print(vw.predict(" | Anna"))这段代码抛出了错误:
RuntimeError Traceback (most recent call last)
<ipython-input-7-e8693ac0708c> in <module>()
4 vw.learn(input)
5 input = "3:-20:0.2 | Anna \n 2:-20:0.2 | Anna \n 1:-20:0.2 | Anna"
----> 6 vw.learn([vw.example(string) for string in input.split('\n')])
7
8 vw.learn(input)
/usr/local/lib/python3.6/dist-packages/vowpalwabbit/pyvw.py in learn(self, ec)
168 pylibvw.vw.learn(self, ec)
169 elif isinstance(ec, list):
--> 170 pylibvw.vw.learn_multi(self,ec)
171 else:
172 raise TypeError('expecting string or example object as ec argument for learn, got %s' % type(ec))
RuntimeError: This reduction does not support multi-line example.为什么我会得到这个错误?从多行示例中学习的正确语法是什么?
发布于 2020-03-25 22:08:03
问题是,您正在使用的缩减CB是单行缩减。因此,在这种情况下,传递多行示例没有意义。这可以从以下错误中看出:
RuntimeError: This reduction does not support multi-line example.你可以在这里阅读更多关于--cb的信息:https://github.com/VowpalWabbit/vowpal_wabbit/wiki/Logged-Contextual-Bandit-Example
https://stackoverflow.com/questions/60841974
复制相似问题