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.

Files changed (473) hide show
  1. {returnn-1.20250122.223647/returnn.egg-info → returnn-1.20250123.223321}/PKG-INFO +1 -1
  2. returnn-1.20250123.223321/_setup_info_generated.py +2 -0
  3. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-iter-dataset.py +0 -1
  4. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/__main__.py +1 -1
  5. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/config.py +76 -85
  6. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/audio.py +2 -6
  7. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/hdf.py +6 -15
  8. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/sprint.py +3 -6
  9. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/log.py +0 -2
  10. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/control.py +0 -1
  11. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/interface.py +0 -1
  12. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/_tensor_op_overloads.py +1 -0
  13. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/basic.py +2 -2
  14. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/basic.py +10 -9
  15. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/basic.py +11 -167
  16. {returnn-1.20250122.223647 → returnn-1.20250123.223321/returnn.egg-info}/PKG-INFO +1 -1
  17. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/_setup_test_env.py +0 -2
  18. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_HDFDataset.py +3 -6
  19. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Log.py +1 -4
  20. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFNetworkLayer.py +0 -2
  21. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFUtil.py +0 -2
  22. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TranslationDataset.py +0 -5
  23. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Util.py +0 -8
  24. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/analyze-dataset-batches.py +0 -1
  25. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/calculate-word-error-rate.py +0 -1
  26. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/collect-orth-symbols.py +0 -1
  27. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/collect-words.py +0 -1
  28. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/compile_native_op.py +0 -1
  29. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/compile_tf_graph.py +0 -1
  30. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/debug-dump-search-scores.py +0 -1
  31. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-dataset-raw-strings.py +0 -1
  32. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-dataset.py +0 -1
  33. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/hdf_dump.py +0 -1
  34. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/torch_export_to_onnx.py +0 -1
  35. returnn-1.20250122.223647/_setup_info_generated.py +0 -2
  36. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/.editorconfig +0 -0
  37. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/.gitignore +0 -0
  38. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/.gitmodules +0 -0
  39. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/.kateconfig +0 -0
  40. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/CHANGELOG.md +0 -0
  41. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/CODEOWNERS +0 -0
  42. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/CONTRIBUTING.md +0 -0
  43. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/LICENSE +0 -0
  44. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/MANIFEST.in +0 -0
  45. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/README.rst +0 -0
  46. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/__init__.py +0 -0
  47. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/12AX.cluster_map +0 -0
  48. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/_setup_returnn_env.py +0 -0
  49. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-fwd.config +0 -0
  50. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-horovod-mpi.py +0 -0
  51. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-horovod-mpi.py.sh +0 -0
  52. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-horovod-mpi.sh +0 -0
  53. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-hyper-param-tuning.config +0 -0
  54. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-list-devices.py +0 -0
  55. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-lua-torch-layer.config +0 -0
  56. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-pretrain.config +0 -0
  57. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-record-and-push-to-webserver.py +0 -0
  58. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-returnn-as-framework.py +0 -0
  59. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-rf-pt-benchmark.py +0 -0
  60. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-rf.config +0 -0
  61. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-rhn-enwik8.config +0 -0
  62. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-sprint-interface.py +0 -0
  63. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-att-copy.config +0 -0
  64. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-attention.config +0 -0
  65. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  66. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  67. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-enc-dec.config +0 -0
  68. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-hard-att-copy.config +0 -0
  69. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-lstm-benchmark.py +0 -0
  70. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  71. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  72. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm.12ax.config +0 -0
  73. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  74. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  75. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  76. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  77. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  78. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-rec-self-att.config +0 -0
  79. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-search-compiled-graph.py +0 -0
  80. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  81. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-timit-lstm-ctc.config +0 -0
  82. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-torch.config +0 -0
  83. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  84. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/demo.sh +0 -0
  85. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  86. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  87. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  88. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/README.txt +0 -0
  89. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/chars.txt +0 -0
  90. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/config_demo +0 -0
  91. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/config_fwd +0 -0
  92. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/config_real +0 -0
  93. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  94. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/decode.py +0 -0
  95. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  96. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/go.sh +0 -0
  97. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/lines.txt +0 -0
  98. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/split/eval.txt +0 -0
  99. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/split/train.txt +0 -0
  100. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/IAM/split/valid.txt +0 -0
  101. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/README.md +0 -0
  102. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  103. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial/forwardconfig +0 -0
  104. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial/go.sh +0 -0
  105. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial/trainconfig +0 -0
  106. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  107. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  108. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  109. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  110. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/pyproject.toml +0 -0
  111. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/requirements.txt +0 -0
  112. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/__init__.py +0 -0
  113. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/__old_mod_loader__.py +0 -0
  114. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/__setup__.py +0 -0
  115. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/__init__.py +0 -0
  116. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/basic.py +0 -0
  117. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/bundle_file.py +0 -0
  118. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/cached.py +0 -0
  119. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/cached2.py +0 -0
  120. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/distrib_files.py +0 -0
  121. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/generating.py +0 -0
  122. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/lm.py +0 -0
  123. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/map.py +0 -0
  124. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/meta.py +0 -0
  125. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/multi_proc.py +0 -0
  126. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/normalization_data.py +0 -0
  127. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/numpy_dump.py +0 -0
  128. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/postprocessing.py +0 -0
  129. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/raw_wav.py +0 -0
  130. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/stereo.py +0 -0
  131. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/text_dict.py +0 -0
  132. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/util/__init__.py +0 -0
  133. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/util/feature_extraction.py +0 -0
  134. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/util/strings.py +0 -0
  135. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/datasets/util/vocabulary.py +0 -0
  136. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/engine/__init__.py +0 -0
  137. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/engine/base.py +0 -0
  138. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/engine/batch.py +0 -0
  139. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/__init__.py +0 -0
  140. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/__main__.py +0 -0
  141. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  142. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  143. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  144. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  145. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  146. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  147. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  148. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  149. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  150. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  151. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  152. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  153. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  154. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  155. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  156. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  157. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  158. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  159. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  160. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  161. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  162. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  163. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  164. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  165. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  166. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/__init__.py +0 -0
  167. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/README.md +0 -0
  168. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/__init__.py +0 -0
  169. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/edit.py +0 -0
  170. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/reroute.py +0 -0
  171. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/select.py +0 -0
  172. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/subgraph.py +0 -0
  173. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/transform.py +0 -0
  174. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/extern/graph_editor/util.py +0 -0
  175. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/forward_iface.py +0 -0
  176. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/__init__.py +0 -0
  177. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_backend.py +0 -0
  178. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_cache.py +0 -0
  179. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/__init__.py +0 -0
  180. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/backend.cpp +0 -0
  181. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/backend.hpp +0 -0
  182. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/module.cpp +0 -0
  183. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/module.hpp +0 -0
  184. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/py_utils.hpp +0 -0
  185. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/tensor_ops.cpp +0 -0
  186. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_native/tensor_ops.hpp +0 -0
  187. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_numpy_backend.py +0 -0
  188. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_random_journal.py +0 -0
  189. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/_utils.py +0 -0
  190. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/array_.py +0 -0
  191. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/attention.py +0 -0
  192. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/audio/__init__.py +0 -0
  193. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/audio/mel.py +0 -0
  194. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/audio/specaugment.py +0 -0
  195. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/backend.py +0 -0
  196. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/build_from_dict.py +0 -0
  197. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/cond.py +0 -0
  198. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/const.py +0 -0
  199. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/container.py +0 -0
  200. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/control_flow_ctx.py +0 -0
  201. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/conv.py +0 -0
  202. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/conversions/__init__.py +0 -0
  203. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/conversions/espnet_e_branchformer.py +0 -0
  204. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/conversions/hf_llama.py +0 -0
  205. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/conversions/torch_nn.py +0 -0
  206. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/decoder/__init__.py +0 -0
  207. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/decoder/transformer.py +0 -0
  208. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/device.py +0 -0
  209. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/dims.py +0 -0
  210. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/dropout.py +0 -0
  211. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/dtype.py +0 -0
  212. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/__init__.py +0 -0
  213. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/base.py +0 -0
  214. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/conformer.py +0 -0
  215. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/conformer_v2.py +0 -0
  216. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/e_branchformer.py +0 -0
  217. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/encoder/transformer.py +0 -0
  218. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/gradient.py +0 -0
  219. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/graph.py +0 -0
  220. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/hooks.py +0 -0
  221. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/init.py +0 -0
  222. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/label_smoothing.py +0 -0
  223. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/linear.py +0 -0
  224. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/loop.py +0 -0
  225. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/loss.py +0 -0
  226. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/math_.py +0 -0
  227. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/matmul.py +0 -0
  228. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/module.py +0 -0
  229. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/normalization.py +0 -0
  230. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/parameter.py +0 -0
  231. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/parametrizations.py +0 -0
  232. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/parametrize.py +0 -0
  233. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/piecewise_linear.py +0 -0
  234. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/rand.py +0 -0
  235. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/rec.py +0 -0
  236. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/reduce.py +0 -0
  237. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/run_ctx.py +0 -0
  238. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/signal.py +0 -0
  239. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/state.py +0 -0
  240. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/stepwise_scheduler.py +0 -0
  241. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/tensor_array.py +0 -0
  242. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/frontend/types.py +0 -0
  243. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/import_/__init__.py +0 -0
  244. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/import_/common.py +0 -0
  245. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/import_/git.py +0 -0
  246. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/import_/import_.py +0 -0
  247. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/learning_rate_control.py +0 -0
  248. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/native_op.cpp +0 -0
  249. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/native_op.py +0 -0
  250. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/pretrain.py +0 -0
  251. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/__init__.py +0 -0
  252. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/cache.py +0 -0
  253. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/error_signals.py +0 -0
  254. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/sprint/extern_interface.py +0 -0
  255. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/README.md +0 -0
  256. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/__init__.py +0 -0
  257. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/_dim_extra.py +0 -0
  258. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/_tensor_extra.py +0 -0
  259. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/_tensor_mixin_base.py +0 -0
  260. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/control_flow_ctx.py +0 -0
  261. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/dim.py +0 -0
  262. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/marked_dim.py +0 -0
  263. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/tensor.py +0 -0
  264. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/tensor_dict.py +0 -0
  265. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tensor/utils.py +0 -0
  266. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/__init__.py +0 -0
  267. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/compat.py +0 -0
  268. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/data_pipeline.py +0 -0
  269. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/distributed.py +0 -0
  270. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/engine.py +0 -0
  271. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/README.md +0 -0
  272. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/__init__.py +0 -0
  273. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/_backend.py +0 -0
  274. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/_utils.py +0 -0
  275. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/cond.py +0 -0
  276. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  277. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  278. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/dims.py +0 -0
  279. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/layer.py +0 -0
  280. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/loop.py +0 -0
  281. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/make_layer.py +0 -0
  282. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  283. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  284. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  285. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_low_level/__init__.py +0 -0
  286. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/frontend_low_level/_backend.py +0 -0
  287. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/horovod.py +0 -0
  288. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/hyper_param_tuning.py +0 -0
  289. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/__init__.py +0 -0
  290. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/base.py +0 -0
  291. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/rec.py +0 -0
  292. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/segmental_model.py +0 -0
  293. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/signal_processing.py +0 -0
  294. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/layers/variable.py +0 -0
  295. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/native_op.py +0 -0
  296. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/network.py +0 -0
  297. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/sprint.py +0 -0
  298. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/updater.py +0 -0
  299. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/__init__.py +0 -0
  300. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/data.py +0 -0
  301. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/gradient_checkpoint.py +0 -0
  302. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/ken_lm.py +0 -0
  303. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/tf/util/open_fst.py +0 -0
  304. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/README.md +0 -0
  305. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/__init__.py +0 -0
  306. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/__init__.py +0 -0
  307. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/extern_data.py +0 -0
  308. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/pipeline.py +0 -0
  309. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/queued_data_iter.py +0 -0
  310. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  311. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/data/tensor_utils.py +0 -0
  312. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/distributed.py +0 -0
  313. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/engine.py +0 -0
  314. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/frontend/__init__.py +0 -0
  315. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/frontend/_backend.py +0 -0
  316. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/frontend/_rand.py +0 -0
  317. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/frontend/bridge.py +0 -0
  318. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/frontend/raw_ops.py +0 -0
  319. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/optim/README.md +0 -0
  320. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/optim/__init__.py +0 -0
  321. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/optim/lion.py +0 -0
  322. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/updater.py +0 -0
  323. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/README.md +0 -0
  324. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/__init__.py +0 -0
  325. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/array_.py +0 -0
  326. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/debug_inf_nan.py +0 -0
  327. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/diagnose_gpu.py +0 -0
  328. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/exception_helper.py +0 -0
  329. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/gradient_checkpoint.py +0 -0
  330. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/module.py +0 -0
  331. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/torch/util/scaled_gradient.py +0 -0
  332. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/__init__.py +0 -0
  333. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/better_exchook.py +0 -0
  334. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/bpe.py +0 -0
  335. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/debug.py +0 -0
  336. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/debug_helpers.py +0 -0
  337. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/file_cache.py +0 -0
  338. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/fsa.py +0 -0
  339. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/literal_py_to_pickle.py +0 -0
  340. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/lru_cache.py +0 -0
  341. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/math.py +0 -0
  342. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
  343. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/native_code_compiler.py +0 -0
  344. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/pprint.py +0 -0
  345. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/py-to-pickle.cpp +0 -0
  346. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/py_ext_mod_compiler.py +0 -0
  347. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/result_with_reason.py +0 -0
  348. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/sig_proc.py +0 -0
  349. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/task_system.py +0 -0
  350. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/train_proc_manager.py +0 -0
  351. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn/util/watch_memory.py +0 -0
  352. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn.egg-info/SOURCES.txt +0 -0
  353. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn.egg-info/dependency_links.txt +0 -0
  354. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/returnn.egg-info/top_level.txt +0 -0
  355. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/rnn.py +0 -0
  356. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/setup.cfg +0 -0
  357. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/setup.py +0 -0
  358. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/DummySprintExec.py +0 -0
  359. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm-inspection-profile.xml +0 -0
  360. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/.gitignore +0 -0
  361. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/.name +0 -0
  362. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  363. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  364. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  365. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  366. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  367. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/misc.xml +0 -0
  368. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/modules.xml +0 -0
  369. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/returnn.iml +0 -0
  370. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  371. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/_set_num_threads1.py +0 -0
  372. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/_setup_returnn_env.py +0 -0
  373. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/bpe-unicode-demo.codes +0 -0
  374. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/bpe-unicode-demo.vocab +0 -0
  375. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/lexicon_opt.fst +0 -0
  376. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/lexicon_opt.isyms +0 -0
  377. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/lexicon_opt.jpg +0 -0
  378. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/lexicon_opt.osyms +0 -0
  379. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/lint_common.py +0 -0
  380. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/pycharm-inspect.py +0 -0
  381. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/pylint.py +0 -0
  382. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/returnn-as-framework.py +0 -0
  383. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/rf_utils.py +0 -0
  384. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/spelling.dic +0 -0
  385. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Config.py +0 -0
  386. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Dataset.py +0 -0
  387. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Fsa.py +0 -0
  388. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_GeneratingDataset.py +0 -0
  389. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_LearningRateControl.py +0 -0
  390. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_MultiProcDataset.py +0 -0
  391. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_Pretrain.py +0 -0
  392. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_ResNet.py +0 -0
  393. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_SprintDataset.py +0 -0
  394. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_SprintInterface.py +0 -0
  395. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFEngine.py +0 -0
  396. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFNativeOp.py +0 -0
  397. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFNetworkRecLayer.py +0 -0
  398. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFNetworkSigProcLayer.py +0 -0
  399. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TFUpdater.py +0 -0
  400. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TF_determinism.py +0 -0
  401. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TaskSystem.py +0 -0
  402. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_TaskSystem_SharedMem.py +0 -0
  403. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_demos.py +0 -0
  404. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_fork_exec.py +0 -0
  405. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_hdf_dump.py +0 -0
  406. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_array.py +0 -0
  407. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_attention.py +0 -0
  408. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_base.py +0 -0
  409. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_cond.py +0 -0
  410. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_const.py +0 -0
  411. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_container.py +0 -0
  412. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_conv.py +0 -0
  413. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_decoder_transformer.py +0 -0
  414. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_encoder_conformer.py +0 -0
  415. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_gradient.py +0 -0
  416. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_label_smoothing.py +0 -0
  417. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_loop.py +0 -0
  418. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_math.py +0 -0
  419. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_normalization.py +0 -0
  420. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_piecewise_linear.py +0 -0
  421. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_rec.py +0 -0
  422. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_reduce.py +0 -0
  423. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_rf_signal.py +0 -0
  424. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_tensor.py +0 -0
  425. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_threading.py +0 -0
  426. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_tools.py +0 -0
  427. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_torch_dataset.py +0 -0
  428. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_torch_engine.py +0 -0
  429. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_torch_frontend.py +0 -0
  430. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_torch_internal_frontend.py +0 -0
  431. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/test_torch_util.py +0 -0
  432. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tests/torch_utils.py +0 -0
  433. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/_setup_returnn_env.py +0 -0
  434. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/bliss-collect-seq-lens.py +0 -0
  435. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/bliss-dump-text.py +0 -0
  436. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/bliss-get-segment-names.py +0 -0
  437. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/bliss-to-ogg-zip.py +0 -0
  438. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/bpe-create-lexicon.py +0 -0
  439. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/cleanup-old-models.py +0 -0
  440. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/debug-plot-search-scores.py +0 -0
  441. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-forward-stats.py +0 -0
  442. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-forward.py +0 -0
  443. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-network-json.py +0 -0
  444. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/dump-pickle.py +0 -0
  445. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/extract_state_tying_from_dataset.py +0 -0
  446. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/get-attention-weights.py +0 -0
  447. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/get-best-model-epoch.py +0 -0
  448. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/hdf_dump_translation_dataset.py +0 -0
  449. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/import-blocks-mt-model.py +0 -0
  450. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/import-t2t-mt-model.py +0 -0
  451. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/.gitignore +0 -0
  452. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/Makefile +0 -0
  453. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/README.md +0 -0
  454. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/README.md +0 -0
  455. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/libs_list +0 -0
  456. {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
  457. {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
  458. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  459. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/state_vars_list +0 -0
  460. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  461. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/file.h +0 -0
  462. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  463. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  464. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/main.cc +0 -0
  465. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/rescorer.h +0 -0
  466. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/vocabulary.cc +0 -0
  467. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/lattice_rescorer/vocabulary.h +0 -0
  468. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/tf_avg_checkpoints.py +0 -0
  469. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/tf_inspect_checkpoint.py +0 -0
  470. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/tf_inspect_summary_log.py +0 -0
  471. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/torch_avg_checkpoints.py +0 -0
  472. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/torch_inspect_checkpoint.py +0 -0
  473. {returnn-1.20250122.223647 → returnn-1.20250123.223321}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20250122.223647
3
+ Version: 1.20250123.223321
4
4
  Summary: The RWTH extensible training framework for universal recurrent neural networks
5
5
  Home-page: https://github.com/rwth-i6/returnn/
6
6
  Author: Albert Zeyer
@@ -0,0 +1,2 @@
1
+ version = '1.20250123.223321'
2
+ long_version = '1.20250123.223321+git.eb6d734'
@@ -63,7 +63,6 @@ def init(config_filename, command_line_options):
63
63
  :param list[str] command_line_options:
64
64
  """
65
65
  rnn.init_better_exchook()
66
- rnn.init_thread_join_hack()
67
66
  rnn.init_config(config_filename, command_line_options)
68
67
  global config
69
68
  config = rnn.config
@@ -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 str f: file path
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 list[str]|tuple[str] args:
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
- :type key: str
269
- :type value: str
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
- :type key: string
307
- :rtype: boolean
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
- :type key: string
317
- :rtype: boolean
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 str key:
325
- :param bool default:
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 str key:
336
- :param type|tuple[type] types: for isinstance() check
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 type|list[type]|T types: for isinstance() check
348
- :param T|None default:
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
- :type key: str
359
- :type value: list[str] | str | int | float | bool | dict | None
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
- :type dikt: dict
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
- :type key: str
389
- :type default: T
390
- :type index: int | None
391
- :param str list_join_str:
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
- :type key: str
416
- :type default: T
417
- :type index: int | None
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 str key:
432
- :param T|None default:
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
- :type key: str
443
- :type default: T
444
- :type index: int
445
- :rtype: int | T
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
- :type key: str
460
- :type default: T
461
- :type index: int
462
- :rtype: bool | T
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 str key:
483
- :param T default:
484
- :param int index:
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
- :type key: str
506
- :type default: T
507
- :type index: int
508
- :rtype: float | T
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
- :type key: str
525
- :type default: T
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
- :type key: str
544
- :type default: T
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
- :type key: str
563
- :type default: T
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 str key:
582
- :param (int,int)|None default:
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
- if PY3:
557
- assert isinstance(orth, bytes)
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 bisect
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, PY3
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
- if PY3:
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, PY3, close_all_fds_except
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
- if PY3:
446
- assert isinstance(v, bytes)
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:
@@ -14,8 +14,6 @@ import contextlib
14
14
  import string
15
15
  import typing
16
16
 
17
- PY3 = sys.version_info[0] >= 3
18
-
19
17
 
20
18
  class Stream:
21
19
  """
@@ -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
@@ -26,6 +26,7 @@ class _TensorOpOverloadsMixin(_TensorMixinBase):
26
26
  log.print_deprecation_warning(
27
27
  f"{self} __bool__: Using a Tensor in a boolean context is deprecated.", behavior_version=22
28
28
  )
29
+ return True
29
30
 
30
31
  # --- comparisons
31
32
 
@@ -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 unicode, NotSpecified
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, (str, unicode)):
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(x, name=None):
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 tf.Tensor|tf.Variable x:
361
- :param str name:
362
- :return: dicth with key -> scalar info, e.g. with "%s_mean" % name -> tf.reduce_mean(x)
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 dict[str]|None tf_session_opts:
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: