在运行历史记录中找不到有效模型。这意味着 smac 无法拟合有效模型。请检查日志文件是不是有错误

Posted

技术标签:

【中文标题】在运行历史记录中找不到有效模型。这意味着 smac 无法拟合有效模型。请检查日志文件是不是有错误【英文标题】:No valid model found in run history. This means smac was not able to fit a valid model. Please check the log file for errors在运行历史记录中找不到有效模型。这意味着 smac 无法拟合有效模型。请检查日志文件是否有错误 【发布时间】:2022-01-21 20:18:20 【问题描述】:

在这里,我总共有 1000 多个数据集,我必须在这些数据集上训练相同数量的模型并将它们保存在一个名为 models 的文件夹中。

这段代码运行良好,我得到了我想要的。我面临的唯一问题是第 554 个模型,它给了我这个错误。

No valid model found in run history. This means smac was not able to fit a valid model. 
Please check the log file for errors.

我在这里做错了吗?

我的代码:

from joblib import Parallel, delayed
from sklearn.svm import LinearSVC
import numpy as np
import pandas as pd
import autosklearn.regression
import pickle
import timeit
import os
import warnings
warnings.filterwarnings("ignore")
    
def train_model(filename):
    print('Reading Dataset: '+str(filename))
    data = pd.read_csv(filename)
    train_data = data[data['state'] == 'done']
    
    automl = autosklearn.regression.AutoSklearnRegressor(
        time_left_for_this_task=30, 
        metric=autosklearn.metrics.r2,
        memory_limit=None
    )
    
    X_train = train_data[['feature1','feature2']]
    y_train = train_data[['target_column']]
    print("Training Started: "+str(filename))
    automl.fit(X_train, y_train)
    print('Saving Model: '+str(filename))
    model_path = 'models/'+str(filename.split('.')[0])
    if not os.path.exists(model_path):
        os.makedirs(model_path)
    model_filename = model_path+'/finalized_model.sav'
    pickle.dump(automl, open(model_filename, 'wb'))
    
    return True

if __name__ == "__main__":
    start = timeit.default_timer()

    result = Parallel(n_jobs=4)(delayed(train_model)(filename) for filename in ['dataset_1.csv', 'dataset_2.csv', 'dataset_3.csv',..., 'dataset_n.csv'])

    stop = timeit.default_timer()

    print('Time: ', (stop - start)/60, 'Minutes') 

【问题讨论】:

日志文件里有什么? 请提供比错误信息更具描述性的标题。 @9769953 没有创建日志文件。 【参考方案1】:

我找到了问题的原因。 这是因为 RAM 中剩余的内存较少。

我没有得到任何有关此的文档

但我在运行脚本时不断检查 RAM 利用率,当没有剩余内存时,脚本因上述错误而终止。

如果有人对此有更多信息。他们的贡献将对社区更有帮助。

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于在运行历史记录中找不到有效模型。这意味着 smac 无法拟合有效模型。请检查日志文件是不是有错误的主要内容,如果未能解决你的问题,请参考以下文章

我在使用 paypal checkout-sdk 的沙盒中找不到交易历史记录

在 Doctrine 2 / CodeIgniter 2 中找不到实体模型

Gradle在本地Maven存储库中找不到现有的依赖项

搜索历史提示的关闭

在gnc gcc编译器的已配置搜索路径中找不到文件可执行文件

在 Django 视图中找不到静态文件