ludwig 将字典和元组的返回值转换为结构化、有记录的替代方案,

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

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)
e37o9pze

e37o9pze2#

好的点子。当我们进行重构时,我们需要小心谨慎,确保我们所做的一切都是TorchScript兼容的。

相关问题