ludwig 类别特征问题?

h5qlskok  于 2个月前  发布在  其他
关注(0)|答案(6)|浏览(33)

请查看以下内容,我的问题是“是否有办法按字母顺序对类别的Map进行排序,而不是基于频率?
提前感谢。”

输入1:

{
 "idx2str": [
 "",
 "4",
 "3",
 "5",
 "1",
 "2",
 "6",
 "7",
 "8",
 "9"
 ],
 "preprocessing": {
 "fill_value": "",
 "lowercase": false,
 "missing_value_strategy": "fill_with_const",
 "most_common": 10000
 },
 "str2freq": {
 "1": 47813,
 "2": 47552,
 "3": 48685,
 "4": 48743,
 "5": 47999,
 "6": 44505,
 "7": 31194,
 "8": 1614,
 "9": 60,
 "": 0
 },

***"str2idx": {

 "1": 4,
 "2": 5,
 "3": 2,
 "4": 1,
 "5": 3,
 "6": 6,
 "7": 7,
 "8": 8,
 "9": 9,**
 "": 0*
 },
 "vocab_size": 10
}
cfh9epnr

cfh9epnr1#

目前还没有这样的机制,但我很好奇,为什么你需要它?无论如何,你从predict得到的预测已经Map回原始字符串了。

z3yyvxxp

z3yyvxxp2#

我想我弄明白了。我只是好奇。
感谢你的回复@w4nderlust

zf2sa74q

zf2sa74q3#

@theodor38 你发现了什么?如果你向我解释你的用例,如果它有意义,我可以尝试将其纳入其中,但我必须先了解原因。干杯。

pokxtpni

pokxtpni4#

@w4nderlust
我希望直接使用模型与TFServing。这迫使我手动更改顺序。如果你们能为那些希望以这种方式使用模型的人实现字母顺序排序,那就太好了。或者你们可能已经有更好的方法了吗?
非常感谢

ws51t4hk

ws51t4hk5#

收到,我理解这个问题,但还有一个更大的问题,那就是数据在Python中由Ludwig进行预处理和后处理,这意味着在使用TServing提供模型时,您无论如何都需要对数据进行预处理,以及对模型输出进行后处理。实际上,ludwig serve就是这样为您服务的(尽管模型不是通过TFServing提供的,而是直接加载到内存中)。
因此,添加字母排序可能会解决您的标签是数字的特定情况,但无法解决更大的后处理问题和更大的服务问题。
我建议您使用Ludwig的Python预处理和后处理功能,并将tf serving Package 在其中。如果需要在其他语言(如Java或Go)中执行服务,您通常可以轻松地加载train_set_metadata.json并执行预处理和后处理。
我知道这不是一件简单的事情,需要一些工作,但这是迄今为止最好的解决方案。我正在考虑将一些预处理和后处理添加到TF图中,以便TFServing不需要任何 Package 器,但问题是我所做的一些处理非常复杂,将其放在图中会变得复杂且受限于我可以进行的预处理类型,所以到目前为止我没有采用这种方法。
不过,无论如何感谢您的讨论,我会在未来尝试使模型服务在ludwig serve之外变得更加简单。

y3bcpkx1

y3bcpkx16#

非常感谢您提供的详细信息。您太棒了!
我基本上已经按照您的建议做了一些类似的 Package 操作。
祝愿您在继续开发Ludwig的过程中一切顺利!
干杯!

相关问题