2017-10-23 12:07:07 +00:00
## Basic Layers
2017-09-08 21:52:41 +00:00
2017-10-18 11:31:06 +00:00
These core layers form the foundation of almost all neural networks.
2017-09-08 21:52:41 +00:00
```@docs
Chain
Dense
```
2017-10-18 10:09:33 +00:00
2019-02-27 12:20:44 +00:00
## Convolution and Pooling Layers
These layers are used to build convolutional neural networks (CNNs).
2018-06-09 08:49:47 +00:00
```@docs
2019-02-27 12:20:44 +00:00
Conv
MaxPool
2019-12-02 12:31:25 +00:00
GlobalMaxPool
2019-02-27 12:20:44 +00:00
MeanPool
2019-12-02 12:31:25 +00:00
GlobalMeanPool
2018-06-09 08:49:47 +00:00
DepthwiseConv
2019-02-06 15:41:41 +00:00
ConvTranspose
2019-05-14 09:50:18 +00:00
CrossCor
2020-02-27 11:44:17 +00:00
flatten
2018-06-09 08:49:47 +00:00
```
2017-10-23 12:07:07 +00:00
## Recurrent Layers
2017-10-18 14:30:05 +00:00
Much like the core layers above, but can be used to process sequence data (as well as other kinds of structured data).
```@docs
RNN
LSTM
2018-04-18 09:36:10 +00:00
GRU
2017-10-18 14:44:06 +00:00
Flux.Recur
2020-04-04 21:00:34 +00:00
Flux.reset!
2017-10-18 14:30:05 +00:00
```
2019-02-28 11:35:28 +00:00
## Other General Purpose Layers
These are marginally more obscure than the Basic Layers.
2019-03-07 15:44:46 +00:00
But in contrast to the layers described in the other sections are not readily grouped around a particular purpose (e.g. CNNs or RNNs).
2019-02-27 12:20:44 +00:00
```@docs
2019-03-07 11:44:13 +00:00
Maxout
2019-05-13 19:43:14 +00:00
SkipConnection
2019-02-27 12:20:44 +00:00
```
2017-10-26 10:46:12 +00:00
## Normalisation & Regularisation
These layers don't affect the structure of the network but may improve training times or reduce overfitting.
```@docs
2020-04-04 21:00:34 +00:00
Flux.normalise
2017-10-30 05:33:01 +00:00
BatchNorm
2020-02-29 10:14:48 +00:00
Flux.dropout
2020-04-04 21:00:34 +00:00
Dropout
2019-03-03 19:40:12 +00:00
AlphaDropout
2017-10-23 11:53:07 +00:00
LayerNorm
2020-04-04 21:00:34 +00:00
InstanceNorm
2019-04-05 17:46:46 +00:00
GroupNorm
2017-10-26 10:46:12 +00:00
```
2019-09-30 15:32:13 +00:00
2020-02-25 19:53:49 +00:00
### Testmode
2020-04-04 21:00:34 +00:00
Many normalisation layers behave differently under training and inference (testing). By default, Flux will automatically determine when a layer evaluation is part of training or inference. Still, depending on your use case, it may be helpful to manually specify when these layers should be treated as being trained or not. For this, Flux provides `Flux.testmode!` . When called on a model (e.g. a layer or chain of layers), this function will place the model into the mode specified.
2020-02-25 19:53:49 +00:00
```@docs
2020-04-04 21:00:34 +00:00
Flux.testmode!
2020-03-01 18:30:41 +00:00
trainmode!
2020-04-29 09:52:24 +00:00
```