returnn 1.20251106.185107__tar.gz → 1.20251118.160612__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 (480) hide show
  1. {returnn-1.20251106.185107/returnn.egg-info → returnn-1.20251118.160612}/PKG-INFO +1 -1
  2. returnn-1.20251118.160612/_setup_info_generated.py +2 -0
  3. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/meta.py +93 -43
  4. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/basic.py +3 -6
  5. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/better_exchook.py +4 -0
  6. {returnn-1.20251106.185107 → returnn-1.20251118.160612/returnn.egg-info}/PKG-INFO +1 -1
  7. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_Dataset.py +50 -5
  8. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_Util.py +19 -3
  9. returnn-1.20251106.185107/_setup_info_generated.py +0 -2
  10. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/.editorconfig +0 -0
  11. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/.gitignore +0 -0
  12. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/.gitmodules +0 -0
  13. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/.kateconfig +0 -0
  14. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/CHANGELOG.md +0 -0
  15. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/CODEOWNERS +0 -0
  16. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/CONTRIBUTING.md +0 -0
  17. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/LICENSE +0 -0
  18. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/MANIFEST.in +0 -0
  19. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/README.rst +0 -0
  20. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/__init__.py +0 -0
  21. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/12AX.cluster_map +0 -0
  22. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/_setup_returnn_env.py +0 -0
  23. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-fwd.config +0 -0
  24. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-horovod-mpi.py +0 -0
  25. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-horovod-mpi.py.sh +0 -0
  26. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-horovod-mpi.sh +0 -0
  27. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-hyper-param-tuning.config +0 -0
  28. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-iter-dataset.py +0 -0
  29. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-list-devices.py +0 -0
  30. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-lua-torch-layer.config +0 -0
  31. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-pretrain.config +0 -0
  32. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-record-and-push-to-webserver.py +0 -0
  33. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-returnn-as-framework.py +0 -0
  34. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-rf-pt-benchmark.py +0 -0
  35. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-rf.config +0 -0
  36. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-rhn-enwik8.config +0 -0
  37. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-sprint-interface.py +0 -0
  38. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-att-copy.config +0 -0
  39. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-attention.config +0 -0
  40. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  41. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  42. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-enc-dec.config +0 -0
  43. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-hard-att-copy.config +0 -0
  44. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-lstm-benchmark.py +0 -0
  45. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  46. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  47. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-native-lstm.12ax.config +0 -0
  48. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  49. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  50. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  51. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  52. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  53. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-rec-self-att.config +0 -0
  54. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-search-compiled-graph.py +0 -0
  55. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  56. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-timit-lstm-ctc.config +0 -0
  57. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-torch.config +0 -0
  58. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  59. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/demo.sh +0 -0
  60. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  61. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  62. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  63. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/README.txt +0 -0
  64. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/chars.txt +0 -0
  65. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/config_demo +0 -0
  66. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/config_fwd +0 -0
  67. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/config_real +0 -0
  68. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  69. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/decode.py +0 -0
  70. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  71. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/go.sh +0 -0
  72. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/lines.txt +0 -0
  73. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/split/eval.txt +0 -0
  74. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/split/train.txt +0 -0
  75. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/IAM/split/valid.txt +0 -0
  76. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/README.md +0 -0
  77. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  78. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/artificial/forwardconfig +0 -0
  79. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/artificial/go.sh +0 -0
  80. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/artificial/trainconfig +0 -0
  81. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  82. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  83. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  84. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  85. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/pyproject.toml +0 -0
  86. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/requirements.txt +0 -0
  87. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/__init__.py +0 -0
  88. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/__main__.py +0 -0
  89. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/__old_mod_loader__.py +0 -0
  90. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/__setup__.py +0 -0
  91. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/config.py +0 -0
  92. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/__init__.py +0 -0
  93. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/audio.py +0 -0
  94. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/basic.py +0 -0
  95. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/bundle_file.py +0 -0
  96. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/cached.py +0 -0
  97. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/cached2.py +0 -0
  98. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/distrib_files.py +0 -0
  99. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/generating.py +0 -0
  100. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/hdf.py +0 -0
  101. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/huggingface.py +0 -0
  102. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/lm.py +0 -0
  103. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/map.py +0 -0
  104. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/multi_proc.py +0 -0
  105. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/normalization_data.py +0 -0
  106. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/numpy_dump.py +0 -0
  107. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/postprocessing.py +0 -0
  108. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/raw_wav.py +0 -0
  109. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/sprint.py +0 -0
  110. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/stereo.py +0 -0
  111. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/text_dict.py +0 -0
  112. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/util/__init__.py +0 -0
  113. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/util/feature_extraction.py +0 -0
  114. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/util/strings.py +0 -0
  115. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/datasets/util/vocabulary.py +0 -0
  116. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/engine/__init__.py +0 -0
  117. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/engine/base.py +0 -0
  118. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/engine/batch.py +0 -0
  119. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/__init__.py +0 -0
  120. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/__main__.py +0 -0
  121. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  122. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  123. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  124. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  125. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  126. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  127. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  128. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  129. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  130. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  131. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  132. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  133. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  134. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  135. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  136. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  137. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  138. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  139. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  140. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  141. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  142. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  143. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  144. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  145. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  146. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/__init__.py +0 -0
  147. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/graph_editor/README.md +0 -0
  148. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/graph_editor/__init__.py +0 -0
  149. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/graph_editor/edit.py +0 -0
  150. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/graph_editor/reroute.py +0 -0
  151. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/graph_editor/select.py +0 -0
  152. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/graph_editor/subgraph.py +0 -0
  153. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/graph_editor/transform.py +0 -0
  154. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/extern/graph_editor/util.py +0 -0
  155. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/forward_iface.py +0 -0
  156. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/__init__.py +0 -0
  157. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_backend.py +0 -0
  158. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_cache.py +0 -0
  159. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_native/__init__.py +0 -0
  160. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_native/backend.cpp +0 -0
  161. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_native/backend.hpp +0 -0
  162. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_native/module.cpp +0 -0
  163. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_native/module.hpp +0 -0
  164. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_native/py_utils.hpp +0 -0
  165. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_native/tensor_ops.cpp +0 -0
  166. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_native/tensor_ops.hpp +0 -0
  167. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_numpy_backend.py +0 -0
  168. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_random_journal.py +0 -0
  169. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/_utils.py +0 -0
  170. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/array_.py +0 -0
  171. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/attention.py +0 -0
  172. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/audio/__init__.py +0 -0
  173. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/audio/mel.py +0 -0
  174. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/audio/specaugment.py +0 -0
  175. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/backend.py +0 -0
  176. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/build_from_dict.py +0 -0
  177. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/cond.py +0 -0
  178. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/const.py +0 -0
  179. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/container.py +0 -0
  180. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/control_flow_ctx.py +0 -0
  181. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/conv.py +0 -0
  182. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/conversions/__init__.py +0 -0
  183. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/conversions/espnet_e_branchformer.py +0 -0
  184. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/conversions/hf_llama.py +0 -0
  185. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/conversions/torch_nn.py +0 -0
  186. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/decoder/__init__.py +0 -0
  187. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/decoder/transformer.py +0 -0
  188. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/device.py +0 -0
  189. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/dims.py +0 -0
  190. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/dropout.py +0 -0
  191. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/dtype.py +0 -0
  192. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/encoder/__init__.py +0 -0
  193. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/encoder/base.py +0 -0
  194. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/encoder/conformer.py +0 -0
  195. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/encoder/conformer_v2.py +0 -0
  196. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/encoder/e_branchformer.py +0 -0
  197. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/encoder/transformer.py +0 -0
  198. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/gradient.py +0 -0
  199. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/graph.py +0 -0
  200. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/hooks.py +0 -0
  201. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/init.py +0 -0
  202. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/label_smoothing.py +0 -0
  203. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/linear.py +0 -0
  204. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/loop.py +0 -0
  205. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/loss.py +0 -0
  206. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/math_.py +0 -0
  207. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/matmul.py +0 -0
  208. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/module.py +0 -0
  209. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/nested.py +0 -0
  210. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/normalization.py +0 -0
  211. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/parameter.py +0 -0
  212. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/parametrizations.py +0 -0
  213. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/parametrize.py +0 -0
  214. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/piecewise_linear.py +0 -0
  215. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/rand.py +0 -0
  216. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/rec.py +0 -0
  217. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/reduce.py +0 -0
  218. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/run_ctx.py +0 -0
  219. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/signal.py +0 -0
  220. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/state.py +0 -0
  221. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/stepwise_scheduler.py +0 -0
  222. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/tensor_array.py +0 -0
  223. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/frontend/types.py +0 -0
  224. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/import_/__init__.py +0 -0
  225. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/import_/common.py +0 -0
  226. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/import_/git.py +0 -0
  227. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/import_/import_.py +0 -0
  228. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/learning_rate_control.py +0 -0
  229. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/log.py +0 -0
  230. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/native_op.cpp +0 -0
  231. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/native_op.py +0 -0
  232. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/pretrain.py +0 -0
  233. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/sprint/__init__.py +0 -0
  234. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/sprint/cache.py +0 -0
  235. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/sprint/control.py +0 -0
  236. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/sprint/error_signals.py +0 -0
  237. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/sprint/extern_interface.py +0 -0
  238. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/sprint/interface.py +0 -0
  239. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/README.md +0 -0
  240. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/__init__.py +0 -0
  241. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/_dim_extra.py +0 -0
  242. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/_tensor_extra.py +0 -0
  243. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/_tensor_mixin_base.py +0 -0
  244. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/_tensor_op_overloads.py +0 -0
  245. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/control_flow_ctx.py +0 -0
  246. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/dim.py +0 -0
  247. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/marked_dim.py +0 -0
  248. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/tensor.py +0 -0
  249. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/tensor_dict.py +0 -0
  250. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tensor/utils.py +0 -0
  251. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/__init__.py +0 -0
  252. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/compat.py +0 -0
  253. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/data_pipeline.py +0 -0
  254. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/distributed.py +0 -0
  255. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/engine.py +0 -0
  256. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/README.md +0 -0
  257. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/__init__.py +0 -0
  258. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/_backend.py +0 -0
  259. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/_utils.py +0 -0
  260. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/cond.py +0 -0
  261. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  262. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  263. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/dims.py +0 -0
  264. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/layer.py +0 -0
  265. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/loop.py +0 -0
  266. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/make_layer.py +0 -0
  267. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  268. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  269. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  270. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_low_level/__init__.py +0 -0
  271. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/frontend_low_level/_backend.py +0 -0
  272. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/horovod.py +0 -0
  273. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/hyper_param_tuning.py +0 -0
  274. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/layers/__init__.py +0 -0
  275. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/layers/base.py +0 -0
  276. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/layers/basic.py +0 -0
  277. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/layers/rec.py +0 -0
  278. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/layers/segmental_model.py +0 -0
  279. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/layers/signal_processing.py +0 -0
  280. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/layers/variable.py +0 -0
  281. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/native_op.py +0 -0
  282. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/network.py +0 -0
  283. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/sprint.py +0 -0
  284. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/updater.py +0 -0
  285. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/util/__init__.py +0 -0
  286. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/util/basic.py +0 -0
  287. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/util/data.py +0 -0
  288. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/util/gradient_checkpoint.py +0 -0
  289. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/util/ken_lm.py +0 -0
  290. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/tf/util/open_fst.py +0 -0
  291. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/README.md +0 -0
  292. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/__init__.py +0 -0
  293. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/data/__init__.py +0 -0
  294. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/data/extern_data.py +0 -0
  295. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/data/pipeline.py +0 -0
  296. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/data/queued_data_iter.py +0 -0
  297. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  298. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/data/tensor_utils.py +0 -0
  299. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/distributed.py +0 -0
  300. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/engine.py +0 -0
  301. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/frontend/__init__.py +0 -0
  302. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/frontend/_backend.py +0 -0
  303. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/frontend/_rand.py +0 -0
  304. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/frontend/bridge.py +0 -0
  305. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/frontend/raw_ops.py +0 -0
  306. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/optim/README.md +0 -0
  307. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/optim/__init__.py +0 -0
  308. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/optim/lion.py +0 -0
  309. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/updater.py +0 -0
  310. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/util/README.md +0 -0
  311. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/util/__init__.py +0 -0
  312. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/util/array_.py +0 -0
  313. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/util/debug_inf_nan.py +0 -0
  314. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/util/diagnose_gpu.py +0 -0
  315. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/util/exception_helper.py +0 -0
  316. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/util/gradient_checkpoint.py +0 -0
  317. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/util/module.py +0 -0
  318. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/torch/util/scaled_gradient.py +0 -0
  319. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/__init__.py +0 -0
  320. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/bpe.py +0 -0
  321. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/collect_outputs_dict.py +0 -0
  322. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/debug.py +0 -0
  323. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/debug_helpers.py +0 -0
  324. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/file_cache.py +0 -0
  325. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/fsa.py +0 -0
  326. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/literal_py_to_pickle.py +0 -0
  327. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/lru_cache.py +0 -0
  328. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/math.py +0 -0
  329. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
  330. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/native_code_compiler.py +0 -0
  331. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/pprint.py +0 -0
  332. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/py-to-pickle.cpp +0 -0
  333. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/py_ext_mod_compiler.py +0 -0
  334. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/result_with_reason.py +0 -0
  335. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/sig_proc.py +0 -0
  336. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/task_system.py +0 -0
  337. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/train_proc_manager.py +0 -0
  338. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn/util/watch_memory.py +0 -0
  339. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn.egg-info/SOURCES.txt +0 -0
  340. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn.egg-info/dependency_links.txt +0 -0
  341. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn.egg-info/requires.txt +0 -0
  342. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/returnn.egg-info/top_level.txt +0 -0
  343. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/rnn.py +0 -0
  344. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/setup.cfg +0 -0
  345. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/setup.py +0 -0
  346. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/DummySprintExec.py +0 -0
  347. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm-inspection-profile.xml +0 -0
  348. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm.idea/.gitignore +0 -0
  349. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm.idea/.name +0 -0
  350. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  351. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  352. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  353. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  354. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  355. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm.idea/misc.xml +0 -0
  356. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm.idea/modules.xml +0 -0
  357. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm.idea/returnn.iml +0 -0
  358. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  359. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/_set_num_threads1.py +0 -0
  360. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/_setup_returnn_env.py +0 -0
  361. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/_setup_test_env.py +0 -0
  362. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/bpe-unicode-demo.codes +0 -0
  363. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/bpe-unicode-demo.vocab +0 -0
  364. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/lexicon_opt.fst +0 -0
  365. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/lexicon_opt.isyms +0 -0
  366. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/lexicon_opt.jpg +0 -0
  367. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/lexicon_opt.osyms +0 -0
  368. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/lint_common.py +0 -0
  369. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/pycharm-inspect.py +0 -0
  370. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/pylint.py +0 -0
  371. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/returnn-as-framework.py +0 -0
  372. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/rf_utils.py +0 -0
  373. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/spelling.dic +0 -0
  374. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_Config.py +0 -0
  375. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_Fsa.py +0 -0
  376. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_GeneratingDataset.py +0 -0
  377. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_HDFDataset.py +0 -0
  378. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_LearningRateControl.py +0 -0
  379. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_Log.py +0 -0
  380. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_MultiProcDataset.py +0 -0
  381. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_Pretrain.py +0 -0
  382. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_ResNet.py +0 -0
  383. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_SprintDataset.py +0 -0
  384. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_SprintInterface.py +0 -0
  385. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_TFEngine.py +0 -0
  386. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_TFNativeOp.py +0 -0
  387. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_TFNetworkLayer.py +0 -0
  388. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_TFNetworkRecLayer.py +0 -0
  389. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_TFNetworkSigProcLayer.py +0 -0
  390. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_TFUpdater.py +0 -0
  391. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_TFUtil.py +0 -0
  392. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_TF_determinism.py +0 -0
  393. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_TaskSystem.py +0 -0
  394. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_TaskSystem_SharedMem.py +0 -0
  395. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_TranslationDataset.py +0 -0
  396. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_datasets_huggingface.py +0 -0
  397. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_demos.py +0 -0
  398. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_fork_exec.py +0 -0
  399. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_hdf_dump.py +0 -0
  400. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_array.py +0 -0
  401. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_attention.py +0 -0
  402. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_base.py +0 -0
  403. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_cond.py +0 -0
  404. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_const.py +0 -0
  405. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_container.py +0 -0
  406. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_conv.py +0 -0
  407. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_decoder_transformer.py +0 -0
  408. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_encoder_conformer.py +0 -0
  409. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_gradient.py +0 -0
  410. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_label_smoothing.py +0 -0
  411. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_loop.py +0 -0
  412. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_math.py +0 -0
  413. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_normalization.py +0 -0
  414. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_piecewise_linear.py +0 -0
  415. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_rec.py +0 -0
  416. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_reduce.py +0 -0
  417. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_rf_signal.py +0 -0
  418. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_tensor.py +0 -0
  419. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_threading.py +0 -0
  420. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_tools.py +0 -0
  421. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_torch_dataset.py +0 -0
  422. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_torch_engine.py +0 -0
  423. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_torch_frontend.py +0 -0
  424. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_torch_internal_frontend.py +0 -0
  425. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/test_torch_util.py +0 -0
  426. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tests/torch_utils.py +0 -0
  427. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/_setup_returnn_env.py +0 -0
  428. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/analyze-dataset-batches.py +0 -0
  429. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/bliss-collect-seq-lens.py +0 -0
  430. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/bliss-dump-text.py +0 -0
  431. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/bliss-get-segment-names.py +0 -0
  432. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/bliss-to-ogg-zip.py +0 -0
  433. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/bpe-create-lexicon.py +0 -0
  434. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/calculate-word-error-rate.py +0 -0
  435. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/cleanup-old-models.py +0 -0
  436. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/collect-orth-symbols.py +0 -0
  437. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/collect-words.py +0 -0
  438. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/compile_native_op.py +0 -0
  439. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/compile_tf_graph.py +0 -0
  440. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/debug-dump-search-scores.py +0 -0
  441. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/debug-plot-search-scores.py +0 -0
  442. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/dump-dataset-raw-strings.py +0 -0
  443. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/dump-dataset.py +0 -0
  444. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/dump-forward-stats.py +0 -0
  445. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/dump-forward.py +0 -0
  446. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/dump-network-json.py +0 -0
  447. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/dump-pickle.py +0 -0
  448. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/extract_state_tying_from_dataset.py +0 -0
  449. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/file-cache.py +0 -0
  450. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/get-attention-weights.py +0 -0
  451. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/get-best-model-epoch.py +0 -0
  452. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/hdf_dump.py +0 -0
  453. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/hdf_dump_translation_dataset.py +0 -0
  454. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/import-blocks-mt-model.py +0 -0
  455. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/import-t2t-mt-model.py +0 -0
  456. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/.gitignore +0 -0
  457. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/Makefile +0 -0
  458. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/README.md +0 -0
  459. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/example/README.md +0 -0
  460. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/example/libs_list +0 -0
  461. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  462. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
  463. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  464. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/example/state_vars_list +0 -0
  465. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  466. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/file.h +0 -0
  467. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  468. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  469. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/main.cc +0 -0
  470. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/rescorer.h +0 -0
  471. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/vocabulary.cc +0 -0
  472. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/lattice_rescorer/vocabulary.h +0 -0
  473. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/tf_avg_checkpoints.py +0 -0
  474. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/tf_inspect_checkpoint.py +0 -0
  475. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/tf_inspect_summary_log.py +0 -0
  476. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/torch_avg_checkpoints.py +0 -0
  477. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/torch_export_to_onnx.py +0 -0
  478. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/torch_inspect_checkpoint.py +0 -0
  479. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
  480. {returnn-1.20251106.185107 → returnn-1.20251118.160612}/tools/torch_scale_tuning.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20251106.185107
