returnn 1.20250123.173545__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.20250123.173545/returnn.egg-info → returnn-1.20250123.223321}/PKG-INFO +1 -1
- returnn-1.20250123.223321/_setup_info_generated.py +2 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-iter-dataset.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/__main__.py +1 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/audio.py +2 -6
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/hdf.py +6 -15
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/sprint.py +3 -6
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/log.py +0 -2
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/sprint/control.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/sprint/interface.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/layers/basic.py +2 -2
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/basic.py +7 -163
- {returnn-1.20250123.173545 → returnn-1.20250123.223321/returnn.egg-info}/PKG-INFO +1 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/_setup_test_env.py +0 -2
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_HDFDataset.py +3 -6
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_Log.py +1 -4
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_TFNetworkLayer.py +0 -2
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_TFUtil.py +0 -2
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_TranslationDataset.py +0 -5
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_Util.py +0 -8
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/analyze-dataset-batches.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/calculate-word-error-rate.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/collect-orth-symbols.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/collect-words.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/compile_native_op.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/compile_tf_graph.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/debug-dump-search-scores.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/dump-dataset-raw-strings.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/dump-dataset.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/hdf_dump.py +0 -1
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/torch_export_to_onnx.py +0 -1
- returnn-1.20250123.173545/_setup_info_generated.py +0 -2
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/.editorconfig +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/.gitignore +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/.gitmodules +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/.kateconfig +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/CHANGELOG.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/CODEOWNERS +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/CONTRIBUTING.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/LICENSE +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/MANIFEST.in +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/README.rst +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/12AX.cluster_map +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/_setup_returnn_env.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-fwd.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-horovod-mpi.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-horovod-mpi.py.sh +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-horovod-mpi.sh +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-hyper-param-tuning.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-list-devices.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-lua-torch-layer.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-pretrain.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-record-and-push-to-webserver.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-returnn-as-framework.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-rf-pt-benchmark.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-rf.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-rhn-enwik8.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-sprint-interface.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-att-copy.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-attention.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-enc-dec.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-hard-att-copy.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-lstm-benchmark.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm.12ax.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm2.12ax.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-neural-transducer.12ax.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-rec-explicit-lstm.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-rec-explicit-rnn.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-rec-self-att.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-search-compiled-graph.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-timit-lstm-ctc.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-torch.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/demo.sh +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/README.txt +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/chars.txt +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/config_demo +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/config_fwd +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/config_real +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/decode.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/go.sh +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/lines.txt +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/split/eval.txt +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/split/train.txt +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/IAM/split/valid.txt +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/README.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/artificial/create_test_h5.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/artificial/forwardconfig +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/artificial/go.sh +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/artificial/trainconfig +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/go.sh +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/pyproject.toml +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/requirements.txt +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/__old_mod_loader__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/__setup__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/config.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/basic.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/bundle_file.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/cached.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/cached2.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/distrib_files.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/generating.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/lm.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/map.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/meta.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/multi_proc.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/normalization_data.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/numpy_dump.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/postprocessing.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/raw_wav.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/stereo.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/text_dict.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/util/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/util/feature_extraction.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/util/strings.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/datasets/util/vocabulary.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/engine/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/engine/base.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/engine/batch.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/__main__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/.git +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/graph_editor/README.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/graph_editor/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/graph_editor/edit.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/graph_editor/reroute.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/graph_editor/select.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/graph_editor/subgraph.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/graph_editor/transform.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/extern/graph_editor/util.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/forward_iface.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_backend.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_cache.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_native/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_native/backend.cpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_native/backend.hpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_native/module.cpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_native/module.hpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_native/py_utils.hpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_native/tensor_ops.cpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_native/tensor_ops.hpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_numpy_backend.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_random_journal.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/_utils.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/array_.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/attention.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/audio/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/audio/mel.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/audio/specaugment.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/backend.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/build_from_dict.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/cond.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/const.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/container.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/control_flow_ctx.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/conv.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/conversions/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/conversions/espnet_e_branchformer.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/conversions/hf_llama.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/conversions/torch_nn.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/decoder/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/decoder/transformer.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/device.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/dims.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/dropout.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/dtype.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/encoder/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/encoder/base.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/encoder/conformer.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/encoder/conformer_v2.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/encoder/e_branchformer.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/encoder/transformer.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/gradient.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/graph.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/hooks.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/init.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/label_smoothing.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/linear.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/loop.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/loss.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/math_.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/matmul.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/module.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/normalization.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/parameter.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/parametrizations.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/parametrize.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/piecewise_linear.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/rand.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/rec.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/reduce.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/run_ctx.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/signal.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/state.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/stepwise_scheduler.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/tensor_array.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/frontend/types.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/import_/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/import_/common.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/import_/git.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/import_/import_.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/learning_rate_control.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/native_op.cpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/native_op.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/pretrain.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/sprint/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/sprint/cache.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/sprint/error_signals.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/sprint/extern_interface.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/README.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/_dim_extra.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/_tensor_extra.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/_tensor_mixin_base.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/_tensor_op_overloads.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/control_flow_ctx.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/dim.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/marked_dim.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/tensor.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/tensor_dict.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tensor/utils.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/compat.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/data_pipeline.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/distributed.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/engine.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/README.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/_backend.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/_utils.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/cond.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/dims.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/layer.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/loop.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/make_layer.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/masked_computation.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_low_level/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/frontend_low_level/_backend.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/horovod.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/hyper_param_tuning.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/layers/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/layers/base.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/layers/rec.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/layers/segmental_model.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/layers/signal_processing.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/layers/variable.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/native_op.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/network.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/sprint.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/updater.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/util/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/util/basic.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/util/data.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/util/gradient_checkpoint.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/util/ken_lm.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/tf/util/open_fst.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/README.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/data/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/data/extern_data.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/data/pipeline.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/data/queued_data_iter.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/data/tensor_utils.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/distributed.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/engine.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/frontend/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/frontend/_backend.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/frontend/_rand.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/frontend/bridge.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/frontend/raw_ops.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/optim/README.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/optim/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/optim/lion.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/updater.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/util/README.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/util/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/util/array_.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/util/debug_inf_nan.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/util/diagnose_gpu.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/util/exception_helper.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/util/gradient_checkpoint.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/util/module.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/torch/util/scaled_gradient.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/__init__.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/better_exchook.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/bpe.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/debug.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/debug_helpers.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/file_cache.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/fsa.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/literal_py_to_pickle.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/lru_cache.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/math.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/native_code_compiler.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/pprint.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/py-to-pickle.cpp +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/py_ext_mod_compiler.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/result_with_reason.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/sig_proc.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/task_system.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/train_proc_manager.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn/util/watch_memory.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn.egg-info/SOURCES.txt +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn.egg-info/dependency_links.txt +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/returnn.egg-info/top_level.txt +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/rnn.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/setup.cfg +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/setup.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/DummySprintExec.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm-inspection-profile.xml +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm.idea/.gitignore +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm.idea/.name +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm.idea/misc.xml +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm.idea/modules.xml +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm.idea/returnn.iml +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/_set_num_threads1.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/_setup_returnn_env.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/bpe-unicode-demo.codes +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/bpe-unicode-demo.vocab +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/lexicon_opt.fst +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/lexicon_opt.isyms +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/lexicon_opt.jpg +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/lexicon_opt.osyms +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/lint_common.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/pycharm-inspect.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/pylint.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/returnn-as-framework.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/rf_utils.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/spelling.dic +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_Config.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_Dataset.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_Fsa.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_GeneratingDataset.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_LearningRateControl.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_MultiProcDataset.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_Pretrain.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_ResNet.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_SprintDataset.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_SprintInterface.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_TFEngine.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_TFNativeOp.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_TFNetworkRecLayer.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_TFNetworkSigProcLayer.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_TFUpdater.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_TF_determinism.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_TaskSystem.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_TaskSystem_SharedMem.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_demos.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_fork_exec.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_hdf_dump.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_array.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_attention.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_base.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_cond.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_const.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_container.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_conv.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_decoder_transformer.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_encoder_conformer.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_gradient.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_label_smoothing.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_loop.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_math.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_normalization.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_piecewise_linear.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_rec.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_reduce.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_rf_signal.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_tensor.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_threading.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_tools.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_torch_dataset.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_torch_engine.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_torch_frontend.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_torch_internal_frontend.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/test_torch_util.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tests/torch_utils.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/_setup_returnn_env.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/bliss-collect-seq-lens.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/bliss-dump-text.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/bliss-get-segment-names.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/bliss-to-ogg-zip.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/bpe-create-lexicon.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/cleanup-old-models.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/debug-plot-search-scores.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/dump-forward-stats.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/dump-forward.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/dump-network-json.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/dump-pickle.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/extract_state_tying_from_dataset.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/get-attention-weights.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/get-best-model-epoch.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/hdf_dump_translation_dataset.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/import-blocks-mt-model.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/import-t2t-mt-model.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/.gitignore +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/Makefile +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/README.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/README.md +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/libs_list +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
- {returnn-1.20250123.173545 → 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.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/state_vars_list +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/tensor_names_list +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/file.h +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/main.cc +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/rescorer.h +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/vocabulary.cc +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/lattice_rescorer/vocabulary.h +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/tf_avg_checkpoints.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/tf_inspect_checkpoint.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/tf_inspect_summary_log.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/torch_avg_checkpoints.py +0 -0
- {returnn-1.20250123.173545 → returnn-1.20250123.223321}/tools/torch_inspect_checkpoint.py +0 -0
- {returnn-1.20250123.173545 → 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
|
)
|
|
@@ -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)
|
|
@@ -37,8 +37,6 @@ import builtins
|
|
|
37
37
|
|
|
38
38
|
from .native_code_compiler import NativeCodeCompiler
|
|
39
39
|
|
|
40
|
-
PY3 = sys.version_info[0] >= 3
|
|
41
|
-
|
|
42
40
|
unicode = str
|
|
43
41
|
long = int
|
|
44
42
|
# noinspection PyShadowingBuiltins
|
|
@@ -392,8 +390,7 @@ def sys_cmd_out_lines(s):
|
|
|
392
390
|
env=dict(os.environ, LANG="en_US.UTF-8", LC_ALL="en_US.UTF-8"),
|
|
393
391
|
)
|
|
394
392
|
stdout = p.communicate()[0]
|
|
395
|
-
|
|
396
|
-
stdout = stdout.decode("utf8")
|
|
393
|
+
stdout = stdout.decode("utf8")
|
|
397
394
|
result = [line.strip() for line in stdout.split("\n")[:-1]]
|
|
398
395
|
p.stdout.close()
|
|
399
396
|
if p.returncode != 0:
|
|
@@ -1416,113 +1413,10 @@ def init_thread_join_hack():
|
|
|
1416
1413
|
if _thread_join_hack_installed: # don't install twice
|
|
1417
1414
|
return
|
|
1418
1415
|
_thread_join_hack_installed = True
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
return
|
|
1424
|
-
main_thread = threading.current_thread()
|
|
1425
|
-
# noinspection PyUnresolvedReferences,PyProtectedMember
|
|
1426
|
-
assert isinstance(main_thread, threading._MainThread)
|
|
1427
|
-
main_thread_id = thread.get_ident()
|
|
1428
|
-
|
|
1429
|
-
# Patch Thread.join().
|
|
1430
|
-
join_orig = threading.Thread.join
|
|
1431
|
-
|
|
1432
|
-
def join_hacked(thread_obj, timeout=None):
|
|
1433
|
-
"""
|
|
1434
|
-
:type thread_obj: threading.Thread
|
|
1435
|
-
:type timeout: float|None
|
|
1436
|
-
:return: always None
|
|
1437
|
-
"""
|
|
1438
|
-
if thread.get_ident() == main_thread_id and timeout is None:
|
|
1439
|
-
# This is a HACK for Thread.join() if we are in the main thread.
|
|
1440
|
-
# In that case, a Thread.join(timeout=None) would hang and even not respond to signals
|
|
1441
|
-
# because signals will get delivered to other threads and Python would forward
|
|
1442
|
-
# them for delayed handling to the main thread which hangs.
|
|
1443
|
-
# See CPython signalmodule.c.
|
|
1444
|
-
# Currently the best solution I can think of:
|
|
1445
|
-
while thread_obj.is_alive():
|
|
1446
|
-
join_orig(thread_obj, timeout=0.1)
|
|
1447
|
-
elif thread.get_ident() == main_thread_id and timeout > 0.1:
|
|
1448
|
-
# Limit the timeout. This should not matter for the underlying code.
|
|
1449
|
-
join_orig(thread_obj, timeout=0.1)
|
|
1450
|
-
else:
|
|
1451
|
-
# In all other cases, we can use the original.
|
|
1452
|
-
join_orig(thread_obj, timeout=timeout)
|
|
1453
|
-
|
|
1454
|
-
threading.Thread.join = join_hacked
|
|
1455
|
-
|
|
1456
|
-
# Mostly the same for Condition.wait().
|
|
1457
|
-
if PY3:
|
|
1458
|
-
# https://youtrack.jetbrains.com/issue/PY-34983
|
|
1459
|
-
# noinspection PyPep8Naming
|
|
1460
|
-
Condition = threading.Condition
|
|
1461
|
-
else:
|
|
1462
|
-
# noinspection PyUnresolvedReferences,PyPep8Naming,PyProtectedMember
|
|
1463
|
-
Condition = threading._Condition
|
|
1464
|
-
cond_wait_orig = Condition.wait
|
|
1465
|
-
|
|
1466
|
-
# noinspection PyUnusedLocal
|
|
1467
|
-
def cond_wait_hacked(cond, timeout=None, *args):
|
|
1468
|
-
"""
|
|
1469
|
-
:param Condition cond:
|
|
1470
|
-
:param float|None timeout:
|
|
1471
|
-
:param args:
|
|
1472
|
-
:rtype: bool
|
|
1473
|
-
"""
|
|
1474
|
-
if thread.get_ident() == main_thread_id:
|
|
1475
|
-
if timeout is None:
|
|
1476
|
-
# Use a timeout anyway. This should not matter for the underlying code.
|
|
1477
|
-
return cond_wait_orig(cond, timeout=0.1) # noqa # https://youtrack.jetbrains.com/issue/PY-43915
|
|
1478
|
-
# There is some code (e.g. multiprocessing.pool) which relies on that
|
|
1479
|
-
# we respect the real specified timeout.
|
|
1480
|
-
# However, we cannot do multiple repeated calls to cond_wait_orig as we might miss the condition notify.
|
|
1481
|
-
# But in some Python versions, the underlying cond_wait_orig will anyway also use sleep.
|
|
1482
|
-
return cond_wait_orig(cond, timeout=timeout) # noqa
|
|
1483
|
-
else:
|
|
1484
|
-
return cond_wait_orig(cond, timeout=timeout) # noqa
|
|
1485
|
-
|
|
1486
|
-
Condition.wait = cond_wait_hacked
|
|
1487
|
-
|
|
1488
|
-
# And the same for Lock.acquire, very similar to Condition.wait.
|
|
1489
|
-
# However: can't set attributes of built-in/extension type 'thread.lock'.
|
|
1490
|
-
# We could wrap the whole threading.Lock, but that is too annoying for me now...
|
|
1491
|
-
# noinspection PyPep8Naming
|
|
1492
|
-
Lock = None
|
|
1493
|
-
if Lock:
|
|
1494
|
-
lock_acquire_orig = Lock.acquire # noqa
|
|
1495
|
-
|
|
1496
|
-
# Note: timeout argument was introduced in Python 3.
|
|
1497
|
-
def lock_acquire_hacked(lock, blocking=True, timeout=-1):
|
|
1498
|
-
"""
|
|
1499
|
-
:param threading.Lock lock:
|
|
1500
|
-
:param bool blocking:
|
|
1501
|
-
:param float timeout:
|
|
1502
|
-
:rtype: bool
|
|
1503
|
-
"""
|
|
1504
|
-
if not blocking:
|
|
1505
|
-
return lock_acquire_orig(lock, blocking=False) # no timeout if not blocking
|
|
1506
|
-
# Everything is blocking now.
|
|
1507
|
-
if thread.get_ident() == main_thread_id:
|
|
1508
|
-
if timeout is None or timeout < 0: # blocking without timeout
|
|
1509
|
-
if PY3:
|
|
1510
|
-
while not lock_acquire_orig(lock, blocking=True, timeout=0.1):
|
|
1511
|
-
pass
|
|
1512
|
-
return True
|
|
1513
|
-
else: # Python 2. cannot use timeout
|
|
1514
|
-
while not lock_acquire_orig(lock, blocking=False):
|
|
1515
|
-
time.sleep(0.1)
|
|
1516
|
-
return True
|
|
1517
|
-
else: # timeout is set. (Can only be with Python 3.)
|
|
1518
|
-
# Use a capped timeout. This should not matter for the underlying code.
|
|
1519
|
-
return lock_acquire_orig(lock, blocking=True, timeout=min(timeout, 0.1))
|
|
1520
|
-
# Fallback to default.
|
|
1521
|
-
if PY3:
|
|
1522
|
-
return lock_acquire_orig(lock, blocking=True, timeout=timeout)
|
|
1523
|
-
return lock_acquire_orig(lock, blocking=True)
|
|
1524
|
-
|
|
1525
|
-
Lock.acquire = lock_acquire_hacked
|
|
1416
|
+
# These monkey patches are not necessary anymore. Nothing blocks signals anymore in Python 3.
|
|
1417
|
+
# https://github.com/albertz/playground/blob/master/thread-join-block.py
|
|
1418
|
+
# https://github.com/albertz/playground/blob/master/cond-wait-block.py
|
|
1419
|
+
log.print_deprecation_warning("init_thread_join_hack: not necessary anymore since Python 3 (does nothing)")
|
|
1526
1420
|
|
|
1527
1421
|
|
|
1528
1422
|
def start_daemon_thread(target, args=()):
|
|
@@ -1944,25 +1838,6 @@ def json_remove_comments(string, strip_space=True):
|
|
|
1944
1838
|
return "".join(new_str)
|
|
1945
1839
|
|
|
1946
1840
|
|
|
1947
|
-
def _py2_unicode_to_str_recursive(s):
|
|
1948
|
-
"""
|
|
1949
|
-
This is supposed to be run with Python 2.
|
|
1950
|
-
Also see :func:`as_str` and :func:`py2_utf8_str_to_unicode`.
|
|
1951
|
-
|
|
1952
|
-
:param str|unicode s: or any recursive structure such as dict, list, tuple
|
|
1953
|
-
:return: Python 2 str (is like Python 3 UTF-8 formatted bytes)
|
|
1954
|
-
:rtype: str
|
|
1955
|
-
"""
|
|
1956
|
-
if isinstance(s, dict):
|
|
1957
|
-
return {_py2_unicode_to_str_recursive(key): _py2_unicode_to_str_recursive(value) for key, value in s.items()}
|
|
1958
|
-
elif isinstance(s, (list, tuple)):
|
|
1959
|
-
return make_seq_of_type(type(s), [_py2_unicode_to_str_recursive(element) for element in s])
|
|
1960
|
-
elif isinstance(s, unicode):
|
|
1961
|
-
return s.encode("utf-8") # Python 2 str, Python 3 bytes
|
|
1962
|
-
else:
|
|
1963
|
-
return s
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
1841
|
def load_json(filename: Optional[str] = None, content: Optional[str] = None) -> Dict[str, Any]:
|
|
1967
1842
|
"""
|
|
1968
1843
|
:param filename:
|
|
@@ -1980,8 +1855,6 @@ def load_json(filename: Optional[str] = None, content: Optional[str] = None) ->
|
|
|
1980
1855
|
json_content = json.loads(content)
|
|
1981
1856
|
except ValueError as e:
|
|
1982
1857
|
raise Exception("config looks like JSON but invalid json content, %r" % e)
|
|
1983
|
-
if not PY3:
|
|
1984
|
-
json_content = _py2_unicode_to_str_recursive(json_content)
|
|
1985
1858
|
return json_content
|
|
1986
1859
|
|
|
1987
1860
|
|
|
@@ -2425,11 +2298,7 @@ def getargspec(func):
|
|
|
2425
2298
|
:param func:
|
|
2426
2299
|
:return: FullArgSpec
|
|
2427
2300
|
"""
|
|
2428
|
-
|
|
2429
|
-
return inspect.getfullargspec(func)
|
|
2430
|
-
else:
|
|
2431
|
-
# noinspection PyDeprecation
|
|
2432
|
-
return inspect.getargspec(func)
|
|
2301
|
+
return inspect.getfullargspec(func)
|
|
2433
2302
|
|
|
2434
2303
|
|
|
2435
2304
|
def collect_mandatory_class_init_kwargs(cls):
|
|
@@ -2685,28 +2554,6 @@ def as_str(s):
|
|
|
2685
2554
|
assert False, "unknown type %s" % type(s)
|
|
2686
2555
|
|
|
2687
2556
|
|
|
2688
|
-
def py2_utf8_str_to_unicode(s):
|
|
2689
|
-
"""
|
|
2690
|
-
:param str s: e.g. the string literal "äöü" in Python 3 is correct, but in Python 2 it should have been u"äöü",
|
|
2691
|
-
but just using "äöü" will actually be the raw utf8 byte sequence.
|
|
2692
|
-
This can happen when you eval() some string.
|
|
2693
|
-
We assume that you are using Python 2, and got the string (not unicode object) "äöü", or maybe "abc".
|
|
2694
|
-
Also see :func:`_py2_unicode_to_str_recursive` and :func:`as_str`.
|
|
2695
|
-
:return: if it is indeed unicode, it will return the unicode object, otherwise it keeps the string
|
|
2696
|
-
:rtype: str|unicode
|
|
2697
|
-
"""
|
|
2698
|
-
assert not PY3
|
|
2699
|
-
assert isinstance(s, str)
|
|
2700
|
-
try:
|
|
2701
|
-
# noinspection PyUnresolvedReferences
|
|
2702
|
-
s.decode("ascii")
|
|
2703
|
-
return s
|
|
2704
|
-
except UnicodeDecodeError:
|
|
2705
|
-
pass
|
|
2706
|
-
# noinspection PyUnresolvedReferences
|
|
2707
|
-
return s.decode("utf8")
|
|
2708
|
-
|
|
2709
|
-
|
|
2710
2557
|
def unicode_to_str(s):
|
|
2711
2558
|
"""
|
|
2712
2559
|
The behavior is different depending on Python 2 or Python 3. In all cases, the returned type is a str object.
|
|
@@ -2722,12 +2569,9 @@ def unicode_to_str(s):
|
|
|
2722
2569
|
:param str|unicode|bytes s:
|
|
2723
2570
|
:rtype: str
|
|
2724
2571
|
"""
|
|
2725
|
-
if
|
|
2572
|
+
if isinstance(s, bytes):
|
|
2726
2573
|
s = s.decode("utf8")
|
|
2727
2574
|
assert isinstance(s, str)
|
|
2728
|
-
if not PY3 and isinstance(s, unicode):
|
|
2729
|
-
s = s.encode("utf8")
|
|
2730
|
-
assert isinstance(s, str)
|
|
2731
2575
|
assert isinstance(s, str)
|
|
2732
2576
|
return s
|
|
2733
2577
|
|
|
@@ -290,11 +290,10 @@ def test_SimpleHDFWriter_small():
|
|
|
290
290
|
for i, seq_len in enumerate(seq_lens):
|
|
291
291
|
assert reader.seq_lens[i]["data"] == seq_len
|
|
292
292
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
import gzip
|
|
293
|
+
print("raw content (gzipped):")
|
|
294
|
+
import gzip
|
|
296
295
|
|
|
297
|
-
|
|
296
|
+
print(repr(gzip.compress(open(fn, "rb").read())))
|
|
298
297
|
|
|
299
298
|
|
|
300
299
|
def test_SimpleHDFWriter_empty_extra():
|
|
@@ -354,8 +353,6 @@ def test_SimpleHDFWriter_empty_extra():
|
|
|
354
353
|
|
|
355
354
|
|
|
356
355
|
def test_read_simple_hdf():
|
|
357
|
-
if sys.version_info[0] <= 2: # gzip.decompress is >=PY3
|
|
358
|
-
raise unittest.SkipTest
|
|
359
356
|
# n_dim, seq_lens, raw_gzipped is via test_SimpleHDFWriter_small
|
|
360
357
|
n_dim = 3
|
|
361
358
|
seq_lens = [2, 3]
|
|
@@ -18,7 +18,6 @@ __my_dir__ = os.path.dirname(os.path.abspath(__file__))
|
|
|
18
18
|
__base_dir__ = os.path.dirname(__my_dir__)
|
|
19
19
|
__main_entry__ = __base_dir__ + "/rnn.py"
|
|
20
20
|
py = sys.executable
|
|
21
|
-
PY3 = sys.version_info[0] >= 3
|
|
22
21
|
|
|
23
22
|
|
|
24
23
|
def build_env():
|
|
@@ -178,9 +177,7 @@ def test_StreamIO():
|
|
|
178
177
|
|
|
179
178
|
buf.write("hello")
|
|
180
179
|
print("buf: %r" % buf.getvalue())
|
|
181
|
-
|
|
182
|
-
# This behavior is not correct in Python 2.7. https://bugs.python.org/issue30250
|
|
183
|
-
assert buf.getvalue() == "\x00\x00\x00\x00\x00hello" # zero-filled
|
|
180
|
+
assert buf.getvalue() == "\x00\x00\x00\x00\x00hello" # zero-filled
|
|
184
181
|
buf.truncate(0)
|
|
185
182
|
buf.seek(0)
|
|
186
183
|
print("buf: %r" % buf.getvalue())
|
|
@@ -11630,8 +11630,6 @@ def test_subnetwork_unused_output():
|
|
|
11630
11630
|
|
|
11631
11631
|
def test_subnetwork_deep_stack():
|
|
11632
11632
|
# https://github.com/rwth-i6/returnn/issues/993
|
|
11633
|
-
if not util.PY3:
|
|
11634
|
-
raise unittest.SkipTest("test case needs python 3") # __qualname__, __func__, etc
|
|
11635
11633
|
with make_scope() as session:
|
|
11636
11634
|
import better_exchook
|
|
11637
11635
|
import traceback
|
|
@@ -4133,8 +4133,6 @@ def test_softmax_cross_entropy_over_size_n_batch():
|
|
|
4133
4133
|
|
|
4134
4134
|
|
|
4135
4135
|
def test_softmax_cross_entropy_over_size_n_batch_real():
|
|
4136
|
-
if sys.version_info[0] <= 2: # gzip.decompress is >=PY3
|
|
4137
|
-
raise unittest.SkipTest
|
|
4138
4136
|
import gzip
|
|
4139
4137
|
import base64
|
|
4140
4138
|
|
|
@@ -12,11 +12,6 @@ import pickle
|
|
|
12
12
|
import _setup_test_env # noqa
|
|
13
13
|
from returnn.util import better_exchook
|
|
14
14
|
from returnn.datasets.lm import TranslationDataset, TranslationFactorsDataset
|
|
15
|
-
from returnn.util.basic import init_thread_join_hack
|
|
16
|
-
|
|
17
|
-
better_exchook.install()
|
|
18
|
-
better_exchook.replace_traceback_format_tb()
|
|
19
|
-
init_thread_join_hack()
|
|
20
15
|
|
|
21
16
|
|
|
22
17
|
dummy_source_text = (
|
|
@@ -496,14 +496,6 @@ def test_obj_diff_list_allowed_mapping():
|
|
|
496
496
|
]
|
|
497
497
|
|
|
498
498
|
|
|
499
|
-
@unittest.skipIf(PY3, "only for Python 2")
|
|
500
|
-
def test_py2_utf8_str_to_unicode():
|
|
501
|
-
assert py2_utf8_str_to_unicode("a") == "a"
|
|
502
|
-
assert type(py2_utf8_str_to_unicode("a")) is str
|
|
503
|
-
assert py2_utf8_str_to_unicode("äöü") == "äöü"
|
|
504
|
-
assert type(py2_utf8_str_to_unicode("äöü")) is unicode
|
|
505
|
-
|
|
506
|
-
|
|
507
499
|
def test_CollectionReadCheckCovered():
|
|
508
500
|
x = CollectionReadCheckCovered.from_bool_or_dict(True)
|
|
509
501
|
assert x and x.truth_value
|
|
@@ -144,7 +144,6 @@ def init(config_str, config_dataset, use_pretrain, epoch, verbosity):
|
|
|
144
144
|
:param int verbosity:
|
|
145
145
|
"""
|
|
146
146
|
rnn.init_better_exchook()
|
|
147
|
-
rnn.init_thread_join_hack()
|
|
148
147
|
dataset_opts = None
|
|
149
148
|
config_filename = None
|
|
150
149
|
if config_str.strip().startswith("{"):
|
|
@@ -158,7 +158,6 @@ def init(config_filename, log_verbosity):
|
|
|
158
158
|
:param int log_verbosity:
|
|
159
159
|
"""
|
|
160
160
|
rnn.init_better_exchook()
|
|
161
|
-
rnn.init_thread_join_hack()
|
|
162
161
|
if config_filename:
|
|
163
162
|
print("Using config file %r." % config_filename)
|
|
164
163
|
assert os.path.exists(config_filename)
|
|
@@ -37,7 +37,6 @@ def init(config_filename, log_verbosity, remaining_args=()):
|
|
|
37
37
|
:param list[str] remaining_args:
|
|
38
38
|
"""
|
|
39
39
|
rnn.init_better_exchook()
|
|
40
|
-
rnn.init_thread_join_hack()
|
|
41
40
|
print("Using config file %r." % config_filename)
|
|
42
41
|
assert os.path.exists(config_filename)
|
|
43
42
|
rnn.init_config(
|
|
@@ -55,7 +55,6 @@ def init(config_filename, cmd_line_opts, dataset_config_str):
|
|
|
55
55
|
:param str dataset_config_str: dataset via init_dataset_via_str()
|
|
56
56
|
"""
|
|
57
57
|
rnn.init_better_exchook()
|
|
58
|
-
rnn.init_thread_join_hack()
|
|
59
58
|
if config_filename:
|
|
60
59
|
rnn.init_config(config_filename, cmd_line_opts)
|
|
61
60
|
rnn.init_log()
|
|
@@ -62,7 +62,6 @@ def init(config_filename: str, checkpoint: str, log_verbosity: int, device: str)
|
|
|
62
62
|
"""
|
|
63
63
|
assert os.path.exists(checkpoint), "The specified checkpoint doesn't exist."
|
|
64
64
|
rnn.init_better_exchook()
|
|
65
|
-
rnn.init_thread_join_hack()
|
|
66
65
|
assert os.path.exists(config_filename), "The specified config doesn't exist."
|
|
67
66
|
print("Using config file %r." % config_filename)
|
|
68
67
|
rnn.init_config(
|
|
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
|