我不是一个优秀的程序员,但我努力提升自己的技能,并尝试使用更好的结构和实践方法。
我正在从事机器学习工作,并使用Keras。我试图找到保存结果的最佳方法。我有一个模型,x和y模拟数据的缩放参数,原始特征和Y。保存所有这些信息数据的最佳实践是什么?是否可以或是一个好主意将我的模型和缩放参数一起保存?我读取csv文件并将其转换为pandas DataFrame,是否最好保存DataFrame以便下次直接使用它,还是继续读取csv文件?
非常感谢您的建议和对新手的耐心。PS:对不起我的英语不好,我也在努力改进。
回答:
您使用的是Keras,而不仅仅是scikit-learn,所以我建议构建一个管道并分别保存它们。
from keras.models import load_modelfrom sklearn.externals import joblibpipeline = Pipeline([ ('scaler', StandardScaler()), ('estimator', KerasClassifier(build_model))])pipeline.fit(X_train, y_train)# 保存Keras模型pipeline.named_steps['estimator'].model.save('keras_model.h5')# 保存管道pipeline.named_steps['estimator'].model = Nonejoblib.dump(pipeline, 'sklearn_pipeline.pkl')# 反序列化pipeline = joblib.load('sklearn_pipeline.pkl')# 添加Keras模型pipeline.named_steps['estimator'].model = load_model('keras_model.h5')