Apache Spark의 다중 계층 개념에 대한 최상의 아키텍처를 결정하려고합니다. 교차 검증을 사용할 수 있는지 궁금합니다.교차 검증을 사용하여 Apache Spark의 다중 계층 인식을위한 네트워크 아키텍처 선택
일부 코드 :
// define layers
int[] layers = new int[] {784, 78, 35, 10};
int[] layers2 = new int[] {784, 28, 28, 10};
int[] layers3 = new int[] {784, 84, 10};
int[] layers4 = new int[] {784, 392, 171, 78, 10};
MultilayerPerceptronClassifier mlp = new MultilayerPerceptronClassifier()
.setMaxIter(25)
.setLayers(layers4);
ParamMap[] paramGrid = new ParamGridBuilder()
.addGrid(mlp.seed(), new long[] {895L, 12345L})
//.addGrid(mlp.layers(), new int[][] {layers, layers2, layers3})
.build();
CrossValidator cv = new CrossValidator()
.setEstimator(mlp)
.setEvaluator(new MulticlassClassificationEvaluator())
.setEstimatorParamMaps(paramGrid).setNumFolds(10);
CrossValidatorModel model = cv.fit(train);
당신은 내가 정수 배열 (층-layers4)의 일부 구조를 정의한 볼 수 있듯이.
마찬가지로 모델을 여러 번 맞추고 학습 알고리즘의 레이어 매개 변수를 수동으로 변경해야합니다.
내가 원하는 것은 CrossValidator (ParamMap에서 주석 처리 된 행)에 전달하는 ParamMap에 다른 아키텍처를 제공하는 것입니다.
layers() 메서드는 ParamGridBuilder에 알려져 있지만 제공된 인수는 허용하지 않으므로이 beeing이 가능하다고 생각합니다.
내가이 가정에서 맞다면 내가 뭘 잘못하고 어떻게 이것을 의도 한대로 작동시킬 수 있습니까?