General Settings¶
- dev
A dictionary specifying the developement set. For details on datasets, see Datasets
- device
E.g.
gpu
orcpu
. Although RETURNN will automatically detect and use a GPU if available, a specific device can be enforced by setting this parameter.- extern_data (former num_outputs)
Defines the source/target dimensions of the data as a dictionary of dictionaries describing data streams. The standard source data is called
data
by default, and the standard target data is calledclasses
by default.A common example for an ASR system would be:
extern_data = { "data": {"dim": 100, "shape": (None, 100), 'available_for_inference': True} "classes": {"dim": 5000, "shape": (None,), "sparse": True, 'available_for_inference': False} }
In this case the
data
entry defines 80 dimensional features with a time axis of arbitrary length.classes
defines sparse target labels, and the dimension then defines the number of labels. The shape entriesNone
indicate a dynamic length of an axis.available_for_inference
defines if the data stream is also available during the “search” or “forward” task, so basically marking if a data stream is an input or only a target.In general, all input parameters to
returnn.tensor.Tensor
can be provided The parametersdim
andshape
should always be used, the other parameters are optional. Neverthelessavailable_for_inference
should always be provided explicitely as only fordata
the parameteravailable_for_inference
is per default True. This will avoid confusion or unexpected behavior, especially when including additional data via areturnn.datasets.meta.MetaDataset
.- log
path to the log, or list of paths for multiple logs.
- log_batch_size
If set to
True
, for each batch the number of sequences and maximal sequence length is displayed- log_verbosity
An integer or list of integer. Common values are 3 or 4. Starting with 5, you will get an output per mini-batch. If a list is proved for logs, log_verbosity can be specified for each log.
- model
Defines the model file where RETURNN will save all model params after an epoch of training. For each epoch, it will suffix the filename by the epoch number. If
load_from
is not set, the model will also be loaded from this path.- network
This is a nested dict which defines the network topology, used for the TensorFlow layers backend. See also RETURNN frontend as an alternative. Or you can also write pure PyTorch code.
It consists of layer-names as strings, mapped on dicts, which defines the layers. The layer dict consists of keys as strings and the value type depends on the key. The layer dict should contain the key
class
which defines the class or type of the layer, such aslinear
for a feed-forward layer,rec
for a recurrent layer (including LSTM) orsoftmax
for the output layer (doesn’t need to have the softmax activation). Usually it also contains the keyn_out
which defines the feature-dimension of the output of this layer, and the keyfrom
which defines the inputs to this layer, which is a list of other layers. For details sett Layers / Modules.- num_inputs
Input feature dimension of the network, related to the ‘data’ tag. Deprecated for the TensorFlow backend, see
extern_data
- num_outputs
Output feature dimension of the network, related to the ‘classes’ tag. Deprecated for the TensorFlow backend, see
extern_data
- target
This defines the default target for
returnn.tf.network.ExternData
. If not specified, the default target will beclasses
.- task
The task to run. Common cases are
train
,forward
orsearch
.- tf_log_memory_usage
If set to
True
, will display the current GPU memory usage when using the tensorflow backend.- tf_log_dir
Defines the folder where the tensorflow/tensorboard logs are writting. Per default, the logs are written next to the models.
Note
has to be set specifically when loading a model from a folder without write permission
- train
A dictionary specifying the training dataset. For details on datasets, see Datasets
- use_tensorflow
If you set this to
True
, TensorFlow will be used.