Ludwig代码库广泛使用了返回元组或字典的方法。在任何合理的情况下,都应该重构这些方法以使用结构化数据类型(即dataclasses
)。
示例:
多个返回值作为元组:
(training_set, validation_set, test_set, training_set_metadata) = self.preprocess(...)
具有硬编码键的字典:
self.predictions_key = PREDICTIONS
self.probabilities_key = PROBABILITIES
self.logits_key = LOGITS
return {
self.probabilities_key: probabilities,
self.predictions_key: predictions,
self.logits_key: logits,
}
使用编程构建的键路径的字典:
for of_name, of_preds in preds.items():
for pred_name, pred_values in of_preds.items():
if pred_name not in EXCLUDE_PRED_SET:
key = f"{of_name}_{pred_name}"
predictions[key].append(pred_values)
2条答案
按热度按时间c9qzyr3d1#
可能相关的: #1655
e37o9pze2#
好的点子。当我们进行重构时,我们需要小心谨慎,确保我们所做的一切都是TorchScript兼容的。