我有一本字典,我在其中收集 ML 模型,我用数据类构建如下:
@dataclass(frozen=True, order=True)
class Model:
data_sample: str
predictive_model: object
predictions: pd.DataFrame
binary: object
type: str
inputs: list
output: str
explain: bool
def to_dict(self):
return asdict(self)
我生成多个模型并使用数据类来验证单个训练模型的输入。我将此类作为 ML 列表的字典:
ML.append(model.to_dict())
binary
和 predictive_model
的对象是来自 scikit-learn、TPOT、SciPy 等库的模型(python 类)。人们应该假设这些对象中发生了很多继承。我正在努力使这个列表可移植到另一个环境。我使这个可移植的核心想法是使用 joblib
、dill
或 pickle
之类的库到 .dump
训练模型的运行时中的字典,并使用 .load
方法加载字典。当我这样做时,我注意到有一个 ModuleNotFoundError: No module named ...
错误。我已经发现这是一个常见问题,并且这里有关于此错误的答案:Python pickling after changing a module's directory
我的问题是:有没有更好的方法来“导出”我的字典?最好以这样一种方式复制它需要的所有东西,这样我就可以在别处运行它而不需要管理任何导入?
我觉得酸洗可能不是我需要的..