returnn 1.20240119.134529__tar.gz → 1.20240124.211635__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.20240119.134529/returnn.egg-info → returnn-1.20240124.211635}/PKG-INFO +1 -1
- returnn-1.20240124.211635/_setup_info_generated.py +2 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/hdf.py +1 -1
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/__init__.py +1 -0
- returnn-1.20240124.211635/returnn/frontend/hooks.py +165 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/module.py +19 -1
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/multi_proc_non_daemonic_spawn.py +43 -16
- {returnn-1.20240119.134529 → returnn-1.20240124.211635/returnn.egg-info}/PKG-INFO +1 -1
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn.egg-info/SOURCES.txt +1 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_torch_frontend.py +48 -0
- returnn-1.20240119.134529/_setup_info_generated.py +0 -2
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/.editorconfig +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/.gitignore +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/.gitmodules +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/.kateconfig +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/CHANGELOG.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/CODEOWNERS +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/CONTRIBUTING.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/LICENSE +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/MANIFEST.in +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/README.rst +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/12AX.cluster_map +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/_setup_returnn_env.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-fwd.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-horovod-mpi.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-horovod-mpi.py.sh +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-horovod-mpi.sh +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-hyper-param-tuning.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-iter-dataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-list-devices.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-lua-torch-layer.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-pretrain.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-record-and-push-to-webserver.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-returnn-as-framework.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-rf-pt-benchmark.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-rf.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-rhn-enwik8.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-sprint-interface.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-att-copy.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-attention.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-enc-dec.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-hard-att-copy.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-lstm-benchmark.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-native-lstm.12ax.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-native-lstm2.12ax.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-neural-transducer.12ax.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-rec-explicit-lstm.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-rec-explicit-rnn.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-rec-self-att.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-search-compiled-graph.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-timit-lstm-ctc.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-torch.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo.sh +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/README.txt +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/chars.txt +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/config_demo +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/config_fwd +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/config_real +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/decode.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/go.sh +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/lines.txt +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/split/eval.txt +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/split/train.txt +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/split/valid.txt +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/README.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/artificial/create_test_h5.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/artificial/forwardconfig +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/artificial/go.sh +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/artificial/trainconfig +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/artificial_rgb/go.sh +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/pyproject.toml +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/requirements.txt +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/__main__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/__old_mod_loader__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/__setup__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/config.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/audio.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/basic.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/bundle_file.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/cached.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/cached2.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/generating.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/lm.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/map.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/meta.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/multi_proc.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/normalization_data.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/numpy_dump.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/raw_wav.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/sprint.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/stereo.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/util/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/util/feature_extraction.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/util/strings.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/datasets/util/vocabulary.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/engine/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/engine/base.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/engine/batch.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/__main__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/.git +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/graph_editor/README.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/graph_editor/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/graph_editor/edit.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/graph_editor/reroute.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/graph_editor/select.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/graph_editor/subgraph.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/graph_editor/transform.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/extern/graph_editor/util.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/forward_iface.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_backend.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_native/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_native/backend.cpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_native/backend.hpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_native/module.cpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_native/module.hpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_native/py_utils.hpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_native/tensor_ops.cpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_native/tensor_ops.hpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_numpy_backend.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_random_journal.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/_utils.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/array_.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/attention.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/audio/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/audio/mel.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/audio/specaugment.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/backend.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/cond.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/const.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/container.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/control_flow_ctx.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/conv.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/decoder/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/decoder/transformer.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/device.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/dims.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/dropout.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/dtype.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/encoder/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/encoder/base.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/encoder/conformer.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/gradient.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/graph.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/init.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/label_smoothing.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/linear.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/loop.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/loss.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/math_.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/matmul.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/normalization.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/parameter.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/rand.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/rec.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/reduce.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/run_ctx.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/signal.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/state.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/tensor_array.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/frontend/types.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/import_/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/import_/common.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/import_/git.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/import_/import_.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/learning_rate_control.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/log.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/native_op.cpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/native_op.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/pretrain.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/sprint/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/sprint/cache.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/sprint/control.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/sprint/error_signals.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/sprint/extern_interface.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/sprint/interface.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/README.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/_dim_extra.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/_tensor_extra.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/_tensor_mixin_base.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/_tensor_op_overloads.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/control_flow_ctx.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/dim.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/marked_dim.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/tensor.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/tensor_dict.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tensor/utils.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/compat.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/data_pipeline.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/distributed.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/engine.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/README.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/_backend.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/_utils.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/cond.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/dims.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/layer.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/loop.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/make_layer.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/masked_computation.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_low_level/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/frontend_low_level/_backend.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/horovod.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/hyper_param_tuning.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/layers/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/layers/base.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/layers/basic.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/layers/rec.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/layers/segmental_model.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/layers/signal_processing.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/layers/variable.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/native_op.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/network.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/sprint.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/updater.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/util/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/util/basic.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/util/data.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/util/gradient_checkpoint.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/util/ken_lm.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/tf/util/open_fst.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/README.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/data/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/data/extern_data.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/data/pipeline.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/data/queued_data_iter.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/data/tensor_utils.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/distributed.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/engine.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/frontend/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/frontend/_backend.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/frontend/_rand.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/frontend/bridge.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/frontend/raw_ops.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/updater.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/util/README.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/util/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/util/diagnose_gpu.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/torch/util/scaled_gradient.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/__init__.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/basic.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/better_exchook.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/bpe.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/debug.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/debug_helpers.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/fsa.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/literal_py_to_pickle.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/math.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/native_code_compiler.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/pprint.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/py-to-pickle.cpp +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/py_compat.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/py_ext_mod_compiler.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/result_with_reason.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/sig_proc.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/task_system.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/train_proc_manager.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn/util/watch_memory.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn.egg-info/dependency_links.txt +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/returnn.egg-info/top_level.txt +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/rnn.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/setup.cfg +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/setup.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/DummySprintExec.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm-inspection-profile.xml +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm.idea/.gitignore +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm.idea/.name +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm.idea/misc.xml +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm.idea/modules.xml +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm.idea/returnn.iml +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/_set_num_threads1.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/_setup_returnn_env.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/_setup_test_env.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/bpe-unicode-demo.codes +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/bpe-unicode-demo.vocab +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/lexicon_opt.fst +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/lexicon_opt.isyms +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/lexicon_opt.jpg +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/lexicon_opt.osyms +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/lint_common.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/pycharm-inspect.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/pylint.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/returnn-as-framework.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/rf_utils.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/spelling.dic +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_Config.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_Dataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_Fsa.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_GeneratingDataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_HDFDataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_LearningRateControl.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_Log.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_MultiProcDataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_Pretrain.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_ResNet.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_SprintDataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_SprintInterface.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_TFEngine.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_TFNativeOp.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_TFNetworkLayer.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_TFNetworkRecLayer.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_TFNetworkSigProcLayer.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_TFUpdater.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_TFUtil.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_TF_determinism.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_TaskSystem.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_TaskSystem_SharedMem.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_TranslationDataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_Util.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_demos.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_fork_exec.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_hdf_dump.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_array.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_attention.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_base.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_cond.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_const.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_container.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_conv.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_encoder_conformer.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_gradient.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_label_smoothing.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_loop.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_math.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_normalization.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_rec.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_reduce.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_rf_signal.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_tensor.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_tools.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_torch_dataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_torch_engine.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tests/test_torch_internal_frontend.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/_setup_returnn_env.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/analyze-dataset-batches.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/bliss-collect-seq-lens.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/bliss-dump-text.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/bliss-get-segment-names.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/bliss-to-ogg-zip.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/bpe-create-lexicon.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/calculate-word-error-rate.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/cleanup-old-models.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/collect-orth-symbols.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/collect-words.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/compile_native_op.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/compile_tf_graph.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/debug-dump-search-scores.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/debug-plot-search-scores.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/dump-dataset-raw-strings.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/dump-dataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/dump-forward-stats.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/dump-forward.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/dump-network-json.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/dump-pickle.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/extract_state_tying_from_dataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/get-attention-weights.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/get-best-model-epoch.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/hdf_dump.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/hdf_dump_translation_dataset.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/import-blocks-mt-model.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/import-t2t-mt-model.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/.gitignore +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/Makefile +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/README.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/example/README.md +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/example/libs_list +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/example/state_vars_list +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/example/tensor_names_list +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/file.h +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/main.cc +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/rescorer.h +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/vocabulary.cc +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/lattice_rescorer/vocabulary.h +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/tf_avg_checkpoints.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/tf_inspect_checkpoint.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/tf_inspect_summary_log.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/torch_avg_checkpoints.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/torch_export_to_onnx.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/torch_inspect_checkpoint.py +0 -0
- {returnn-1.20240119.134529 → returnn-1.20240124.211635}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
|
@@ -438,7 +438,7 @@ class HDFDataset(CachedDataset):
|
|
|
438
438
|
:param str key:
|
|
439
439
|
:rtype: bool
|
|
440
440
|
"""
|
|
441
|
-
if self.get_data_dtype(key)
|
|
441
|
+
if "int" in self.get_data_dtype(key):
|
|
442
442
|
if key in self.num_outputs:
|
|
443
443
|
return self.num_outputs[key][1] <= 1
|
|
444
444
|
return False
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Hooks logic
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
from typing import Optional, Any, Dict, Callable, TypeVar, Tuple
|
|
7
|
+
from types import MethodType
|
|
8
|
+
from collections import OrderedDict
|
|
9
|
+
import weakref
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
__all__ = ["setup_post_hook_on_method", "RemovableHandle"]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
T = TypeVar("T")
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def setup_post_hook_on_method(
|
|
19
|
+
obj: Any,
|
|
20
|
+
attr: str,
|
|
21
|
+
hook: Callable[[T, Tuple[Any, ...], Dict[str, Any], Any], Optional[Any]],
|
|
22
|
+
*,
|
|
23
|
+
prepend: bool = False,
|
|
24
|
+
) -> RemovableHandle:
|
|
25
|
+
"""
|
|
26
|
+
:param obj: e.g. module
|
|
27
|
+
:param attr: attribute name to get the method, via ``getattr(obj, attr)``
|
|
28
|
+
:param hook:
|
|
29
|
+
:param prepend: if there are multiple hooks, this will be registered in front of all, otherwise at the end
|
|
30
|
+
"""
|
|
31
|
+
method = MethodWithHooks.get(obj, attr)
|
|
32
|
+
return _register_new_hook(method, method.post_hooks, hook, prepend=prepend)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class MethodWithHooks:
|
|
36
|
+
"""
|
|
37
|
+
Method with hooks
|
|
38
|
+
|
|
39
|
+
(Not sure yet whether this should be exposed in the API...)
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
@classmethod
|
|
43
|
+
def get(cls, obj: Any, attr: str) -> MethodWithHooks:
|
|
44
|
+
"""get existing or init new :class:`MethodWithHooks`"""
|
|
45
|
+
method = getattr(obj, attr)
|
|
46
|
+
if not isinstance(method, MethodWithHooks):
|
|
47
|
+
assert (
|
|
48
|
+
isinstance(method, MethodType)
|
|
49
|
+
and method.__self__ is obj
|
|
50
|
+
and method.__func__ is getattr(obj.__class__, attr)
|
|
51
|
+
), (
|
|
52
|
+
f"{obj}.{attr} is {method}, {method.__self__} is not obj"
|
|
53
|
+
f" or {method.__func__} is not {getattr(obj.__class__, attr)}"
|
|
54
|
+
) # not necessary, just what we expect here...
|
|
55
|
+
method = MethodWithHooks(obj, attr)
|
|
56
|
+
method.setup()
|
|
57
|
+
return method
|
|
58
|
+
|
|
59
|
+
def __init__(self, obj: Any, attr: str):
|
|
60
|
+
"""
|
|
61
|
+
:param obj:
|
|
62
|
+
:param attr:
|
|
63
|
+
"""
|
|
64
|
+
self.obj = obj
|
|
65
|
+
self.attr = attr
|
|
66
|
+
self.post_hooks: Dict[int, Callable[[T, Tuple[Any, ...], Dict[str, Any], Any], Optional[Any]]] = OrderedDict()
|
|
67
|
+
|
|
68
|
+
def setup(self):
|
|
69
|
+
"""setup on object"""
|
|
70
|
+
setattr(self.obj, self.attr, self)
|
|
71
|
+
if self.attr == "__call__":
|
|
72
|
+
self.obj.__class__.__call__ = _CallWrapperClass(self.obj.__class__)
|
|
73
|
+
|
|
74
|
+
def uninstall(self):
|
|
75
|
+
"""undo the setup"""
|
|
76
|
+
assert not self.post_hooks
|
|
77
|
+
delattr(self.obj, self.attr)
|
|
78
|
+
if self.attr == "__call__":
|
|
79
|
+
call_wrapper = self.obj.__class__.__call__
|
|
80
|
+
assert isinstance(call_wrapper, _CallWrapperClass)
|
|
81
|
+
self.obj.__class__.__call__ = call_wrapper.orig_call
|
|
82
|
+
|
|
83
|
+
def has_any_hook(self) -> bool:
|
|
84
|
+
"""whether there is any hook"""
|
|
85
|
+
return bool(self.post_hooks)
|
|
86
|
+
|
|
87
|
+
def __call__(self, *args, **kwargs):
|
|
88
|
+
function = getattr(self.obj.__class__, self.attr)
|
|
89
|
+
if isinstance(function, _CallWrapperClass):
|
|
90
|
+
function = function.orig_call
|
|
91
|
+
result = function(self.obj, *args, **kwargs)
|
|
92
|
+
for hook in self.post_hooks.values():
|
|
93
|
+
result = hook(self.obj, args, kwargs, result)
|
|
94
|
+
return result
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
class _CallWrapperClass:
|
|
98
|
+
"""
|
|
99
|
+
We need special handling for ``obj(*args, **kwargs)`` - simply wrapping ``__call__`` is not enough.
|
|
100
|
+
An instance of this class here would overwrite the obj.__class__.__call__.
|
|
101
|
+
"""
|
|
102
|
+
|
|
103
|
+
def __init__(self, cls):
|
|
104
|
+
self.cls = cls
|
|
105
|
+
self.orig_call = getattr(cls, "__call__")
|
|
106
|
+
|
|
107
|
+
def __call__(self, obj, *args, **kwargs): # called on the class
|
|
108
|
+
call_func = getattr(obj, "__call__")
|
|
109
|
+
if isinstance(call_func, MethodWithHooks): # obj has hooks installed
|
|
110
|
+
return call_func(*args, **kwargs)
|
|
111
|
+
# This is what we would expect currently, but the user might have dome some weird things,
|
|
112
|
+
# e.g. overwritten obj.__call__ or obj.__class__.__call__ in some other way,
|
|
113
|
+
# so maybe extend this then, if we encounter this.
|
|
114
|
+
# (Only do it when we really now the case properly, and add a test case for it.)
|
|
115
|
+
assert isinstance(call_func, MethodType)
|
|
116
|
+
assert call_func.__func__ is self
|
|
117
|
+
assert call_func.__self__ is obj
|
|
118
|
+
return self.orig_call(obj, *args, **kwargs)
|
|
119
|
+
|
|
120
|
+
def __get__(self, obj, objtype=None):
|
|
121
|
+
if obj is not None:
|
|
122
|
+
return MethodType(self, obj)
|
|
123
|
+
return self
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
def _register_new_hook(
|
|
127
|
+
method: MethodWithHooks,
|
|
128
|
+
hooks_dict: Dict[int, Any],
|
|
129
|
+
hook: Callable[[T, Tuple[Any, ...], Dict[str, Any], Any], Optional[Any]],
|
|
130
|
+
*,
|
|
131
|
+
prepend: bool = False,
|
|
132
|
+
) -> RemovableHandle:
|
|
133
|
+
"""register"""
|
|
134
|
+
handle = RemovableHandle(method, hooks_dict)
|
|
135
|
+
hooks_dict[handle.id] = hook
|
|
136
|
+
if prepend:
|
|
137
|
+
assert isinstance(hooks_dict, OrderedDict)
|
|
138
|
+
hooks_dict.move_to_end(handle.id, last=False)
|
|
139
|
+
return handle
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
class RemovableHandle:
|
|
143
|
+
"""
|
|
144
|
+
A handle which provides the capability to remove a hook.
|
|
145
|
+
|
|
146
|
+
Code partly copied from PyTorch.
|
|
147
|
+
"""
|
|
148
|
+
|
|
149
|
+
id: int
|
|
150
|
+
next_id: int = 0
|
|
151
|
+
|
|
152
|
+
def __init__(self, method: MethodWithHooks, hooks_dict: Dict[int, Any]):
|
|
153
|
+
self.method_ref = weakref.ref(method)
|
|
154
|
+
self.hooks_dict_ref = weakref.ref(hooks_dict)
|
|
155
|
+
self.id = RemovableHandle.next_id
|
|
156
|
+
RemovableHandle.next_id += 1
|
|
157
|
+
|
|
158
|
+
def remove(self) -> None:
|
|
159
|
+
"""remove hook"""
|
|
160
|
+
method: MethodWithHooks = self.method_ref()
|
|
161
|
+
hooks_dict = self.hooks_dict_ref()
|
|
162
|
+
if hooks_dict is not None and self.id in hooks_dict:
|
|
163
|
+
del hooks_dict[self.id]
|
|
164
|
+
if method and not method.has_any_hook(): # we removed the last hook
|
|
165
|
+
method.uninstall()
|
|
@@ -3,7 +3,7 @@ Base module class, :class:`Module`.
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
|
-
from typing import Any, Optional, Sequence, List, Tuple, Union, Set, Iterator, Callable, TypeVar
|
|
6
|
+
from typing import Any, Optional, Sequence, List, Tuple, Union, Set, Iterator, Callable, TypeVar, Dict
|
|
7
7
|
from returnn.util.basic import OptionalNotImplementedError, RefIdEq
|
|
8
8
|
from returnn.tensor import Tensor, Dim
|
|
9
9
|
from .. import frontend as rf
|
|
@@ -247,6 +247,24 @@ class Module:
|
|
|
247
247
|
param: rf.Parameter
|
|
248
248
|
param.to(device=device, dtype=dtype)
|
|
249
249
|
|
|
250
|
+
def register_forward_hook(
|
|
251
|
+
self,
|
|
252
|
+
hook: Callable[[T, Tuple[Any, ...], Dict[str, Any], Any], Optional[Any]],
|
|
253
|
+
*,
|
|
254
|
+
prepend: bool = False,
|
|
255
|
+
) -> rf.hooks.RemovableHandle:
|
|
256
|
+
"""
|
|
257
|
+
Register forward hook. Very similar to PyTorch. (Code even partly copied from PyTorch.)
|
|
258
|
+
This will be called after __call__, following this logic (where module=self):
|
|
259
|
+
|
|
260
|
+
result = module(*args, **kwargs)
|
|
261
|
+
result = hook(args, kwargs, result)
|
|
262
|
+
|
|
263
|
+
:param hook:
|
|
264
|
+
:param prepend: if there are multiple hooks, this will be registered in front of all, otherwise at the end
|
|
265
|
+
"""
|
|
266
|
+
return rf.hooks.setup_post_hook_on_method(self, "__call__", hook=hook, prepend=prepend)
|
|
267
|
+
|
|
250
268
|
|
|
251
269
|
class Functional(Module):
|
|
252
270
|
"""
|
|
@@ -17,6 +17,8 @@ References:
|
|
|
17
17
|
"""
|
|
18
18
|
|
|
19
19
|
from __future__ import annotations
|
|
20
|
+
|
|
21
|
+
import time
|
|
20
22
|
from typing import Optional, Any, Callable, Tuple
|
|
21
23
|
import os
|
|
22
24
|
import signal
|
|
@@ -66,7 +68,7 @@ class NonDaemonicSpawnProcess(SpawnProcess):
|
|
|
66
68
|
|
|
67
69
|
def join(self, timeout=None):
|
|
68
70
|
"""join"""
|
|
69
|
-
if is_exiting():
|
|
71
|
+
if is_exiting() and self.is_alive():
|
|
70
72
|
# Process._bootstrap (the subproc main logic) will do an early call to
|
|
71
73
|
# multiprocessing.util._exit_function, which terminates all daemon procs,
|
|
72
74
|
# and then joins all procs (daemon or non-daemon).
|
|
@@ -80,12 +82,21 @@ class NonDaemonicSpawnProcess(SpawnProcess):
|
|
|
80
82
|
# but then it is too late, as we would hang here now in the join().
|
|
81
83
|
# https://github.com/rwth-i6/returnn/issues/1497
|
|
82
84
|
# https://github.com/python/cpython/issues/114220
|
|
83
|
-
try
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
# First try SIGINT. See NonDaemonicSpawnProcess docstring.
|
|
86
|
+
# Then, if that fails, try the others.
|
|
87
|
+
signals = ["SIGINT"] * 3 + ["SIGTERM", "SIGKILL"]
|
|
88
|
+
for sig in signals:
|
|
89
|
+
try:
|
|
90
|
+
print(f"Send signal {sig} to pid {self.ident}")
|
|
91
|
+
os.kill(self.ident, getattr(signal, sig))
|
|
92
|
+
except ProcessLookupError:
|
|
93
|
+
break
|
|
94
|
+
super().join(timeout=5)
|
|
95
|
+
if not self.is_alive():
|
|
96
|
+
break
|
|
87
97
|
super().join(timeout=timeout)
|
|
88
|
-
self.
|
|
98
|
+
if not self.is_alive():
|
|
99
|
+
self._close_cleanup()
|
|
89
100
|
|
|
90
101
|
def close(self):
|
|
91
102
|
"""close"""
|
|
@@ -155,15 +166,31 @@ class _AtExitCleanupProcess:
|
|
|
155
166
|
return # ignore
|
|
156
167
|
if self.proc_pid is None: # already cleaned
|
|
157
168
|
return
|
|
158
|
-
#
|
|
159
|
-
try
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
pass
|
|
164
|
-
else:
|
|
169
|
+
# First try SIGINT. See NonDaemonicSpawnProcess docstring.
|
|
170
|
+
# Then, if that fails, try the others.
|
|
171
|
+
signals = ["SIGINT"] * 3 + ["SIGTERM", "SIGKILL"]
|
|
172
|
+
for sig in signals:
|
|
173
|
+
# The proc might have been killed by some other code. That's ok.
|
|
165
174
|
try:
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
175
|
+
print(f"Send signal {sig} to pid {self.proc_pid}")
|
|
176
|
+
os.kill(self.proc_pid, getattr(signal, sig))
|
|
177
|
+
except ProcessLookupError:
|
|
178
|
+
break
|
|
179
|
+
if self._waitpid():
|
|
180
|
+
break
|
|
181
|
+
time.sleep(1)
|
|
182
|
+
if self._waitpid():
|
|
183
|
+
break
|
|
184
|
+
time.sleep(4)
|
|
185
|
+
if self._waitpid():
|
|
186
|
+
break
|
|
169
187
|
self.proc_pid = None
|
|
188
|
+
|
|
189
|
+
def _waitpid(self) -> bool:
|
|
190
|
+
try:
|
|
191
|
+
pid, _ = os.waitpid(self.proc_pid, os.WNOHANG)
|
|
192
|
+
if pid == self.proc_pid:
|
|
193
|
+
return True
|
|
194
|
+
except ChildProcessError:
|
|
195
|
+
return True
|
|
196
|
+
return False
|
|
@@ -533,6 +533,54 @@ def test_Data_copy_tranpose_match_priority():
|
|
|
533
533
|
numpy.testing.assert_equal(x_np, raw_np)
|
|
534
534
|
|
|
535
535
|
|
|
536
|
+
def test_forward_hook():
|
|
537
|
+
from returnn.frontend import hooks
|
|
538
|
+
from types import MethodType, FunctionType
|
|
539
|
+
|
|
540
|
+
call_count = 0
|
|
541
|
+
hook_call_count = 0
|
|
542
|
+
|
|
543
|
+
class _Module(rf.Module):
|
|
544
|
+
def __call__(self, x: Tensor) -> Tensor:
|
|
545
|
+
nonlocal call_count
|
|
546
|
+
call_count += 1
|
|
547
|
+
return x * 0.5
|
|
548
|
+
|
|
549
|
+
def _hook(module, args, kwargs, result):
|
|
550
|
+
nonlocal hook_call_count
|
|
551
|
+
assert isinstance(module, _Module) and module is mod
|
|
552
|
+
assert isinstance(args, tuple) and len(args) == 1 and isinstance(args[0], Tensor)
|
|
553
|
+
assert isinstance(kwargs, dict) and len(kwargs) == 0
|
|
554
|
+
assert isinstance(result, Tensor)
|
|
555
|
+
hook_call_count += 1
|
|
556
|
+
return result * 2.0
|
|
557
|
+
|
|
558
|
+
mod = _Module()
|
|
559
|
+
time_dim = Dim(None, name="time")
|
|
560
|
+
x = Tensor("x", [time_dim], "float32", raw_tensor=torch.range(0.0, 5.0))
|
|
561
|
+
mod(x)
|
|
562
|
+
assert call_count == 1 and hook_call_count == 0
|
|
563
|
+
|
|
564
|
+
handle = mod.register_forward_hook(_hook)
|
|
565
|
+
assert isinstance(handle, hooks.RemovableHandle)
|
|
566
|
+
assert isinstance(mod.__call__, hooks.MethodWithHooks)
|
|
567
|
+
assert isinstance(mod.__class__.__call__, hooks._CallWrapperClass)
|
|
568
|
+
mod(x)
|
|
569
|
+
assert call_count == 2 and hook_call_count == 1
|
|
570
|
+
|
|
571
|
+
mod.__call__(x)
|
|
572
|
+
assert call_count == 3 and hook_call_count == 2
|
|
573
|
+
|
|
574
|
+
handle.remove()
|
|
575
|
+
assert isinstance(mod.__call__, MethodType)
|
|
576
|
+
assert isinstance(mod.__class__.__call__, FunctionType)
|
|
577
|
+
mod(x)
|
|
578
|
+
assert call_count == 4 and hook_call_count == 2
|
|
579
|
+
|
|
580
|
+
mod.__call__(x)
|
|
581
|
+
assert call_count == 5 and hook_call_count == 2
|
|
582
|
+
|
|
583
|
+
|
|
536
584
|
if __name__ == "__main__":
|
|
537
585
|
better_exchook.install()
|
|
538
586
|
if len(sys.argv) <= 1:
|
|
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.20240119.134529 → returnn-1.20240124.211635}/demos/demo-hyper-param-tuning.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/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.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-chunking-blstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-contribrnn-lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-maxgradnorm-lstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-native-lstm-lowmem.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-native-lstm.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-native-lstm2.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-native-lstm2.12ax.tuned.config
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-neural-transducer.12ax.config
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-rec-explicit-lstm.config
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-rec-explicit-rnn.config
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-search-compiled-graph.py
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-tf-vanilla-lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/demo-upd-mult-model.lstm.12ax.config
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/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.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/IAM/create_IAM_dataset.py
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/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.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/artificial/create_test_h5.py
RENAMED
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/artificial/forwardconfig
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/demos/mdlstm/artificial_rgb/forwardconfig
RENAMED
|
File without changes
|
|
File without changes
|
{returnn-1.20240119.134529 → returnn-1.20240124.211635}/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
|
|
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
|