docs: @Override
      public void setWeights(Map<String, INDArray> weights) throws InvalidKerasConfigurationException {
          this.weights = new HashMap<>();
  
          INDArray dW;
          if (weights.containsKey(conf.getLAYER_PARAM_NAME_DEPTH_WISE_KERNEL())) {
              dW = weights.get(conf.getLAYER_PARAM_NAME_DEPTH_WISE_KERNEL());
              dW = dW.permute(3, 2, 0, 1);
          } else
              throw new InvalidKerasConfigurationException(
                      "Keras SeparableConvolution2D layer does not contain parameter "
                              + conf.getLAYER_PARAM_NAME_DEPTH_WISE_KERNEL());
  
          this.weights.put(SeparableConvolutionParamInitializer.DEPTH_WISE_WEIGHT_KEY, dW);
  
          INDArray pW;
          if (weights.containsKey(conf.getLAYER_PARAM_NAME_POINT_WISE_KERNEL())) {
              pW = weights.get(conf.getLAYER_PARAM_NAME_POINT_WISE_KERNEL());
              pW = pW.permute(3, 2, 0, 1);
          }
          else
              throw new InvalidKerasConfigurationException(
                      "Keras SeparableConvolution2D layer does not contain parameter "
                              + conf.getLAYER_PARAM_NAME_POINT_WISE_KERNEL());
  
          this.weights.put(SeparableConvolutionParamInitializer.POINT_WISE_WEIGHT_KEY, pW);
  
          if (hasBias) {
              INDArray bias;
              if (kerasMajorVersion == 2 && weights.containsKey("bias"))
                  bias = weights.get("bias");
              else if (kerasMajorVersion == 1 && weights.containsKey("b"))
                  bias = weights.get("b");
              else
                  throw new InvalidKerasConfigurationException(
                          "Keras SeparableConvolution2D layer does not contain bias parameter");
              this.weights.put(SeparableConvolutionParamInitializer.BIAS_KEY, bias);
  
          }
  
      }