3
+ Version: 1.20251118.160612
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.20251118.160612'
2
+ long_version = '1.20251118.160612+git.5320f71'
@@ -253,22 +253,12 @@ class MetaDataset(CachedDataset2):
253
253
  }
254
254
 
255
255
  self._seq_list_file = seq_list_file
256
- self.seq_list_original = self._load_seq_list(seq_list_file)
257
- self.num_total_seqs = len(self.seq_list_original[self.default_dataset_key])
258
- for key in self.dataset_keys:
259
- assert len(self.seq_list_original[key]) == self.num_total_seqs
260
-
261
- self.tag_idx = {tag: idx for (idx, tag) in enumerate(self.seq_list_original[self.default_dataset_key])}
256
+ self.seq_list_original: Optional[Dict[str, List[str]]] = None
257
+ self.tag_idx: Optional[Dict[str, int]] = None
262
258
 
263
259
  self._seq_lens: Optional[Dict[str, NumbersDict]] = None
264
260
  self._num_timesteps: Optional[NumbersDict] = None
265
261
  self._seq_lens_file = seq_lens_file
266
- if seq_lens_file:
267
- seq_lens = load_json(filename=seq_lens_file)
268
- assert isinstance(seq_lens, dict)
269
- # dict[str,NumbersDict], seq-tag -> data-key -> len
270
- self._seq_lens = {tag: NumbersDict(l) for (tag, l) in seq_lens.items()}
271
- self._num_timesteps = sum([self._seq_lens[s] for s in self.seq_list_original[self.default_dataset_key]])
272
262
 
273
263
  if data_dims:
274
264
  data_dims = convert_data_dims(data_dims)
@@ -290,19 +280,20 @@ class MetaDataset(CachedDataset2):
290
280
  self.num_outputs = self.data_dims
291
281
 
292
282
  self.orig_seq_order_is_initialized = False
283
+ self._current_seq_order: List[int] = []
293
284
  self.seq_list_ordered: Optional[Dict[str, List[str]]] = None
294
285
 
295
- def _load_seq_list(self, seq_list_file: Optional[Union[str, Dict[str, str]]] = None) -> Dict[str, List[str]]:
296
- """
297
- :param seq_list_file:
298
- :return: dict: dataset key -> seq list
299
- """
300
- if not seq_list_file:
286
+ def _lazy_init_seq_list(self):
287
+ if self.seq_list_original is not None:
288
+ return
289
+
290
+ if not self._seq_list_file:
301
291
  # We create a sequence list from all the sequences of the default dataset
302
292
  # and hope that it also applies to the
303
293
  # other datasets.
304
294
  # This can only work if all datasets have the same tag format and the sequences in the other
305
295
  # datasets are a subset of those in the default dataset.
296
+ # (But the order does not matter.)
306
297
  default_dataset = self.datasets[self.default_dataset_key]
307
298
  assert isinstance(default_dataset, Dataset)
