returnn 1.20250226.104737__tar.gz → 1.20250226.132109__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.20250226.104737/returnn.egg-info → returnn-1.20250226.132109}/PKG-INFO +1 -1
- returnn-1.20250226.132109/_setup_info_generated.py +2 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/array_.py +22 -5
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/conv.py +38 -12
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/dims.py +40 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/normalization.py +3 -4
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/signal.py +8 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/util/debug_inf_nan.py +17 -13
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/basic.py +1 -1
- {returnn-1.20250226.104737 → returnn-1.20250226.132109/returnn.egg-info}/PKG-INFO +1 -1
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/rf_utils.py +11 -1
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_array.py +8 -1
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_encoder_conformer.py +4 -1
- returnn-1.20250226.104737/_setup_info_generated.py +0 -2
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/.editorconfig +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/.gitignore +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/.gitmodules +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/.kateconfig +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/CHANGELOG.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/CODEOWNERS +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/CONTRIBUTING.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/LICENSE +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/MANIFEST.in +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/README.rst +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/12AX.cluster_map +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/_setup_returnn_env.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-fwd.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-horovod-mpi.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-horovod-mpi.py.sh +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-horovod-mpi.sh +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-hyper-param-tuning.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-iter-dataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-list-devices.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-lua-torch-layer.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-pretrain.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-record-and-push-to-webserver.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-returnn-as-framework.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-rf-pt-benchmark.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-rf.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-rhn-enwik8.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-sprint-interface.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-att-copy.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-attention.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-enc-dec.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-hard-att-copy.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-lstm-benchmark.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm.12ax.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm2.12ax.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-neural-transducer.12ax.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-rec-explicit-lstm.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-rec-explicit-rnn.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-rec-self-att.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-search-compiled-graph.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-timit-lstm-ctc.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-torch.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo.sh +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/README.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/chars.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/config_demo +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/config_fwd +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/config_real +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/decode.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/go.sh +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/lines.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/split/eval.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/split/train.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/split/valid.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/README.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/artificial/create_test_h5.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/artificial/forwardconfig +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/artificial/go.sh +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/artificial/trainconfig +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/artificial_rgb/go.sh +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/pyproject.toml +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/requirements.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/__main__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/__old_mod_loader__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/__setup__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/config.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/audio.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/basic.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/bundle_file.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/cached.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/cached2.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/distrib_files.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/generating.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/hdf.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/lm.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/map.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/meta.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/multi_proc.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/normalization_data.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/numpy_dump.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/postprocessing.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/raw_wav.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/sprint.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/stereo.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/text_dict.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/util/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/util/feature_extraction.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/util/strings.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/datasets/util/vocabulary.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/engine/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/engine/base.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/engine/batch.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/__main__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/.git +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/graph_editor/README.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/graph_editor/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/graph_editor/edit.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/graph_editor/reroute.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/graph_editor/select.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/graph_editor/subgraph.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/graph_editor/transform.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/extern/graph_editor/util.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/forward_iface.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_backend.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_cache.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_native/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_native/backend.cpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_native/backend.hpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_native/module.cpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_native/module.hpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_native/py_utils.hpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_native/tensor_ops.cpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_native/tensor_ops.hpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_numpy_backend.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_random_journal.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/_utils.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/attention.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/audio/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/audio/mel.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/audio/specaugment.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/backend.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/build_from_dict.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/cond.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/const.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/container.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/control_flow_ctx.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/conversions/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/conversions/espnet_e_branchformer.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/conversions/hf_llama.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/conversions/torch_nn.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/decoder/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/decoder/transformer.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/device.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/dropout.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/dtype.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/encoder/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/encoder/base.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/encoder/conformer.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/encoder/conformer_v2.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/encoder/e_branchformer.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/encoder/transformer.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/gradient.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/graph.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/hooks.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/init.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/label_smoothing.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/linear.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/loop.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/loss.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/math_.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/matmul.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/module.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/nested.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/parameter.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/parametrizations.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/parametrize.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/piecewise_linear.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/rand.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/rec.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/reduce.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/run_ctx.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/state.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/stepwise_scheduler.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/tensor_array.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/frontend/types.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/import_/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/import_/common.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/import_/git.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/import_/import_.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/learning_rate_control.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/log.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/native_op.cpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/native_op.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/pretrain.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/sprint/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/sprint/cache.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/sprint/control.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/sprint/error_signals.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/sprint/extern_interface.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/sprint/interface.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/README.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/_dim_extra.py +4 -4
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/_tensor_extra.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/_tensor_mixin_base.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/_tensor_op_overloads.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/control_flow_ctx.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/dim.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/marked_dim.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/tensor.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/tensor_dict.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tensor/utils.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/compat.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/data_pipeline.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/distributed.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/engine.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/README.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/_backend.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/_utils.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/cond.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/dims.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/layer.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/loop.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/make_layer.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/masked_computation.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_low_level/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/frontend_low_level/_backend.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/horovod.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/hyper_param_tuning.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/layers/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/layers/base.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/layers/basic.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/layers/rec.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/layers/segmental_model.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/layers/signal_processing.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/layers/variable.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/native_op.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/network.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/sprint.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/updater.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/util/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/util/basic.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/util/data.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/util/gradient_checkpoint.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/util/ken_lm.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/tf/util/open_fst.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/README.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/data/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/data/extern_data.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/data/pipeline.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/data/queued_data_iter.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/data/tensor_utils.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/distributed.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/engine.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/frontend/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/frontend/_backend.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/frontend/_rand.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/frontend/bridge.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/frontend/raw_ops.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/optim/README.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/optim/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/optim/lion.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/updater.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/util/README.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/util/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/util/array_.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/util/diagnose_gpu.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/util/exception_helper.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/util/gradient_checkpoint.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/util/module.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/torch/util/scaled_gradient.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/__init__.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/better_exchook.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/bpe.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/debug.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/debug_helpers.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/file_cache.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/fsa.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/literal_py_to_pickle.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/lru_cache.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/math.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/native_code_compiler.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/pprint.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/py-to-pickle.cpp +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/py_ext_mod_compiler.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/result_with_reason.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/sig_proc.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/task_system.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/train_proc_manager.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn/util/watch_memory.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn.egg-info/SOURCES.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn.egg-info/dependency_links.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn.egg-info/requires.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/returnn.egg-info/top_level.txt +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/rnn.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/setup.cfg +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/setup.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/DummySprintExec.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm-inspection-profile.xml +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm.idea/.gitignore +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm.idea/.name +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm.idea/misc.xml +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm.idea/modules.xml +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm.idea/returnn.iml +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/_set_num_threads1.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/_setup_returnn_env.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/_setup_test_env.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/bpe-unicode-demo.codes +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/bpe-unicode-demo.vocab +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/lexicon_opt.fst +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/lexicon_opt.isyms +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/lexicon_opt.jpg +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/lexicon_opt.osyms +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/lint_common.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/pycharm-inspect.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/pylint.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/returnn-as-framework.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/spelling.dic +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_Config.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_Dataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_Fsa.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_GeneratingDataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_HDFDataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_LearningRateControl.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_Log.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_MultiProcDataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_Pretrain.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_ResNet.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_SprintDataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_SprintInterface.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_TFEngine.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_TFNativeOp.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_TFNetworkLayer.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_TFNetworkRecLayer.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_TFNetworkSigProcLayer.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_TFUpdater.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_TFUtil.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_TF_determinism.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_TaskSystem.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_TaskSystem_SharedMem.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_TranslationDataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_Util.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_demos.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_fork_exec.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_hdf_dump.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_attention.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_base.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_cond.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_const.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_container.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_conv.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_decoder_transformer.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_gradient.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_label_smoothing.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_loop.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_math.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_normalization.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_piecewise_linear.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_rec.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_reduce.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_rf_signal.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_tensor.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_threading.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_tools.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_torch_dataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_torch_engine.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_torch_frontend.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_torch_internal_frontend.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/test_torch_util.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tests/torch_utils.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/_setup_returnn_env.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/analyze-dataset-batches.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/bliss-collect-seq-lens.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/bliss-dump-text.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/bliss-get-segment-names.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/bliss-to-ogg-zip.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/bpe-create-lexicon.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/calculate-word-error-rate.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/cleanup-old-models.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/collect-orth-symbols.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/collect-words.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/compile_native_op.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/compile_tf_graph.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/debug-dump-search-scores.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/debug-plot-search-scores.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/dump-dataset-raw-strings.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/dump-dataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/dump-forward-stats.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/dump-forward.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/dump-network-json.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/dump-pickle.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/extract_state_tying_from_dataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/get-attention-weights.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/get-best-model-epoch.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/hdf_dump.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/hdf_dump_translation_dataset.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/import-blocks-mt-model.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/import-t2t-mt-model.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/.gitignore +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/Makefile +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/README.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/README.md +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/libs_list +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/state_vars_list +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/tensor_names_list +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/file.h +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/main.cc +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/rescorer.h +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/vocabulary.cc +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/lattice_rescorer/vocabulary.h +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/tf_avg_checkpoints.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/tf_inspect_checkpoint.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/tf_inspect_summary_log.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/torch_avg_checkpoints.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/torch_export_to_onnx.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/torch_inspect_checkpoint.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
- {returnn-1.20250226.104737 → returnn-1.20250226.132109}/tools/torch_scale_tuning.py +0 -0
|
@@ -325,6 +325,7 @@ def window(
|
|
|
325
325
|
padding: str = "same",
|
|
326
326
|
pad_value: Optional[Union[int, float]] = None,
|
|
327
327
|
stride: int = 1,
|
|
328
|
+
use_mask: Optional[bool] = None,
|
|
328
329
|
) -> Tuple[Tensor, Dim]:
|
|
329
330
|
"""
|
|
330
331
|
Follows the same idea as RETURNN tf_util.windowed,
|
|
@@ -338,8 +339,14 @@ def window(
|
|
|
338
339
|
:param padding: "same" or "valid"
|
|
339
340
|
:param pad_value:
|
|
340
341
|
:param stride:
|
|
342
|
+
:param use_mask: whether we should mask to make sure the zero padding is correct
|
|
341
343
|
:return: out, out_spatial_dim
|
|
342
344
|
"""
|
|
345
|
+
if spatial_dim.need_masking():
|
|
346
|
+
if use_mask is None:
|
|
347
|
+
use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
|
|
348
|
+
if use_mask:
|
|
349
|
+
source = source.copy_masked(0, dims=[spatial_dim])
|
|
343
350
|
assert window_dim.dimension is not None
|
|
344
351
|
if padding == "same":
|
|
345
352
|
out_spatial_dim = spatial_dim
|
|
@@ -784,6 +791,7 @@ def scatter(
|
|
|
784
791
|
mode: str = "sum",
|
|
785
792
|
fill_value: Optional[Union[int, float]] = None,
|
|
786
793
|
out_dim: Optional[Union[Dim, Sequence[Dim]]] = None,
|
|
794
|
+
use_mask: Optional[bool] = None,
|
|
787
795
|
) -> Tensor:
|
|
788
796
|
"""
|
|
789
797
|
Scatters into new zero-tensor.
|
|
@@ -806,6 +814,7 @@ def scatter(
|
|
|
806
814
|
If not given, will be automatically determined as the sparse_dim from indices.
|
|
807
815
|
If multiple out dims, use indices into the merged out dims,
|
|
808
816
|
and then we use :func:`rf.split_dims` afterwards.
|
|
817
|
+
:param use_mask:
|
|
809
818
|
:return: [batch_dims..., out_dim(s)..., feature_dims...]
|
|
810
819
|
"""
|
|
811
820
|
if mode == "logsumexp":
|
|
@@ -826,24 +835,32 @@ def scatter(
|
|
|
826
835
|
fill_value = 0
|
|
827
836
|
elif mode == "max":
|
|
828
837
|
if "int" in source.dtype:
|
|
829
|
-
import numpy
|
|
830
|
-
|
|
831
838
|
fill_value = numpy.iinfo(source.raw_tensor.dtype).min
|
|
832
839
|
else:
|
|
833
840
|
fill_value = float("-inf")
|
|
834
841
|
elif mode == "min":
|
|
835
842
|
if "int" in source.dtype:
|
|
836
|
-
import numpy
|
|
837
|
-
|
|
838
843
|
fill_value = numpy.iinfo(source.raw_tensor.dtype).max
|
|
839
844
|
else:
|
|
840
845
|
fill_value = float("inf")
|
|
841
846
|
else:
|
|
842
847
|
raise ValueError(f"scatter: invalid mode {mode!r}")
|
|
848
|
+
indices_dim = indices_dim if isinstance(indices_dim, (list, tuple)) else [indices_dim]
|
|
849
|
+
if any(dim.need_masking() for dim in indices_dim):
|
|
850
|
+
if use_mask is None:
|
|
851
|
+
use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
|
|
852
|
+
if use_mask:
|
|
853
|
+
source = source.copy_masked(fill_value, dims=indices_dim)
|
|
854
|
+
else:
|
|
855
|
+
use_mask = False
|
|
843
856
|
# noinspection PyProtectedMember
|
|
844
|
-
|
|
857
|
+
out = source._raw_backend.scatter(
|
|
845
858
|
source, indices=indices, indices_dim=indices_dim, mode=mode, fill_value=fill_value, out_dim=out_dim
|
|
846
859
|
)
|
|
860
|
+
if use_mask and mode != "sum":
|
|
861
|
+
# Make sure we don't leave any infinities in the output.
|
|
862
|
+
out = out.copy_masked(0, dims=[out_dim])
|
|
863
|
+
return out
|
|
847
864
|
|
|
848
865
|
|
|
849
866
|
def scatter_argmax(
|
|
@@ -34,8 +34,8 @@ class _ConvOrTransposedConv(rf.Module):
|
|
|
34
34
|
Base class for both convolution and transposed convolution.
|
|
35
35
|
"""
|
|
36
36
|
|
|
37
|
-
nd: Optional[int] = None
|
|
38
|
-
_transposed: bool
|
|
37
|
+
nd: Optional[int] = None # set in the subclasses, e.g. 1 for Conv1d, etc
|
|
38
|
+
_transposed: bool # set in the subclasses _Conv or _TransposedConv
|
|
39
39
|
groups: Optional[int] = None
|
|
40
40
|
|
|
41
41
|
def __init__(
|
|
@@ -187,8 +187,14 @@ def conv(
|
|
|
187
187
|
dilation_rate: Optional[Union[int, Sequence[int]]] = None,
|
|
188
188
|
groups: Optional[int] = None,
|
|
189
189
|
bias: Optional[Tensor] = None,
|
|
190
|
+
use_mask: Optional[bool] = None,
|
|
190
191
|
) -> Tuple[Tensor, Sequence[Dim]]:
|
|
191
192
|
"""convolution"""
|
|
193
|
+
if any(in_spatial_dim.need_masking() for in_spatial_dim in in_spatial_dims):
|
|
194
|
+
if use_mask is None:
|
|
195
|
+
use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
|
|
196
|
+
if use_mask:
|
|
197
|
+
source = source.copy_masked(0, dims=in_spatial_dims)
|
|
192
198
|
for in_spatial_dim in in_spatial_dims:
|
|
193
199
|
if in_spatial_dim not in source.dims:
|
|
194
200
|
raise ValueError(f"conv: source {source} does not have spatial dim {in_spatial_dim}")
|
|
@@ -345,8 +351,14 @@ def transposed_conv(
|
|
|
345
351
|
output_padding: Optional[Union[Sequence[Optional[int]], int]] = None,
|
|
346
352
|
strides: Optional[Sequence[int]] = None,
|
|
347
353
|
bias: Optional[Tensor] = None,
|
|
354
|
+
use_mask: Optional[bool] = None,
|
|
348
355
|
) -> Tuple[Tensor, Sequence[Dim]]:
|
|
349
356
|
"""transposed conv"""
|
|
357
|
+
if any(in_spatial_dim.need_masking() for in_spatial_dim in in_spatial_dims):
|
|
358
|
+
if use_mask is None:
|
|
359
|
+
use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
|
|
360
|
+
if use_mask:
|
|
361
|
+
source = source.copy_masked(0, dims=in_spatial_dims)
|
|
350
362
|
# noinspection PyProtectedMember
|
|
351
363
|
out, out_spatial_dims = source._raw_backend.transposed_conv(
|
|
352
364
|
source=source,
|
|
@@ -394,6 +406,7 @@ class TransposedConv3d(_TransposedConv):
|
|
|
394
406
|
def pool(
|
|
395
407
|
source: Tensor,
|
|
396
408
|
*,
|
|
409
|
+
nd: Optional[int] = None,
|
|
397
410
|
mode: str,
|
|
398
411
|
pool_size: Union[Sequence[int], int],
|
|
399
412
|
padding: str = "valid",
|
|
@@ -401,22 +414,23 @@ def pool(
|
|
|
401
414
|
strides: Optional[Union[Sequence[int], int]] = None,
|
|
402
415
|
in_spatial_dims: Union[Sequence[Dim], Dim],
|
|
403
416
|
out_spatial_dims: Optional[Union[Sequence[Dim], Dim]] = None,
|
|
404
|
-
|
|
417
|
+
use_mask: Optional[bool] = None,
|
|
405
418
|
) -> Tuple[Tensor, Sequence[Dim]]:
|
|
406
419
|
"""
|
|
407
420
|
A generic N-D pooling layer.
|
|
408
421
|
This would usually be done after a convolution for down-sampling.
|
|
409
422
|
|
|
410
|
-
:param
|
|
423
|
+
:param source:
|
|
411
424
|
:param nd:
|
|
412
|
-
:param
|
|
413
|
-
:param
|
|
414
|
-
:param
|
|
415
|
-
:param
|
|
416
|
-
:param
|
|
417
|
-
:param
|
|
418
|
-
:param
|
|
419
|
-
:
|
|
425
|
+
:param mode: "max" or "avg"
|
|
426
|
+
:param pool_size: shape of the window of each reduce
|
|
427
|
+
:param padding: "valid" or "same"
|
|
428
|
+
:param dilation_rate:
|
|
429
|
+
:param strides: in contrast to tf.nn.pool, the default (if it is None) will be set to pool_size
|
|
430
|
+
:param in_spatial_dims:
|
|
431
|
+
:param out_spatial_dims:
|
|
432
|
+
:param use_mask:
|
|
433
|
+
:return: out, out_spatial_dims
|
|
420
434
|
"""
|
|
421
435
|
if isinstance(in_spatial_dims, Dim):
|
|
422
436
|
in_spatial_dims = [in_spatial_dims]
|
|
@@ -440,6 +454,14 @@ def pool(
|
|
|
440
454
|
assert isinstance(strides, (list, tuple))
|
|
441
455
|
assert len(strides) == nd
|
|
442
456
|
|
|
457
|
+
if any(in_spatial_dim.need_masking() for in_spatial_dim in in_spatial_dims):
|
|
458
|
+
if use_mask is None:
|
|
459
|
+
use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
|
|
460
|
+
if use_mask:
|
|
461
|
+
source = source.copy_masked({"max": float("-inf"), "avg": 0}[mode], dims=in_spatial_dims)
|
|
462
|
+
else:
|
|
463
|
+
use_mask = False
|
|
464
|
+
|
|
443
465
|
# noinspection PyProtectedMember
|
|
444
466
|
out, out_spatial_dims = source._raw_backend.pool(
|
|
445
467
|
source=source,
|
|
@@ -451,6 +473,10 @@ def pool(
|
|
|
451
473
|
in_spatial_dims=in_spatial_dims,
|
|
452
474
|
out_spatial_dims=out_spatial_dims,
|
|
453
475
|
)
|
|
476
|
+
if use_mask and mode == "max":
|
|
477
|
+
# We masked with -inf for max-pooling to get correct pooling at the boundaries.
|
|
478
|
+
# However, the resulting tensor might have -inf in it, and it is better to mask it out.
|
|
479
|
+
out = out.copy_masked(0, dims=out_spatial_dims)
|
|
454
480
|
return out, out_spatial_dims
|
|
455
481
|
|
|
456
482
|
|
|
@@ -22,6 +22,7 @@ __all__ = [
|
|
|
22
22
|
"num_elements_of_shape",
|
|
23
23
|
"masked_fraction_of_shape",
|
|
24
24
|
"last_frame_position_of_dim",
|
|
25
|
+
"use_mask_default",
|
|
25
26
|
]
|
|
26
27
|
|
|
27
28
|
|
|
@@ -305,3 +306,42 @@ def last_frame_position_of_dim(
|
|
|
305
306
|
pos = rf.maximum(pos, 0)
|
|
306
307
|
pos.sparse_dim = dim
|
|
307
308
|
return pos
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
def use_mask_default(
|
|
312
|
+
*, default: Optional[bool] = None, default_false_for_behavior_version_up_to: Optional[int] = None
|
|
313
|
+
) -> Optional[bool]:
|
|
314
|
+
"""
|
|
315
|
+
Check the global RETURNN config for the ``rf_use_mask``
|
|
316
|
+
on what default we should use for the ``use_mask`` argument in various functions
|
|
317
|
+
(e.g. :func:`conv`, :func:`pool`, :func:`reduce`, :func:`matmul`, ...).
|
|
318
|
+
|
|
319
|
+
See issue `#1691 <https://github.com/rwth-i6/returnn/issues/1691>`__.
|
|
320
|
+
|
|
321
|
+
:param default: what to return if it is not defined in the config,
|
|
322
|
+
and ``default_false_for_behavior_version_up_to`` does not apply.
|
|
323
|
+
:param default_false_for_behavior_version_up_to: if it is not defined in the config,
|
|
324
|
+
and if this is set, and the behavior version is less or equal,
|
|
325
|
+
then return False by default, i.e. do not use the mask by default, if it is not defined in the config.
|
|
326
|
+
This takes precedence over `default`.
|
|
327
|
+
:return: what to use for the ``use_mask`` argument by default
|
|
328
|
+
"""
|
|
329
|
+
from returnn.config import get_global_config
|
|
330
|
+
|
|
331
|
+
config = get_global_config(raise_exception=False)
|
|
332
|
+
config_value = None
|
|
333
|
+
if config:
|
|
334
|
+
if "rf_use_mask" in config.typed_dict:
|
|
335
|
+
config_value = config.typed_dict["rf_use_mask"]
|
|
336
|
+
assert config_value is None or isinstance(config_value, bool)
|
|
337
|
+
elif "rf_use_mask" in config.dict:
|
|
338
|
+
config_value = config.bool("rf_use_mask", None)
|
|
339
|
+
if config_value is not None:
|
|
340
|
+
return config_value
|
|
341
|
+
|
|
342
|
+
if default_false_for_behavior_version_up_to is not None:
|
|
343
|
+
from returnn.util.basic import BehaviorVersion
|
|
344
|
+
|
|
345
|
+
if BehaviorVersion.get() <= default_false_for_behavior_version_up_to:
|
|
346
|
+
return False
|
|
347
|
+
return default
|
|
@@ -218,10 +218,9 @@ class BatchNorm(rf.Module):
|
|
|
218
218
|
|
|
219
219
|
if any(d.need_masking() for d in source.dims if d != self.in_dim):
|
|
220
220
|
if self.use_mask is None:
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
use_mask = self.use_mask
|
|
221
|
+
use_mask = rf.use_mask_default(default=True)
|
|
222
|
+
else:
|
|
223
|
+
use_mask = self.use_mask
|
|
225
224
|
else:
|
|
226
225
|
use_mask = False # not needed. False because this potentially enables an efficient fused op.
|
|
227
226
|
|
|
@@ -6,6 +6,7 @@ stft etc
|
|
|
6
6
|
from __future__ import annotations
|
|
7
7
|
from typing import Optional, Tuple
|
|
8
8
|
from returnn.tensor import Tensor, Dim
|
|
9
|
+
import returnn.frontend as rf
|
|
9
10
|
|
|
10
11
|
|
|
11
12
|
__all__ = ["stft"]
|
|
@@ -23,6 +24,7 @@ def stft(
|
|
|
23
24
|
window_enforce_even: bool = True,
|
|
24
25
|
out_spatial_dim: Optional[Dim] = None,
|
|
25
26
|
out_dim: Optional[Dim] = None,
|
|
27
|
+
use_mask: Optional[bool] = None,
|
|
26
28
|
) -> Tuple[Tensor, Dim, Dim]:
|
|
27
29
|
"""
|
|
28
30
|
Calculate the short-time Fourier transform (STFT) of a signal.
|
|
@@ -65,8 +67,14 @@ def stft(
|
|
|
65
67
|
but in most other frameworks, the behavior matches to window_enforce_even=False.
|
|
66
68
|
:param out_spatial_dim:
|
|
67
69
|
:param out_dim:
|
|
70
|
+
:param use_mask:
|
|
68
71
|
:return: (stft, out_spatial_dim, out_dim)
|
|
69
72
|
"""
|
|
73
|
+
if in_spatial_dim.need_masking():
|
|
74
|
+
if use_mask is None:
|
|
75
|
+
use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
|
|
76
|
+
if use_mask:
|
|
77
|
+
x = x.copy_masked(0, dims=[in_spatial_dim])
|
|
70
78
|
fft_length = fft_length or frame_length
|
|
71
79
|
if out_dim is None:
|
|
72
80
|
out_dim = Dim(fft_length // 2 + 1, name="stft-freq")
|
|
@@ -39,6 +39,7 @@ from io import TextIOBase
|
|
|
39
39
|
import traceback
|
|
40
40
|
from types import FrameType
|
|
41
41
|
import torch
|
|
42
|
+
import tree
|
|
42
43
|
|
|
43
44
|
# noinspection PyProtectedMember
|
|
44
45
|
from torch.utils._python_dispatch import TorchDispatchMode
|
|
@@ -96,6 +97,7 @@ def debug_inf_nan(
|
|
|
96
97
|
|
|
97
98
|
# For efficiency, and to be less spammy
|
|
98
99
|
_TraceFuncNameBlacklist = {
|
|
100
|
+
"aten::empty.memory_format",
|
|
99
101
|
"aten::zeros_like",
|
|
100
102
|
"aten::ones_like",
|
|
101
103
|
"aten::full",
|
|
@@ -113,6 +115,7 @@ _TraceFuncNameBlacklist = {
|
|
|
113
115
|
"aten::split_with_sizes",
|
|
114
116
|
"aten::slice.Tensor",
|
|
115
117
|
"aten::select.int",
|
|
118
|
+
"aten::max_pool2d_with_indices",
|
|
116
119
|
}
|
|
117
120
|
|
|
118
121
|
|
|
@@ -140,19 +143,20 @@ class _TraceOps(TorchDispatchMode):
|
|
|
140
143
|
if self.report_every_op_call:
|
|
141
144
|
print(f"--- op {func.name()}", file=self.file)
|
|
142
145
|
out = func(*args, **kwargs)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
self.
|
|
146
|
+
for out_ in tree.flatten(out):
|
|
147
|
+
if isinstance(out_, torch.Tensor):
|
|
148
|
+
with no_python_dispatcher():
|
|
149
|
+
got_nan_inf_t = torch.stack([torch.isnan(out_).any(), torch.isinf(out_).any()]).cpu()
|
|
150
|
+
got_nan = got_nan_inf_t[0].item()
|
|
151
|
+
got_inf = got_nan_inf_t[1].item()
|
|
152
|
+
if got_nan or got_inf:
|
|
153
|
+
s = "/".join([s_ for s_, b in [("nan", got_nan), ("inf", got_inf)] if b])
|
|
154
|
+
print(f"--> {s} in {func}: {out_}", file=self.file)
|
|
155
|
+
traceback.print_list(
|
|
156
|
+
_extract_stack_up_to(skip_top_num_frames=1, root_frame=self.root_frame), file=self.file
|
|
157
|
+
)
|
|
158
|
+
if self.stop_reporting_after_first_inf_nan:
|
|
159
|
+
self.enabled = False
|
|
156
160
|
return out
|
|
157
161
|
|
|
158
162
|
|
|
@@ -17,6 +17,7 @@ from returnn.tensor import Tensor, Dim, TensorDict
|
|
|
17
17
|
from returnn.tensor.utils import tensor_dict_fill_random_numpy_
|
|
18
18
|
import returnn.torch.frontend as rft
|
|
19
19
|
from returnn.torch.data.tensor_utils import tensor_dict_numpy_to_torch_, tensor_dict_torch_to_numpy_
|
|
20
|
+
from returnn.torch.util.debug_inf_nan import debug_inf_nan as torch_debug_inf_nan
|
|
20
21
|
|
|
21
22
|
# noinspection PyProtectedMember
|
|
22
23
|
from returnn.frontend._random_journal import RandomJournal
|
|
@@ -72,8 +73,17 @@ def run_model(
|
|
|
72
73
|
out_pt_raw = out_pt.as_raw_tensor_dict(include_const_sizes=True)
|
|
73
74
|
|
|
74
75
|
if not allow_inf_nan_in_output:
|
|
76
|
+
non_finite_outputs = {}
|
|
75
77
|
for k, v in out_pt.data.items():
|
|
76
|
-
|
|
78
|
+
if not numpy.isfinite(v.raw_tensor).all():
|
|
79
|
+
non_finite_outputs[k] = v
|
|
80
|
+
print(f"ERROR: output {k!r} has non-finite values:\n{v.raw_tensor}")
|
|
81
|
+
if non_finite_outputs:
|
|
82
|
+
torch_debug_inf_nan(
|
|
83
|
+
lambda: (_run_model_torch(extern_data, get_model, forward_step), None)[-1],
|
|
84
|
+
stop_reporting_after_first_inf_nan=False,
|
|
85
|
+
)
|
|
86
|
+
raise Exception(f"Non-finite values in output: {non_finite_outputs}. See log above.")
|
|
77
87
|
|
|
78
88
|
if not test_tensorflow:
|
|
79
89
|
return out_pt
|
|
@@ -193,9 +193,16 @@ def test_pad_packed_batched():
|
|
|
193
193
|
in_ = out_dict["in"]
|
|
194
194
|
flat = out_dict["flat"]
|
|
195
195
|
out = out_dict["out"]
|
|
196
|
-
print(
|
|
196
|
+
print("in:", in_, in_.raw_tensor.shape)
|
|
197
|
+
print("in time1:", in_.dims[1].dyn_size)
|
|
198
|
+
print("in time2:", in_.dims[2].dyn_size)
|
|
199
|
+
print("flat:", flat, flat.raw_tensor.shape)
|
|
200
|
+
print("out:", out, out.raw_tensor.shape)
|
|
201
|
+
print("in raw:")
|
|
197
202
|
print(in_.raw_tensor)
|
|
203
|
+
print("flat raw:")
|
|
198
204
|
print(flat.raw_tensor)
|
|
205
|
+
print("out raw:")
|
|
199
206
|
print(out.raw_tensor)
|
|
200
207
|
np.testing.assert_array_equal(in_.raw_tensor, out.raw_tensor)
|
|
201
208
|
|
|
@@ -78,6 +78,7 @@ def test_e_branchformer():
|
|
|
78
78
|
import torch
|
|
79
79
|
import returnn.frontend as rf
|
|
80
80
|
from returnn.util.debug import PyTracer, check_py_traces_rf_to_pt_equal
|
|
81
|
+
from returnn.config import global_config_ctx, Config
|
|
81
82
|
|
|
82
83
|
rf.select_backend_torch()
|
|
83
84
|
rf.set_random_seed(42)
|
|
@@ -300,7 +301,9 @@ def test_e_branchformer():
|
|
|
300
301
|
],
|
|
301
302
|
Tensor,
|
|
302
303
|
) as trace_rf, torch.no_grad():
|
|
303
|
-
|
|
304
|
+
# ESPnet E-Branchformer does not use masking properly. Keep it disabled here as well.
|
|
305
|
+
with global_config_ctx(Config({"rf_use_mask": False})):
|
|
306
|
+
enc_out, _ = model_rf(enc_in, in_spatial_dim=enc_spatial_dim)
|
|
304
307
|
enc_out = enc_out.copy_transpose((batch_dim, enc_spatial_dim, model_dim))
|
|
305
308
|
enc_out = enc_out.copy_masked(0.0)
|
|
306
309
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-hyper-param-tuning.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-record-and-push-to-webserver.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-chunking-blstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-contribrnn-lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-maxgradnorm-lstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm-lowmem.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm2.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm2.12ax.tuned.config
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-neural-transducer.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-rec-explicit-lstm.config
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-rec-explicit-rnn.config
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-search-compiled-graph.py
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-tf-vanilla-lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/demo-upd-mult-model.lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/create_IAM_dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/IAM/features/raw/demo.h5
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/artificial/create_test_h5.py
RENAMED
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/artificial/forwardconfig
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250226.104737 → returnn-1.20250226.132109}/demos/mdlstm/artificial_rgb/forwardconfig
RENAMED
|
File without changes
|
|
File without changes
|