returnn 1.20250122.134518__tar.gz → 1.20250123.173545__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of returnn might be problematic. Click here for more details.
- {returnn-1.20250122.134518/returnn.egg-info → returnn-1.20250123.173545}/PKG-INFO +1 -1
- returnn-1.20250123.173545/_setup_info_generated.py +2 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/config.py +76 -85
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_cache.py +2 -2
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_native/__init__.py +2 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_random_journal.py +1 -1
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/conv.py +1 -1
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/dims.py +1 -1
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/rec.py +2 -2
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/run_ctx.py +6 -6
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/_dim_extra.py +46 -43
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/_tensor_extra.py +5 -5
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/_tensor_op_overloads.py +11 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/dim.py +1 -1
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/tensor_dict.py +1 -1
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/_backend.py +2 -2
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/dims.py +2 -2
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/layer.py +9 -5
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/loop.py +2 -2
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/make_layer.py +1 -1
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/prev_tensor_ref.py +1 -1
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_low_level/_backend.py +1 -1
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/layers/base.py +28 -19
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/layers/basic.py +22 -20
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/layers/rec.py +43 -41
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/network.py +3 -3
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/util/basic.py +10 -9
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/data/extern_data.py +2 -2
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/basic.py +5 -5
- {returnn-1.20250122.134518 → returnn-1.20250123.173545/returnn.egg-info}/PKG-INFO +1 -1
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/rf_utils.py +2 -2
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_TFUtil.py +3 -3
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/compile_tf_graph.py +2 -2
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/torch_export_to_onnx.py +2 -2
- returnn-1.20250122.134518/_setup_info_generated.py +0 -2
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/.editorconfig +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/.gitignore +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/.gitmodules +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/.kateconfig +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/CHANGELOG.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/CODEOWNERS +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/CONTRIBUTING.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/LICENSE +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/MANIFEST.in +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/README.rst +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/12AX.cluster_map +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/_setup_returnn_env.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-fwd.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-horovod-mpi.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-horovod-mpi.py.sh +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-horovod-mpi.sh +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-hyper-param-tuning.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-iter-dataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-list-devices.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-lua-torch-layer.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-pretrain.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-record-and-push-to-webserver.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-returnn-as-framework.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-rf-pt-benchmark.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-rf.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-rhn-enwik8.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-sprint-interface.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-att-copy.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-attention.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-enc-dec.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-hard-att-copy.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-lstm-benchmark.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-native-lstm.12ax.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-native-lstm2.12ax.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-neural-transducer.12ax.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-rec-explicit-lstm.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-rec-explicit-rnn.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-rec-self-att.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-search-compiled-graph.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-timit-lstm-ctc.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-torch.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/demo.sh +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/README.txt +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/chars.txt +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/config_demo +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/config_fwd +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/config_real +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/decode.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/go.sh +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/lines.txt +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/split/eval.txt +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/split/train.txt +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/IAM/split/valid.txt +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/README.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/artificial/create_test_h5.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/artificial/forwardconfig +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/artificial/go.sh +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/artificial/trainconfig +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/artificial_rgb/go.sh +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/pyproject.toml +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/requirements.txt +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/__main__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/__old_mod_loader__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/__setup__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/audio.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/basic.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/bundle_file.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/cached.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/cached2.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/distrib_files.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/generating.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/hdf.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/lm.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/map.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/meta.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/multi_proc.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/normalization_data.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/numpy_dump.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/postprocessing.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/raw_wav.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/sprint.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/stereo.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/text_dict.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/util/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/util/feature_extraction.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/util/strings.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/datasets/util/vocabulary.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/engine/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/engine/base.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/engine/batch.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/__main__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/.git +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/graph_editor/README.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/graph_editor/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/graph_editor/edit.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/graph_editor/reroute.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/graph_editor/select.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/graph_editor/subgraph.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/graph_editor/transform.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/extern/graph_editor/util.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/forward_iface.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_backend.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_native/backend.cpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_native/backend.hpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_native/module.cpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_native/module.hpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_native/py_utils.hpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_native/tensor_ops.cpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_native/tensor_ops.hpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_numpy_backend.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_utils.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/array_.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/attention.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/audio/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/audio/mel.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/audio/specaugment.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/backend.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/build_from_dict.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/cond.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/const.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/container.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/control_flow_ctx.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/conversions/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/conversions/espnet_e_branchformer.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/conversions/hf_llama.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/conversions/torch_nn.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/decoder/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/decoder/transformer.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/device.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/dropout.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/dtype.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/encoder/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/encoder/base.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/encoder/conformer.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/encoder/conformer_v2.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/encoder/e_branchformer.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/encoder/transformer.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/gradient.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/graph.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/hooks.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/init.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/label_smoothing.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/linear.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/loop.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/loss.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/math_.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/matmul.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/module.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/normalization.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/parameter.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/parametrizations.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/parametrize.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/piecewise_linear.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/rand.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/reduce.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/signal.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/state.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/stepwise_scheduler.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/tensor_array.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/types.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/import_/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/import_/common.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/import_/git.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/import_/import_.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/learning_rate_control.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/log.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/native_op.cpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/native_op.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/pretrain.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/sprint/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/sprint/cache.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/sprint/control.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/sprint/error_signals.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/sprint/extern_interface.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/sprint/interface.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/README.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/_tensor_mixin_base.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/control_flow_ctx.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/marked_dim.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/tensor.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tensor/utils.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/compat.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/data_pipeline.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/distributed.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/engine.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/README.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/_utils.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/cond.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/masked_computation.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/frontend_low_level/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/horovod.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/hyper_param_tuning.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/layers/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/layers/segmental_model.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/layers/signal_processing.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/layers/variable.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/native_op.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/sprint.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/updater.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/util/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/util/data.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/util/gradient_checkpoint.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/util/ken_lm.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/tf/util/open_fst.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/README.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/data/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/data/pipeline.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/data/queued_data_iter.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/data/tensor_utils.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/distributed.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/engine.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/frontend/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/frontend/_backend.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/frontend/_rand.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/frontend/bridge.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/frontend/raw_ops.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/optim/README.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/optim/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/optim/lion.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/updater.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/util/README.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/util/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/util/array_.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/util/debug_inf_nan.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/util/diagnose_gpu.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/util/exception_helper.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/util/gradient_checkpoint.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/util/module.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/torch/util/scaled_gradient.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/__init__.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/better_exchook.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/bpe.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/debug.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/debug_helpers.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/file_cache.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/fsa.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/literal_py_to_pickle.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/lru_cache.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/math.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/native_code_compiler.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/pprint.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/py-to-pickle.cpp +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/py_ext_mod_compiler.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/result_with_reason.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/sig_proc.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/task_system.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/train_proc_manager.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/util/watch_memory.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn.egg-info/SOURCES.txt +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn.egg-info/dependency_links.txt +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn.egg-info/top_level.txt +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/rnn.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/setup.cfg +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/setup.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/DummySprintExec.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm-inspection-profile.xml +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm.idea/.gitignore +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm.idea/.name +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm.idea/misc.xml +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm.idea/modules.xml +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm.idea/returnn.iml +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/_set_num_threads1.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/_setup_returnn_env.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/_setup_test_env.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/bpe-unicode-demo.codes +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/bpe-unicode-demo.vocab +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/lexicon_opt.fst +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/lexicon_opt.isyms +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/lexicon_opt.jpg +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/lexicon_opt.osyms +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/lint_common.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/pycharm-inspect.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/pylint.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/returnn-as-framework.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/spelling.dic +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_Config.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_Dataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_Fsa.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_GeneratingDataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_HDFDataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_LearningRateControl.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_Log.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_MultiProcDataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_Pretrain.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_ResNet.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_SprintDataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_SprintInterface.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_TFEngine.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_TFNativeOp.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_TFNetworkLayer.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_TFNetworkRecLayer.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_TFNetworkSigProcLayer.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_TFUpdater.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_TF_determinism.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_TaskSystem.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_TaskSystem_SharedMem.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_TranslationDataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_Util.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_demos.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_fork_exec.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_hdf_dump.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_array.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_attention.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_base.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_cond.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_const.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_container.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_conv.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_decoder_transformer.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_encoder_conformer.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_gradient.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_label_smoothing.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_loop.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_math.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_normalization.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_piecewise_linear.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_rec.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_reduce.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_rf_signal.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_tensor.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_threading.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_tools.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_torch_dataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_torch_engine.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_torch_frontend.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_torch_internal_frontend.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/test_torch_util.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tests/torch_utils.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/_setup_returnn_env.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/analyze-dataset-batches.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/bliss-collect-seq-lens.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/bliss-dump-text.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/bliss-get-segment-names.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/bliss-to-ogg-zip.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/bpe-create-lexicon.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/calculate-word-error-rate.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/cleanup-old-models.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/collect-orth-symbols.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/collect-words.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/compile_native_op.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/debug-dump-search-scores.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/debug-plot-search-scores.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/dump-dataset-raw-strings.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/dump-dataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/dump-forward-stats.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/dump-forward.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/dump-network-json.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/dump-pickle.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/extract_state_tying_from_dataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/get-attention-weights.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/get-best-model-epoch.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/hdf_dump.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/hdf_dump_translation_dataset.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/import-blocks-mt-model.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/import-t2t-mt-model.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/.gitignore +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/Makefile +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/README.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/example/README.md +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/example/libs_list +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/example/state_vars_list +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/example/tensor_names_list +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/file.h +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/main.cc +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/rescorer.h +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/vocabulary.cc +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/lattice_rescorer/vocabulary.h +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/tf_avg_checkpoints.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/tf_inspect_checkpoint.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/tf_inspect_summary_log.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/torch_avg_checkpoints.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/torch_inspect_checkpoint.py +0 -0
- {returnn-1.20250122.134518 → returnn-1.20250123.173545}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
|
@@ -7,13 +7,16 @@ from __future__ import annotations
|
|
|
7
7
|
__author__ = "Patrick Doetsch"
|
|
8
8
|
__credits__ = ["Patrick Doetsch", "Paul Voigtlaender"]
|
|
9
9
|
|
|
10
|
-
from typing import Optional, Any, Dict, List
|
|
10
|
+
from typing import TypeVar, Type, Optional, Union, Any, Dict, List, Sequence, Tuple
|
|
11
11
|
import contextlib
|
|
12
12
|
import sys
|
|
13
13
|
import os
|
|
14
14
|
import types as _types
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
T = TypeVar("T")
|
|
18
|
+
|
|
19
|
+
|
|
17
20
|
class Config:
|
|
18
21
|
"""
|
|
19
22
|
Reads in some config file, and provides access to the key/value items.
|
|
@@ -140,11 +143,10 @@ class Config:
|
|
|
140
143
|
self.add_line(key=line[0], value=line[1])
|
|
141
144
|
|
|
142
145
|
@classmethod
|
|
143
|
-
def get_config_file_type(cls, f):
|
|
146
|
+
def get_config_file_type(cls, f: str) -> str:
|
|
144
147
|
"""
|
|
145
|
-
:param
|
|
148
|
+
:param f: file path
|
|
146
149
|
:return: "py", "js" or "txt"
|
|
147
|
-
:rtype: str
|
|
148
150
|
"""
|
|
149
151
|
with open(f, "r") as f:
|
|
150
152
|
start = f.read(3)
|
|
@@ -154,9 +156,9 @@ class Config:
|
|
|
154
156
|
return "js"
|
|
155
157
|
return "txt"
|
|
156
158
|
|
|
157
|
-
def parse_cmd_args(self, args):
|
|
159
|
+
def parse_cmd_args(self, args: Sequence[str]):
|
|
158
160
|
"""
|
|
159
|
-
:param
|
|
161
|
+
:param args:
|
|
160
162
|
"""
|
|
161
163
|
from optparse import OptionParser
|
|
162
164
|
|
|
@@ -262,11 +264,12 @@ class Config:
|
|
|
262
264
|
value = value[1:] # otherwise we never could specify things like "++threshold -0.1"
|
|
263
265
|
self.add_line(key=key[2:], value=value)
|
|
264
266
|
|
|
265
|
-
def add_line(self, key, value):
|
|
267
|
+
def add_line(self, key: str, value: str):
|
|
266
268
|
"""
|
|
267
269
|
Adds one specific configuration (key,value) pair to the inner set of parameters
|
|
268
|
-
|
|
269
|
-
:
|
|
270
|
+
|
|
271
|
+
:param key:
|
|
272
|
+
:param value:
|
|
270
273
|
"""
|
|
271
274
|
if key in self.typed_dict:
|
|
272
275
|
# This is a special case. We overwrite a config value which was typed before.
|
|
@@ -300,69 +303,65 @@ class Config:
|
|
|
300
303
|
else:
|
|
301
304
|
self.dict[key] = value
|
|
302
305
|
|
|
303
|
-
def has(self, key):
|
|
306
|
+
def has(self, key: str) -> bool:
|
|
304
307
|
"""
|
|
305
308
|
Returns whether the given key is present in the inner set of parameters
|
|
306
|
-
|
|
307
|
-
:
|
|
308
|
-
:returns True if and only if the given key is in the inner set of parameters
|
|
309
|
+
|
|
310
|
+
:param key:
|
|
311
|
+
:returns: True if and only if the given key is in the inner set of parameters
|
|
309
312
|
"""
|
|
310
313
|
if key in self.typed_dict:
|
|
311
314
|
return True
|
|
312
315
|
return key in self.dict
|
|
313
316
|
|
|
314
|
-
def is_typed(self, key):
|
|
317
|
+
def is_typed(self, key: str) -> bool:
|
|
315
318
|
"""
|
|
316
|
-
:
|
|
317
|
-
:
|
|
318
|
-
:returns True if and only if the value of the given key has a specified data type
|
|
319
|
+
:param key:
|
|
320
|
+
:returns: True if and only if the value of the given key has a specified data type
|
|
319
321
|
"""
|
|
320
322
|
return key in self.typed_dict
|
|
321
323
|
|
|
322
|
-
def is_true(self, key, default=False):
|
|
324
|
+
def is_true(self, key: str, default: bool = False) -> bool:
|
|
323
325
|
"""
|
|
324
|
-
:param
|
|
325
|
-
:param
|
|
326
|
+
:param key:
|
|
327
|
+
:param default:
|
|
326
328
|
:return: bool(value) if it is set or default
|
|
327
|
-
:rtype: bool
|
|
328
329
|
"""
|
|
329
330
|
if self.is_typed(key):
|
|
330
331
|
return bool(self.typed_dict[key])
|
|
331
332
|
return self.bool(key, default=default)
|
|
332
333
|
|
|
333
|
-
def is_of_type(self, key, types):
|
|
334
|
+
def is_of_type(self, key: str, types: Union[type, Tuple[type, ...]]) -> bool:
|
|
334
335
|
"""
|
|
335
|
-
:param
|
|
336
|
-
:param
|
|
336
|
+
:param key:
|
|
337
|
+
:param types: for isinstance() check
|
|
337
338
|
:return: whether is_typed(key) is True and isinstance(value, types) is True
|
|
338
|
-
:rtype: bool
|
|
339
339
|
"""
|
|
340
340
|
if key in self.typed_dict:
|
|
341
341
|
return isinstance(self.typed_dict[key], types)
|
|
342
342
|
return False
|
|
343
343
|
|
|
344
|
-
def get_of_type(self, key, types, default=None):
|
|
344
|
+
def get_of_type(self, key: str, types: Union[type, Tuple[type, ...], Type[T]], default: Optional[T] = None) -> T:
|
|
345
345
|
"""
|
|
346
346
|
:param str key:
|
|
347
|
-
:param
|
|
348
|
-
:param
|
|
347
|
+
:param types: for isinstance() check
|
|
348
|
+
:param default:
|
|
349
349
|
:return: if is_of_type(key, types) is True, returns the value, otherwise default
|
|
350
|
-
:rtype: T
|
|
351
350
|
"""
|
|
352
351
|
if self.is_of_type(key, types):
|
|
353
352
|
return self.typed_dict[key]
|
|
354
353
|
return default
|
|
355
354
|
|
|
356
|
-
def set(self, key, value):
|
|
355
|
+
def set(self, key: str, value: Any):
|
|
357
356
|
"""
|
|
358
|
-
:
|
|
359
|
-
:
|
|
357
|
+
:param key:
|
|
358
|
+
:param value:
|
|
360
359
|
"""
|
|
361
360
|
self.typed_dict[key] = value
|
|
362
361
|
|
|
363
|
-
def update(self, dikt):
|
|
362
|
+
def update(self, dikt: Dict[str, Any]):
|
|
364
363
|
"""
|
|
365
|
-
:
|
|
364
|
+
:param dikt: dict
|
|
366
365
|
"""
|
|
367
366
|
for key, value in dikt.items():
|
|
368
367
|
self.set(key, value)
|
|
@@ -383,13 +382,12 @@ class Config:
|
|
|
383
382
|
|
|
384
383
|
setattr(self, "value", wrapped_value_func)
|
|
385
384
|
|
|
386
|
-
def value(self, key, default, index=None, list_join_str=","):
|
|
385
|
+
def value(self, key: str, default: T, index: Optional[int] = None, list_join_str: str = ",") -> Union[T, str]:
|
|
387
386
|
"""
|
|
388
|
-
:
|
|
389
|
-
:
|
|
390
|
-
:
|
|
391
|
-
:param
|
|
392
|
-
:rtype: str | T
|
|
387
|
+
:param key:
|
|
388
|
+
:param default:
|
|
389
|
+
:param index:
|
|
390
|
+
:param list_join_str:
|
|
393
391
|
"""
|
|
394
392
|
if key in self.typed_dict:
|
|
395
393
|
ls = self.typed_dict[key]
|
|
@@ -410,12 +408,11 @@ class Config:
|
|
|
410
408
|
return ls[index]
|
|
411
409
|
return default
|
|
412
410
|
|
|
413
|
-
def typed_value(self, key, default=None, index=None):
|
|
411
|
+
def typed_value(self, key: str, default: Optional[T] = None, index: Optional[int] = None) -> Union[T, Any]:
|
|
414
412
|
"""
|
|
415
|
-
:
|
|
416
|
-
:
|
|
417
|
-
:
|
|
418
|
-
:rtype: T | typing.Any
|
|
413
|
+
:param key:
|
|
414
|
+
:param default:
|
|
415
|
+
:param index:
|
|
419
416
|
"""
|
|
420
417
|
value = self.typed_dict.get(key, default)
|
|
421
418
|
if index is not None:
|
|
@@ -426,23 +423,22 @@ class Config:
|
|
|
426
423
|
assert index == 0
|
|
427
424
|
return value
|
|
428
425
|
|
|
429
|
-
def opt_typed_value(self, key, default=None):
|
|
426
|
+
def opt_typed_value(self, key: str, default: Optional[T] = None) -> Union[T, Any, str]:
|
|
430
427
|
"""
|
|
431
|
-
:param
|
|
432
|
-
:param
|
|
433
|
-
:rtype: T|object|str|None
|
|
428
|
+
:param key:
|
|
429
|
+
:param default:
|
|
434
430
|
"""
|
|
435
431
|
if key in self.typed_dict:
|
|
436
432
|
return self.typed_dict[key]
|
|
437
433
|
return self.value(key, default)
|
|
438
434
|
|
|
439
|
-
def int(self, key, default, index=0):
|
|
435
|
+
def int(self, key: str, default: T, index: int = 0) -> Union[int, T]:
|
|
440
436
|
"""
|
|
441
437
|
Parses the value of the given key as integer, returning default if not existent
|
|
442
|
-
|
|
443
|
-
:
|
|
444
|
-
:
|
|
445
|
-
:
|
|
438
|
+
|
|
439
|
+
:param key:
|
|
440
|
+
:param default:
|
|
441
|
+
:param index:
|
|
446
442
|
"""
|
|
447
443
|
if key in self.typed_dict:
|
|
448
444
|
value = self.typed_value(key, default=default, index=index)
|
|
@@ -453,13 +449,13 @@ class Config:
|
|
|
453
449
|
return int(self.value(key, default, index))
|
|
454
450
|
return default
|
|
455
451
|
|
|
456
|
-
def bool(self, key, default, index=0):
|
|
452
|
+
def bool(self, key: str, default: T, index: int = 0) -> Union[bool, T]:
|
|
457
453
|
"""
|
|
458
454
|
Parses the value of the given key as boolean, returning default if not existent
|
|
459
|
-
|
|
460
|
-
:
|
|
461
|
-
:
|
|
462
|
-
:
|
|
455
|
+
|
|
456
|
+
:param key:
|
|
457
|
+
:param default:
|
|
458
|
+
:param index:
|
|
463
459
|
"""
|
|
464
460
|
if key in self.typed_dict:
|
|
465
461
|
value = self.typed_value(key, default=default, index=index)
|
|
@@ -477,13 +473,12 @@ class Config:
|
|
|
477
473
|
|
|
478
474
|
return to_bool(v)
|
|
479
475
|
|
|
480
|
-
def bool_or_other(self, key, default=None, index=0):
|
|
476
|
+
def bool_or_other(self, key: str, default: Optional[T] = None, index: int = 0) -> Union[bool, T, Any]:
|
|
481
477
|
"""
|
|
482
|
-
:param
|
|
483
|
-
:param
|
|
484
|
-
:param
|
|
478
|
+
:param key:
|
|
479
|
+
:param default:
|
|
480
|
+
:param index:
|
|
485
481
|
:return: if we have typed value, just as-is. otherwise try to convert to bool. or default if not there.
|
|
486
|
-
:rtype: bool|T|object
|
|
487
482
|
"""
|
|
488
483
|
if key in self.typed_dict:
|
|
489
484
|
return self.typed_value(key, default=default, index=index)
|
|
@@ -499,13 +494,13 @@ class Config:
|
|
|
499
494
|
except ValueError:
|
|
500
495
|
return v
|
|
501
496
|
|
|
502
|
-
def float(self, key, default, index=0):
|
|
497
|
+
def float(self, key: str, default: T, index: int = 0) -> Union[float, T]:
|
|
503
498
|
"""
|
|
504
499
|
Parses the value of the given key as float, returning default if not existent
|
|
505
|
-
|
|
506
|
-
:
|
|
507
|
-
:
|
|
508
|
-
:
|
|
500
|
+
|
|
501
|
+
:param key:
|
|
502
|
+
:param default:
|
|
503
|
+
:param index:
|
|
509
504
|
"""
|
|
510
505
|
if key in self.typed_dict:
|
|
511
506
|
value = self.typed_value(key, default=default, index=index)
|
|
@@ -519,11 +514,10 @@ class Config:
|
|
|
519
514
|
assert isinstance(value, (int, float))
|
|
520
515
|
return value
|
|
521
516
|
|
|
522
|
-
def list(self, key, default=None):
|
|
517
|
+
def list(self, key: str, default: Optional[T] = None) -> Union[List[str], T]:
|
|
523
518
|
"""
|
|
524
|
-
:
|
|
525
|
-
:
|
|
526
|
-
:rtype: list[str] | T
|
|
519
|
+
:param key:
|
|
520
|
+
:param default:
|
|
527
521
|
"""
|
|
528
522
|
if default is None:
|
|
529
523
|
default = []
|
|
@@ -538,11 +532,10 @@ class Config:
|
|
|
538
532
|
return default
|
|
539
533
|
return self.dict[key]
|
|
540
534
|
|
|
541
|
-
def int_list(self, key, default=None):
|
|
535
|
+
def int_list(self, key: str, default: Optional[T] = None) -> Union[List[int], T]:
|
|
542
536
|
"""
|
|
543
|
-
:
|
|
544
|
-
:
|
|
545
|
-
:rtype: list[int] | T
|
|
537
|
+
:param key:
|
|
538
|
+
:param default:
|
|
546
539
|
"""
|
|
547
540
|
if default is None:
|
|
548
541
|
default = []
|
|
@@ -557,11 +550,10 @@ class Config:
|
|
|
557
550
|
return list(value)
|
|
558
551
|
return [int(x) for x in self.list(key, default)]
|
|
559
552
|
|
|
560
|
-
def float_list(self, key, default=None):
|
|
553
|
+
def float_list(self, key: str, default: Optional[T] = None) -> Union[List[float], T]:
|
|
561
554
|
"""
|
|
562
|
-
:
|
|
563
|
-
:
|
|
564
|
-
:rtype: list[float] | T
|
|
555
|
+
:param key:
|
|
556
|
+
:param default:
|
|
565
557
|
"""
|
|
566
558
|
if default is None:
|
|
567
559
|
default = []
|
|
@@ -576,11 +568,10 @@ class Config:
|
|
|
576
568
|
return list(value)
|
|
577
569
|
return [float(x) for x in self.list(key, default)]
|
|
578
570
|
|
|
579
|
-
def int_pair(self, key, default=None):
|
|
571
|
+
def int_pair(self, key: str, default: Optional[Tuple[int, int]] = None) -> Tuple[int, int]:
|
|
580
572
|
"""
|
|
581
|
-
:param
|
|
582
|
-
:param
|
|
583
|
-
:rtype: (int,int)
|
|
573
|
+
:param key:
|
|
574
|
+
:param default:
|
|
584
575
|
"""
|
|
585
576
|
if default is None:
|
|
586
577
|
default = (0, 0)
|
|
@@ -176,7 +176,7 @@ class DimWrapper:
|
|
|
176
176
|
# We need some ref to the dyn size, and finalize this key when it goes out of scope.
|
|
177
177
|
# This is only needed when there is no info on the static size (or eager scalar dyn size).
|
|
178
178
|
ref(dim.dyn_size_ext.raw_tensor, finalize_callback)
|
|
179
|
-
if self.dim_value is None and dim.dyn_size_ext and dim.dyn_size_ext.raw_tensor is not None
|
|
179
|
+
if self.dim_value is None and dim.dyn_size_ext is not None and dim.dyn_size_ext.raw_tensor is not None
|
|
180
180
|
else None
|
|
181
181
|
)
|
|
182
182
|
self._hash = hash(dim) if self.dim_value is None else hash(self.dim_value)
|
|
@@ -195,7 +195,7 @@ class DimWrapper:
|
|
|
195
195
|
def _dim_value_for_key(dim: Dim) -> Optional[int]:
|
|
196
196
|
if dim.size is not None:
|
|
197
197
|
return dim.size
|
|
198
|
-
if dim.dyn_size_ext and not dim.dyn_size_ext.dims:
|
|
198
|
+
if dim.dyn_size_ext is not None and not dim.dyn_size_ext.dims:
|
|
199
199
|
if dim.dyn_size_ext.raw_tensor is not None:
|
|
200
200
|
# noinspection PyProtectedMember
|
|
201
201
|
if dim.dyn_size_ext._raw_backend.executing_eagerly():
|
{returnn-1.20250122.134518 → returnn-1.20250123.173545}/returnn/frontend/_native/__init__.py
RENAMED
|
@@ -112,6 +112,8 @@ def setup():
|
|
|
112
112
|
for name, cur_func in _TensorOpOverloadsMixin.__dict__.items(): # just all of them
|
|
113
113
|
if not callable(cur_func):
|
|
114
114
|
continue
|
|
115
|
+
if name in {"__bool__"}: # some exceptions
|
|
116
|
+
continue
|
|
115
117
|
assert name.startswith("__") and name.endswith("__")
|
|
116
118
|
native_func = getattr(mod, "_tensor_" + name[2:-2] + "_instancemethod")
|
|
117
119
|
assert callable(native_func)
|
|
@@ -58,7 +58,7 @@ class RandomJournal:
|
|
|
58
58
|
"""read next"""
|
|
59
59
|
assert self._cur_entry_idx < len(self._entries)
|
|
60
60
|
entry = self._entries[self._cur_entry_idx]
|
|
61
|
-
if new_out_template:
|
|
61
|
+
if new_out_template is not None:
|
|
62
62
|
assert new_out_template.dtype == entry.out.dtype, (
|
|
63
63
|
f"random journal entry dtype mismatch,"
|
|
64
64
|
f" expected {new_out_template}, got {entry.out} at index {self._cur_entry_idx}"
|
|
@@ -649,7 +649,7 @@ def make_conv_out_spatial_dims(
|
|
|
649
649
|
assert isinstance(out_spatial_dim, Dim)
|
|
650
650
|
if description_prefix and out_spatial_dim != in_spatial_dim:
|
|
651
651
|
out_spatial_dim.name = f"{description_prefix}:spatial{i}"
|
|
652
|
-
if in_spatial_dim.dyn_size_ext and out_spatial_dim.dyn_size_ext is None:
|
|
652
|
+
if in_spatial_dim.dyn_size_ext is not None and out_spatial_dim.dyn_size_ext is None:
|
|
653
653
|
out_spatial_dim.dyn_size_ext = _calc_out_dim(
|
|
654
654
|
in_dim=in_spatial_dim.dyn_size_ext,
|
|
655
655
|
filter_size=filter_size[i],
|
|
@@ -166,7 +166,7 @@ def num_elements_of_shape(
|
|
|
166
166
|
for j, dim_ in enumerate(dims):
|
|
167
167
|
if i == j:
|
|
168
168
|
continue
|
|
169
|
-
if dim_.dyn_size_ext and dim in dim_.dyn_size_ext.dims:
|
|
169
|
+
if dim_.dyn_size_ext is not None and dim in dim_.dyn_size_ext.dims:
|
|
170
170
|
related_dims.append(dim_)
|
|
171
171
|
if not related_dims:
|
|
172
172
|
if dim.is_static():
|
|
@@ -52,7 +52,7 @@ class LSTM(rf.Module):
|
|
|
52
52
|
:return: output of shape {...,out_dim} if spatial_dim is single_step_dim else {...,spatial_dim,out_dim},
|
|
53
53
|
and new state of the LSTM.
|
|
54
54
|
"""
|
|
55
|
-
if
|
|
55
|
+
if state.h is None or state.c is None:
|
|
56
56
|
raise ValueError(f"{self}: state {state} needs attributes ``h`` (hidden) and ``c`` (cell).")
|
|
57
57
|
if self.in_dim not in source.dims:
|
|
58
58
|
raise ValueError(f"{self}: input {source} does not have in_dim {self.in_dim}")
|
|
@@ -188,7 +188,7 @@ class ZoneoutLSTM(LSTM):
|
|
|
188
188
|
:return: output of shape {...,out_dim} if spatial_dim is single_step_dim else {...,spatial_dim,out_dim},
|
|
189
189
|
and new state of the LSTM.
|
|
190
190
|
"""
|
|
191
|
-
if
|
|
191
|
+
if state.h is None or state.c is None:
|
|
192
192
|
raise ValueError(f"{self}: state {state} needs attributes ``h`` (hidden) and ``c`` (cell).")
|
|
193
193
|
if self.in_dim not in source.dims:
|
|
194
194
|
raise ValueError(f"{self}: input {source} does not have in_dim {self.in_dim}")
|
|
@@ -272,9 +272,9 @@ class RunCtx:
|
|
|
272
272
|
assert dims is None or (
|
|
273
273
|
isinstance(dims, (list, tuple)) and all(isinstance(dim, Dim) for dim in dims)
|
|
274
274
|
), f"dims should be a tuple of Dims, got {dims}"
|
|
275
|
-
if dims is None and expected_output:
|
|
275
|
+
if dims is None and expected_output is not None:
|
|
276
276
|
dims = expected_output.dims
|
|
277
|
-
if dims is not None and expected_output:
|
|
277
|
+
if dims is not None and expected_output is not None:
|
|
278
278
|
assert expected_output.dims == tuple(
|
|
279
279
|
dims
|
|
280
280
|
), f"mark_as_output: {name!r} dims mismatch from expected output, given {dims}, expected {expected_output}"
|
|
@@ -304,7 +304,7 @@ class RunCtx:
|
|
|
304
304
|
assert name not in self.outputs.data
|
|
305
305
|
self.outputs.data[name] = tensor
|
|
306
306
|
|
|
307
|
-
if expected_output:
|
|
307
|
+
if expected_output is not None:
|
|
308
308
|
# Perform sanity checks using the expected output.
|
|
309
309
|
# The expected output usually comes from `model_outputs` from the user config.
|
|
310
310
|
# The dimensions of `expected_output` and `tensor` should match,
|
|
@@ -429,7 +429,7 @@ class Loss:
|
|
|
429
429
|
"""
|
|
430
430
|
if self._mean_loss_cached is not None:
|
|
431
431
|
return self._mean_loss_cached
|
|
432
|
-
if self.custom_inv_norm_factor:
|
|
432
|
+
if self.custom_inv_norm_factor is not None:
|
|
433
433
|
loss = self.get_summed_loss()
|
|
434
434
|
inv_norm = rf.reduce_sum(self.custom_inv_norm_factor, axis=self.custom_inv_norm_factor.dims)
|
|
435
435
|
inv_norm = rf.cast(inv_norm, loss.dtype)
|
|
@@ -446,7 +446,7 @@ class Loss:
|
|
|
446
446
|
"""
|
|
447
447
|
:return: inverse norm factor (scalar)
|
|
448
448
|
"""
|
|
449
|
-
if self.custom_inv_norm_factor:
|
|
449
|
+
if self.custom_inv_norm_factor is not None:
|
|
450
450
|
if self.custom_inv_norm_factor.dims:
|
|
451
451
|
return rf.reduce_sum(self.custom_inv_norm_factor, axis=self.custom_inv_norm_factor.dims)
|
|
452
452
|
return self.custom_inv_norm_factor
|
|
@@ -500,7 +500,7 @@ def _output_tensor_from_raw(raw_tensor, *, dims: Optional[Sequence[Dim]], name:
|
|
|
500
500
|
assert isinstance(raw_tensor, _backend.global_backend.RawTensorType)
|
|
501
501
|
tensor = rf.convert_to_tensor(raw_tensor, dims=dims)
|
|
502
502
|
for axis, dim in enumerate(tensor.dims):
|
|
503
|
-
if dim.dyn_size_ext and dim.dyn_size_ext.raw_tensor is None:
|
|
503
|
+
if dim.dyn_size_ext is not None and dim.dyn_size_ext.raw_tensor is None:
|
|
504
504
|
# Only non-scalar dyn sizes matter.
|
|
505
505
|
if dim.dyn_size_ext.dims:
|
|
506
506
|
raise Exception(
|