首页 > 解决方案 > NoSuchElementException:无法在 MultiLayerPerceptronClassifier 中找到图层的默认值

问题描述

我在使用保存的 MultiLayerPerceptronClassifier 模型运行预测时遇到问题。

# reading the saved model
# spark version: version 3.1.2, python3.6
from pyspark.ml import PipelineModel
from pyspark.ml import Pipeline
saved_model = "/home/user/Desktop/algorithms/mlpc_model_8979"
read_model = PipelineModel.load(saved_model)
# predictions using the read model
pred = read_model.transform(df)

它抛出错误:

Py4JJavaError: An error occurred while calling o98.transform.
: java.util.NoSuchElementException: Failed to find a default value for layers

管道中的原始 mlpc 定义了层:

mlpc = MultilayerPerceptronClassifier(layers= [200, 30, 10],\
                                       seed=1234,\
                                       featuresCol="features",\
                                       labelCols="label")

我尝试解决它:如果我运行管道模型并在不先保存模型的情况下进行预测。我工作没有错误。但是保存和重新使用模型会引发此错误。有关如何解决此“ Failed to find a default value for layers”错误的任何帮助?

标签: pythonmachine-learningpysparkneural-networkpipeline

解决方案


经过大量搜索,我发现了一个非常奇怪的解决方案。
必须删除定义中列表之前的= []空格layers

                                             |
                                             |
                                             v 
mlpc = MultilayerPerceptronClassifier(layers=[200, 30, 10],\
                                       seed=1234,\
                                       featuresCol="features",\
                                       labelCols="label")

推荐阅读