我正在尝试将Vowpal Wabbit用于具有154个不同类别标签的一个多类别分类任务,如下所示:
在这种情况下,我能够达到> 80%的结果,这很好。但是我目前正在研究的问题是:
我必须复制实时预测方案。在这种情况下,我必须一次传递一个数据点(即文本行),以便模型可以预测值和输出。
我已经尝试了所有我知道但失败的选择。谁能让我知道如何通过将一个数据点与VW命令一起传递而不是作为文件传递来创建实时方案。
您可以vw
用作守护程序:
vw --daemon --port 54321 --quiet -i model_file -t --num_children 1
Run Code Online (Sandbox Code Playgroud)
现在vw
加载模型并侦听端口54321(在localhost上)。每次向其发送一行(以换行符结尾的ASCII 10)时,localhost:54321
都会在同一个套接字上返回预测,例如:
echo " | your features here..." | netcat localhost 54321
Run Code Online (Sandbox Code Playgroud)
这只是一个例子,通常您会编写一个程序,该程序将在循环中从套接字读取然后从套接字读取,而不是调用netcat
。
您还可以vw
在常规输入/输出和预测模式下调用:
vw --quiet -i model_file -t -p /dev/stdout
Run Code Online (Sandbox Code Playgroud)
并写入(via stdin
)和从中读取(via stdout
)。关键是您将以相同的顺序为发送的每一行输入获得一行输出。您也可以一次发送N
线路,然后回读N
响应。请求与响应的顺序相对顺序可以保证得到保留。
归档时间: |
|
查看次数: |
560 次 |
最近记录: |