我已经开始使用tpot和dask。但优化总是冻结在0%。我几乎已经尝试了所有建议的解决方案。但还是不走运。这是我的代码-
import numpy as np
import multiprocessing
import csv
import tpot
from dask.distributed import Client
from sklearn.model_selection import train_test_split
target = list(csv.reader(open('target.csv')))
target_n = []
for i in range(len(target)):
target_n.append(int(target[i][0]))
data = list(csv.reader(open('data.csv')))
data_n = []
for i in range(len(data)):
tmp=[]
for j in range(len(data[i])):
tmp.append(np.longdouble(data[i][j]))
data_n.append(tmp)
data_array = np.asarray(data_n)
data_array = np.where(data_array < np.finfo(np.float64).max , data_array,np.finfo(np.float64).max)
data_array = data_array.clip(min=0)
X_train, X_test, y_train, y_test = train_test_split(data_array, target_array, train_size=0.75, test_size=0.25)
tp = tpot.TPOTClassifier(generations=5, config_dict = 'TPOT light', population_size=10, cv = 5, random_state = 0, verbosity=3, use_dask=True, max_eval_time_mins=0.04, n_jobs = 20)
tp.fit(X_train, y_train)
print(tpot.score(X_test, y_test))我们将非常感谢您提出的任何建议。顺便说一下,我的数据大小约为85MB
发布于 2020-05-14 12:28:45
几件事,如果这仍然是一个问题?:
假设您使用的是重要的硬件,因为您使用的是dask和n_jobs=20。
我的猜测是,你们的代数和人口规模太小,无法在这么多工人之间并行,所以太小的工作负载正在被拆分。
当使用多个n_jobs时,您可能还需要一条用于多处理的行。请参阅崩溃冻结标题here。
从本质上讲,做dev测试很棘手,但TPOT建议在内存中至少使用60个群体进行测试。
如果这仍然是一个问题,请发布错误消息。
https://stackoverflow.com/questions/57541324
复制相似问题