我在本地计算机上使用AutoGluon创建机器学习模型。现在我想通过AWS部署它们,但我意识到在过程中创建的所有pickle文件都使用硬编码路径引用其他pickle文件:
/home/myname/Desktop/ETC_PATH/AutoGluon/
我使用cloudpickle.dump(predictor, open('FINAL_MODEL.pkl', 'wb'))
来pickle最终的集成模型,但AutoGluon会创建许多其他单个模型的pickle文件,这些文件随后被引用为/home/myname/Desktop/ETC_PATH/AutoGluon/models/
和/home/myname/Desktop/ETC_PATH/AutoGluon/models/specific_model/
等等…
如何实现将所有绝对路径替换为相对路径,例如root/AutoGluon/WHATEVER_PATH
,其中root可以根据模型保存的位置设置为任意值。
任何建议都会有所帮助。
EDIT: 我相当确定我找到了问题所在。如果不加载FINAL_MODEL.pkl(似乎是硬编码路径),而是使用AutoGluon的predictor = task.load(model_dir)
,它应该能正确找到所有依赖项,无论整个AutoGluon文件夹是否被移动。这个GitHub上的问题帮助了我
回答:
EDIT: 这解决了问题:如果不加载FINAL_MODEL.pkl(似乎是硬编码路径),而是使用AutoGluon的predictor = task.load(model_dir)
,它应该能正确找到所有依赖项,无论整个AutoGluon文件夹是否被移动。这个GitHub上的问题帮助了我