returnn 1.20250220.174943__tar.gz → 1.20250220.200053__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.20250220.174943/returnn.egg-info → returnn-1.20250220.200053}/PKG-INFO +1 -1
- returnn-1.20250220.200053/_setup_info_generated.py +2 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_backend.py +7 -9
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_native/module.cpp +3 -2
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_native/tensor_ops.cpp +8 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_numpy_backend.py +2 -1
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/array_.py +73 -1
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/dims.py +31 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/rand.py +30 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/_backend.py +3 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_low_level/_backend.py +5 -10
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/frontend/_backend.py +21 -10
- {returnn-1.20250220.174943 → returnn-1.20250220.200053/returnn.egg-info}/PKG-INFO +1 -1
- returnn-1.20250220.174943/_setup_info_generated.py +0 -2
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/.editorconfig +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/.gitignore +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/.gitmodules +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/.kateconfig +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/CHANGELOG.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/CODEOWNERS +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/CONTRIBUTING.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/LICENSE +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/MANIFEST.in +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/README.rst +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/12AX.cluster_map +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/_setup_returnn_env.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-fwd.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-horovod-mpi.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-horovod-mpi.py.sh +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-horovod-mpi.sh +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-hyper-param-tuning.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-iter-dataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-list-devices.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-lua-torch-layer.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-pretrain.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-record-and-push-to-webserver.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-returnn-as-framework.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-rf-pt-benchmark.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-rf.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-rhn-enwik8.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-sprint-interface.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-att-copy.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-attention.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-enc-dec.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-hard-att-copy.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-lstm-benchmark.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-native-lstm.12ax.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-native-lstm2.12ax.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-neural-transducer.12ax.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-rec-explicit-lstm.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-rec-explicit-rnn.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-rec-self-att.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-search-compiled-graph.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-timit-lstm-ctc.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-torch.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo.sh +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/README.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/chars.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/config_demo +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/config_fwd +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/config_real +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/decode.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/go.sh +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/lines.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/split/eval.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/split/train.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/split/valid.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/README.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial/create_test_h5.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial/forwardconfig +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial/go.sh +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial/trainconfig +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial_rgb/go.sh +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/pyproject.toml +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/requirements.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/__main__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/__old_mod_loader__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/__setup__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/config.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/audio.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/basic.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/bundle_file.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/cached.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/cached2.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/distrib_files.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/generating.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/hdf.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/lm.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/map.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/meta.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/multi_proc.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/normalization_data.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/numpy_dump.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/postprocessing.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/raw_wav.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/sprint.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/stereo.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/text_dict.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/util/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/util/feature_extraction.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/util/strings.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/datasets/util/vocabulary.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/engine/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/engine/base.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/engine/batch.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/__main__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/.git +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/graph_editor/README.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/graph_editor/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/graph_editor/edit.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/graph_editor/reroute.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/graph_editor/select.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/graph_editor/subgraph.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/graph_editor/transform.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/extern/graph_editor/util.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/forward_iface.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_cache.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_native/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_native/backend.cpp +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_native/backend.hpp +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_native/module.hpp +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_native/py_utils.hpp +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_native/tensor_ops.hpp +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_random_journal.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_utils.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/attention.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/audio/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/audio/mel.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/audio/specaugment.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/backend.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/build_from_dict.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/cond.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/const.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/container.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/control_flow_ctx.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/conv.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/conversions/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/conversions/espnet_e_branchformer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/conversions/hf_llama.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/conversions/torch_nn.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/decoder/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/decoder/transformer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/device.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/dropout.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/dtype.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/encoder/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/encoder/base.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/encoder/conformer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/encoder/conformer_v2.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/encoder/e_branchformer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/encoder/transformer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/gradient.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/graph.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/hooks.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/init.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/label_smoothing.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/linear.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/loop.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/loss.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/math_.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/matmul.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/module.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/nested.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/normalization.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/parameter.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/parametrizations.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/parametrize.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/piecewise_linear.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/rec.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/reduce.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/run_ctx.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/signal.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/state.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/stepwise_scheduler.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/tensor_array.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/types.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/import_/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/import_/common.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/import_/git.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/import_/import_.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/learning_rate_control.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/log.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/native_op.cpp +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/native_op.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/pretrain.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/sprint/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/sprint/cache.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/sprint/control.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/sprint/error_signals.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/sprint/extern_interface.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/sprint/interface.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/README.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/_dim_extra.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/_tensor_extra.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/_tensor_mixin_base.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/_tensor_op_overloads.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/control_flow_ctx.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/dim.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/marked_dim.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/tensor.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/tensor_dict.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tensor/utils.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/compat.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/data_pipeline.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/distributed.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/engine.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/README.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/_utils.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/cond.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/dims.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/layer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/loop.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/make_layer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/masked_computation.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_low_level/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/horovod.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/hyper_param_tuning.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/layers/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/layers/base.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/layers/basic.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/layers/rec.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/layers/segmental_model.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/layers/signal_processing.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/layers/variable.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/native_op.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/network.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/sprint.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/updater.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/util/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/util/basic.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/util/data.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/util/gradient_checkpoint.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/util/ken_lm.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/util/open_fst.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/README.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/data/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/data/extern_data.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/data/pipeline.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/data/queued_data_iter.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/data/tensor_utils.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/distributed.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/engine.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/frontend/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/frontend/_rand.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/frontend/bridge.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/frontend/raw_ops.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/optim/README.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/optim/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/optim/lion.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/updater.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/util/README.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/util/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/util/array_.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/util/debug_inf_nan.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/util/diagnose_gpu.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/util/exception_helper.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/util/gradient_checkpoint.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/util/module.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/torch/util/scaled_gradient.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/__init__.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/basic.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/better_exchook.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/bpe.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/debug.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/debug_helpers.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/file_cache.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/fsa.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/literal_py_to_pickle.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/lru_cache.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/math.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/native_code_compiler.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/pprint.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/py-to-pickle.cpp +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/py_ext_mod_compiler.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/result_with_reason.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/sig_proc.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/task_system.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/train_proc_manager.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/util/watch_memory.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn.egg-info/SOURCES.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn.egg-info/dependency_links.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn.egg-info/requires.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn.egg-info/top_level.txt +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/rnn.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/setup.cfg +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/setup.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/DummySprintExec.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm-inspection-profile.xml +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm.idea/.gitignore +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm.idea/.name +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm.idea/misc.xml +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm.idea/modules.xml +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm.idea/returnn.iml +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/_set_num_threads1.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/_setup_returnn_env.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/_setup_test_env.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/bpe-unicode-demo.codes +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/bpe-unicode-demo.vocab +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/lexicon_opt.fst +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/lexicon_opt.isyms +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/lexicon_opt.jpg +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/lexicon_opt.osyms +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/lint_common.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/pycharm-inspect.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/pylint.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/returnn-as-framework.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/rf_utils.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/spelling.dic +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_Config.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_Dataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_Fsa.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_GeneratingDataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_HDFDataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_LearningRateControl.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_Log.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_MultiProcDataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_Pretrain.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_ResNet.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_SprintDataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_SprintInterface.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_TFEngine.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_TFNativeOp.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_TFNetworkLayer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_TFNetworkRecLayer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_TFNetworkSigProcLayer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_TFUpdater.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_TFUtil.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_TF_determinism.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_TaskSystem.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_TaskSystem_SharedMem.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_TranslationDataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_Util.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_demos.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_fork_exec.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_hdf_dump.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_array.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_attention.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_base.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_cond.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_const.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_container.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_conv.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_decoder_transformer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_encoder_conformer.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_gradient.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_label_smoothing.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_loop.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_math.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_normalization.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_piecewise_linear.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_rec.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_reduce.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_rf_signal.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_tensor.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_threading.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_tools.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_torch_dataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_torch_engine.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_torch_frontend.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_torch_internal_frontend.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/test_torch_util.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tests/torch_utils.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/_setup_returnn_env.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/analyze-dataset-batches.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/bliss-collect-seq-lens.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/bliss-dump-text.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/bliss-get-segment-names.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/bliss-to-ogg-zip.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/bpe-create-lexicon.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/calculate-word-error-rate.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/cleanup-old-models.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/collect-orth-symbols.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/collect-words.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/compile_native_op.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/compile_tf_graph.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/debug-dump-search-scores.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/debug-plot-search-scores.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/dump-dataset-raw-strings.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/dump-dataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/dump-forward-stats.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/dump-forward.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/dump-network-json.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/dump-pickle.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/extract_state_tying_from_dataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/get-attention-weights.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/get-best-model-epoch.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/hdf_dump.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/hdf_dump_translation_dataset.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/import-blocks-mt-model.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/import-t2t-mt-model.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/.gitignore +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/Makefile +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/README.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/example/README.md +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/example/libs_list +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/example/state_vars_list +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/example/tensor_names_list +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/file.h +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/main.cc +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/rescorer.h +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/vocabulary.cc +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/lattice_rescorer/vocabulary.h +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/tf_avg_checkpoints.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/tf_inspect_checkpoint.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/tf_inspect_summary_log.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/torch_avg_checkpoints.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/torch_export_to_onnx.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/torch_inspect_checkpoint.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
- {returnn-1.20250220.174943 → returnn-1.20250220.200053}/tools/torch_scale_tuning.py +0 -0
|
@@ -784,18 +784,11 @@ class Backend(Generic[T]):
|
|
|
784
784
|
dims: Sequence[Dim],
|
|
785
785
|
dtype: str,
|
|
786
786
|
sparse_dim: Optional[Dim] = None,
|
|
787
|
+
feature_dim: Optional[Dim] = None,
|
|
787
788
|
device: Optional[str] = None,
|
|
788
789
|
name: Optional[str] = None,
|
|
789
790
|
) -> Tensor[T]:
|
|
790
|
-
"""
|
|
791
|
-
:param value: tensor, or scalar raw tensor or some other scalar value
|
|
792
|
-
:param dims:
|
|
793
|
-
:param dtype:
|
|
794
|
-
:param sparse_dim:
|
|
795
|
-
:param device:
|
|
796
|
-
:param name:
|
|
797
|
-
:return: tensor
|
|
798
|
-
"""
|
|
791
|
+
"""convert (raw/any) tensor to tensor"""
|
|
799
792
|
raise NotImplementedError
|
|
800
793
|
|
|
801
794
|
@staticmethod
|
|
@@ -956,6 +949,11 @@ class Backend(Generic[T]):
|
|
|
956
949
|
"""where"""
|
|
957
950
|
raise NotImplementedError
|
|
958
951
|
|
|
952
|
+
@staticmethod
|
|
953
|
+
def sort(source: Tensor, *, axis: Dim, descending: bool, stable: bool) -> Tuple[Tensor, Tensor, Dim]:
|
|
954
|
+
"""sort. return values and indices"""
|
|
955
|
+
raise NotImplementedError
|
|
956
|
+
|
|
959
957
|
@staticmethod
|
|
960
958
|
def search_sorted(
|
|
961
959
|
sorted_seq: Tensor, values: Tensor, *, axis: Dim, side: str = "left", out_dtype: str = "int32"
|
|
@@ -312,8 +312,9 @@ bool PyModuleState::_cachedOpInitTorch() {
|
|
|
312
312
|
AddOp(TOp_FloorDiv, "floor_divide");
|
|
313
313
|
AddOp(TOp_Mod, "remainder");
|
|
314
314
|
AddOp(TOp_Pow, "pow");
|
|
315
|
-
|
|
316
|
-
AddOp(
|
|
315
|
+
// Use clamp_min/clamp_max instead of maximum/minimum because the former allow number arguments.
|
|
316
|
+
AddOp(TOp_Maximum, "clamp_min");
|
|
317
|
+
AddOp(TOp_Minimum, "clamp_max");
|
|
317
318
|
AddOpAlt(TOp_SquaredDifference, "squared_difference");
|
|
318
319
|
AddOp(TOp_And, "logical_and");
|
|
319
320
|
AddOp(TOp_Or, "logical_or");
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/frontend/_native/tensor_ops.cpp
RENAMED
|
@@ -1368,6 +1368,14 @@ static PyObject* compareOrCombineViaCached(
|
|
|
1368
1368
|
case TOp_FloorDiv:
|
|
1369
1369
|
case TOp_Mod:
|
|
1370
1370
|
case TOp_Pow:
|
|
1371
|
+
case TOp_Maximum:
|
|
1372
|
+
case TOp_Minimum:
|
|
1373
|
+
case TOp_Eq:
|
|
1374
|
+
case TOp_Ne:
|
|
1375
|
+
case TOp_Lt:
|
|
1376
|
+
case TOp_Le:
|
|
1377
|
+
case TOp_Gt:
|
|
1378
|
+
case TOp_Ge:
|
|
1371
1379
|
needConvertToTensor = false;
|
|
1372
1380
|
default:
|
|
1373
1381
|
break;
|
|
@@ -83,6 +83,7 @@ class NumpyBackend(Backend[numpy.ndarray]):
|
|
|
83
83
|
dims: Sequence[Dim],
|
|
84
84
|
dtype: str,
|
|
85
85
|
sparse_dim: Optional[Dim] = None,
|
|
86
|
+
feature_dim: Optional[Dim] = None,
|
|
86
87
|
device: Optional[str] = None,
|
|
87
88
|
name: Optional[str] = None,
|
|
88
89
|
) -> Tensor[numpy.ndarray]:
|
|
@@ -95,7 +96,7 @@ class NumpyBackend(Backend[numpy.ndarray]):
|
|
|
95
96
|
name = name or "const"
|
|
96
97
|
value = numpy.array(value, dtype=NumpyBackend.as_dtype_raw(dtype))
|
|
97
98
|
assert isinstance(value, numpy.ndarray)
|
|
98
|
-
return Tensor(name, dims=dims, dtype=dtype, sparse_dim=sparse_dim, raw_tensor=value)
|
|
99
|
+
return Tensor(name, dims=dims, dtype=dtype, sparse_dim=sparse_dim, feature_dim=feature_dim, raw_tensor=value)
|
|
99
100
|
|
|
100
101
|
@staticmethod
|
|
101
102
|
def expand_dims_raw(raw_tensor: numpy.ndarray, axis: int) -> numpy.ndarray:
|
|
@@ -45,9 +45,12 @@ __all__ = [
|
|
|
45
45
|
"shift_left",
|
|
46
46
|
"reverse_sequence",
|
|
47
47
|
"where",
|
|
48
|
+
"sort",
|
|
48
49
|
"search_sorted",
|
|
49
50
|
"sparse_to_dense",
|
|
50
51
|
"one_hot",
|
|
52
|
+
"top_k_mask",
|
|
53
|
+
"top_p_mask",
|
|
51
54
|
]
|
|
52
55
|
|
|
53
56
|
|
|
@@ -57,6 +60,7 @@ def convert_to_tensor(
|
|
|
57
60
|
dims: Sequence[Dim] = None,
|
|
58
61
|
dtype: Optional[str] = None,
|
|
59
62
|
sparse_dim: Optional[Dim] = None,
|
|
63
|
+
feature_dim: Optional[Dim] = None,
|
|
60
64
|
shape: Sequence[Dim] = None,
|
|
61
65
|
device: Optional[str] = None,
|
|
62
66
|
keep_scalar_on_cpu: bool = False,
|
|
@@ -68,6 +72,7 @@ def convert_to_tensor(
|
|
|
68
72
|
:param dims:
|
|
69
73
|
:param dtype:
|
|
70
74
|
:param sparse_dim:
|
|
75
|
+
:param feature_dim:
|
|
71
76
|
:param shape: alias for dims, for some older code
|
|
72
77
|
:param name:
|
|
73
78
|
:param device:
|
|
@@ -121,7 +126,7 @@ def convert_to_tensor(
|
|
|
121
126
|
if dtype is None:
|
|
122
127
|
dtype = value_backend.get_dtype_name_raw(value)
|
|
123
128
|
return _backend.convert_to_tensor(
|
|
124
|
-
value=value, dims=dims, dtype=dtype, sparse_dim=sparse_dim, device=device, name=name
|
|
129
|
+
value=value, dims=dims, dtype=dtype, sparse_dim=sparse_dim, feature_dim=feature_dim, device=device, name=name
|
|
125
130
|
)
|
|
126
131
|
|
|
127
132
|
|
|
@@ -996,6 +1001,27 @@ def where(
|
|
|
996
1001
|
return cond._raw_backend.where(cond, true_, false_, allow_broadcast_all_sources=allow_broadcast_all_sources)
|
|
997
1002
|
|
|
998
1003
|
|
|
1004
|
+
def sort(source: Tensor, *, axis: Dim, descending: bool = False, stable: bool = True) -> Tuple[Tensor, Tensor, Dim]:
|
|
1005
|
+
"""
|
|
1006
|
+
Sorts the source tensor along the given axis.
|
|
1007
|
+
|
|
1008
|
+
See also :func:`top_k`.
|
|
1009
|
+
:func:`top_k` with ``k=axis.get_size_tensor()`` is equivalent to this function.
|
|
1010
|
+
|
|
1011
|
+
:param source: {other_dims..., axis}
|
|
1012
|
+
:param axis: The axis to sort along.
|
|
1013
|
+
:param descending: If True, sort in descending order, otherwise in ascending order.
|
|
1014
|
+
:param stable: If True, use a stable sorting algorithm (not reordering equal elements).
|
|
1015
|
+
Note that many frameworks (Torch, TensorFlow) have ``stable=False`` by default.
|
|
1016
|
+
``stable=False`` can be faster.
|
|
1017
|
+
:return: sorted tensor, indices tensor, out_dim. both tensors have the shape {other_dims..., out_dim},
|
|
1018
|
+
i.e. ``axis`` replaced by ``out_dim``.
|
|
1019
|
+
indices tensor has sparse_dim set to ``axis``.
|
|
1020
|
+
"""
|
|
1021
|
+
# noinspection PyProtectedMember
|
|
1022
|
+
return source._raw_backend.sort(source, axis=axis, descending=descending, stable=stable)
|
|
1023
|
+
|
|
1024
|
+
|
|
999
1025
|
def search_sorted(
|
|
1000
1026
|
sorted_seq: Tensor, values: Tensor, *, axis: Dim, side: str = "left", out_dtype: str = "int32"
|
|
1001
1027
|
) -> Tensor:
|
|
@@ -1044,3 +1070,49 @@ def one_hot(source: Tensor) -> Tensor:
|
|
|
1044
1070
|
and much more efficiently than they would be with dense tensors.
|
|
1045
1071
|
"""
|
|
1046
1072
|
return sparse_to_dense(source, label_value=1.0, other_value=0.0)
|
|
1073
|
+
|
|
1074
|
+
|
|
1075
|
+
def top_k_mask(values: Tensor, *, axis: Dim, k: Union[int, Tensor]) -> Tensor:
|
|
1076
|
+
"""
|
|
1077
|
+
Top-k filtering.
|
|
1078
|
+
|
|
1079
|
+
:param values: {other_dims..., axis}
|
|
1080
|
+
:param axis:
|
|
1081
|
+
:param k: the number of top values to keep
|
|
1082
|
+
:return: mask {other_dims..., axis} of the top-k values
|
|
1083
|
+
"""
|
|
1084
|
+
_, indices, k_dim = rf.top_k(values, axis=axis, k=k)
|
|
1085
|
+
mask = rf.scatter(rf.full(dims=indices.dims, fill_value=True), indices=indices, indices_dim=k_dim, fill_value=False)
|
|
1086
|
+
return mask
|
|
1087
|
+
|
|
1088
|
+
|
|
1089
|
+
def top_p_mask(
|
|
1090
|
+
probs: Tensor,
|
|
1091
|
+
*,
|
|
1092
|
+
axis: Dim,
|
|
1093
|
+
p: Union[float, Tensor],
|
|
1094
|
+
one_more: bool = True,
|
|
1095
|
+
) -> Tensor:
|
|
1096
|
+
"""
|
|
1097
|
+
Top-p filtering, e.g. as used in Nucleus sampling (https://arxiv.org/abs/1904.09751).
|
|
1098
|
+
|
|
1099
|
+
:param probs: {probs_dims..., axis}
|
|
1100
|
+
:param axis:
|
|
1101
|
+
:param p: the probability mass to keep
|
|
1102
|
+
:param one_more: if True (default), keep also the first token above the threshold.
|
|
1103
|
+
(It's enabled by default to follow the behavior of the original implementation.)
|
|
1104
|
+
:return: mask {probs_dims..., axis} of the top-p tokens.
|
|
1105
|
+
``sum(probs[mask]) <= p``, or slightly more if ``one_more`` is True.
|
|
1106
|
+
"""
|
|
1107
|
+
assert 0.0 <= p <= 1.0
|
|
1108
|
+
if isinstance(p, Tensor):
|
|
1109
|
+
assert axis not in p.dims
|
|
1110
|
+
# https://github.com/ari-holtzman/degen/blob/master/gen.py
|
|
1111
|
+
sorted_probs, sorted_indices, sorted_dim = rf.sort(probs, axis=axis, descending=True)
|
|
1112
|
+
cum_probs = rf.cumsum(sorted_probs, spatial_dim=sorted_dim)
|
|
1113
|
+
mask = cum_probs <= p # {probs_dims..., sorted_dim}
|
|
1114
|
+
if one_more:
|
|
1115
|
+
# keep also the first token above the threshold
|
|
1116
|
+
mask = rf.shift_right(mask, axis=sorted_dim, pad_value=True)
|
|
1117
|
+
mask = rf.scatter(mask, indices=sorted_indices, indices_dim=sorted_dim)
|
|
1118
|
+
return mask
|
|
@@ -14,6 +14,7 @@ __all__ = [
|
|
|
14
14
|
"range_over_dim",
|
|
15
15
|
"range_over_dim_strided",
|
|
16
16
|
"range_over_merged_dims",
|
|
17
|
+
"linspace_over_dim",
|
|
17
18
|
"replace_dim",
|
|
18
19
|
"replace_dim_v2",
|
|
19
20
|
"set_sparse_dim",
|
|
@@ -81,6 +82,36 @@ def range_over_merged_dims(
|
|
|
81
82
|
return indices
|
|
82
83
|
|
|
83
84
|
|
|
85
|
+
def linspace_over_dim(
|
|
86
|
+
dim: Dim,
|
|
87
|
+
start: Union[float, Tensor] = 0.0,
|
|
88
|
+
end: Union[float, Tensor] = 1.0,
|
|
89
|
+
*,
|
|
90
|
+
dtype: Optional[str] = None,
|
|
91
|
+
device: Optional[str] = None,
|
|
92
|
+
) -> Tensor:
|
|
93
|
+
"""
|
|
94
|
+
Linearly spaced values over a dim.
|
|
95
|
+
|
|
96
|
+
:param dim: dim to range over
|
|
97
|
+
:param start: start value
|
|
98
|
+
:param end: end value
|
|
99
|
+
:param dtype: dtype of the output tensor
|
|
100
|
+
:param device: device of the output tensor
|
|
101
|
+
:return: tensor with shape [dim] containing linearly spaced values between start and end
|
|
102
|
+
"""
|
|
103
|
+
if dtype is None:
|
|
104
|
+
dtype = rf.get_default_float_dtype()
|
|
105
|
+
indices = rf.range_over_dim(dim, dtype=dtype, device=device)
|
|
106
|
+
linspace = indices / rf.cast(rf.maximum(dim.get_size_tensor(device=indices.device), 1), dtype=indices.dtype)
|
|
107
|
+
space_len = end - start
|
|
108
|
+
if not isinstance(space_len, (int, float)) or space_len != 1:
|
|
109
|
+
linspace *= space_len
|
|
110
|
+
if not isinstance(start, (int, float)) or start != 0:
|
|
111
|
+
linspace += start
|
|
112
|
+
return linspace
|
|
113
|
+
|
|
114
|
+
|
|
84
115
|
def replace_dim(source: Tensor, *, in_dim: Dim, out_dim: Optional[Dim] = None) -> Tuple[Tensor, Dim]:
|
|
85
116
|
"""
|
|
86
117
|
Also see: :func:`replace_dim_v2`, :func:`rf.merge_dims`, :func:`rf.split_dims`.
|
|
@@ -64,6 +64,7 @@ __all__ = [
|
|
|
64
64
|
"random_uniform",
|
|
65
65
|
"random_normal",
|
|
66
66
|
"random_truncated_normal",
|
|
67
|
+
"random_choice_without_replacement",
|
|
67
68
|
]
|
|
68
69
|
|
|
69
70
|
|
|
@@ -349,3 +350,32 @@ def random_truncated_normal(
|
|
|
349
350
|
static=static,
|
|
350
351
|
out=out,
|
|
351
352
|
)
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
def random_choice_without_replacement(
|
|
356
|
+
*,
|
|
357
|
+
log_probs: Tensor,
|
|
358
|
+
axis: Union[Dim, Sequence[Dim]],
|
|
359
|
+
num_samples_dim: Dim,
|
|
360
|
+
noise_scale: Union[float, Tensor] = 1.0,
|
|
361
|
+
) -> Union[Tensor, Sequence[Tensor]]:
|
|
362
|
+
"""
|
|
363
|
+
Randomly sample without replacement.
|
|
364
|
+
|
|
365
|
+
:param log_probs: {log_probs_dims..., axis}
|
|
366
|
+
:param axis: same as in :func:`top_k`
|
|
367
|
+
:param num_samples_dim: how many samples to draw
|
|
368
|
+
:param noise_scale: scale the noise. with scale=0, you get :func:`top_k`.
|
|
369
|
+
:return: random indices shape {log_probs_dims..., num_samples_dim} -> axis.
|
|
370
|
+
if axis was a sequence, will return a sequence of tensors.
|
|
371
|
+
"""
|
|
372
|
+
# https://github.com/tensorflow/tensorflow/issues/9260
|
|
373
|
+
# https://timvieira.github.io/blog/post/2014/08/01/gumbel-max-trick-and-weighted-reservoir-sampling/
|
|
374
|
+
scores_random_sample = -rf.log(
|
|
375
|
+
-rf.log(random_uniform(log_probs.dims, dtype=log_probs.dtype, device=log_probs.device))
|
|
376
|
+
)
|
|
377
|
+
if not isinstance(noise_scale, (int, float)) or noise_scale != 1.0:
|
|
378
|
+
scores_random_sample *= noise_scale
|
|
379
|
+
scores = log_probs + scores_random_sample
|
|
380
|
+
_, indices, _ = rf.top_k(scores, k_dim=num_samples_dim, axis=axis)
|
|
381
|
+
return indices
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_layers/_backend.py
RENAMED
|
@@ -559,6 +559,7 @@ class ReturnnLayersBackend(Backend[Layer]):
|
|
|
559
559
|
dims: Sequence[Dim],
|
|
560
560
|
dtype: str,
|
|
561
561
|
sparse_dim: Optional[Dim] = None,
|
|
562
|
+
feature_dim: Optional[Dim] = None,
|
|
562
563
|
device: Optional[str] = None,
|
|
563
564
|
name: Optional[str] = None,
|
|
564
565
|
) -> Tensor[Layer]:
|
|
@@ -568,6 +569,8 @@ class ReturnnLayersBackend(Backend[Layer]):
|
|
|
568
569
|
kwargs = {}
|
|
569
570
|
if sparse_dim:
|
|
570
571
|
kwargs["sparse_dim"] = sparse_dim
|
|
572
|
+
if feature_dim:
|
|
573
|
+
kwargs["feature_dim"] = feature_dim
|
|
571
574
|
dim_deps = _dims.get_dim_deps(dims)
|
|
572
575
|
if dim_deps:
|
|
573
576
|
kwargs["shape_deps"] = dim_deps
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/returnn/tf/frontend_low_level/_backend.py
RENAMED
|
@@ -411,24 +411,19 @@ class TFBackend(Backend[tf.Tensor]):
|
|
|
411
411
|
dims: Sequence[Dim],
|
|
412
412
|
dtype: str,
|
|
413
413
|
sparse_dim: Optional[Dim] = None,
|
|
414
|
+
feature_dim: Optional[Dim] = None,
|
|
414
415
|
device: Optional[str] = None,
|
|
415
416
|
name: Optional[str] = None,
|
|
416
417
|
) -> _TT:
|
|
417
|
-
"""
|
|
418
|
-
:param value:
|
|
419
|
-
:param dims:
|
|
420
|
-
:param dtype:
|
|
421
|
-
:param sparse_dim:
|
|
422
|
-
:param device:
|
|
423
|
-
:param name:
|
|
424
|
-
:return: tensor
|
|
425
|
-
"""
|
|
418
|
+
"""convert to tensor"""
|
|
426
419
|
if isinstance(value, Tensor):
|
|
427
420
|
return value
|
|
428
421
|
with tf.control_dependencies(None):
|
|
429
422
|
value = tf.convert_to_tensor(value, dtype=dtype)
|
|
430
423
|
assert isinstance(value, tf.Tensor)
|
|
431
|
-
return Tensor(
|
|
424
|
+
return Tensor(
|
|
425
|
+
name or "const", raw_tensor=value, dims=dims, dtype=dtype, sparse_dim=sparse_dim, feature_dim=feature_dim
|
|
426
|
+
)
|
|
432
427
|
|
|
433
428
|
@staticmethod
|
|
434
429
|
def range_over_dim(dim: Dim, *, dtype: Optional[str] = None, device: Optional[str] = None) -> _TT:
|
|
@@ -895,18 +895,11 @@ class TorchBackend(Backend[torch.Tensor]):
|
|
|
895
895
|
dims: Sequence[Dim],
|
|
896
896
|
dtype: str,
|
|
897
897
|
sparse_dim: Optional[Dim] = None,
|
|
898
|
+
feature_dim: Optional[Dim] = None,
|
|
898
899
|
device: Optional[str] = None,
|
|
899
900
|
name: Optional[str] = None,
|
|
900
901
|
) -> Tensor[torch.Tensor]:
|
|
901
|
-
"""
|
|
902
|
-
:param value:
|
|
903
|
-
:param dims:
|
|
904
|
-
:param dtype:
|
|
905
|
-
:param sparse_dim:
|
|
906
|
-
:param device:
|
|
907
|
-
:param name:
|
|
908
|
-
:return: tensor
|
|
909
|
-
"""
|
|
902
|
+
"""convert to tensor"""
|
|
910
903
|
if isinstance(value, Tensor):
|
|
911
904
|
return value
|
|
912
905
|
if isinstance(value, torch.Tensor):
|
|
@@ -926,7 +919,7 @@ class TorchBackend(Backend[torch.Tensor]):
|
|
|
926
919
|
device=device or rf.get_default_device(),
|
|
927
920
|
)
|
|
928
921
|
assert isinstance(value, torch.Tensor)
|
|
929
|
-
return Tensor(name, dims=dims, dtype=dtype, sparse_dim=sparse_dim, raw_tensor=value)
|
|
922
|
+
return Tensor(name, dims=dims, dtype=dtype, sparse_dim=sparse_dim, feature_dim=feature_dim, raw_tensor=value)
|
|
930
923
|
|
|
931
924
|
@staticmethod
|
|
932
925
|
def full(
|
|
@@ -1223,6 +1216,21 @@ class TorchBackend(Backend[torch.Tensor]):
|
|
|
1223
1216
|
out.raw_tensor = torch.where(cond_bc_raw, true_bc_raw, false_bc_raw)
|
|
1224
1217
|
return out
|
|
1225
1218
|
|
|
1219
|
+
@staticmethod
|
|
1220
|
+
def sort(source: Tensor, *, axis: Dim, descending: bool, stable: bool) -> Tuple[Tensor, Tensor, Dim]:
|
|
1221
|
+
"""sort. return values and indices"""
|
|
1222
|
+
axis_int = source.get_axis_from_description(axis, allow_int=False)
|
|
1223
|
+
# Move to last axis. Should be more efficient.
|
|
1224
|
+
source = source.copy_move_axis(axis_int, -1)
|
|
1225
|
+
axis_int = source.batch_ndim - 1
|
|
1226
|
+
values_raw, indices_raw = torch.sort(source.raw_tensor, dim=axis_int, descending=descending, stable=stable)
|
|
1227
|
+
out_dims = list(source.dims)
|
|
1228
|
+
out_dim = axis.copy(same_as_self=False, description=f"{axis.description}:sorted")
|
|
1229
|
+
out_dims[axis_int] = out_dim
|
|
1230
|
+
values = rf.convert_to_tensor(values_raw, dims=out_dims, feature_dim={axis: out_dim}.get(source.feature_dim))
|
|
1231
|
+
indices = rf.convert_to_tensor(indices_raw, dims=out_dims, sparse_dim=axis)
|
|
1232
|
+
return values, indices, out_dim
|
|
1233
|
+
|
|
1226
1234
|
@staticmethod
|
|
1227
1235
|
def search_sorted(
|
|
1228
1236
|
sorted_seq: Tensor, values: Tensor, *, axis: Dim, side: str = "left", out_dtype: str = "int32"
|
|
@@ -1566,6 +1574,9 @@ class TorchBackend(Backend[torch.Tensor]):
|
|
|
1566
1574
|
return values, indices_out, k_dim
|
|
1567
1575
|
assert isinstance(axis, Dim)
|
|
1568
1576
|
axis_int = source.get_axis_from_description(axis, allow_int=False)
|
|
1577
|
+
# Move to last axis. Should be more efficient.
|
|
1578
|
+
source = source.copy_move_axis(axis_int, -1)
|
|
1579
|
+
axis_int = source.batch_ndim - 1
|
|
1569
1580
|
values_raw, indices_raw = torch.topk(
|
|
1570
1581
|
source.raw_tensor, k=k_dim.get_dim_value(), dim=axis_int, largest=True, sorted=sorted
|
|
1571
1582
|
)
|
|
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.20250220.174943 → returnn-1.20250220.200053}/demos/demo-hyper-param-tuning.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/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.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-chunking-blstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-contribrnn-lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-maxgradnorm-lstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-native-lstm-lowmem.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-native-lstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-native-lstm2.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-native-lstm2.12ax.tuned.config
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-neural-transducer.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-rec-explicit-lstm.config
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-rec-explicit-rnn.config
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-search-compiled-graph.py
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-tf-vanilla-lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/demo-upd-mult-model.lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/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.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/IAM/create_IAM_dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/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.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial/create_test_h5.py
RENAMED
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial/forwardconfig
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial_rgb/forwardconfig
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20250220.174943 → returnn-1.20250220.200053}/demos/mdlstm/artificial_rgb/trainconfig
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
|
|
File without changes
|
|
File without changes
|