在這里,我總共有 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')
uj5u.com熱心網友回復:
我找到了問題的原因。這是因為 RAM 中剩余的記憶體較少。
我沒有得到任何關于此的檔案
但是我在運行腳本時不斷檢查 RAM 利用率,當沒有剩余記憶體時,腳本因上述錯誤而終止。
如果有人有更多關于這方面的資訊。他們的貢獻將對社區更有幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391413.html
