human
1.3 Recurrent Models
Time is an explicit part of the model:
* all the data shapes are one dimension larger than the corresponding shapes for a feedforward network
* the extra dimension represents time
* the extra dimension is located on:
    * the first (0) axis in theanets versions through 0.6
    * the second (1) axis in theanets versions 0.7 and up.
Recurrent versions of the three types of models:
* theanets.recurrent.Autoencoder: takes as input $X \in \mathbb{R}^{m\times t \times n}$ and recreates the same data at the output under squared-error loss
* theanets.recurrent.Regressor: input data $X \in \mathbb{R}^{m\times t \times n}$ and output data $Y \in \mathbb{R}^{m\times t \times o}$, fit the output under squared-error loss
* theanets.recurrent.Classifier: input data $X \in \mathbb{R}^{m\times t \times n}$ and set of integer labels $Y \in \mathbb{Z}^{m \times t}$, the default  error is cross-enthropy
1.4 Custom Models
To create a custom model, just define a new subclass of theanets.Network.
For instance, the feedforward autoencoder model is defined basically like this:"
Please write code following the instructions in jupyter notebook style.

Write me a code to 1?
assistant
#Here is code to 1.

class Autoencoder(theanets.Network):
    def __init__(self, layers=(), loss='mse', weighted=False):
        super(Autoencoder, self).__init__(
            layers=layers, loss=loss, weighted=weighted)