最近在学习使用 parallel python 模块进行分布式机器学习,遇到了一个问题:写了一个创建学习模型的函数,是分发到各计算节点上的,如下面的代码所示。Param 是一个字典,用于传送要构建模型的宏参数,当我不使用它使用默认的参数时,能够正常工作;当把两个#号去掉,使用传过来的参数时,就不能正常工作了。问一下我的代码错在了哪里?
ModelName = "LGBMRegressor"
params = { "max_depth": 1, "num_leaves": 4}
def CreateModel( ModelName, Params ):
max_depth, num_leaves = 10, 20
#if "max_depth" in Params: max_depth = Params[ "max_depth" ]
#if "num_leaves" in Params: num_leaves = Params[ "num_leaves" ]
Model, IsClassifier = None, True
ModelName = ModelName.lower()
if ModelName == "lgbmregressor":
IsClassifier = False
Model = lightgbm.LGBMRegressor( max_depth=max_depth, num_leaves=num_leaves )
return Model, IsClassifier
另外我若在本地创建好模型,把模型分发给各计算节点,程序就不能正常工作,如果在节点上创建模型,如上所示,就出现了上面的情况,该怎么解决?
ModelName = "LGBMRegressor"
params = { "max_depth": 1, "num_leaves": 4}
def CreateModel( ModelName, Params ):
max_depth, num_leaves = 10, 20
#if "max_depth" in Params: max_depth = Params[ "max_depth" ]
#if "num_leaves" in Params: num_leaves = Params[ "num_leaves" ]
Model, IsClassifier = None, True
ModelName = ModelName.lower()
if ModelName == "lgbmregressor":
IsClassifier = False
Model = lightgbm.LGBMRegressor( max_depth=max_depth, num_leaves=num_leaves )
return Model, IsClassifier
另外我若在本地创建好模型,把模型分发给各计算节点,程序就不能正常工作,如果在节点上创建模型,如上所示,就出现了上面的情况,该怎么解决?