308
299
  print(
@@ -349,17 +340,18 @@ class MetaDataset(CachedDataset2):
349
340
  break # only print one
350
341
  del seq_list_set
351
342
  raise Exception("Dataset %r is missing seqs." % key)
352
- elif isinstance(seq_list_file, str):
353
- seq_list = Dataset._load_seq_list_file(seq_list_file, expect_list=False)
354
- elif isinstance(seq_list_file, dict):
343
+ elif isinstance(self._seq_list_file, str):
344
+ seq_list = Dataset._load_seq_list_file(self._seq_list_file, expect_list=False)
345
+ elif isinstance(self._seq_list_file, dict):
355
346
  for key in self.dataset_keys:
356
- if key not in seq_list_file:
347
+ if key not in self._seq_list_file:
357
348
  raise ValueError(f"seq_list_file does not contain all datasets, missing {key}")
358
- seq_list = {key: Dataset._load_seq_list_file(seq_list_file[key]) for key in self.dataset_keys}
349
+ seq_list = {key: Dataset._load_seq_list_file(self._seq_list_file[key]) for key in self.dataset_keys}
359
350
  else:
360
- raise TypeError(f"unexpected seq_list_file type {type(seq_list_file)}")
351
+ raise TypeError(f"unexpected seq_list_file type {type(self._seq_list_file)}")
361
352
 
362
353
  if isinstance(seq_list, list):
354
+ # Use same seq list for all datasets
363
355
  seq_list = {key: seq_list for key in self.dataset_keys}
364
356
  elif isinstance(seq_list, dict):
365
357
  for key in self.dataset_keys:
@@ -368,10 +360,29 @@ class MetaDataset(CachedDataset2):
368
360
  else:
369
361
  raise TypeError(f"unexpected seq_list type {type(seq_list)}")
370
362
 
371
- return seq_list
363
+ for key in self.dataset_keys:
364
+ assert len(seq_list[key]) == len(seq_list[self.default_dataset_key])
365
+
366
+ self.seq_list_original = seq_list
367
+
368
+ def _lazy_init_tag_idx(self):
369
+ if self.tag_idx is not None:
370
+ return
371
+ self._lazy_init_seq_list()
372
+ self.tag_idx = {tag: idx for (idx, tag) in enumerate(self.seq_list_original[self.default_dataset_key])}
373
+
374
+ def _lazy_init_seq_lens(self):
375
+ if self._seq_lens is not None:
376
+ return
377
+ assert self._seq_lens_file
378
+ seq_lens = load_json(filename=self._seq_lens_file)
379
+ assert isinstance(seq_lens, dict)
380
+ # dict[str,NumbersDict], seq-tag -> data-key -> len
381
+ self._seq_lens = {tag: NumbersDict(lens) for (tag, lens) in seq_lens.items()}
372
382
 
373
383
  def _get_dataset_seq_length(self, seq_idx: int):
374
384
  if not self.orig_seq_order_is_initialized:
385
+ self._lazy_init_seq_list()
375
386
  # To use get_seq_length() we first have to init the sequence order once in original order.
376
387
  # If sequence lengths are not needed by get_seq_order_for_epoch this is never executed.
377
388
  self.datasets[self.default_dataset_key].init_seq_order(
@@ -379,6 +390,9 @@ class MetaDataset(CachedDataset2):
379
390
  )
380
391
  self.orig_seq_order_is_initialized = True
381
392
 
393
+ # Warning: This is not correct in the general case.
394
+ # get_seq_length needs to have load_seqs called beforehand per API contract.
395
+ # For some datasets, it might anyway work.
382
396
  return self.datasets[self.default_dataset_key].get_seq_length(seq_idx)["data"]
383
397
 
384
398
  def init_seq_order(self, epoch=None, seq_list=None, seq_order=None):
@@ -392,6 +406,7 @@ class MetaDataset(CachedDataset2):
392
406
  self.epoch is None
393
407
  or self.epoch != epoch
394
408
  or self.seq_list_ordered is None
409
+ or not self._current_seq_order
395
410
  or seq_list is not None
396
411
  or seq_order is not None
397
412
  or self.expected_load_seq_start > 0
@@ -401,16 +416,17 @@ class MetaDataset(CachedDataset2):
401
416
  # This is called via initialize() with epoch=None, just to init some other things.
402
417
  # We are not expected to have prepared any real epoch here.
403
418
  self._num_seqs = 0
419
+ self._current_seq_order = []
404
420
  return True
405
421
 
406
422
  if not need_reinit:
407
- self._num_seqs = len(self.seq_list_ordered[self.default_dataset_key])
408
423
  return False
409
424
 
410
425
  seq_order_dataset = None
411
426
  if seq_order is not None:
412
427
  seq_index = seq_order
413
428
  elif seq_list is not None:
429
+ self._lazy_init_tag_idx()
414
430
  seq_index = [self.tag_idx[tag] for tag in seq_list]
415
431
  elif self.seq_order_control_dataset:
416
432
  seq_order_dataset = self.datasets[self.seq_order_control_dataset]
@@ -418,13 +434,15 @@ class MetaDataset(CachedDataset2):
418
434
  seq_order_dataset.init_seq_order(epoch=epoch)
419
435
  seq_index = seq_order_dataset.get_current_seq_order()
420
436
  else:
421
- if self._seq_lens:
437
+ if self._seq_lens_file:
422
438
 
423
439
  def get_seq_len(s):
424
440
  """
425
441
  :param int s:
426
442
  :rtype: int
427
443
  """
444
+ self._lazy_init_seq_list()
445
+ self._lazy_init_seq_lens()
428
446
  return self._seq_lens[self.seq_list_original[self.default_dataset_key][s]]["data"]
429
447
 
430
448
  elif self._seq_order_seq_lens_file:
@@ -432,8 +450,10 @@ class MetaDataset(CachedDataset2):
432
450
  else:
433
451
  self.orig_seq_order_is_initialized = False
434
452
  get_seq_len = self._get_dataset_seq_length
435
- seq_index = self.get_seq_order_for_epoch(epoch, self.num_total_seqs, get_seq_len)
453
+ seq_index = self.get_seq_order_for_epoch(epoch, self.get_total_num_seqs(), get_seq_len)
436
454
  self._num_seqs = len(seq_index)
455
+ self._current_seq_order = seq_index
456
+ self._lazy_init_seq_list()
437
457
  self.seq_list_ordered = {key: [ls[s] for s in seq_index] for (key, ls) in self.seq_list_original.items()}
438
458
 
439
459
  for dataset_key, dataset in self.datasets.items():
@@ -447,7 +467,7 @@ class MetaDataset(CachedDataset2):
447
467
  """supports sorting"""
448
468
  if self.seq_order_control_dataset:
449
469
  return self.datasets[self.seq_order_control_dataset].supports_seq_order_sorting()
450
- if self._seq_lens or self._seq_order_seq_lens_file:
470
+ if self._seq_lens_file or self._seq_order_seq_lens_file:
451
471
  return True
452
472
  return False
453
473
 
@@ -464,20 +484,40 @@ class MetaDataset(CachedDataset2):
464
484
  :return: current seq order for the current epoch, after self.init_seq_order was called.
465
485
  :rtype: list[int]
466
486
  """
467
- return [self.tag_idx[tag] for tag in self.seq_list_ordered[self.default_dataset_key]]
487
+ return self._current_seq_order
468
488
 
469
489
  def get_all_tags(self):
470
490
  """
471
491
  :return: list of all seq tags, of the whole dataset, without partition epoch
472
492
  :rtype: list[str]
473
493
  """
494
+ if self._seq_list_file is None:
495
+ return self.datasets[self.default_dataset_key].get_all_tags()
496
+ self._lazy_init_seq_list()
497
+ assert self.seq_list_original is not None
474
498
  return self.seq_list_original[self.default_dataset_key]
475
499
 
476
500
  def get_total_num_seqs(self, *, fast: bool = False) -> int:
477
501
  """
502
+ :param fast: if True, might raise an exception if not possible to get fast.
478
503
  :return: total number of seqs, without partition epoch
479
504
  """
480
- return self.num_total_seqs
505
+ if self._seq_list_file is None:
506
+ return self.datasets[self.default_dataset_key].get_total_num_seqs(fast=fast)
507
+ if fast and self.seq_list_original is None:
508
+ raise OptionalNotImplementedError(f"{self} get_total_num_seqs, seq list not loaded yet")
509
+ self._lazy_init_seq_list()
510
+ assert self.seq_list_original is not None
511
+ return len(self.seq_list_original[self.default_dataset_key])
512
+
513
+ def get_num_timesteps(self):
514
+ """num timesteps"""
515
+ if self._num_timesteps is None and self._seq_lens_file:
516
+ self._lazy_init_seq_lens()
517
+ self._num_timesteps = sum([self._seq_lens[s] for s in self.get_all_tags()], start=NumbersDict())
518
+ if self._seq_list_file is None:
519
+ return self.datasets[self.default_dataset_key].get_num_timesteps()
520
+ return super().get_num_timesteps()
481
521
 
482
522
  def finish_epoch(self, *, free_resources: bool = False):
483
523
  """
@@ -503,8 +543,9 @@ class MetaDataset(CachedDataset2):
503
543
  if start_ < end:
504
544
  for dataset_key in self.dataset_keys:
505
545
  self.datasets[dataset_key].load_seqs(start_, end)
506
- for seq_idx in range(start_, end):
507
- self._check_dataset_seq(dataset_key, seq_idx)
546
+ if self.seq_list_ordered is not None:
547
+ for seq_idx in range(start_, end):
548
+ self._check_dataset_seq(dataset_key, seq_idx)
508
549
  super(MetaDataset, self)._load_seqs(start=start, end=end)
509
550
 
510
551
  def _check_dataset_seq(self, dataset_key, seq_idx):
@@ -531,7 +572,7 @@ class MetaDataset(CachedDataset2):
531
572
  :type seq_idx: int
532
573
  :rtype: DatasetSeq
533
574
  """
534
- seq_tag = self.seq_list_ordered[self.default_dataset_key][seq_idx]
575
+ seq_tag = self.get_tag(seq_idx)
535
576
  features = {data_key: self._get_data(seq_idx, data_key) for data_key in self.data_keys}
536
577
  return DatasetSeq(seq_idx=seq_idx, seq_tag=seq_tag, features=features)
537
578
 
@@ -540,8 +581,9 @@ class MetaDataset(CachedDataset2):
540
581
  :param int sorted_seq_idx:
541
582
  :rtype: NumbersDict
542
583
  """
543
- if self._seq_lens:
544
- return self._seq_lens[self.seq_list_ordered[self.default_dataset_key][sorted_seq_idx]]
584
+ if self._seq_lens_file:
585
+ self._lazy_init_seq_lens()
586
+ return self._seq_lens[self.get_tag(sorted_seq_idx)]
545
587
  return super(MetaDataset, self).get_seq_length(sorted_seq_idx)
546
588
 
547
589
  def get_tag(self, sorted_seq_idx):
@@ -549,7 +591,10 @@ class MetaDataset(CachedDataset2):
549
591
  :param int sorted_seq_idx:
550
592
  :rtype: str
551
593
  """
552
- return self.seq_list_ordered[self.default_dataset_key][sorted_seq_idx]
594
+ if self.seq_list_ordered is not None:
595
+ return self.seq_list_ordered[self.default_dataset_key][sorted_seq_idx]
596
+ else:
597
+ return self.datasets[self.default_dataset_key].get_tag(sorted_seq_idx)
553
598
 
554
599
  def get_complete_frac(self, sorted_seq_idx: int, **kwargs) -> Optional[float]:
555
600
  """
@@ -961,6 +1006,7 @@ class CombinedDataset(CachedDataset2):
961
1006
  super(CombinedDataset, self).__init__(**kwargs)
962
1007
  assert self.shuffle_frames_of_nseqs == 0 # not implemented. anyway only for non-recurrent nets
963
1008
 
1009
+ self.data_map = data_map
964
1010
  self.dataset_keys = set([m[0] for m in data_map.keys()]) # type: typing.Set[str]
965
1011
  self.dataset_idx2key_map = dict(enumerate(sorted(self.dataset_keys))) # idx -> dataset-key
966
1012
  self.data_keys = set(data_map.values()) # type: typing.Set[str]
@@ -1248,6 +1294,10 @@ class CombinedDataset(CachedDataset2):
1248
1294
  # Cur meaning for the next sequence to be added to dataset_sorted_seq_idx_list.
1249
1295
  seq_idx = self.used_num_seqs_per_subset[dataset_idx]
1250
1296
  cur_start, cur_end = self._sub_dataset_cur_loaded_seq_range[dataset_idx]
1297
+
1298
+ if not self.datasets[self.dataset_idx2key_map[dataset_idx]].is_less_than_num_seqs(seq_idx):
1299
+ return False
1300
+
1251
1301
  if seq_idx >= cur_end:
1252
1302
  self._sub_dataset_load_seqs(dataset_idx, cur_start, seq_idx + 1)
1253
1303
  return True
@@ -1294,10 +1344,12 @@ class CombinedDataset(CachedDataset2):
1294
1344
  complete_fracs_and_ds_idx = [
1295
1345
  (
1296
1346
  self.datasets[self.dataset_idx2key_map[j]].get_complete_frac(
1297
- self.used_num_seqs_per_subset[j] - 1, allow_only_lr_suitable=True
1347
+ self.used_num_seqs_per_subset[j], allow_only_lr_suitable=True
1348
+ )
1349
+ if self.datasets[self.dataset_idx2key_map[j]].is_less_than_num_seqs(
1350
+ self.used_num_seqs_per_subset[j]
1298
1351
  )
1299
- if self.used_num_seqs_per_subset[j] > 0
1300
- else 0.0,
1352
+ else float("inf"),
1301
1353
  j,
1302
1354
  )
1303
1355
  for j in range(len(self.datasets))
@@ -1309,9 +1361,7 @@ class CombinedDataset(CachedDataset2):
1309
1361
  # Sort by complete frac, i.e. datasets with the lowest complete frac first.
1310
1362
  complete_fracs_and_ds_idx.sort()
1311
1363
  for complete_frac, dataset_idx in complete_fracs_and_ds_idx:
1312
- if self.datasets[self.dataset_idx2key_map[dataset_idx]].is_less_than_num_seqs(
1313
- self.used_num_seqs_per_subset[dataset_idx]
1314
- ):
1364
+ if complete_frac < float("inf"):
1315
1365
  break
1316
1366
  else:
1317
1367
  return False # No dataset has remaining data
@@ -365,12 +365,9 @@ def get_checkpoint_filepattern(filepath):
365
365
  :return: CheckpointLoader compatible filepattern
366
366
  :rtype: str
367
367
  """
368
- if filepath.endswith(".meta"):
369
- return filepath[: -len(".meta")]
370
- elif filepath.endswith(".index"):
371
- return filepath[: -len(".index")]
372
- elif filepath.endswith(".pt"):
373
- return filepath[: -len(".pt")]
368
+ for ext in [".meta", ".index", ".pt"]:
369
+ if filepath.endswith(ext):
370
+ return filepath[: -len(ext)]
374
371
  return filepath
375
372
 
376
373
 
@@ -1093,6 +1093,7 @@ def format_tb(
1093
1093
  with_color=None,
1094
1094
  with_vars=None,
1095
1095
  clear_frames=True,
1096
+ colorize=None,
1096
1097
  ):
1097
1098
  """
1098
1099
  Formats a traceback into a list of strings, each corresponding to one frame.
@@ -1110,11 +1111,14 @@ def format_tb(
1110
1111
  That will potentially fix some mem leaks regarding locals, so it can be important.
1111
1112
  Also see https://github.com/python/cpython/issues/113939.
1112
1113
  However, any further access to frame locals will not work (e.g., if you want to use a debugger afterward).
1114
+ :param colorize: for compat with Python >=3.13, currently ignored
1113
1115
  :return: list of strings, each corresponding to one frame in the traceback.
1114
1116
  Each string contains the file name, line number, function name, source code line, maybe relevant variables,
1115
1117
  etc., and a final newline.
1116
1118
  :rtype: list[str]
1117
1119
  """
1120
+ if colorize is not None and with_color is None:
1121
+ with_color = colorize
1118
1122
  color = Color(enable=with_color)
1119
1123
  output = _OutputLinesCollector(color=color)
1120
1124
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20251106.185107
3
+ Version: 1.20251118.160612
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
@@ -906,6 +906,52 @@ def test_MetaDataset():
906
906
  assert len(classes) == len(_demo_txt) + 1
907
907
 
908
908
 
909
+ def test_MetaDataset_LmDataset_lazy_init():
910
+ # https://github.com/rwth-i6/returnn/issues/1793
911
+ from returnn.datasets.lm import LmDataset
912
+
913
+ with tempfile.NamedTemporaryFile("wt", suffix=".txt") as txt_file:
914
+ txt_file.write("Hello world\n")
915
+ txt_file.write("Next line\n")
916
+ txt_file.flush()
917
+
918
+ orig_lazy_init = LmDataset._lazy_init
919
+
920
+ try:
921
+
922
+ def _wrapped_lazy_init(self):
923
+ print(f"{self} lazy init...")
924
+ raise Exception("we want to test that lazy init is not called")
925
+
926
+ LmDataset._lazy_init = _wrapped_lazy_init
927
+
928
+ dataset = init_dataset(
929
+ {
930
+ "class": "MetaDataset",
931
+ "datasets": {
932
+ "base": {
933
+ "class": "LmDataset",
934
+ "corpus_file": txt_file.name,
935
+ "use_cache_manager": True,
936
+ "skip_empty_lines": False,
937
+ "orth_vocab": {"class": "Utf8ByteTargets"},
938
+ "seq_end_symbol": None,
939
+ "unknown_symbol": None,
940
+ "partition_epoch": 2,
941
+ "seq_ordering": "laplace:.10",
942
+ }
943
+ },
944
+ "data_map": {"data": ("base", "data")},
945
+ "seq_order_control_dataset": "base",
946
+ }
947
+ )
948
+ print("Dataset:", dataset)
949
+ print("len info:", dataset.len_info(fast=True))
950
+
951
+ finally:
952
+ LmDataset._lazy_init = orig_lazy_init
953
+
954
+
909
955
  def test_CombinedDataset():
910
956
  seq_len = 11
911
957
  num_seqs = [10, 5]
@@ -976,17 +1022,16 @@ def test_CombinedDataset():
976
1022
  seqs = dummy_iter_dataset(dataset)
977
1023
  assert len(seqs) == sum(num_seqs)
978
1024
  beginnings = []
979
- visited_num_seqs = [0] * num_sub_ds
1025
+ ds_indices = []
980
1026
  for i, seq in enumerate(seqs):
981
1027
  relevant_ds_idx = [i for i, k in enumerate(keys) if seq.features[k].shape[0] > 0]
982
1028
  assert len(relevant_ds_idx) == 1
983
1029
  ds_idx = relevant_ds_idx[0]
984
- complete_fracs = [visited_num_seqs[j] / num_seqs[j] for j in range(num_sub_ds)]
985
- assert complete_fracs[ds_idx] == min(complete_fracs)
1030
+ ds_indices.append(ds_idx)
986
1031
  beginnings.append(int(seq.features[keys[ds_idx]][0]))
987
- visited_num_seqs[ds_idx] += 1
988
1032
  assert len(set(beginnings)) == sum(num_seqs) # unique, see above
989
- assert visited_num_seqs == num_seqs
1033
+ assert len(ds_indices) == sum(num_seqs)
1034
+ assert ds_indices == [0, 0, 1] * 5
990
1035
 
991
1036
 
992
1037
  def test_MapDatasetWrapper():
@@ -21,7 +21,7 @@ my_dir = os.path.dirname(os.path.realpath(__file__))
21
21
 
22
22
 
23
23
  def _sig_alarm_handler(signum, frame):
24
- raise Exception(f"Alarm (timeout) signal handler")
24
+ raise Exception("Alarm (timeout) signal handler")
25
25
 
26
26
 
27
27
  signal.signal(signal.SIGALRM, _sig_alarm_handler)
@@ -200,6 +200,22 @@ def test_NumbersDict_eq_2():
200
200
  assert a != 5
201
201
 
202
202
 
203
+ def test_NumbersDict_add0():
204
+ a = NumbersDict(numbers_dict={"data": 3, "classes": 2}, broadcast_value=1)
205
+ b = NumbersDict() + a
206
+ assert isinstance(b, NumbersDict)
207
+ assert b.value == 1
208
+ assert b.dict == {"data": 3, "classes": 2}
209
+
210
+
211
+ def test_NumbersDict_add0a():
212
+ a = NumbersDict(numbers_dict={"data": 3, "classes": 2})
213
+ b = NumbersDict() + a
214
+ assert isinstance(b, NumbersDict)
215
+ assert b.value is None
216
+ assert b.dict == {"data": 3, "classes": 2}
217
+
218
+
203
219
  def test_NumbersDict_mul():
204
220
  a = NumbersDict(numbers_dict={"data": 3, "classes": 2}, broadcast_value=1)
205
221
  b = a * 2
@@ -599,11 +615,11 @@ def test_import_wrong_pkg_py_import():
599
615
  del sys.modules[mod_name]
600
616
 
601
617
  try:
602
- import returnn_import.github_com.rwth_i6.returnn_experiments.v20210302153450_10beb9d1c57e
618
+ import returnn_import.github_com.rwth_i6.returnn_experiments.v20210302153450_10beb9d1c57e as _mod
603
619
  except MissingExplicitImport as exc: # but *not* a normal ImportError
604
620
  print("Got expected exception:", exc)
605
621
  else:
606
- raise Exception("We expected an import error exception but got nothing.")
622
+ raise Exception(f"We expected an import error exception but got nothing and module {_mod}")
607
623
 
608
624
 
609
625
  def test_literal_py_to_pickle():
@@ -1,2 +0,0 @@
1
- version = '1.20251106.185107'
2
- long_version = '1.20251106.185107+git.fd8d2d8'