returnn 1.20240925.152757__tar.gz → 1.20240926.134856__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.20240925.152757 → returnn-1.20240926.134856}/PKG-INFO +1 -1
- returnn-1.20240926.134856/_setup_info_generated.py +2 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/audio.py +3 -1
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_backend.py +9 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/array_.py +96 -3
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/decoder/transformer.py +9 -1
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/math_.py +7 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/run_ctx.py +2 -2
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/_dim_extra.py +0 -1
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_low_level/_backend.py +8 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/frontend/_backend.py +42 -4
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn.egg-info/PKG-INFO +1 -1
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_array.py +32 -0
- returnn-1.20240925.152757/_setup_info_generated.py +0 -2
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/.editorconfig +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/.gitignore +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/.gitmodules +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/.kateconfig +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/CHANGELOG.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/CODEOWNERS +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/CONTRIBUTING.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/LICENSE +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/MANIFEST.in +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/README.rst +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/12AX.cluster_map +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/_setup_returnn_env.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-fwd.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-horovod-mpi.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-horovod-mpi.py.sh +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-horovod-mpi.sh +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-hyper-param-tuning.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-iter-dataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-list-devices.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-lua-torch-layer.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-pretrain.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-record-and-push-to-webserver.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-returnn-as-framework.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-rf-pt-benchmark.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-rf.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-rhn-enwik8.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-sprint-interface.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-att-copy.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-attention.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-enc-dec.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-hard-att-copy.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-lstm-benchmark.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-native-lstm.12ax.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-native-lstm2.12ax.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-neural-transducer.12ax.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-rec-explicit-lstm.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-rec-explicit-rnn.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-rec-self-att.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-search-compiled-graph.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-timit-lstm-ctc.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-torch.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo.sh +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/README.txt +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/chars.txt +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/config_demo +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/config_fwd +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/config_real +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/decode.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/go.sh +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/lines.txt +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/split/eval.txt +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/split/train.txt +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/split/valid.txt +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/README.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial/create_test_h5.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial/forwardconfig +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial/go.sh +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial/trainconfig +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial_rgb/go.sh +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/pyproject.toml +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/requirements.txt +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/__main__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/__old_mod_loader__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/__setup__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/config.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/basic.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/bundle_file.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/cached.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/cached2.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/distrib_files.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/generating.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/hdf.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/lm.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/map.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/meta.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/multi_proc.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/normalization_data.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/numpy_dump.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/postprocessing.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/raw_wav.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/sprint.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/stereo.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/util/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/util/feature_extraction.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/util/strings.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/datasets/util/vocabulary.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/engine/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/engine/base.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/engine/batch.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/__main__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/.git +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/graph_editor/README.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/graph_editor/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/graph_editor/edit.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/graph_editor/reroute.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/graph_editor/select.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/graph_editor/subgraph.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/graph_editor/transform.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/extern/graph_editor/util.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/forward_iface.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_native/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_native/backend.cpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_native/backend.hpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_native/module.cpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_native/module.hpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_native/py_utils.hpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_native/tensor_ops.cpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_native/tensor_ops.hpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_numpy_backend.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_random_journal.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/_utils.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/attention.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/audio/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/audio/mel.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/audio/specaugment.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/backend.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/build_from_dict.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/cond.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/const.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/container.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/control_flow_ctx.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/conv.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/conversions/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/conversions/espnet_e_branchformer.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/conversions/hf_llama.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/conversions/torch_nn.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/decoder/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/device.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/dims.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/dropout.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/dtype.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/encoder/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/encoder/base.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/encoder/conformer.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/encoder/e_branchformer.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/encoder/transformer.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/gradient.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/graph.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/hooks.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/init.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/label_smoothing.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/linear.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/loop.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/loss.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/matmul.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/module.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/normalization.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/parameter.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/parametrizations.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/parametrize.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/piecewise_linear.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/rand.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/rec.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/reduce.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/signal.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/state.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/stepwise_scheduler.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/tensor_array.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/types.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/import_/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/import_/common.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/import_/git.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/import_/import_.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/learning_rate_control.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/log.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/native_op.cpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/native_op.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/pretrain.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/sprint/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/sprint/cache.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/sprint/control.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/sprint/error_signals.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/sprint/extern_interface.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/sprint/interface.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/README.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/_tensor_extra.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/_tensor_mixin_base.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/_tensor_op_overloads.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/control_flow_ctx.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/dim.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/marked_dim.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/tensor.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/tensor_dict.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tensor/utils.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/compat.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/data_pipeline.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/distributed.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/engine.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/README.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/_backend.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/_utils.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/cond.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/dims.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/layer.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/loop.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/make_layer.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/masked_computation.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_low_level/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/horovod.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/hyper_param_tuning.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/layers/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/layers/base.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/layers/basic.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/layers/rec.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/layers/segmental_model.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/layers/signal_processing.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/layers/variable.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/native_op.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/network.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/sprint.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/updater.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/util/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/util/basic.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/util/data.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/util/gradient_checkpoint.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/util/ken_lm.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/util/open_fst.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/README.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/data/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/data/extern_data.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/data/pipeline.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/data/queued_data_iter.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/data/tensor_utils.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/distributed.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/engine.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/frontend/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/frontend/_rand.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/frontend/bridge.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/frontend/raw_ops.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/updater.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/util/README.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/util/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/util/array_.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/util/diagnose_gpu.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/util/gradient_checkpoint.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/util/module.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/torch/util/scaled_gradient.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/__init__.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/basic.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/better_exchook.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/bpe.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/debug.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/debug_helpers.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/file_cache.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/fsa.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/literal_py_to_pickle.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/math.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/native_code_compiler.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/pprint.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/py-to-pickle.cpp +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/py_compat.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/py_ext_mod_compiler.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/result_with_reason.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/sig_proc.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/task_system.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/train_proc_manager.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/util/watch_memory.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn.egg-info/SOURCES.txt +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn.egg-info/dependency_links.txt +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn.egg-info/top_level.txt +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/rnn.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/setup.cfg +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/setup.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/DummySprintExec.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm-inspection-profile.xml +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm.idea/.gitignore +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm.idea/.name +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm.idea/misc.xml +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm.idea/modules.xml +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm.idea/returnn.iml +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/_set_num_threads1.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/_setup_returnn_env.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/_setup_test_env.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/bpe-unicode-demo.codes +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/bpe-unicode-demo.vocab +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/lexicon_opt.fst +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/lexicon_opt.isyms +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/lexicon_opt.jpg +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/lexicon_opt.osyms +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/lint_common.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/pycharm-inspect.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/pylint.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/returnn-as-framework.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/rf_utils.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/spelling.dic +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_Config.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_Dataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_Fsa.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_GeneratingDataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_HDFDataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_LearningRateControl.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_Log.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_MultiProcDataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_Pretrain.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_ResNet.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_SprintDataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_SprintInterface.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_TFEngine.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_TFNativeOp.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_TFNetworkLayer.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_TFNetworkRecLayer.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_TFNetworkSigProcLayer.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_TFUpdater.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_TFUtil.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_TF_determinism.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_TaskSystem.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_TaskSystem_SharedMem.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_TranslationDataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_Util.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_demos.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_fork_exec.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_hdf_dump.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_attention.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_base.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_cond.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_const.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_container.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_conv.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_decoder_transformer.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_encoder_conformer.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_gradient.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_label_smoothing.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_loop.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_math.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_normalization.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_piecewise_linear.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_rec.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_reduce.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_rf_signal.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_tensor.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_tools.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_torch_dataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_torch_engine.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_torch_frontend.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_torch_internal_frontend.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/test_torch_util.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tests/torch_utils.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/_setup_returnn_env.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/analyze-dataset-batches.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/bliss-collect-seq-lens.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/bliss-dump-text.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/bliss-get-segment-names.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/bliss-to-ogg-zip.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/bpe-create-lexicon.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/calculate-word-error-rate.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/cleanup-old-models.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/collect-orth-symbols.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/collect-words.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/compile_native_op.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/compile_tf_graph.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/debug-dump-search-scores.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/debug-plot-search-scores.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/dump-dataset-raw-strings.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/dump-dataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/dump-forward-stats.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/dump-forward.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/dump-network-json.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/dump-pickle.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/extract_state_tying_from_dataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/get-attention-weights.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/get-best-model-epoch.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/hdf_dump.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/hdf_dump_translation_dataset.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/import-blocks-mt-model.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/import-t2t-mt-model.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/.gitignore +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/Makefile +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/README.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/example/README.md +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/example/libs_list +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/example/state_vars_list +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/example/tensor_names_list +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/file.h +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/main.cc +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/rescorer.h +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/vocabulary.cc +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/lattice_rescorer/vocabulary.h +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/tf_avg_checkpoints.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/tf_inspect_checkpoint.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/tf_inspect_summary_log.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/torch_avg_checkpoints.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/torch_export_to_onnx.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/torch_inspect_checkpoint.py +0 -0
- {returnn-1.20240925.152757 → returnn-1.20240926.134856}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
|
@@ -63,7 +63,9 @@ class OggZipDataset(CachedDataset2):
|
|
|
63
63
|
:param str|list[str]|((str)->str)|None targets_post_process: :func:`get_post_processor_function`,
|
|
64
64
|
applied on orth
|
|
65
65
|
:param bool use_cache_manager: uses :func:`returnn.util.basic.cf`
|
|
66
|
-
:param str|None segment_file: .txt or .gz text file containing sequence tags that will be used as whitelist
|
|
66
|
+
:param str|None segment_file: .txt or .gz text file containing sequence tags that will be used as whitelist.
|
|
67
|
+
Note: This is somewhat deprecated, as we also support ``seq_list_filter_file`` (via the base class),
|
|
68
|
+
which does the same but more universally.
|
|
67
69
|
:param bool zip_audio_files_have_name_as_prefix:
|
|
68
70
|
:param float|int|None fixed_random_subset:
|
|
69
71
|
Value in [0,1] to specify the fraction, or integer >=1 which specifies number of seqs.
|
|
@@ -921,6 +921,8 @@ class Backend(Generic[T]):
|
|
|
921
921
|
*,
|
|
922
922
|
indices: Tensor,
|
|
923
923
|
indices_dim: Union[Dim, Sequence[Dim]],
|
|
924
|
+
mode: str,
|
|
925
|
+
fill_value: Union[int, float],
|
|
924
926
|
out_dim: Union[Dim, Sequence[Dim]],
|
|
925
927
|
) -> Tensor:
|
|
926
928
|
"""
|
|
@@ -932,6 +934,8 @@ class Backend(Generic[T]):
|
|
|
932
934
|
:param source: [batch_dims..., indices_dim(s)..., feature_dims...]
|
|
933
935
|
:param indices: [batch_dims..., indices_dim(s)...] -> out_dim
|
|
934
936
|
:param indices_dim:
|
|
937
|
+
:param mode: "sum" or "max" or "min"
|
|
938
|
+
:param fill_value:
|
|
935
939
|
:param out_dim:
|
|
936
940
|
:return: [batch_dims..., out_dim, feature_dims...]
|
|
937
941
|
"""
|
|
@@ -983,6 +987,11 @@ class Backend(Generic[T]):
|
|
|
983
987
|
"""
|
|
984
988
|
raise NotImplementedError
|
|
985
989
|
|
|
990
|
+
@staticmethod
|
|
991
|
+
def is_finite(x: Tensor) -> Tensor:
|
|
992
|
+
"""is finite"""
|
|
993
|
+
raise NotImplementedError
|
|
994
|
+
|
|
986
995
|
@staticmethod
|
|
987
996
|
def clip_by_value(
|
|
988
997
|
x: Tensor,
|
|
@@ -24,6 +24,7 @@ __all__ = [
|
|
|
24
24
|
"reshape",
|
|
25
25
|
"split",
|
|
26
26
|
"expand_dim",
|
|
27
|
+
"expand_dims",
|
|
27
28
|
"squeeze",
|
|
28
29
|
"window",
|
|
29
30
|
"concat",
|
|
@@ -37,6 +38,7 @@ __all__ = [
|
|
|
37
38
|
"pack_padded",
|
|
38
39
|
"gather",
|
|
39
40
|
"scatter",
|
|
41
|
+
"scatter_argmax",
|
|
40
42
|
"slice",
|
|
41
43
|
"shift_right",
|
|
42
44
|
"reverse_sequence",
|
|
@@ -48,7 +50,7 @@ __all__ = [
|
|
|
48
50
|
|
|
49
51
|
|
|
50
52
|
def convert_to_tensor(
|
|
51
|
-
value: Union[Tensor, T, RawTensorTypes],
|
|
53
|
+
value: Union[Tensor, T, RawTensorTypes, list, tuple],
|
|
52
54
|
*,
|
|
53
55
|
dims: Sequence[Dim] = None,
|
|
54
56
|
dtype: Optional[str] = None,
|
|
@@ -73,6 +75,8 @@ def convert_to_tensor(
|
|
|
73
75
|
"""
|
|
74
76
|
if isinstance(value, Tensor): # fast path
|
|
75
77
|
return value
|
|
78
|
+
if isinstance(value, (tuple, list)):
|
|
79
|
+
value = numpy.array(value, dtype=dtype)
|
|
76
80
|
if dims is None and shape is not None:
|
|
77
81
|
dims = shape # old code
|
|
78
82
|
if isinstance(value, (int, float, complex, bool, str, numpy.number)):
|
|
@@ -257,6 +261,15 @@ def expand_dim(source: Tensor, dim: Dim) -> Tensor:
|
|
|
257
261
|
return source._raw_backend.expand_dim(source, dim=dim)
|
|
258
262
|
|
|
259
263
|
|
|
264
|
+
def expand_dims(source: Tensor, dims: Sequence[Dim]) -> Tensor:
|
|
265
|
+
"""
|
|
266
|
+
Expand multiple dims, via :func:`expand_dim`.
|
|
267
|
+
"""
|
|
268
|
+
for dim in dims:
|
|
269
|
+
source = expand_dim(source, dim)
|
|
270
|
+
return source
|
|
271
|
+
|
|
272
|
+
|
|
260
273
|
def squeeze(source: Tensor, axis: Dim) -> Tensor:
|
|
261
274
|
"""
|
|
262
275
|
Removes the axis with dimension of extend 1 from the source.
|
|
@@ -680,17 +693,24 @@ def scatter(
|
|
|
680
693
|
*,
|
|
681
694
|
indices: Tensor,
|
|
682
695
|
indices_dim: Union[Dim, Sequence[Dim]],
|
|
696
|
+
mode: str = "sum",
|
|
697
|
+
fill_value: Optional[Union[int, float]] = None,
|
|
683
698
|
out_dim: Optional[Union[Dim, Sequence[Dim]]] = None,
|
|
684
699
|
) -> Tensor:
|
|
685
700
|
"""
|
|
686
701
|
Scatters into new zero-tensor.
|
|
687
702
|
If entries in indices are duplicated, the corresponding values in source will be added together
|
|
688
|
-
(scatter_add in PyTorch)
|
|
703
|
+
(scatter_add in PyTorch)
|
|
704
|
+
with mode=="sum",
|
|
705
|
+
or otherwise it will take the max/min.
|
|
706
|
+
|
|
689
707
|
(TF segment_sum can be implemented via this.)
|
|
690
708
|
|
|
691
709
|
:param source: [batch_dims..., indices_dim(s)..., feature_dims...]
|
|
692
710
|
:param indices: [batch_dims..., indices_dim(s)...] -> out_dim
|
|
693
711
|
:param indices_dim:
|
|
712
|
+
:param mode: "sum" or "max" or "min". also see :func:`scatter_argmax`.
|
|
713
|
+
:param fill_value:
|
|
694
714
|
:param out_dim: The indices target dim.
|
|
695
715
|
If not given, will be automatically determined as the sparse_dim from indices.
|
|
696
716
|
If multiple out dims, use indices into the merged out dims,
|
|
@@ -700,8 +720,81 @@ def scatter(
|
|
|
700
720
|
if not out_dim:
|
|
701
721
|
assert isinstance(indices, Tensor) and indices.sparse_dim
|
|
702
722
|
out_dim = indices.sparse_dim
|
|
723
|
+
if fill_value is None:
|
|
724
|
+
if mode == "sum":
|
|
725
|
+
fill_value = 0
|
|
726
|
+
elif mode == "max":
|
|
727
|
+
if "int" in source.dtype:
|
|
728
|
+
import numpy
|
|
729
|
+
|
|
730
|
+
fill_value = numpy.iinfo(source.raw_tensor.dtype).min
|
|
731
|
+
else:
|
|
732
|
+
fill_value = float("-inf")
|
|
733
|
+
elif mode == "min":
|
|
734
|
+
if "int" in source.dtype:
|
|
735
|
+
import numpy
|
|
736
|
+
|
|
737
|
+
fill_value = numpy.iinfo(source.raw_tensor.dtype).max
|
|
738
|
+
else:
|
|
739
|
+
fill_value = float("inf")
|
|
740
|
+
else:
|
|
741
|
+
raise ValueError(f"scatter: invalid mode {mode!r}")
|
|
703
742
|
# noinspection PyProtectedMember
|
|
704
|
-
return source._raw_backend.scatter(
|
|
743
|
+
return source._raw_backend.scatter(
|
|
744
|
+
source, indices=indices, indices_dim=indices_dim, mode=mode, fill_value=fill_value, out_dim=out_dim
|
|
745
|
+
)
|
|
746
|
+
|
|
747
|
+
|
|
748
|
+
def scatter_argmax(
|
|
749
|
+
source: Tensor,
|
|
750
|
+
*,
|
|
751
|
+
indices: Tensor,
|
|
752
|
+
indices_dim: Union[Dim, Sequence[Dim]],
|
|
753
|
+
invalid_idx: int = -1,
|
|
754
|
+
out_dim: Optional[Union[Dim, Sequence[Dim]]] = None,
|
|
755
|
+
) -> Tensor:
|
|
756
|
+
"""
|
|
757
|
+
Get the index in src which has the max value for each index in index.
|
|
758
|
+
|
|
759
|
+
This is like :func:`scatter` with ``mode="argmax"``.
|
|
760
|
+
|
|
761
|
+
:param source: [batch_dims..., indices_dim(s)..., feature_dims...]
|
|
762
|
+
:param indices: [batch_dims..., indices_dim(s)...] -> out_dim
|
|
763
|
+
:param indices_dim:
|
|
764
|
+
:param invalid_idx: in case some of the output entries are never set (via ``indices``),
|
|
765
|
+
this will be used as the value.
|
|
766
|
+
:param out_dim: The indices target dim.
|
|
767
|
+
:return: [batch_dims..., out_dim(s)..., feature_dims...]
|
|
768
|
+
"""
|
|
769
|
+
import numpy
|
|
770
|
+
|
|
771
|
+
if not out_dim:
|
|
772
|
+
assert isinstance(indices, Tensor) and indices.sparse_dim
|
|
773
|
+
out_dim = indices.sparse_dim
|
|
774
|
+
|
|
775
|
+
# For the shape comments, use [B,I,F] for shorter source, [B,O,F] for shorter output.
|
|
776
|
+
# use scatter to get the max value for each index
|
|
777
|
+
out_max = rf.scatter(source, indices=indices, indices_dim=indices_dim, mode="max", out_dim=out_dim) # [B,O,F]
|
|
778
|
+
src_max = rf.gather(out_max, indices=indices, axis=out_dim) # [B,I,F] -> max value or invalid_value
|
|
779
|
+
|
|
780
|
+
max_invalid_idx = numpy.iinfo(indices.dtype).max
|
|
781
|
+
|
|
782
|
+
# then use gather to get the max value back to src.
|
|
783
|
+
# then mask the src with the max value.
|
|
784
|
+
src_max_mask = src_max == source
|
|
785
|
+
src_max_mask = src_max_mask.copy_masked(False)
|
|
786
|
+
src_indices = rf.where(
|
|
787
|
+
src_max_mask, rf.range_over_dim(indices_dim, dtype=indices.dtype, device=source.device), max_invalid_idx
|
|
788
|
+
) # [B,I,F] -> I
|
|
789
|
+
|
|
790
|
+
# now scatter the min of src_indices into tensor
|
|
791
|
+
out = rf.scatter(
|
|
792
|
+
src_indices, indices=indices, indices_dim=indices_dim, mode="min", fill_value=invalid_idx, out_dim=out_dim
|
|
793
|
+
) # [B,O,F] -> I or invalid_idx or max_invalid_idx
|
|
794
|
+
|
|
795
|
+
if max_invalid_idx != invalid_idx:
|
|
796
|
+
out = rf.where(out != max_invalid_idx, out, invalid_idx) # [B,O,F] -> I or invalid_idx
|
|
797
|
+
return out
|
|
705
798
|
|
|
706
799
|
|
|
707
800
|
# noinspection PyShadowingBuiltins
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/frontend/decoder/transformer.py
RENAMED
|
@@ -441,6 +441,7 @@ class FeedForwardGated(rf.Module):
|
|
|
441
441
|
ff_dim: Optional[Union[Dim, int]] = NotSpecified,
|
|
442
442
|
dropout: float = 0.1,
|
|
443
443
|
activation: Union[Callable[[Tensor], Tensor], Dict[str, Any], rf.Module] = rf.swish,
|
|
444
|
+
gate_activation: Union[Callable[[Tensor], Tensor], Dict[str, Any], rf.Module] = rf.identity,
|
|
444
445
|
with_bias: bool = False,
|
|
445
446
|
):
|
|
446
447
|
"""
|
|
@@ -474,11 +475,18 @@ class FeedForwardGated(rf.Module):
|
|
|
474
475
|
activation = rf.build_from_dict(activation)
|
|
475
476
|
elif not callable(activation):
|
|
476
477
|
raise TypeError(f"{self}: unexpected activation type {activation!r}")
|
|
478
|
+
if gate_activation is NotSpecified:
|
|
479
|
+
gate_activation = rf.identity
|
|
480
|
+
elif isinstance(gate_activation, dict):
|
|
481
|
+
gate_activation = rf.build_from_dict(gate_activation)
|
|
482
|
+
elif not callable(gate_activation):
|
|
483
|
+
raise TypeError(f"{self}: unexpected gate_activation type {gate_activation!r}")
|
|
477
484
|
|
|
478
485
|
self.out_dim = out_dim
|
|
479
486
|
self.dropout = dropout
|
|
480
487
|
self.dropout_broadcast = rf.dropout_broadcast_default()
|
|
481
488
|
self.activation = activation
|
|
489
|
+
self.gate_activation = gate_activation
|
|
482
490
|
|
|
483
491
|
# Factor 2 because we concatenate the two paths.
|
|
484
492
|
self.linear_ff = rf.Linear(out_dim, 2 * ff_dim, with_bias=with_bias)
|
|
@@ -488,7 +496,7 @@ class FeedForwardGated(rf.Module):
|
|
|
488
496
|
"""forward"""
|
|
489
497
|
x_ff1 = self.linear_ff(inp)
|
|
490
498
|
x_ff1a, x_ff1b = rf.split(x_ff1, axis=self.linear_ff.out_dim, out_dims=[self.linear_out.in_dim] * 2)
|
|
491
|
-
x_act = self.activation(x_ff1a) * x_ff1b
|
|
499
|
+
x_act = self.activation(x_ff1a) * self.gate_activation(x_ff1b)
|
|
492
500
|
x_drop = rf.dropout(x_act, self.dropout, axis=self.dropout_broadcast and self.linear_out.in_dim)
|
|
493
501
|
x_ff2 = self.linear_out(x_drop)
|
|
494
502
|
return x_ff2
|
|
@@ -37,6 +37,7 @@ __all__ = [
|
|
|
37
37
|
"logical_not",
|
|
38
38
|
"opt_logical_or",
|
|
39
39
|
"opt_logical_and",
|
|
40
|
+
"is_finite",
|
|
40
41
|
"maximum",
|
|
41
42
|
"minimum",
|
|
42
43
|
"clip_by_value",
|
|
@@ -361,6 +362,12 @@ def opt_logical_and(a: Union[Tensor, bool], b: Union[Tensor, bool]) -> Union[Ten
|
|
|
361
362
|
return combine(a, "logical_and", b)
|
|
362
363
|
|
|
363
364
|
|
|
365
|
+
def is_finite(a: Tensor) -> Tensor:
|
|
366
|
+
"""is finite"""
|
|
367
|
+
# noinspection PyProtectedMember
|
|
368
|
+
return a._raw_backend.is_finite(a)
|
|
369
|
+
|
|
370
|
+
|
|
364
371
|
def maximum(a: Tensor, b: Union[Tensor, _RawTensorTypes], *other_tensors) -> Tensor:
|
|
365
372
|
"""maximum"""
|
|
366
373
|
if not other_tensors:
|
|
@@ -275,8 +275,8 @@ class RunCtx:
|
|
|
275
275
|
if dims is None and expected_output:
|
|
276
276
|
dims = expected_output.dims
|
|
277
277
|
if dims is not None and expected_output:
|
|
278
|
-
assert (
|
|
279
|
-
|
|
278
|
+
assert expected_output.dims == tuple(
|
|
279
|
+
dims
|
|
280
280
|
), f"mark_as_output: {name!r} dims mismatch from expected output, given {dims}, expected {expected_output}"
|
|
281
281
|
|
|
282
282
|
if not isinstance(tensor, Tensor):
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/returnn/tf/frontend_low_level/_backend.py
RENAMED
|
@@ -554,6 +554,14 @@ class TFBackend(Backend[tf.Tensor]):
|
|
|
554
554
|
out_data.raw_tensor = y
|
|
555
555
|
return out_data
|
|
556
556
|
|
|
557
|
+
@staticmethod
|
|
558
|
+
def is_finite(x: Tensor) -> Tensor:
|
|
559
|
+
"""is finite"""
|
|
560
|
+
out = x.copy_template("is_finite", dtype="bool")
|
|
561
|
+
with tf_util.same_control_flow_ctx(x):
|
|
562
|
+
out.raw_tensor = tf.math.is_finite(x.raw_tensor)
|
|
563
|
+
return out
|
|
564
|
+
|
|
557
565
|
@staticmethod
|
|
558
566
|
def clip_by_value(
|
|
559
567
|
x: Tensor,
|
|
@@ -1015,6 +1015,8 @@ class TorchBackend(Backend[torch.Tensor]):
|
|
|
1015
1015
|
*,
|
|
1016
1016
|
indices: Tensor,
|
|
1017
1017
|
indices_dim: Union[Dim, Sequence[Dim]],
|
|
1018
|
+
mode: str,
|
|
1019
|
+
fill_value: Union[int, float],
|
|
1018
1020
|
out_dim: Union[Dim, Sequence[Dim]],
|
|
1019
1021
|
) -> Tensor:
|
|
1020
1022
|
"""
|
|
@@ -1026,6 +1028,8 @@ class TorchBackend(Backend[torch.Tensor]):
|
|
|
1026
1028
|
:param source: [batch_dims..., indices_dim(s)..., feature_dims...]
|
|
1027
1029
|
:param indices: [batch_dims..., indices_dim(s)...] -> out_dim
|
|
1028
1030
|
:param indices_dim:
|
|
1031
|
+
:param mode: "sum", "max", "min"
|
|
1032
|
+
:param fill_value:
|
|
1029
1033
|
:param out_dim:
|
|
1030
1034
|
:return: [batch_dims..., out_dim, feature_dims...]
|
|
1031
1035
|
"""
|
|
@@ -1065,8 +1069,29 @@ class TorchBackend(Backend[torch.Tensor]):
|
|
|
1065
1069
|
)
|
|
1066
1070
|
out_dims = batch_dims + [out_flat_dim] + feature_dims
|
|
1067
1071
|
out_shape = [d.get_dim_value() for d in out_dims]
|
|
1068
|
-
|
|
1069
|
-
|
|
1072
|
+
if mode == "sum" and isinstance(fill_value, (int, float)) and fill_value == 0:
|
|
1073
|
+
out_raw = torch.zeros(out_shape, dtype=source.raw_tensor.dtype, device=source.raw_tensor.device)
|
|
1074
|
+
out_raw.scatter_add_(dim=len(batch_dims), index=indices.raw_tensor.to(torch.int64), src=source.raw_tensor)
|
|
1075
|
+
elif mode == "sum":
|
|
1076
|
+
out_raw = torch.full(out_shape, fill_value, dtype=source.raw_tensor.dtype, device=source.raw_tensor.device)
|
|
1077
|
+
out_raw.scatter_reduce_(
|
|
1078
|
+
dim=len(batch_dims),
|
|
1079
|
+
index=indices.raw_tensor.to(torch.int64),
|
|
1080
|
+
src=source.raw_tensor,
|
|
1081
|
+
reduce="sum",
|
|
1082
|
+
include_self=False,
|
|
1083
|
+
)
|
|
1084
|
+
elif mode in ("max", "min"):
|
|
1085
|
+
out_raw = torch.full(out_shape, fill_value, dtype=source.raw_tensor.dtype, device=source.raw_tensor.device)
|
|
1086
|
+
out_raw.scatter_reduce_(
|
|
1087
|
+
dim=len(batch_dims),
|
|
1088
|
+
index=indices.raw_tensor.to(torch.int64),
|
|
1089
|
+
src=source.raw_tensor,
|
|
1090
|
+
reduce="a" + mode,
|
|
1091
|
+
include_self=False,
|
|
1092
|
+
)
|
|
1093
|
+
else:
|
|
1094
|
+
raise ValueError(f"scatter: mode {mode!r} not supported")
|
|
1070
1095
|
res = Tensor(
|
|
1071
1096
|
"scatter",
|
|
1072
1097
|
dims=out_dims,
|
|
@@ -1128,8 +1153,14 @@ class TorchBackend(Backend[torch.Tensor]):
|
|
|
1128
1153
|
allow_broadcast_all_sources: bool = False,
|
|
1129
1154
|
) -> Tensor:
|
|
1130
1155
|
"""where"""
|
|
1131
|
-
|
|
1132
|
-
|
|
1156
|
+
if isinstance(true_, Tensor):
|
|
1157
|
+
dtype = true_.dtype
|
|
1158
|
+
elif isinstance(false_, Tensor):
|
|
1159
|
+
dtype = false_.dtype
|
|
1160
|
+
else:
|
|
1161
|
+
dtype = None
|
|
1162
|
+
true_ = rf.convert_to_tensor(true_, _backend=TorchBackend, dtype=dtype, device=cond.device)
|
|
1163
|
+
false_ = rf.convert_to_tensor(false_, _backend=TorchBackend, dtype=dtype, device=cond.device)
|
|
1133
1164
|
out = Tensor.get_common_data(
|
|
1134
1165
|
[true_, false_, cond], allow_broadcast_all_sources=allow_broadcast_all_sources, name="where"
|
|
1135
1166
|
)
|
|
@@ -1174,6 +1205,13 @@ class TorchBackend(Backend[torch.Tensor]):
|
|
|
1174
1205
|
out.raw_tensor = out_raw
|
|
1175
1206
|
return out
|
|
1176
1207
|
|
|
1208
|
+
@staticmethod
|
|
1209
|
+
def is_finite(x: Tensor) -> Tensor:
|
|
1210
|
+
"""is finite"""
|
|
1211
|
+
out = x.copy_template("is_finite", dtype="bool")
|
|
1212
|
+
out.raw_tensor = torch.isfinite(x.raw_tensor)
|
|
1213
|
+
return out
|
|
1214
|
+
|
|
1177
1215
|
@staticmethod
|
|
1178
1216
|
def clip_by_value(
|
|
1179
1217
|
x: Tensor,
|
|
@@ -373,6 +373,38 @@ def test_gather_time_static_clip_to_valid():
|
|
|
373
373
|
run_model(extern_data_template, lambda *, epoch, step: rf.Module(), _forward_step)
|
|
374
374
|
|
|
375
375
|
|
|
376
|
+
def test_scatter_fill_inf():
|
|
377
|
+
batch_dim_ = Dim(3, name="batch")
|
|
378
|
+
states_dim = Dim(7, name="states")
|
|
379
|
+
|
|
380
|
+
def _forward_step(**_kwargs):
|
|
381
|
+
start_states = rf.convert_to_tensor(
|
|
382
|
+
[2, 4, 5], name="start_states", dims=[batch_dim_], sparse_dim=states_dim, dtype="int32"
|
|
383
|
+
)
|
|
384
|
+
batch_dim_.get_size_tensor().mark_as_output("batch_size", shape=[])
|
|
385
|
+
start_states.mark_as_output("start_states", shape=[batch_dim_])
|
|
386
|
+
scores = rf.scatter(
|
|
387
|
+
rf.zeros([batch_dim_]),
|
|
388
|
+
indices=start_states,
|
|
389
|
+
indices_dim=[batch_dim_],
|
|
390
|
+
fill_value=float("-inf"),
|
|
391
|
+
) # [S], per state
|
|
392
|
+
scores.mark_as_default_output(shape=[states_dim])
|
|
393
|
+
|
|
394
|
+
res = run_model(TensorDict(), lambda *, epoch, step: rf.Module(), _forward_step, test_tensorflow=False)
|
|
395
|
+
batch_size = res["batch_size"].raw_tensor.item()
|
|
396
|
+
assert res["start_states"].raw_tensor.shape == (batch_size,)
|
|
397
|
+
assert res["output"].raw_tensor.shape == (states_dim.dimension,)
|
|
398
|
+
assert res["output"].raw_tensor.tolist().count(0.0) == batch_size
|
|
399
|
+
assert res["output"].raw_tensor.tolist().count(float("-inf")) == states_dim.dimension - batch_size
|
|
400
|
+
assert states_dim.dimension > batch_size
|
|
401
|
+
for i in range(states_dim.dimension):
|
|
402
|
+
if i in res["start_states"].raw_tensor:
|
|
403
|
+
assert res["output"].raw_tensor[i] == 0.0
|
|
404
|
+
else:
|
|
405
|
+
assert res["output"].raw_tensor[i] == float("-inf")
|
|
406
|
+
|
|
407
|
+
|
|
376
408
|
def test_slice():
|
|
377
409
|
time_dim = Dim(Tensor("time", [batch_dim], dtype="int32"))
|
|
378
410
|
in_dim = Dim(7, name="in")
|
|
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.20240925.152757 → returnn-1.20240926.134856}/demos/demo-hyper-param-tuning.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/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.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-chunking-blstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-contribrnn-lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-maxgradnorm-lstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-native-lstm-lowmem.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-native-lstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-native-lstm2.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-native-lstm2.12ax.tuned.config
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-neural-transducer.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-rec-explicit-lstm.config
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-rec-explicit-rnn.config
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-search-compiled-graph.py
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-tf-vanilla-lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/demo-upd-mult-model.lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/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.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/IAM/create_IAM_dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/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.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial/create_test_h5.py
RENAMED
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial/forwardconfig
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial_rgb/forwardconfig
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20240925.152757 → returnn-1.20240926.134856}/demos/mdlstm/artificial_rgb/trainconfig
RENAMED
|
File without changes
|
|
File without changes
|