I am having a problem running a prediction using a saved MultiLayerPerceptronClassifier model.
# 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)
It throws error:
Py4JJavaError: An error occurred while calling o98.transform. : java.util.NoSuchElementException: Failed to find a default value for layers
The original mlpc in the pipeline had layers defined:
mlpc = MultilayerPerceptronClassifier(layers= [200, 30, 10], seed=1234, featuresCol="features", labelCols="label")
My attempts to solve it: If I run the pipeline model and do predictions without first saving the model. I works with no error. But saving and re-using the model throws this error.
Any help on how to solve this “Failed to find a default value for layers
” error?
Advertisement
Answer
After a lot of search I discovered a very strange solution.
Had to remove the space before the list = []
in the layers
definition.
| | v mlpc = MultilayerPerceptronClassifier(layers=[200, 30, 10], seed=1234, featuresCol="features", labelCols="label")