网站建设合同违约金一般多少,二维码图片,最好的html5画廊显示质量html5的网站,杭州百度推广公司有几家我们知道#xff0c;当我们训练机器学习或深入学习模型时#xff0c;我们必须保存训练过的模型#xff0c;以便将来进行预测。现在的训练模型非常昂贵#xff0c;所以如果我们能够保存它们并将其用于解决其他一些问题。例如#xff0c;一个训练过的能够识别汽车的神经网络…我们知道当我们训练机器学习或深入学习模型时我们必须保存训练过的模型以便将来进行预测。现在的训练模型非常昂贵所以如果我们能够保存它们并将其用于解决其他一些问题。例如一个训练过的能够识别汽车的神经网络可以用迁移学习方法对其进行微调后用于识别卡车。在数据库中保存模型并使用python加载它们是很容易的。我们选择MongoDB是因为它是一个开源的文档数据库和领先的NoSQL数据库。现在让我们使用python逐步实现这个过程。首先使用pip安装pymongo如下所示pip install pymongo如果要使用MongoDB请确保在系统中安装了MongoDB。我们将首先在iris数据集上训练xgboost模型然后将其转储到数据库中并将其加载回来并用于预测。导入Python库如下所示#importing important librariesimport pymongoimport pandas as pdimport numpy as npfrom sklearn import datasetsimport pickleimport timeimport pymongo现在我们将在iris数据集上训练xgboostiris datasets.load_iris()X iris.datay iris.targetfrom sklearn.cross_validation import train_test_splitX_train, X_test, y_train, y_test train_test_split(X, y, test_size0.33, random_state42)from xgboost import XGBClassifierxgb XGBClassifier()xgb.fit(X_train, y_train)XGBClassifier(base_score0.5, boostergbtree, colsample_bylevel1, colsample_bytree1, gamma0, learning_rate0.1, max_delta_step0, max_depth3, min_child_weight1, missingNone, n_estimators100, n_jobs1, nthreadNone, objectivemulti:softprob, random_state0, reg_alpha0, reg_lambda1, scale_pos_weight1, seedNone, silentTrue, subsample1)训练结束后我们将编写一个辅助函数来保存机器学习模型该机器学习模型将首先对模型进行pickle。Pickling只是将任何对象转换为字节。我们必须pickle我们的模型因为我们不能直接将对象保存到MongoDB中。此函数还创建连接、数据库和collection然后使用名称保存模型。def save_model_to_db(model, client, db, dbconnection, model_name): import pickle import time import pymongo #pickling the model pickled_model pickle.dumps(model) #saving model to mongoDB # creating connection myclient pymongo.MongoClient(client) #creating database in mongodb mydb myclient[db] #creating collection mycon mydb[dbconnection] info mycon.insert_one({model_name: pickled_model, name: model_name, created_time:time.time()}) print(info.inserted_id, saved with this id successfully!) details { inserted_id:info.inserted_id, model_name:model_name, created_time:time.time() } return details现在我们将编写另一个辅助函数来加载保存的机器学习模型。这个函数首unpickles保存的模型然后返回模型。在这里我们使用find()函数并传递它的模型名来从数据库中获取模型。def load_saved_model_from_db(model_name, client, db, dbconnection): json_data {} #saving model to mongoDB # creating connection myclient pymongo.MongoClient(client) #creating database in mongodb mydb myclient[db] #creating collection mycon mydb[dbconnection] data mycon.find({name: model_name}) for i in data: json_data i #fetching model from db pickled_model json_data[model_name] return pickle.loads(pickled_model)在编写用于保存和加载模型的辅助函数之后我们只需要调用它们如下所示#saving model to mongodetails save_model_to_db(model xgb, client mongodb://localhost:27017/, db mydatabase, dbconnection customers, model_name myxgb)#fetching model from mongoxgb load_saved_model_from_db(model_name details[model_name], client mongodb://localhost:27017/, db mydatabase, dbconnection customers)print(xgb.predict(X_test))[1 0 2 1 1 0 1 2 1 1 2 0 0 0 0 1 2 1 1 2 0 2 0 2 2 2 2 2 0 0 0 0 1 0 0 2 1 0 0 0 2 1 1 0 0 1 1 2 1 2]使用python可以轻松地在数据库中保存和加载模型。保存这些模型后我们可以在将来随时使用它们。