【问题标题】:Parallelization possible with Python CRFsuite?可以使用 Python CRFsuite 进行并行化吗?
【发布时间】:2016-10-22 13:01:58
【问题描述】:

是否可以并行化 python CRFSuite (https://github.com/tpeng/python-crfsuite) ?我认为 CRF++ 支持并行化,所以我想一定有一些钩子来启用与 CRFsuite 的并行化。

【问题讨论】:

    标签: python crf python-crfsuite


    【解决方案1】:

    不,目前不可能;未实施平行培训。不过,在错误跟踪器中有一些工作。您仍然可以并行运行交叉验证(即并行训练多个模型)。

    【讨论】:

    • 您可以使用 model_selection 模块 (GridSearch) 来并行优化超参数。但是,对于实际大小的数据(实际上并没有很大),它会被序列化,因为模型大小会变大,并且大部分时间都需要将模型与相关数据进行酸洗/解酸。所以除非数据大小非常小(真的很小),多处理将基本上被序列化。
    • 我将它与 conll-2002 数据一起使用,它一点也不大; 14987 个句子用于训练,仅具有基线特征。当我运行 top 时,我看到 8 个 python 进程 - 因为我有 8 个 cpu 内核 - 循环运行,一个接一个,而其他 7 个正在睡觉......根本没有并行化。如果你想添加额外的功能,它会更慢。
    • Kai:您可以在启动流程后提取特征,无论如何这对于交叉验证都是正确的。在这种情况下,只有输入的句子会被序列化。
    • 我的意思是 conll-2003 数据。
    • 米哈伊尔;您是否还必须向每个进程提供数据?这就是花时间的事情;复制数据并将其发送到每个生成的进程。就我而言,“特征提取”只是从字典中查找,所以我仍然需要将整个字典的副本发送到每个进程(大小为几 Mb)。
    猜你喜欢
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-29
    • 2022-01-16
    • 2017-11-15
    相关资源
    最近更新 更多