Back propagation and Structure of a Neural Network in scikit-neuralnetwork I am trying to learn Neural Networks using scikit-neuralnetwork framework and I know basics about Neural Networks and now trying to implement it with scikit-learn. but I am confused on 2 points.
1- what is the structure of this NN given below? Somehow, in some examples felt to me, some people don't put input layer as a layer. Otherwise, I am thinking this as a 2 layer NN has input layer with 100 nodes and 1 node at the ouput layer.
from sknn.mlp import Classifier, Layer

nn = Classifier(
   layers=[
    Layer(&quot;Maxout&quot;, units=100, pieces=2),
    Layer(&quot;Softmax&quot;)],
learning_rate=0.001,
n_iter=25)

nn.fit(X_train, y_train)

2- Does scikit-neuralnetwork do back propagation within the code that I put above?
Thank you!
1) 
From what I understand, scikit-neuralnetwork tries to automatically determine the correct input and output sizes by the X and y data you give it when  calling nn.fit. Therefore structure should be:


Input layer with shape determined by X_train 
Dense layer with 100 units and maxout activation with 2 linear pieces
Softmax classification layer with as many units as needed for y_train 


Seems to use input shape from data here:
https://github.com/aigamedev/scikit-neuralnetwork/blob/b7fd0c089bd7c721c4d9cf9ca71eed74c6bafc5e/sknn/backend/lasagne/mlp.py#L183

And output shape from data here:
https://github.com/aigamedev/scikit-neuralnetwork/blob/b7fd0c089bd7c721c4d9cf9ca71eed74c6bafc5e/sknn/mlp.py#L62

However, note that maxout seems no longer supported: https://github.com/aigamedev/scikit-neuralnetwork/issues/142

2) Yes it uses backpropagation by calling appropriate lasagne/theano functions to create/compile the backpropagation training function:
https://github.com/aigamedev/scikit-neuralnetwork/blob/b7fd0c089bd7c721c4d9cf9ca71eed74c6bafc5e/sknn/backend/lasagne/mlp.py#L50-L103

(Actual training seems to happen here: https://github.com/aigamedev/scikit-neuralnetwork/blob/b7fd0c089bd7c721c4d9cf9ca71eed74c6bafc5e/sknn/backend/lasagne/mlp.py#L316-L335)