【发布时间】:2021-09-18 08:48:13
【问题描述】:
下面给出的代码工作正常。在这里,我正在做并行化,我也使用了param_grid,ParameterSampler。
def analyse(
generate_dataset: Any,
regressor: Any,
method: Method,
test_size: Tuple[float, float],
k: int,
n_reps: int,
param_iters: int = 2,
) -> DataFrame:
args = dict(
generate_dataset=generate_dataset,
regressor=regressor,
method=method,
test_size=test_size,
k=k,
n_reps=n_reps,
param_iters=param_iters
)
param_grid = { "test_size": np.random.uniform(test_size[0], test_size[1], param_iters) }
sampler = list(ParameterSampler(param_grid, n_iter=param_iters))
args = [Namespace(**{**args, **dict(params=params)}) for params in sampler]
rows, _ = list(
zip(*process_map(inner_loop, args, total=len(args), desc=f"Computing ECs for method '{method}'"))
)
df: DataFrame = pd.concat(rows, axis=0, ignore_index=True)
return df
现在,我不想使用param_grid 和ParameterSampler。相反,我想在没有这两个(param_grid 和ParameterSampler)的情况下通过args。不过,我不确定我的想法是否可行。
在没有param_grid 和ParameterSampler 的情况下传递参数有什么想法吗?
【问题讨论】:
-
args完全依赖于sampler,因此依赖于param_grid和ParameterSampler。如果不是来自这些来源的数据,您希望args保存什么? -
@Carcigenicate 谢谢。我想通过
generate_dataset, regressor, method, k, n_reps正在通过def analyse()。有可能吗?
标签: python python-3.x parallel-processing parameter-passing