首页 > 解决方案 > ModuleNotFoundError:没有名为“sklearn.linear_model._logistic”的模块

问题描述

我正在做一个二值图像分类项目,我通过特征提取使用迁移学习。我用 ResNet50 的输出训练了一个 Logistic 回归模型(通过丢弃它的最后一层并使用它最后一层后面的激活作为特征)。

在加载逻辑回归模型的测试期间,我得到了这个 ModuleNotFoundError。以下代码显示了我如何加载我已经在 ResNet50 模型的激活上训练过的逻辑回归模型。

model_logistic_regression = pickle.load(open(MODEL_PATH, "rb"))

这里 MODEL_PATH 包含预训练逻辑回归模型的目录。

编辑:此逻辑回归模型由 GridSearchCV 通过以下代码创建:

model = GridSearchCV(LogisticRegression(max_iter = 100000), params, cv = 3, # cv means cross validation
                 n_jobs = N_JOBS)
# db["features"] contains the activations (unrolled) from ResNet50 and db["labels"] contains the corresponding output labels
model.fit(db["features"], db["labels"])

最后,使用以下代码将模型写入磁盘:

f = open(MODEL_PATH, "wb")
f.write(pickle.dumps(model.best_estimator_))
f.close()

标签: pythonscipypicklelogistic-regressiongridsearchcv

解决方案


我认为您正在使用 python3。因为在 Python 3 中,pickle 模块被重命名为 _pickle。你可以使用import _pickle as pickle


推荐阅读