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