returnn 1.20250122.223647__tar.gz → 1.20250123.223321__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of returnn might be problematic. Click here for more details.
- {returnn-1.20250122.223647/returnn.egg-info → returnn-1.20250123.223321}/PKG-INFO +1 -1
- returnn-1.20250123.223321/_setup_info_generated.py +2 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-iter-dataset.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/__main__.py +1 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/config.py +76 -85
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/audio.py +2 -6
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/hdf.py +6 -15
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/sprint.py +3 -6
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/log.py +0 -2
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/control.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/interface.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/_tensor_op_overloads.py +1 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/basic.py +2 -2
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/basic.py +10 -9
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/basic.py +11 -167
- {returnn-1.20250122.223647 → returnn-1.20250123.223321/returnn.egg-info}/PKG-INFO +1 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/_setup_test_env.py +0 -2
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_HDFDataset.py +3 -6
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Log.py +1 -4
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFNetworkLayer.py +0 -2
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFUtil.py +0 -2
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TranslationDataset.py +0 -5
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Util.py +0 -8
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/analyze-dataset-batches.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/calculate-word-error-rate.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/collect-orth-symbols.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/collect-words.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/compile_native_op.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/compile_tf_graph.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/debug-dump-search-scores.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-dataset-raw-strings.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-dataset.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/hdf_dump.py +0 -1
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/torch_export_to_onnx.py +0 -1
- returnn-1.20250122.223647/_setup_info_generated.py +0 -2
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/.editorconfig +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/.gitignore +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/.gitmodules +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/.kateconfig +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/CHANGELOG.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/CODEOWNERS +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/CONTRIBUTING.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/LICENSE +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/MANIFEST.in +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/README.rst +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/12AX.cluster_map +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/_setup_returnn_env.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-fwd.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-horovod-mpi.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-horovod-mpi.py.sh +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-horovod-mpi.sh +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-hyper-param-tuning.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-list-devices.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-lua-torch-layer.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-pretrain.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-record-and-push-to-webserver.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-returnn-as-framework.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-rf-pt-benchmark.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-rf.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-rhn-enwik8.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-sprint-interface.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-att-copy.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-attention.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-enc-dec.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-hard-att-copy.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-lstm-benchmark.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm.12ax.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm2.12ax.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-neural-transducer.12ax.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-rec-explicit-lstm.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-rec-explicit-rnn.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-rec-self-att.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-search-compiled-graph.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-timit-lstm-ctc.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-torch.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo.sh +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/README.txt +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/chars.txt +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/config_demo +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/config_fwd +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/config_real +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/decode.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/go.sh +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/lines.txt +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/split/eval.txt +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/split/train.txt +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/split/valid.txt +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/README.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial/create_test_h5.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial/forwardconfig +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial/go.sh +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial/trainconfig +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/go.sh +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/pyproject.toml +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/requirements.txt +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/__old_mod_loader__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/__setup__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/basic.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/bundle_file.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/cached.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/cached2.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/distrib_files.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/generating.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/lm.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/map.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/meta.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/multi_proc.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/normalization_data.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/numpy_dump.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/postprocessing.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/raw_wav.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/stereo.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/text_dict.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/util/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/util/feature_extraction.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/util/strings.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/util/vocabulary.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/engine/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/engine/base.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/engine/batch.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/__main__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/.git +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/README.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/edit.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/reroute.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/select.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/subgraph.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/transform.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/util.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/forward_iface.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_backend.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_cache.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/backend.cpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/backend.hpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/module.cpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/module.hpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/py_utils.hpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/tensor_ops.cpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/tensor_ops.hpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_numpy_backend.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_random_journal.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_utils.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/array_.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/attention.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/audio/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/audio/mel.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/audio/specaugment.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/backend.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/build_from_dict.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/cond.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/const.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/container.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/control_flow_ctx.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/conv.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/conversions/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/conversions/espnet_e_branchformer.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/conversions/hf_llama.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/conversions/torch_nn.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/decoder/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/decoder/transformer.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/device.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/dims.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/dropout.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/dtype.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/base.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/conformer.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/conformer_v2.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/e_branchformer.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/transformer.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/gradient.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/graph.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/hooks.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/init.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/label_smoothing.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/linear.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/loop.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/loss.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/math_.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/matmul.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/module.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/normalization.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/parameter.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/parametrizations.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/parametrize.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/piecewise_linear.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/rand.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/rec.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/reduce.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/run_ctx.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/signal.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/state.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/stepwise_scheduler.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/tensor_array.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/types.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/import_/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/import_/common.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/import_/git.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/import_/import_.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/learning_rate_control.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/native_op.cpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/native_op.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/pretrain.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/cache.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/error_signals.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/extern_interface.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/README.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/_dim_extra.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/_tensor_extra.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/_tensor_mixin_base.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/control_flow_ctx.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/dim.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/marked_dim.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/tensor.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/tensor_dict.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/utils.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/compat.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/data_pipeline.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/distributed.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/engine.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/README.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/_backend.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/_utils.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/cond.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/dims.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/layer.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/loop.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/make_layer.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/masked_computation.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_low_level/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_low_level/_backend.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/horovod.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/hyper_param_tuning.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/base.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/rec.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/segmental_model.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/signal_processing.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/variable.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/native_op.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/network.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/sprint.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/updater.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/data.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/gradient_checkpoint.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/ken_lm.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/open_fst.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/README.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/extern_data.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/pipeline.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/queued_data_iter.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/tensor_utils.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/distributed.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/engine.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/frontend/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/frontend/_backend.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/frontend/_rand.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/frontend/bridge.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/frontend/raw_ops.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/optim/README.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/optim/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/optim/lion.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/updater.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/README.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/array_.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/debug_inf_nan.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/diagnose_gpu.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/exception_helper.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/gradient_checkpoint.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/module.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/scaled_gradient.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/__init__.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/better_exchook.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/bpe.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/debug.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/debug_helpers.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/file_cache.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/fsa.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/literal_py_to_pickle.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/lru_cache.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/math.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/native_code_compiler.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/pprint.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/py-to-pickle.cpp +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/py_ext_mod_compiler.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/result_with_reason.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/sig_proc.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/task_system.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/train_proc_manager.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/watch_memory.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn.egg-info/SOURCES.txt +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn.egg-info/dependency_links.txt +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn.egg-info/top_level.txt +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/rnn.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/setup.cfg +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/setup.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/DummySprintExec.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm-inspection-profile.xml +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/.gitignore +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/.name +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/misc.xml +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/modules.xml +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/returnn.iml +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/_set_num_threads1.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/_setup_returnn_env.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/bpe-unicode-demo.codes +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/bpe-unicode-demo.vocab +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/lexicon_opt.fst +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/lexicon_opt.isyms +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/lexicon_opt.jpg +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/lexicon_opt.osyms +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/lint_common.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/pycharm-inspect.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/pylint.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/returnn-as-framework.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/rf_utils.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/spelling.dic +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Config.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Dataset.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Fsa.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_GeneratingDataset.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_LearningRateControl.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_MultiProcDataset.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Pretrain.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_ResNet.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_SprintDataset.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_SprintInterface.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFEngine.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFNativeOp.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFNetworkRecLayer.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFNetworkSigProcLayer.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFUpdater.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TF_determinism.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TaskSystem.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TaskSystem_SharedMem.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_demos.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_fork_exec.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_hdf_dump.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_array.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_attention.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_base.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_cond.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_const.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_container.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_conv.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_decoder_transformer.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_encoder_conformer.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_gradient.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_label_smoothing.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_loop.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_math.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_normalization.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_piecewise_linear.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_rec.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_reduce.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_signal.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_tensor.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_threading.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_tools.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_torch_dataset.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_torch_engine.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_torch_frontend.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_torch_internal_frontend.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_torch_util.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/torch_utils.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/_setup_returnn_env.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/bliss-collect-seq-lens.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/bliss-dump-text.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/bliss-get-segment-names.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/bliss-to-ogg-zip.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/bpe-create-lexicon.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/cleanup-old-models.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/debug-plot-search-scores.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-forward-stats.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-forward.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-network-json.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-pickle.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/extract_state_tying_from_dataset.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/get-attention-weights.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/get-best-model-epoch.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/hdf_dump_translation_dataset.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/import-blocks-mt-model.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/import-t2t-mt-model.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/.gitignore +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/Makefile +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/README.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/README.md +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/libs_list +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/state_vars_list +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/tensor_names_list +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/file.h +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/main.cc +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/rescorer.h +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/vocabulary.cc +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/vocabulary.h +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/tf_avg_checkpoints.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/tf_inspect_checkpoint.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/tf_inspect_summary_log.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/torch_avg_checkpoints.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/torch_inspect_checkpoint.py +0 -0
- {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
|
@@ -36,6 +36,7 @@ from returnn.util.basic import BackendEngine, BehaviorVersion
|
|
|
36
36
|
# noinspection PyUnresolvedReferences
|
|
37
37
|
from returnn.util.debug import init_ipython_kernel, init_better_exchook, init_faulthandler, debug_shell
|
|
38
38
|
|
|
39
|
+
# Some external scripts import those functions from here, thus keep this here.
|
|
39
40
|
# noinspection PyUnresolvedReferences
|
|
40
41
|
from returnn.util.basic import init_thread_join_hack, describe_returnn_version
|
|
41
42
|
|
|
@@ -454,7 +455,6 @@ def init(config_filename=None, command_line_options=(), config_updates=None, ext
|
|
|
454
455
|
"""
|
|
455
456
|
with util.ReportImportedDevModules(description="RETURNN init"):
|
|
456
457
|
debug_util.init_better_exchook()
|
|
457
|
-
util.init_thread_join_hack()
|
|
458
458
|
init_config(
|
|
459
459
|
config_filename=config_filename, command_line_options=command_line_options, extra_updates=config_updates
|
|
460
460
|
)
|
|
@@ -7,13 +7,16 @@ from __future__ import annotations
|
|
|
7
7
|
__author__ = "Patrick Doetsch"
|
|
8
8
|
__credits__ = ["Patrick Doetsch", "Paul Voigtlaender"]
|
|
9
9
|
|
|
10
|
-
from typing import Optional, Any, Dict, List
|
|
10
|
+
from typing import TypeVar, Type, Optional, Union, Any, Dict, List, Sequence, Tuple
|
|
11
11
|
import contextlib
|
|
12
12
|
import sys
|
|
13
13
|
import os
|
|
14
14
|
import types as _types
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
T = TypeVar("T")
|
|
18
|
+
|
|
19
|
+
|
|
17
20
|
class Config:
|
|
18
21
|
"""
|
|
19
22
|
Reads in some config file, and provides access to the key/value items.
|
|
@@ -140,11 +143,10 @@ class Config:
|
|
|
140
143
|
self.add_line(key=line[0], value=line[1])
|
|
141
144
|
|
|
142
145
|
@classmethod
|
|
143
|
-
def get_config_file_type(cls, f):
|
|
146
|
+
def get_config_file_type(cls, f: str) -> str:
|
|
144
147
|
"""
|
|
145
|
-
:param
|
|
148
|
+
:param f: file path
|
|
146
149
|
:return: "py", "js" or "txt"
|
|
147
|
-
:rtype: str
|
|
148
150
|
"""
|
|
149
151
|
with open(f, "r") as f:
|
|
150
152
|
start = f.read(3)
|
|
@@ -154,9 +156,9 @@ class Config:
|
|
|
154
156
|
return "js"
|
|
155
157
|
return "txt"
|
|
156
158
|
|
|
157
|
-
def parse_cmd_args(self, args):
|
|
159
|
+
def parse_cmd_args(self, args: Sequence[str]):
|
|
158
160
|
"""
|
|
159
|
-
:param
|
|
161
|
+
:param args:
|
|
160
162
|
"""
|
|
161
163
|
from optparse import OptionParser
|
|
162
164
|
|
|
@@ -262,11 +264,12 @@ class Config:
|
|
|
262
264
|
value = value[1:] # otherwise we never could specify things like "++threshold -0.1"
|
|
263
265
|
self.add_line(key=key[2:], value=value)
|
|
264
266
|
|
|
265
|
-
def add_line(self, key, value):
|
|
267
|
+
def add_line(self, key: str, value: str):
|
|
266
268
|
"""
|
|
267
269
|
Adds one specific configuration (key,value) pair to the inner set of parameters
|
|
268
|
-
|
|
269
|
-
:
|
|
270
|
+
|
|
271
|
+
:param key:
|
|
272
|
+
:param value:
|
|
270
273
|
"""
|
|
271
274
|
if key in self.typed_dict:
|
|
272
275
|
# This is a special case. We overwrite a config value which was typed before.
|
|
@@ -300,69 +303,65 @@ class Config:
|
|
|
300
303
|
else:
|
|
301
304
|
self.dict[key] = value
|
|
302
305
|
|
|
303
|
-
def has(self, key):
|
|
306
|
+
def has(self, key: str) -> bool:
|
|
304
307
|
"""
|
|
305
308
|
Returns whether the given key is present in the inner set of parameters
|
|
306
|
-
|
|
307
|
-
:
|
|
308
|
-
:returns True if and only if the given key is in the inner set of parameters
|
|
309
|
+
|
|
310
|
+
:param key:
|
|
311
|
+
:returns: True if and only if the given key is in the inner set of parameters
|
|
309
312
|
"""
|
|
310
313
|
if key in self.typed_dict:
|
|
311
314
|
return True
|
|
312
315
|
return key in self.dict
|
|
313
316
|
|
|
314
|
-
def is_typed(self, key):
|
|
317
|
+
def is_typed(self, key: str) -> bool:
|
|
315
318
|
"""
|
|
316
|
-
:
|
|
317
|
-
:
|
|
318
|
-
:returns True if and only if the value of the given key has a specified data type
|
|
319
|
+
:param key:
|
|
320
|
+
:returns: True if and only if the value of the given key has a specified data type
|
|
319
321
|
"""
|
|
320
322
|
return key in self.typed_dict
|
|
321
323
|
|
|
322
|
-
def is_true(self, key, default=False):
|
|
324
|
+
def is_true(self, key: str, default: bool = False) -> bool:
|
|
323
325
|
"""
|
|
324
|
-
:param
|
|
325
|
-
:param
|
|
326
|
+
:param key:
|
|
327
|
+
:param default:
|
|
326
328
|
:return: bool(value) if it is set or default
|
|
327
|
-
:rtype: bool
|
|
328
329
|
"""
|
|
329
330
|
if self.is_typed(key):
|
|
330
331
|
return bool(self.typed_dict[key])
|
|
331
332
|
return self.bool(key, default=default)
|
|
332
333
|
|
|
333
|
-
def is_of_type(self, key, types):
|
|
334
|
+
def is_of_type(self, key: str, types: Union[type, Tuple[type, ...]]) -> bool:
|
|
334
335
|
"""
|
|
335
|
-
:param
|
|
336
|
-
:param
|
|
336
|
+
:param key:
|
|
337
|
+
:param types: for isinstance() check
|
|
337
338
|
:return: whether is_typed(key) is True and isinstance(value, types) is True
|
|
338
|
-
:rtype: bool
|
|
339
339
|
"""
|
|
340
340
|
if key in self.typed_dict:
|
|
341
341
|
return isinstance(self.typed_dict[key], types)
|
|
342
342
|
return False
|
|
343
343
|
|
|
344
|
-
def get_of_type(self, key, types, default=None):
|
|
344
|
+
def get_of_type(self, key: str, types: Union[type, Tuple[type, ...], Type[T]], default: Optional[T] = None) -> T:
|
|
345
345
|
"""
|
|
346
346
|
:param str key:
|
|
347
|
-
:param
|
|
348
|
-
:param
|
|
347
|
+
:param types: for isinstance() check
|
|
348
|
+
:param default:
|
|
349
349
|
:return: if is_of_type(key, types) is True, returns the value, otherwise default
|
|
350
|
-
:rtype: T
|
|
351
350
|
"""
|
|
352
351
|
if self.is_of_type(key, types):
|
|
353
352
|
return self.typed_dict[key]
|
|
354
353
|
return default
|
|
355
354
|
|
|
356
|
-
def set(self, key, value):
|
|
355
|
+
def set(self, key: str, value: Any):
|
|
357
356
|
"""
|
|
358
|
-
:
|
|
359
|
-
:
|
|
357
|
+
:param key:
|
|
358
|
+
:param value:
|
|
360
359
|
"""
|
|
361
360
|
self.typed_dict[key] = value
|
|
362
361
|
|
|
363
|
-
def update(self, dikt):
|
|
362
|
+
def update(self, dikt: Dict[str, Any]):
|
|
364
363
|
"""
|
|
365
|
-
:
|
|
364
|
+
:param dikt: dict
|
|
366
365
|
"""
|
|
367
366
|
for key, value in dikt.items():
|
|
368
367
|
self.set(key, value)
|
|
@@ -383,13 +382,12 @@ class Config:
|
|
|
383
382
|
|
|
384
383
|
setattr(self, "value", wrapped_value_func)
|
|
385
384
|
|
|
386
|
-
def value(self, key, default, index=None, list_join_str=","):
|
|
385
|
+
def value(self, key: str, default: T, index: Optional[int] = None, list_join_str: str = ",") -> Union[T, str]:
|
|
387
386
|
"""
|
|
388
|
-
:
|
|
389
|
-
:
|
|
390
|
-
:
|
|
391
|
-
:param
|
|
392
|
-
:rtype: str | T
|
|
387
|
+
:param key:
|
|
388
|
+
:param default:
|
|
389
|
+
:param index:
|
|
390
|
+
:param list_join_str:
|
|
393
391
|
"""
|
|
394
392
|
if key in self.typed_dict:
|
|
395
393
|
ls = self.typed_dict[key]
|
|
@@ -410,12 +408,11 @@ class Config:
|
|
|
410
408
|
return ls[index]
|
|
411
409
|
return default
|
|
412
410
|
|
|
413
|
-
def typed_value(self, key, default=None, index=None):
|
|
411
|
+
def typed_value(self, key: str, default: Optional[T] = None, index: Optional[int] = None) -> Union[T, Any]:
|
|
414
412
|
"""
|
|
415
|
-
:
|
|
416
|
-
:
|
|
417
|
-
:
|
|
418
|
-
:rtype: T | typing.Any
|
|
413
|
+
:param key:
|
|
414
|
+
:param default:
|
|
415
|
+
:param index:
|
|
419
416
|
"""
|
|
420
417
|
value = self.typed_dict.get(key, default)
|
|
421
418
|
if index is not None:
|
|
@@ -426,23 +423,22 @@ class Config:
|
|
|
426
423
|
assert index == 0
|
|
427
424
|
return value
|
|
428
425
|
|
|
429
|
-
def opt_typed_value(self, key, default=None):
|
|
426
|
+
def opt_typed_value(self, key: str, default: Optional[T] = None) -> Union[T, Any, str]:
|
|
430
427
|
"""
|
|
431
|
-
:param
|
|
432
|
-
:param
|
|
433
|
-
:rtype: T|object|str|None
|
|
428
|
+
:param key:
|
|
429
|
+
:param default:
|
|
434
430
|
"""
|
|
435
431
|
if key in self.typed_dict:
|
|
436
432
|
return self.typed_dict[key]
|
|
437
433
|
return self.value(key, default)
|
|
438
434
|
|
|
439
|
-
def int(self, key, default, index=0):
|
|
435
|
+
def int(self, key: str, default: T, index: int = 0) -> Union[int, T]:
|
|
440
436
|
"""
|
|
441
437
|
Parses the value of the given key as integer, returning default if not existent
|
|
442
|
-
|
|
443
|
-
:
|
|
444
|
-
:
|
|
445
|
-
:
|
|
438
|
+
|
|
439
|
+
:param key:
|
|
440
|
+
:param default:
|
|
441
|
+
:param index:
|
|
446
442
|
"""
|
|
447
443
|
if key in self.typed_dict:
|
|
448
444
|
value = self.typed_value(key, default=default, index=index)
|
|
@@ -453,13 +449,13 @@ class Config:
|
|
|
453
449
|
return int(self.value(key, default, index))
|
|
454
450
|
return default
|
|
455
451
|
|
|
456
|
-
def bool(self, key, default, index=0):
|
|
452
|
+
def bool(self, key: str, default: T, index: int = 0) -> Union[bool, T]:
|
|
457
453
|
"""
|
|
458
454
|
Parses the value of the given key as boolean, returning default if not existent
|
|
459
|
-
|
|
460
|
-
:
|
|
461
|
-
:
|
|
462
|
-
:
|
|
455
|
+
|
|
456
|
+
:param key:
|
|
457
|
+
:param default:
|
|
458
|
+
:param index:
|
|
463
459
|
"""
|
|
464
460
|
if key in self.typed_dict:
|
|
465
461
|
value = self.typed_value(key, default=default, index=index)
|
|
@@ -477,13 +473,12 @@ class Config:
|
|
|
477
473
|
|
|
478
474
|
return to_bool(v)
|
|
479
475
|
|
|
480
|
-
def bool_or_other(self, key, default=None, index=0):
|
|
476
|
+
def bool_or_other(self, key: str, default: Optional[T] = None, index: int = 0) -> Union[bool, T, Any]:
|
|
481
477
|
"""
|
|
482
|
-
:param
|
|
483
|
-
:param
|
|
484
|
-
:param
|
|
478
|
+
:param key:
|
|
479
|
+
:param default:
|
|
480
|
+
:param index:
|
|
485
481
|
:return: if we have typed value, just as-is. otherwise try to convert to bool. or default if not there.
|
|
486
|
-
:rtype: bool|T|object
|
|
487
482
|
"""
|
|
488
483
|
if key in self.typed_dict:
|
|
489
484
|
return self.typed_value(key, default=default, index=index)
|
|
@@ -499,13 +494,13 @@ class Config:
|
|
|
499
494
|
except ValueError:
|
|
500
495
|
return v
|
|
501
496
|
|
|
502
|
-
def float(self, key, default, index=0):
|
|
497
|
+
def float(self, key: str, default: T, index: int = 0) -> Union[float, T]:
|
|
503
498
|
"""
|
|
504
499
|
Parses the value of the given key as float, returning default if not existent
|
|
505
|
-
|
|
506
|
-
:
|
|
507
|
-
:
|
|
508
|
-
:
|
|
500
|
+
|
|
501
|
+
:param key:
|
|
502
|
+
:param default:
|
|
503
|
+
:param index:
|
|
509
504
|
"""
|
|
510
505
|
if key in self.typed_dict:
|
|
511
506
|
value = self.typed_value(key, default=default, index=index)
|
|
@@ -519,11 +514,10 @@ class Config:
|
|
|
519
514
|
assert isinstance(value, (int, float))
|
|
520
515
|
return value
|
|
521
516
|
|
|
522
|
-
def list(self, key, default=None):
|
|
517
|
+
def list(self, key: str, default: Optional[T] = None) -> Union[List[str], T]:
|
|
523
518
|
"""
|
|
524
|
-
:
|
|
525
|
-
:
|
|
526
|
-
:rtype: list[str] | T
|
|
519
|
+
:param key:
|
|
520
|
+
:param default:
|
|
527
521
|
"""
|
|
528
522
|
if default is None:
|
|
529
523
|
default = []
|
|
@@ -538,11 +532,10 @@ class Config:
|
|
|
538
532
|
return default
|
|
539
533
|
return self.dict[key]
|
|
540
534
|
|
|
541
|
-
def int_list(self, key, default=None):
|
|
535
|
+
def int_list(self, key: str, default: Optional[T] = None) -> Union[List[int], T]:
|
|
542
536
|
"""
|
|
543
|
-
:
|
|
544
|
-
:
|
|
545
|
-
:rtype: list[int] | T
|
|
537
|
+
:param key:
|
|
538
|
+
:param default:
|
|
546
539
|
"""
|
|
547
540
|
if default is None:
|
|
548
541
|
default = []
|
|
@@ -557,11 +550,10 @@ class Config:
|
|
|
557
550
|
return list(value)
|
|
558
551
|
return [int(x) for x in self.list(key, default)]
|
|
559
552
|
|
|
560
|
-
def float_list(self, key, default=None):
|
|
553
|
+
def float_list(self, key: str, default: Optional[T] = None) -> Union[List[float], T]:
|
|
561
554
|
"""
|
|
562
|
-
:
|
|
563
|
-
:
|
|
564
|
-
:rtype: list[float] | T
|
|
555
|
+
:param key:
|
|
556
|
+
:param default:
|
|
565
557
|
"""
|
|
566
558
|
if default is None:
|
|
567
559
|
default = []
|
|
@@ -576,11 +568,10 @@ class Config:
|
|
|
576
568
|
return list(value)
|
|
577
569
|
return [float(x) for x in self.list(key, default)]
|
|
578
570
|
|
|
579
|
-
def int_pair(self, key, default=None):
|
|
571
|
+
def int_pair(self, key: str, default: Optional[Tuple[int, int]] = None) -> Tuple[int, int]:
|
|
580
572
|
"""
|
|
581
|
-
:param
|
|
582
|
-
:param
|
|
583
|
-
:rtype: (int,int)
|
|
573
|
+
:param key:
|
|
574
|
+
:param default:
|
|
584
575
|
"""
|
|
585
576
|
if default is None:
|
|
586
577
|
default = (0, 0)
|
|
@@ -13,7 +13,6 @@ from .cached2 import CachedDataset2
|
|
|
13
13
|
from .util.feature_extraction import ExtractAudioFeatures
|
|
14
14
|
from .util.vocabulary import Vocabulary
|
|
15
15
|
from .util.strings import str_to_numpy_array
|
|
16
|
-
from returnn.util.basic import PY3
|
|
17
16
|
|
|
18
17
|
|
|
19
18
|
class OggZipDataset(CachedDataset2):
|
|
@@ -553,11 +552,8 @@ class OggZipDataset(CachedDataset2):
|
|
|
553
552
|
features["classes"] = numpy.array(targets, dtype="int32")
|
|
554
553
|
raw_txt = str_to_numpy_array(txt)
|
|
555
554
|
orth = txt.encode("utf8")
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
orth = list(orth)
|
|
559
|
-
else:
|
|
560
|
-
orth = list(map(ord, orth))
|
|
555
|
+
assert isinstance(orth, bytes)
|
|
556
|
+
orth = list(orth)
|
|
561
557
|
orth = numpy.array(orth, dtype="uint8")
|
|
562
558
|
return DatasetSeq(
|
|
563
559
|
features={**features, "raw": raw_txt, "orth": orth},
|
|
@@ -3,8 +3,9 @@ Provides :class:`HDFDataset`.
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
|
-
import
|
|
6
|
+
from typing import Union
|
|
7
7
|
import typing
|
|
8
|
+
import bisect
|
|
8
9
|
import collections
|
|
9
10
|
import gc
|
|
10
11
|
import h5py
|
|
@@ -67,17 +68,8 @@ class HDFDataset(CachedDataset):
|
|
|
67
68
|
del self.file_seq_start[:]
|
|
68
69
|
|
|
69
70
|
@staticmethod
|
|
70
|
-
def _decode(s):
|
|
71
|
-
|
|
72
|
-
:param str|bytes|unicode s:
|
|
73
|
-
:rtype: str
|
|
74
|
-
"""
|
|
75
|
-
from returnn.util.basic import unicode, PY3
|
|
76
|
-
|
|
77
|
-
if not PY3 and isinstance(s, unicode):
|
|
78
|
-
s = s.encode("utf8")
|
|
79
|
-
assert isinstance(s, str) # Python 2
|
|
80
|
-
if not isinstance(s, str): # bytes (Python 3)
|
|
71
|
+
def _decode(s: Union[str, bytes]) -> str:
|
|
72
|
+
if isinstance(s, bytes):
|
|
81
73
|
s = s.decode("utf-8")
|
|
82
74
|
s = s.split("\0")[0]
|
|
83
75
|
return s
|
|
@@ -1431,7 +1423,7 @@ class HDFDatasetWriter:
|
|
|
1431
1423
|
:param int|float end_seq:
|
|
1432
1424
|
:param bool use_progress_bar:
|
|
1433
1425
|
"""
|
|
1434
|
-
from returnn.util.basic import NumbersDict, human_size, progress_bar_with_time, try_run
|
|
1426
|
+
from returnn.util.basic import NumbersDict, human_size, progress_bar_with_time, try_run
|
|
1435
1427
|
|
|
1436
1428
|
hdf_dataset = self.file
|
|
1437
1429
|
|
|
@@ -1544,8 +1536,7 @@ class HDFDatasetWriter:
|
|
|
1544
1536
|
hdf_dataset["targets/size"].attrs[hdf_data_key_map[data_key]] = dataset.num_outputs[data_key]
|
|
1545
1537
|
if data_key in dataset.labels:
|
|
1546
1538
|
labels = dataset.labels[data_key]
|
|
1547
|
-
|
|
1548
|
-
labels = [label.encode("utf8") for label in labels]
|
|
1539
|
+
labels = [label.encode("utf8") for label in labels]
|
|
1549
1540
|
assert len(labels) == dataset.num_outputs[data_key][0]
|
|
1550
1541
|
else:
|
|
1551
1542
|
labels = ["%s-class-%i" % (data_key, i) for i in range(dataset.get_data_dim(data_key))]
|
|
@@ -25,7 +25,7 @@ from returnn.datasets.basic import Dataset, DatasetSeq
|
|
|
25
25
|
from .cached2 import CachedDataset2
|
|
26
26
|
from returnn.log import log
|
|
27
27
|
from returnn.util.task_system import numpy_copy_and_set_unused
|
|
28
|
-
from returnn.util.basic import eval_shell_str, interrupt_main, unicode,
|
|
28
|
+
from returnn.util.basic import eval_shell_str, interrupt_main, unicode, close_all_fds_except
|
|
29
29
|
import returnn.util.basic as util
|
|
30
30
|
|
|
31
31
|
|
|
@@ -442,11 +442,8 @@ class SprintDatasetBase(Dataset):
|
|
|
442
442
|
if isinstance(v, unicode):
|
|
443
443
|
v = v.encode("utf8")
|
|
444
444
|
if isinstance(v, (str, bytes)):
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
v = list(v)
|
|
448
|
-
else:
|
|
449
|
-
v = list(map(ord, v))
|
|
445
|
+
assert isinstance(v, bytes)
|
|
446
|
+
v = list(v)
|
|
450
447
|
v = numpy.array(v, dtype="uint8")
|
|
451
448
|
targets[key] = v
|
|
452
449
|
if self.str_add_final_zero:
|
|
@@ -47,7 +47,6 @@ print("RETURNN SprintControl[pid %i] Python module load" % os.getpid())
|
|
|
47
47
|
|
|
48
48
|
rnn.init_better_exchook()
|
|
49
49
|
debug.init_faulthandler(sigusr1_chain=True) # Sprint also handles SIGUSR1.
|
|
50
|
-
rnn.init_thread_join_hack()
|
|
51
50
|
|
|
52
51
|
|
|
53
52
|
# Start Sprint PythonControl interface. {
|
|
@@ -712,7 +712,6 @@ def _init_base(configfile=None, target_mode=None, epoch=None, sprint_opts=None):
|
|
|
712
712
|
# Some subset of what we do in rnn.init().
|
|
713
713
|
|
|
714
714
|
rnn.init_better_exchook()
|
|
715
|
-
rnn.init_thread_join_hack()
|
|
716
715
|
|
|
717
716
|
if configfile is None:
|
|
718
717
|
configfile = DefaultSprintCrnnConfig
|
|
@@ -11,7 +11,7 @@ import contextlib
|
|
|
11
11
|
from returnn.tensor import Tensor, Dim
|
|
12
12
|
import returnn.tf.compat as tf_compat
|
|
13
13
|
import returnn.tf.util.basic as tf_util
|
|
14
|
-
from returnn.util.basic import
|
|
14
|
+
from returnn.util.basic import NotSpecified
|
|
15
15
|
from returnn.tf.util.data import Data, SearchBeam, FeatureDim, SpatialDim
|
|
16
16
|
from returnn.tf.util.basic import OutputWithActivation, dimshuffle, swapaxes
|
|
17
17
|
from returnn.log import log
|
|
@@ -13407,7 +13407,7 @@ class ViaLayerLoss(Loss):
|
|
|
13407
13407
|
error_signal = where_bc(seq_mask_bc, error_signal, 0.0)
|
|
13408
13408
|
if self.loss_wrt_to_act_in:
|
|
13409
13409
|
assert self.output_with_activation, "activation unknown, via %r" % self.output
|
|
13410
|
-
if isinstance(self.loss_wrt_to_act_in,
|
|
13410
|
+
if isinstance(self.loss_wrt_to_act_in, str):
|
|
13411
13411
|
from returnn.tf.util.basic import get_activation_function
|
|
13412
13412
|
|
|
13413
13413
|
assert self.output_with_activation.act_func is get_activation_function(self.loss_wrt_to_act_in)
|
|
@@ -352,15 +352,16 @@ class OutputWithActivation:
|
|
|
352
352
|
return safe_log(self.y)
|
|
353
353
|
|
|
354
354
|
|
|
355
|
-
def variable_scalar_summaries_dict(
|
|
355
|
+
def variable_scalar_summaries_dict(
|
|
356
|
+
x: Union[tf.Tensor, tf.Variable], name: Optional[str] = None
|
|
357
|
+
) -> Dict[str, tf.Tensor]:
|
|
356
358
|
"""
|
|
357
359
|
Collects all interesting information about `x`, such as min/max/mean, etc. (all scalars).
|
|
358
360
|
This is used by :func:`variable_summaries`.
|
|
359
361
|
|
|
360
|
-
:param
|
|
361
|
-
:param
|
|
362
|
-
:return:
|
|
363
|
-
:rtype: dict[str,tf.Tensor]
|
|
362
|
+
:param x:
|
|
363
|
+
:param name:
|
|
364
|
+
:return: dict with key -> scalar info, e.g. with "%s_mean" % name -> tf.reduce_mean(x)
|
|
364
365
|
"""
|
|
365
366
|
if x.dtype == tf.string:
|
|
366
367
|
return {}
|
|
@@ -1025,7 +1026,7 @@ def setup_tf_thread_pools(num_threads=None, log_file=None, tf_session_opts=None)
|
|
|
1025
1026
|
|
|
1026
1027
|
:param int num_threads: used for both intra and inter parallelism thread pools
|
|
1027
1028
|
:param stream|None log_file:
|
|
1028
|
-
:param dict[str] tf_session_opts:
|
|
1029
|
+
:param dict[str,typing.Any] tf_session_opts:
|
|
1029
1030
|
"""
|
|
1030
1031
|
global _setup_tf_thread_pools_called_once
|
|
1031
1032
|
if _setup_tf_thread_pools_called_once:
|
|
@@ -1056,12 +1057,12 @@ def setup_tf_thread_pools(num_threads=None, log_file=None, tf_session_opts=None)
|
|
|
1056
1057
|
session.close()
|
|
1057
1058
|
|
|
1058
1059
|
|
|
1059
|
-
def check_initial_tf_thread_pool_init(tf_session_opts=None):
|
|
1060
|
+
def check_initial_tf_thread_pool_init(tf_session_opts: Dict[str, Any] = None):
|
|
1060
1061
|
"""
|
|
1061
1062
|
Makes sure that the TF thread pools are initialized with the requested settings.
|
|
1062
1063
|
You probably want to call this very early.
|
|
1063
1064
|
|
|
1064
|
-
:param
|
|
1065
|
+
:param tf_session_opts:
|
|
1065
1066
|
"""
|
|
1066
1067
|
if not _setup_tf_thread_pools_called_once:
|
|
1067
1068
|
from returnn.util.basic import try_get_caller_name
|
|
@@ -1184,7 +1185,7 @@ def print_available_devices(tf_session_opts=None, file=None):
|
|
|
1184
1185
|
Note that a call to this will trigger the internal TF thread pool inits,
|
|
1185
1186
|
so you should call :func:`setup_tf_thread_pools` first.
|
|
1186
1187
|
|
|
1187
|
-
:param dict[str]|None tf_session_opts: if given, will init a temp Session with these opts
|
|
1188
|
+
:param dict[str,typing.Any]|None tf_session_opts: if given, will init a temp Session with these opts
|
|
1188
1189
|
:param typing.TextIO|None file: file stream for print statements, defaults to sys.stdout
|
|
1189
1190
|
"""
|
|
1190
1191
|
if file is None:
|