docs: @Override
      public InputType getOutputType(InputType... inputType)
              throws InvalidKerasConfigurationException, UnsupportedKerasConfigurationException {
          if (inputType.length > 0)
              log.warn("Keras Input layer does not accept inputs (received " + inputType.length + "). Ignoring.");
          InputType myInputType;
          switch (this.inputShape.length) {
              case 1:
                  myInputType = new InputType.InputTypeFeedForward(this.inputShape[0]);
                  break;
              case 2:
                  myInputType = new InputType.InputTypeRecurrent(this.inputShape[1], this.inputShape[0]);
                  break;
              case 3:
                  switch (this.dimOrder) {
                      case TENSORFLOW:
                          /* TensorFlow convolutional input: # rows, # cols, # channels */
                          myInputType = new InputType.InputTypeConvolutional(this.inputShape[0], this.inputShape[1],
                                  this.inputShape[2]);
                          break;
                      case THEANO:
                          /* Theano convolutional input:     # channels, # rows, # cols */
                          myInputType = new InputType.InputTypeConvolutional(this.inputShape[1], this.inputShape[2],
                                  this.inputShape[0]);
                          break;
                      default:
                          this.dimOrder = DimOrder.THEANO;
                          myInputType = new InputType.InputTypeConvolutional(this.inputShape[1], this.inputShape[2],
                                  this.inputShape[0]);
                          log.warn("Couldn't determine dim ordering / data format from model file. Older Keras " +
                                  "versions may come without specified backend, in which case we assume the model was " +
                                  "built with theano." );
                  }
                  break;
              case 4:
                  switch (this.dimOrder) {
                      case TENSORFLOW:
                          myInputType = new InputType.InputTypeConvolutional3D(Convolution3D.DataFormat.NDHWC,
                                  this.inputShape[0], this.inputShape[1],
                                  this.inputShape[2],this.inputShape[3]);
                          break;
                      case THEANO:
                          myInputType = new InputType.InputTypeConvolutional3D(Convolution3D.DataFormat.NCDHW,
                                  this.inputShape[3], this.inputShape[0],
                                  this.inputShape[1],this.inputShape[2]);
                          break;
                      default:
                          this.dimOrder = DimOrder.THEANO;
                          myInputType = new InputType.InputTypeConvolutional3D(Convolution3D.DataFormat.NCDHW,
                                  this.inputShape[3], this.inputShape[0],
                                  this.inputShape[1],this.inputShape[2]);
                          log.warn("Couldn't determine dim ordering / data format from model file. Older Keras " +
                                  "versions may come without specified backend, in which case we assume the model was " +
                                  "built with theano." );
                  }
                  break;
              default:
                  throw new UnsupportedKerasConfigurationException(
                          "Inputs with " + this.inputShape.length + " dimensions not supported");
          }
          return myInputType;
      }