我使用.pynb
将Jupyter笔记本.pickle
文件保存为joblib.
格式
我的ML模型是使用pandas,numpy和statsmodels
python库构建的。
我将拟合模型保存到名为fitted_model
的变量中,这就是我使用joblib的方式:
from sklearn.externals import joblib
# Save RL_Model to file in the current working directory
joblib_file = "joblib_RL_Model.pkl"
joblib.dump(fitted_model, joblib_file)
我得到这个作为输出:
['joblib_RL_Model.pkl']
但是当我尝试从文件加载时,请在新的jupyter笔记本中使用:
# Load from file
joblib_file = "joblib_RL_Model.pkl"
joblib_LR_model = joblib.load(joblib_file)
joblib_LR_model
我只能把这个找回来:
,没有模型。我期望在那里看到模型加载,并按照原始笔记本看到图形输出。
答案 0 :(得分:2)
与open一起使用,会更好,因为它会自动打开和关闭文件。也可以使用适当的模式。
const path = require('path')
const express = require('express')
const mongoose = require('mongoose')
const dotenv = require('dotenv')
const morgan = require('morgan')
const exphbs = require('express-handlebars')
const passport = require('passport')
const session = require('express-session')
const MongoStore = require('connect-mongo')(session)
const connectDB = require('./config/db')
//Load config
dotenv.config({path: './config/config.env' })
// Passport config
require('./config/passport')(passport)
connectDB()
const app = express()
//Body parser
app.use(express.urlencoded({ extended: false }))
app.use(express.json())
// Logging
if(process.env.NODE_ENV === 'development') {
app.use(morgan('dev'))
}
// Handlebars Helpers
const { formatDate, stripTags, truncate, } = require('./helpers/hbs')
// Handlebars
app.engine('.hbs', exphbs({
helpers: {
formatDate,
stripTags,
truncate,
},
defaultLayout: 'main',
extname: '.hbs',
})
)
app.set('view engine', '.hbs')
我在Colab中的实现是here。检查一下。
答案 1 :(得分:1)
您可以使用更具量化性的软件包,该软件包是python的pickle
默认软件包,用于保存模型
您可以使用以下功能保存ML模型
import pickle
def save_model(model):
pickle.dump(model, open("model.pkl", "wb"))
功能模板应该是
import pickle
def save_model(model):
pickle.dump(model, open(PATH_AND_FILE_NAME_TO_BE_SAVED, "wb"))
要在从泡菜库中保存模型时加载模型,可以遵循以下功能
def load_model(path):
return pickle.load(open(path, 'rb'))
注意:
model.save(PATH_TO_MODEL_AND_NAME)
其中模型的类型为tensorflow.keras.models