请查看以下内容,我的问题是“是否有办法按字母顺序对类别的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
}
6条答案
按热度按时间cfh9epnr1#
目前还没有这样的机制,但我很好奇,为什么你需要它?无论如何,你从
predict
得到的预测已经Map回原始字符串了。z3yyvxxp2#
我想我弄明白了。我只是好奇。
感谢你的回复@w4nderlust
zf2sa74q3#
@theodor38 你发现了什么?如果你向我解释你的用例,如果它有意义,我可以尝试将其纳入其中,但我必须先了解原因。干杯。
pokxtpni4#
@w4nderlust
我希望直接使用模型与TFServing。这迫使我手动更改顺序。如果你们能为那些希望以这种方式使用模型的人实现字母顺序排序,那就太好了。或者你们可能已经有更好的方法了吗?
非常感谢
ws51t4hk5#
收到,我理解这个问题,但还有一个更大的问题,那就是数据在Python中由Ludwig进行预处理和后处理,这意味着在使用TServing提供模型时,您无论如何都需要对数据进行预处理,以及对模型输出进行后处理。实际上,
ludwig serve
就是这样为您服务的(尽管模型不是通过TFServing提供的,而是直接加载到内存中)。因此,添加字母排序可能会解决您的标签是数字的特定情况,但无法解决更大的后处理问题和更大的服务问题。
我建议您使用Ludwig的Python预处理和后处理功能,并将tf serving Package 在其中。如果需要在其他语言(如Java或Go)中执行服务,您通常可以轻松地加载
train_set_metadata.json
并执行预处理和后处理。我知道这不是一件简单的事情,需要一些工作,但这是迄今为止最好的解决方案。我正在考虑将一些预处理和后处理添加到TF图中,以便TFServing不需要任何 Package 器,但问题是我所做的一些处理非常复杂,将其放在图中会变得复杂且受限于我可以进行的预处理类型,所以到目前为止我没有采用这种方法。
不过,无论如何感谢您的讨论,我会在未来尝试使模型服务在
ludwig serve
之外变得更加简单。y3bcpkx16#
非常感谢您提供的详细信息。您太棒了!
我基本上已经按照您的建议做了一些类似的 Package 操作。
祝愿您在继续开发Ludwig的过程中一切顺利!
干杯!