returnn 1.20240610.111814__tar.gz → 1.20240610.120719__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 (445) hide show
  1. {returnn-1.20240610.111814/returnn.egg-info → returnn-1.20240610.120719}/PKG-INFO +1 -1
  2. returnn-1.20240610.120719/_setup_info_generated.py +2 -0
  3. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/basic.py +63 -23
  4. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/concat_files.py +3 -4
  5. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/meta.py +92 -84
  6. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/multi_proc.py +3 -5
  7. {returnn-1.20240610.111814 → returnn-1.20240610.120719/returnn.egg-info}/PKG-INFO +1 -1
  8. returnn-1.20240610.111814/_setup_info_generated.py +0 -2
  9. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/.editorconfig +0 -0
  10. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/.gitignore +0 -0
  11. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/.gitmodules +0 -0
  12. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/.kateconfig +0 -0
  13. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/CHANGELOG.md +0 -0
  14. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/CODEOWNERS +0 -0
  15. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/CONTRIBUTING.md +0 -0
  16. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/LICENSE +0 -0
  17. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/MANIFEST.in +0 -0
  18. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/README.rst +0 -0
  19. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/__init__.py +0 -0
  20. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/12AX.cluster_map +0 -0
  21. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/_setup_returnn_env.py +0 -0
  22. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-fwd.config +0 -0
  23. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-horovod-mpi.py +0 -0
  24. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-horovod-mpi.py.sh +0 -0
  25. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-horovod-mpi.sh +0 -0
  26. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-hyper-param-tuning.config +0 -0
  27. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-iter-dataset.py +0 -0
  28. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-list-devices.py +0 -0
  29. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-lua-torch-layer.config +0 -0
  30. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-pretrain.config +0 -0
  31. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-record-and-push-to-webserver.py +0 -0
  32. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-returnn-as-framework.py +0 -0
  33. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-rf-pt-benchmark.py +0 -0
  34. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-rf.config +0 -0
  35. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-rhn-enwik8.config +0 -0
  36. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-sprint-interface.py +0 -0
  37. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-att-copy.config +0 -0
  38. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-attention.config +0 -0
  39. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  40. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  41. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-enc-dec.config +0 -0
  42. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-hard-att-copy.config +0 -0
  43. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-lstm-benchmark.py +0 -0
  44. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  45. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  46. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-native-lstm.12ax.config +0 -0
  47. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  48. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  49. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  50. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  51. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  52. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-rec-self-att.config +0 -0
  53. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-search-compiled-graph.py +0 -0
  54. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  55. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-timit-lstm-ctc.config +0 -0
  56. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-torch.config +0 -0
  57. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  58. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/demo.sh +0 -0
  59. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  60. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  61. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  62. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/README.txt +0 -0
  63. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/chars.txt +0 -0
  64. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/config_demo +0 -0
  65. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/config_fwd +0 -0
  66. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/config_real +0 -0
  67. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  68. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/decode.py +0 -0
  69. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  70. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/go.sh +0 -0
  71. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/lines.txt +0 -0
  72. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/split/eval.txt +0 -0
  73. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/split/train.txt +0 -0
  74. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/IAM/split/valid.txt +0 -0
  75. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/README.md +0 -0
  76. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  77. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/artificial/forwardconfig +0 -0
  78. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/artificial/go.sh +0 -0
  79. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/artificial/trainconfig +0 -0
  80. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  81. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  82. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  83. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  84. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/pyproject.toml +0 -0
  85. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/requirements.txt +0 -0
  86. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/__init__.py +0 -0
  87. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/__main__.py +0 -0
  88. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/__old_mod_loader__.py +0 -0
  89. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/__setup__.py +0 -0
  90. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/config.py +0 -0
  91. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/__init__.py +0 -0
  92. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/audio.py +0 -0
  93. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/bundle_file.py +0 -0
  94. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/cached.py +0 -0
  95. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/cached2.py +0 -0
  96. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/generating.py +0 -0
  97. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/hdf.py +0 -0
  98. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/lm.py +0 -0
  99. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/map.py +0 -0
  100. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/normalization_data.py +0 -0
  101. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/numpy_dump.py +0 -0
  102. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/raw_wav.py +0 -0
  103. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/sprint.py +0 -0
  104. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/stereo.py +0 -0
  105. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/util/__init__.py +0 -0
  106. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/util/feature_extraction.py +0 -0
  107. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/util/strings.py +0 -0
  108. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/datasets/util/vocabulary.py +0 -0
  109. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/engine/__init__.py +0 -0
  110. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/engine/base.py +0 -0
  111. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/engine/batch.py +0 -0
  112. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/__init__.py +0 -0
  113. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/__main__.py +0 -0
  114. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  115. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  116. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  117. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  118. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  119. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  120. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  121. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  122. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  123. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  124. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  125. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  126. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  127. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  128. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  129. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  130. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  131. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  132. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  133. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  134. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  135. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  136. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  137. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  138. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  139. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/__init__.py +0 -0
  140. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/graph_editor/README.md +0 -0
  141. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/graph_editor/__init__.py +0 -0
  142. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/graph_editor/edit.py +0 -0
  143. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/graph_editor/reroute.py +0 -0
  144. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/graph_editor/select.py +0 -0
  145. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/graph_editor/subgraph.py +0 -0
  146. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/graph_editor/transform.py +0 -0
  147. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/extern/graph_editor/util.py +0 -0
  148. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/forward_iface.py +0 -0
  149. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/__init__.py +0 -0
  150. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_backend.py +0 -0
  151. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_native/__init__.py +0 -0
  152. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_native/backend.cpp +0 -0
  153. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_native/backend.hpp +0 -0
  154. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_native/module.cpp +0 -0
  155. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_native/module.hpp +0 -0
  156. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_native/py_utils.hpp +0 -0
  157. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_native/tensor_ops.cpp +0 -0
  158. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_native/tensor_ops.hpp +0 -0
  159. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_numpy_backend.py +0 -0
  160. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_random_journal.py +0 -0
  161. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/_utils.py +0 -0
  162. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/array_.py +0 -0
  163. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/attention.py +0 -0
  164. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/audio/__init__.py +0 -0
  165. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/audio/mel.py +0 -0
  166. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/audio/specaugment.py +0 -0
  167. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/backend.py +0 -0
  168. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/cond.py +0 -0
  169. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/const.py +0 -0
  170. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/container.py +0 -0
  171. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/control_flow_ctx.py +0 -0
  172. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/conv.py +0 -0
  173. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/decoder/__init__.py +0 -0
  174. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/decoder/transformer.py +0 -0
  175. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/device.py +0 -0
  176. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/dims.py +0 -0
  177. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/dropout.py +0 -0
  178. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/dtype.py +0 -0
  179. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/encoder/__init__.py +0 -0
  180. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/encoder/base.py +0 -0
  181. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/encoder/conformer.py +0 -0
  182. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/gradient.py +0 -0
  183. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/graph.py +0 -0
  184. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/hooks.py +0 -0
  185. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/init.py +0 -0
  186. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/label_smoothing.py +0 -0
  187. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/linear.py +0 -0
  188. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/loop.py +0 -0
  189. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/loss.py +0 -0
  190. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/math_.py +0 -0
  191. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/matmul.py +0 -0
  192. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/module.py +0 -0
  193. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/normalization.py +0 -0
  194. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/parameter.py +0 -0
  195. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/rand.py +0 -0
  196. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/rec.py +0 -0
  197. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/reduce.py +0 -0
  198. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/run_ctx.py +0 -0
  199. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/signal.py +0 -0
  200. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/state.py +0 -0
  201. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/tensor_array.py +0 -0
  202. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/frontend/types.py +0 -0
  203. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/import_/__init__.py +0 -0
  204. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/import_/common.py +0 -0
  205. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/import_/git.py +0 -0
  206. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/import_/import_.py +0 -0
  207. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/learning_rate_control.py +0 -0
  208. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/log.py +0 -0
  209. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/native_op.cpp +0 -0
  210. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/native_op.py +0 -0
  211. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/pretrain.py +0 -0
  212. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/sprint/__init__.py +0 -0
  213. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/sprint/cache.py +0 -0
  214. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/sprint/control.py +0 -0
  215. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/sprint/error_signals.py +0 -0
  216. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/sprint/extern_interface.py +0 -0
  217. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/sprint/interface.py +0 -0
  218. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/README.md +0 -0
  219. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/__init__.py +0 -0
  220. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/_dim_extra.py +0 -0
  221. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/_tensor_extra.py +0 -0
  222. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/_tensor_mixin_base.py +0 -0
  223. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/_tensor_op_overloads.py +0 -0
  224. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/control_flow_ctx.py +0 -0
  225. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/dim.py +0 -0
  226. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/marked_dim.py +0 -0
  227. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/tensor.py +0 -0
  228. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/tensor_dict.py +0 -0
  229. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tensor/utils.py +0 -0
  230. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/__init__.py +0 -0
  231. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/compat.py +0 -0
  232. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/data_pipeline.py +0 -0
  233. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/distributed.py +0 -0
  234. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/engine.py +0 -0
  235. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/README.md +0 -0
  236. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/__init__.py +0 -0
  237. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/_backend.py +0 -0
  238. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/_utils.py +0 -0
  239. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/cond.py +0 -0
  240. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  241. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  242. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/dims.py +0 -0
  243. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/layer.py +0 -0
  244. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/loop.py +0 -0
  245. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/make_layer.py +0 -0
  246. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  247. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  248. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  249. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_low_level/__init__.py +0 -0
  250. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/frontend_low_level/_backend.py +0 -0
  251. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/horovod.py +0 -0
  252. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/hyper_param_tuning.py +0 -0
  253. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/layers/__init__.py +0 -0
  254. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/layers/base.py +0 -0
  255. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/layers/basic.py +0 -0
  256. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/layers/rec.py +0 -0
  257. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/layers/segmental_model.py +0 -0
  258. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/layers/signal_processing.py +0 -0
  259. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/layers/variable.py +0 -0
  260. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/native_op.py +0 -0
  261. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/network.py +0 -0
  262. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/sprint.py +0 -0
  263. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/updater.py +0 -0
  264. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/util/__init__.py +0 -0
  265. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/util/basic.py +0 -0
  266. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/util/data.py +0 -0
  267. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/util/gradient_checkpoint.py +0 -0
  268. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/util/ken_lm.py +0 -0
  269. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/tf/util/open_fst.py +0 -0
  270. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/README.md +0 -0
  271. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/__init__.py +0 -0
  272. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/data/__init__.py +0 -0
  273. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/data/extern_data.py +0 -0
  274. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/data/pipeline.py +0 -0
  275. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/data/queued_data_iter.py +0 -0
  276. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  277. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/data/tensor_utils.py +0 -0
  278. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/distributed.py +0 -0
  279. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/engine.py +0 -0
  280. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/frontend/__init__.py +0 -0
  281. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/frontend/_backend.py +0 -0
  282. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/frontend/_rand.py +0 -0
  283. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/frontend/bridge.py +0 -0
  284. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/frontend/raw_ops.py +0 -0
  285. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/updater.py +0 -0
  286. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/util/README.md +0 -0
  287. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/util/__init__.py +0 -0
  288. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/util/diagnose_gpu.py +0 -0
  289. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/torch/util/scaled_gradient.py +0 -0
  290. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/__init__.py +0 -0
  291. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/basic.py +0 -0
  292. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/better_exchook.py +0 -0
  293. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/bpe.py +0 -0
  294. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/debug.py +0 -0
  295. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/debug_helpers.py +0 -0
  296. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/file_cache.py +0 -0
  297. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/fsa.py +0 -0
  298. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/literal_py_to_pickle.py +0 -0
  299. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/math.py +0 -0
  300. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
  301. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/native_code_compiler.py +0 -0
  302. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/pprint.py +0 -0
  303. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/py-to-pickle.cpp +0 -0
  304. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/py_compat.py +0 -0
  305. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/py_ext_mod_compiler.py +0 -0
  306. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/result_with_reason.py +0 -0
  307. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/sig_proc.py +0 -0
  308. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/task_system.py +0 -0
  309. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/train_proc_manager.py +0 -0
  310. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn/util/watch_memory.py +0 -0
  311. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn.egg-info/SOURCES.txt +0 -0
  312. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn.egg-info/dependency_links.txt +0 -0
  313. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/returnn.egg-info/top_level.txt +0 -0
  314. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/rnn.py +0 -0
  315. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/setup.cfg +0 -0
  316. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/setup.py +0 -0
  317. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/DummySprintExec.py +0 -0
  318. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm-inspection-profile.xml +0 -0
  319. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm.idea/.gitignore +0 -0
  320. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm.idea/.name +0 -0
  321. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  322. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  323. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  324. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  325. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  326. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm.idea/misc.xml +0 -0
  327. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm.idea/modules.xml +0 -0
  328. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm.idea/returnn.iml +0 -0
  329. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  330. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/_set_num_threads1.py +0 -0
  331. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/_setup_returnn_env.py +0 -0
  332. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/_setup_test_env.py +0 -0
  333. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/bpe-unicode-demo.codes +0 -0
  334. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/bpe-unicode-demo.vocab +0 -0
  335. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/lexicon_opt.fst +0 -0
  336. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/lexicon_opt.isyms +0 -0
  337. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/lexicon_opt.jpg +0 -0
  338. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/lexicon_opt.osyms +0 -0
  339. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/lint_common.py +0 -0
  340. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/pycharm-inspect.py +0 -0
  341. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/pylint.py +0 -0
  342. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/returnn-as-framework.py +0 -0
  343. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/rf_utils.py +0 -0
  344. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/spelling.dic +0 -0
  345. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_Config.py +0 -0
  346. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_Dataset.py +0 -0
  347. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_Fsa.py +0 -0
  348. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_GeneratingDataset.py +0 -0
  349. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_HDFDataset.py +0 -0
  350. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_LearningRateControl.py +0 -0
  351. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_Log.py +0 -0
  352. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_MultiProcDataset.py +0 -0
  353. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_Pretrain.py +0 -0
  354. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_ResNet.py +0 -0
  355. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_SprintDataset.py +0 -0
  356. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_SprintInterface.py +0 -0
  357. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_TFEngine.py +0 -0
  358. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_TFNativeOp.py +0 -0
  359. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_TFNetworkLayer.py +0 -0
  360. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_TFNetworkRecLayer.py +0 -0
  361. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_TFNetworkSigProcLayer.py +0 -0
  362. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_TFUpdater.py +0 -0
  363. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_TFUtil.py +0 -0
  364. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_TF_determinism.py +0 -0
  365. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_TaskSystem.py +0 -0
  366. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_TaskSystem_SharedMem.py +0 -0
  367. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_TranslationDataset.py +0 -0
  368. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_Util.py +0 -0
  369. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_demos.py +0 -0
  370. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_fork_exec.py +0 -0
  371. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_hdf_dump.py +0 -0
  372. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_array.py +0 -0
  373. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_attention.py +0 -0
  374. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_base.py +0 -0
  375. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_cond.py +0 -0
  376. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_const.py +0 -0
  377. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_container.py +0 -0
  378. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_conv.py +0 -0
  379. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_encoder_conformer.py +0 -0
  380. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_gradient.py +0 -0
  381. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_label_smoothing.py +0 -0
  382. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_loop.py +0 -0
  383. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_math.py +0 -0
  384. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_normalization.py +0 -0
  385. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_rec.py +0 -0
  386. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_reduce.py +0 -0
  387. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_rf_signal.py +0 -0
  388. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_tensor.py +0 -0
  389. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_tools.py +0 -0
  390. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_torch_dataset.py +0 -0
  391. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_torch_engine.py +0 -0
  392. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_torch_frontend.py +0 -0
  393. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tests/test_torch_internal_frontend.py +0 -0
  394. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/_setup_returnn_env.py +0 -0
  395. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/analyze-dataset-batches.py +0 -0
  396. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/bliss-collect-seq-lens.py +0 -0
  397. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/bliss-dump-text.py +0 -0
  398. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/bliss-get-segment-names.py +0 -0
  399. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/bliss-to-ogg-zip.py +0 -0
  400. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/bpe-create-lexicon.py +0 -0
  401. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/calculate-word-error-rate.py +0 -0
  402. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/cleanup-old-models.py +0 -0
  403. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/collect-orth-symbols.py +0 -0
  404. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/collect-words.py +0 -0
  405. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/compile_native_op.py +0 -0
  406. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/compile_tf_graph.py +0 -0
  407. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/debug-dump-search-scores.py +0 -0
  408. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/debug-plot-search-scores.py +0 -0
  409. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/dump-dataset-raw-strings.py +0 -0
  410. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/dump-dataset.py +0 -0
  411. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/dump-forward-stats.py +0 -0
  412. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/dump-forward.py +0 -0
  413. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/dump-network-json.py +0 -0
  414. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/dump-pickle.py +0 -0
  415. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/extract_state_tying_from_dataset.py +0 -0
  416. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/get-attention-weights.py +0 -0
  417. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/get-best-model-epoch.py +0 -0
  418. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/hdf_dump.py +0 -0
  419. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/hdf_dump_translation_dataset.py +0 -0
  420. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/import-blocks-mt-model.py +0 -0
  421. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/import-t2t-mt-model.py +0 -0
  422. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/.gitignore +0 -0
  423. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/Makefile +0 -0
  424. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/README.md +0 -0
  425. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/example/README.md +0 -0
  426. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/example/libs_list +0 -0
  427. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  428. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
  429. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  430. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/example/state_vars_list +0 -0
  431. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  432. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/file.h +0 -0
  433. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  434. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  435. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/main.cc +0 -0
  436. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/rescorer.h +0 -0
  437. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/vocabulary.cc +0 -0
  438. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/lattice_rescorer/vocabulary.h +0 -0
  439. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/tf_avg_checkpoints.py +0 -0
  440. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/tf_inspect_checkpoint.py +0 -0
  441. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/tf_inspect_summary_log.py +0 -0
  442. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/torch_avg_checkpoints.py +0 -0
  443. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/torch_export_to_onnx.py +0 -0
  444. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/torch_inspect_checkpoint.py +0 -0
  445. {returnn-1.20240610.111814 → returnn-1.20240610.120719}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20240610.111814
3
+ Version: 1.20240610.120719
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.20240610.120719'
2
+ long_version = '1.20240610.120719+git.cc96aee'
@@ -19,7 +19,7 @@ import os
19
19
  import numpy
20
20
  import functools
21
21
  import typing
22
- from typing import Optional, Any, Union, Type, Dict, Sequence, List, Callable
22
+ from typing import TYPE_CHECKING, Optional, Any, Union, Type, Dict, Sequence, List, Callable
23
23
 
24
24
  from returnn.log import log
25
25
  from returnn.engine.batch import Batch, BatchSetGenerator
@@ -27,6 +27,9 @@ from returnn.datasets.util.vocabulary import Vocabulary
27
27
  from returnn.util.basic import try_run, NumbersDict, OptionalNotImplementedError
28
28
  from returnn.tensor import TensorDict
29
29
 
30
+ if TYPE_CHECKING:
31
+ from returnn.config import Config
32
+
30
33
 
31
34
  RANDOM_SEED_OFFSET_ENV_VAR = "RETURNN_RANDOM_SEED_OFFSET"
32
35
 
@@ -37,10 +40,12 @@ class Dataset(object):
37
40
  """
38
41
 
39
42
  @staticmethod
40
- def kwargs_update_from_config(config, kwargs):
43
+ def kwargs_update_from_config(config: Config, kwargs: Dict[str, Any]):
41
44
  """
42
- :type config: returnn.config.Config
43
- :type kwargs: dict[str]
45
+ Update kwargs inplace from config
46
+
47
+ :param config:
48
+ :param kwargs: updates will be done inplace
44
49
  """
45
50
 
46
51
  def set_or_remove(key, value):
@@ -62,10 +67,10 @@ class Dataset(object):
62
67
  set_or_remove("chunking_variance", config.float("chunking_variance", 0))
63
68
 
64
69
  @staticmethod
65
- def get_default_kwargs_eval(config):
70
+ def get_default_kwargs_eval(config: Config) -> Dict[str, Any]:
66
71
  """
67
- :param returnn.config.Config config:
68
- :rtype: dict[str]
72
+ :param config:
73
+ :return: default kwargs for an eval dataset based on the config
69
74
  """
70
75
  # For dev/eval, by default, we should not do chunking (i.e. chunking = "0").
71
76
  chunking = "0"
@@ -78,11 +83,11 @@ class Dataset(object):
78
83
  return dict(chunking=chunking, seq_ordering="sorted", shuffle_frames_of_nseqs=0)
79
84
 
80
85
  @classmethod
81
- def from_config(cls, config, **kwargs):
86
+ def from_config(cls, config: Config, **kwargs) -> Dataset:
82
87
  """
83
- :type config: returnn.config.Config
84
- :param dict[str] kwargs: passed on to __init__
85
- :rtype: Dataset
88
+ :param config:
89
+ :param kwargs: passed on to __init__
90
+ :return: new dataset via cls(...)
86
91
  """
87
92
  cls.kwargs_update_from_config(config, kwargs)
88
93
  return cls(**kwargs)
@@ -109,20 +114,20 @@ class Dataset(object):
109
114
  """
110
115
  :param str name: e.g. "train" or "eval"
111
116
  :param int window: features will be of dimension window * feature_dim, as we add a context-window around.
112
- not all datasets support this option.
117
+ not all datasets support this option.
113
118
  :param None|int|dict|NumbersDict|(dict,dict) context_window: will add this context for each chunk
114
119
  :param None|str|int|(int,int)|dict|(dict,dict)|function chunking: "chunk_size:chunk_step"
115
120
  :param str seq_ordering: "batching"-option in config. e.g. "default", "sorted" or "random".
116
- See self.get_seq_order_for_epoch() for more details.
121
+ See self.get_seq_order_for_epoch() for more details.
117
122
  :param int|None fixed_random_seed: for the shuffling, e.g. for seq_ordering='random'.
118
123
  otherwise epoch will be used.
119
124
  useful when used as eval dataset.
120
125
  :param int|None random_seed_offset: for shuffling, e.g. for seq_ordering='random'.
121
126
  ignored when fixed_random_seed is set.
122
127
  :param int|None partition_epoch:
123
- :param int|None repeat_epoch: Repeat the sequences in an epoch this many times. Useful to scale the dataset
124
- relative to other datasets, e.g. when used in CombinedDataset. Not allowed to be used in combination with
125
- partition_epoch.
128
+ :param int|None repeat_epoch: Repeat the sequences in an epoch this many times.
129
+ Useful to scale the dataset relative to other datasets, e.g. when used in CombinedDataset.
130
+ Not allowed to be used in combination with partition_epoch.
126
131
  :param str|None seq_list_filter_file: defines a subset of sequences (by tag) to use
127
132
  :param bool unique_seq_tags: uniquify seqs with same seq tags in seq order
128
133
  :param str|None seq_order_seq_lens_file: for seq order, use the seq length given by this file
@@ -452,17 +457,18 @@ class Dataset(object):
452
457
  self._seq_order_seq_lens_by_idx = [seq_lens[tag] for tag in all_tags]
453
458
  return self._seq_order_seq_lens_by_idx[seq_idx]
454
459
 
455
- def get_seq_order_for_epoch(self, epoch, num_seqs, get_seq_len=None):
460
+ def get_seq_order_for_epoch(
461
+ self, epoch: Optional[int], num_seqs: int, get_seq_len: Optional[Callable[[int], int]] = None
462
+ ) -> Sequence[int]:
456
463
  """
457
464
  Returns the order of the given epoch.
458
465
  This is mostly a static method, except that is depends on the configured type of ordering,
459
466
  such as 'default' (= as-is), 'sorted' or 'random'. 'sorted' also uses the sequence length.
460
467
 
461
- :param int|None epoch: for 'random', this determines the random seed
462
- :param int num_seqs:
463
- :param ((int) -> int)|None get_seq_len: function (originalSeqIdx: int) -> int
468
+ :param epoch: for 'random', this determines the random seed
469
+ :param num_seqs:
470
+ :param get_seq_len: function (originalSeqIdx: int) -> int
464
471
  :return: the order for the given epoch. such that seq_idx -> underlying idx
465
- :rtype: typing.Sequence[int]
466
472
  """
467
473
  if epoch is None:
468
474
  # This might be called in the beginning. Skip this and wait until we init the real relevant epoch.
@@ -1379,11 +1385,14 @@ def init_dataset(
1379
1385
  kwargs: Union[Dict[str, Any], str, Callable[[], Dict[str, Any]], Dataset],
1380
1386
  extra_kwargs: Optional[Dict[str, Any]] = None,
1381
1387
  default_kwargs: Optional[Dict[str, Any]] = None,
1388
+ *,
1389
+ parent_dataset: Optional[Dataset] = None,
1382
1390
  ) -> Dataset:
1383
1391
  """
1384
1392
  :param kwargs:
1385
1393
  :param extra_kwargs:
1386
1394
  :param default_kwargs:
1395
+ :param parent_dataset: if given, will adapt some of the default_kwargs (when not set)
1387
1396
  """
1388
1397
  assert kwargs
1389
1398
  if isinstance(kwargs, Dataset):
@@ -1391,7 +1400,9 @@ def init_dataset(
1391
1400
  data.initialize()
1392
1401
  return data
1393
1402
  if callable(kwargs):
1394
- return init_dataset(kwargs(), extra_kwargs=extra_kwargs, default_kwargs=default_kwargs)
1403
+ return init_dataset(
1404
+ kwargs(), extra_kwargs=extra_kwargs, default_kwargs=default_kwargs, parent_dataset=parent_dataset
1405
+ )
1395
1406
  if isinstance(kwargs, str):
1396
1407
  if kwargs.startswith("{"):
1397
1408
  kwargs = eval(kwargs)
@@ -1400,10 +1411,13 @@ def init_dataset(
1400
1411
 
1401
1412
  config = get_global_config()
1402
1413
  data = eval(kwargs[len("config:") :], config.typed_dict, config.typed_dict)
1403
- return init_dataset(data, extra_kwargs=extra_kwargs, default_kwargs=default_kwargs)
1414
+ return init_dataset(
1415
+ data, extra_kwargs=extra_kwargs, default_kwargs=default_kwargs, parent_dataset=parent_dataset
1416
+ )
1404
1417
  else:
1405
1418
  config_str = kwargs
1406
1419
  kwargs = {}
1420
+ default_kwargs = _dataset_extend_default_kwargs_from_parent_dataset(default_kwargs, parent_dataset)
1407
1421
  if default_kwargs:
1408
1422
  kwargs.update(default_kwargs)
1409
1423
  if extra_kwargs:
@@ -1416,6 +1430,7 @@ def init_dataset(
1416
1430
  clazz = get_dataset_class(clazz_name)
1417
1431
  if not clazz:
1418
1432
  raise Exception("Dataset class %r not found" % clazz_name)
1433
+ default_kwargs = _dataset_extend_default_kwargs_from_parent_dataset(default_kwargs, parent_dataset)
1419
1434
  if default_kwargs:
1420
1435
  for key, value in default_kwargs.items():
1421
1436
  kwargs.setdefault(key, value)
@@ -1427,6 +1442,31 @@ def init_dataset(
1427
1442
  return obj
1428
1443
 
1429
1444
 
1445
+ def _dataset_extend_default_kwargs_from_parent_dataset(
1446
+ default_kwargs: Optional[Dict[str, Any]], parent_dataset: Optional[Dataset]
1447
+ ) -> Optional[Dict[str, Any]]:
1448
+ """
1449
+ :param default_kwargs:
1450
+ :param parent_dataset:
1451
+ """
1452
+ if not parent_dataset:
1453
+ return default_kwargs
1454
+ default_kwargs = default_kwargs.copy() if default_kwargs else {}
1455
+ default_kwargs.setdefault("random_seed_offset", parent_dataset.random_seed_offset)
1456
+ return default_kwargs
1457
+
1458
+
1459
+ def extend_dataset_dict_from_parent_dataset(
1460
+ dataset_dict: Dict[str, Any], parent_dataset: Optional[Dataset]
1461
+ ) -> Dict[str, Any]:
1462
+ """
1463
+ :param dataset_dict:
1464
+ :param parent_dataset:
1465
+ :return: extended dataset_dict
1466
+ """
1467
+ return _dataset_extend_default_kwargs_from_parent_dataset(dataset_dict, parent_dataset)
1468
+
1469
+
1430
1470
  def init_dataset_via_str(config_str, config=None, cache_byte_size=None, **kwargs):
1431
1471
  """
1432
1472
  :param str config_str: hdf-files, or "LmDataset:..." or so
@@ -14,7 +14,7 @@ from returnn.log import log
14
14
  from returnn.util.basic import override_env_var, try_run
15
15
  from returnn.util.multi_proc_non_daemonic_spawn import NonDaemonicSpawnContext
16
16
  from returnn.config import SubProcCopyGlobalConfigPreInitFunc
17
- from .basic import init_dataset, DatasetSeq, RANDOM_SEED_OFFSET_ENV_VAR
17
+ from .basic import init_dataset, extend_dataset_dict_from_parent_dataset, DatasetSeq, RANDOM_SEED_OFFSET_ENV_VAR
18
18
  from .cached2 import CachedDataset2
19
19
 
20
20
  # noinspection PyProtectedMember
@@ -192,7 +192,7 @@ class ConcatFilesDataset(CachedDataset2):
192
192
  # Init the dataset with the first file.
193
193
  dataset_dict, exit_hook = self._get_sub_dataset_dict(files=[self.files[0]])
194
194
  try:
195
- dataset = init_dataset(dataset_dict, extra_kwargs={"seq_ordering": "default"})
195
+ dataset = init_dataset(dataset_dict, extra_kwargs={"seq_ordering": "default"}, parent_dataset=self)
196
196
  self.num_inputs = dataset.num_inputs
197
197
  self.num_outputs = dataset.num_outputs
198
198
  self.labels = dataset.labels
@@ -293,8 +293,7 @@ class ConcatFilesDataset(CachedDataset2):
293
293
 
294
294
  def _get_sub_dataset_dict(self, files: List[FileTree]) -> Tuple[Dict[str, Any], _FileCacheExitHook]:
295
295
  dataset_dict = self.get_sub_epoch_dataset(files)
296
- if "random_seed_offset" not in dataset_dict:
297
- dataset_dict["random_seed_offset"] = self.random_seed_offset
296
+ dataset_dict = extend_dataset_dict_from_parent_dataset(dataset_dict, parent_dataset=self)
298
297
  if dataset_dict.get("partition_epoch", 1) != 1:
299
298
  raise ValueError(f"{self}: sub dataset should not have partition_epoch, got: {dataset_dict}")
300
299
  if "seq_ordering" not in dataset_dict and "seq_order_control_dataset" not in dataset_dict:
@@ -23,9 +23,10 @@ The dataset classes MetaDataset and CombinedDataset which perform these tasks ar
23
23
 
24
24
  from __future__ import annotations
25
25
 
26
- from typing import Optional, Any, Sequence, List, Dict
26
+ from typing import Optional, Union, Any, Callable, Sequence, List, Dict, Tuple
27
27
  from returnn.datasets.basic import Dataset, DatasetSeq, init_dataset, convert_data_dims
28
28
  from .cached2 import CachedDataset2
29
+ import returnn.util.basic as util
29
30
  from returnn.util.basic import NumbersDict, load_json, OptionalNotImplementedError
30
31
  from returnn.log import log
31
32
  from random import Random
@@ -39,26 +40,31 @@ class EpochWiseFilter:
39
40
  Applies some filter to the sequences (e.g. by seq length) for some epoch.
40
41
  """
41
42
 
42
- def __init__(self, epochs_opts, debug_msg_prefix="EpochWiseFilter"):
43
+ def __init__(
44
+ self, epochs_opts: Dict[Tuple[int, Optional[int]], Dict[str, Any]], debug_msg_prefix: str = "EpochWiseFilter"
45
+ ):
43
46
  """
44
- :param dict[(int,int|None),dict[str]] epochs_opts: (ep_start, ep_end) -> epoch opts
45
- :param str debug_msg_prefix:
47
+ :param epochs_opts: (ep_start, ep_end) -> epoch opts
48
+ :param debug_msg_prefix:
46
49
  """
47
50
  self.epochs_opts = epochs_opts
48
51
  self.debug_msg_prefix = debug_msg_prefix
49
52
 
50
53
  @classmethod
51
- def filter_epoch(cls, opts, seq_order, get_seq_len, debug_msg_prefix):
52
- """
53
- :param dict[str]|returnn.util.basic.CollectionReadCheckCovered opts:
54
- :param typing.Sequence[int] seq_order: list of seq idxs
55
- :param ((int)->int) get_seq_len: seq idx -> len
56
- :param str debug_msg_prefix:
54
+ def filter_epoch(
55
+ cls,
56
+ opts: Union[Dict[str, Any], util.CollectionReadCheckCovered],
57
+ seq_order: Sequence[int],
58
+ get_seq_len: Callable[[int], int],
59
+ debug_msg_prefix: str,
60
+ ) -> List[int]:
61
+ """
62
+ :param opts:
63
+ :param seq_order: list of seq idxs
64
+ :param get_seq_len: seq idx -> len
65
+ :param debug_msg_prefix:
57
66
  :return: new seq_order
58
- :rtype: list[int]
59
67
  """
60
- import returnn.util.basic as util
61
-
62
68
  if not isinstance(opts, util.CollectionReadCheckCovered):
63
69
  opts = util.CollectionReadCheckCovered(opts)
64
70
  if opts.get("max_mean_len"):
@@ -150,7 +156,7 @@ class MetaDataset(CachedDataset2):
150
156
  'corpus/ted_1/1',
151
157
  'corpus/ted_1/2',
152
158
  'corpus/ted_1/3',
153
- 'corpus/ted_1/4',
159
+ 'corpus/ted_1/4'],
154
160
  'translation': [
155
161
  'line-0',
156
162
  'line-1',
@@ -194,33 +200,33 @@ class MetaDataset(CachedDataset2):
194
200
 
195
201
  def __init__(
196
202
  self,
197
- datasets,
198
- data_map,
199
- seq_list_file=None,
200
- seq_order_control_dataset=None,
201
- seq_lens_file=None,
202
- data_dims=None,
203
- data_dtypes=None, # noqa # not used
204
- window=1,
203
+ datasets: Dict[str, Dict[str, Any]],
204
+ data_map: Dict[str, Tuple[str, str]],
205
+ seq_list_file: Optional[str] = None,
206
+ seq_order_control_dataset: Optional[str] = None,
207
+ seq_lens_file: Optional[str] = None,
208
+ data_dims: Optional[Dict[str, Tuple[int, int]]] = None, # deprecated
209
+ data_dtypes: Optional[Dict[str, str]] = None, # noqa # deprecated, not used
210
+ window: int = 1,
205
211
  **kwargs,
206
212
  ):
207
213
  """
208
- :param dict[str,dict[str]] datasets: dataset-key -> dataset-kwargs. including keyword 'class' and maybe 'files'
209
- :param dict[str,(str,str)] data_map: self-data-key -> (dataset-key, dataset-data-key).
210
- Should contain 'data' as key. Also defines the target-list, which is all except 'data'.
211
- :param str|None seq_list_file: filename. pickle. dict[str,list[str]], dataset-key -> list of sequence tags.
212
- Can be None if tag format is the same for all datasets.
213
- Then the sequence list will be default sequence order of default dataset (``data_map["data"][0]``),
214
- or seq_order_control_dataset.
215
- You only need it if the tag name is not the same for all datasets.
216
- It will currently not act as filter,
217
- as the subdataset controls the sequence order (and thus what seqs to use).
218
- :param str|None seq_order_control_dataset: if set, this dataset will define the order for each epoch.
219
- :param str|None seq_lens_file: filename. json. dict[str,dict[str,int]], seq-tag -> data-key -> len.
220
- Use if getting sequence length from loading data is too costly.
221
- :param dict[str,(int,int)] data_dims: self-data-key -> data-dimension, len(shape) (1 ==> sparse repr).
222
- Deprecated/Only to double check. Read from data if not specified.
223
- :param dict[str,str] data_dtypes: self-data-key -> dtype. Read from data if not specified.
214
+ :param datasets: dataset-key -> dataset-kwargs. including keyword 'class' and maybe 'files'
215
+ :param data_map: self-data-key -> (dataset-key, dataset-data-key).
216
+ Should contain 'data' as key. Also defines the target-list, which is all except 'data'.
217
+ :param seq_list_file: filename. pickle. dict[str,list[str]], dataset-key -> list of sequence tags.
218
+ Can be None if tag format is the same for all datasets.
219
+ Then the sequence list will be default sequence order of default dataset (``data_map["data"][0]``),
220
+ or seq_order_control_dataset.
221
+ You only need it if the tag name is not the same for all datasets.
222
+ It will currently not act as filter,
223
+ as the subdataset controls the sequence order (and thus what seqs to use).
224
+ :param seq_order_control_dataset: if set, this dataset will define the order for each epoch.
225
+ :param seq_lens_file: filename. json. dict[str,dict[str,int]], seq-tag -> data-key -> len.
226
+ Use if getting sequence length from loading data is too costly.
227
+ :param data_dims: self-data-key -> data-dimension, len(shape) (1 ==> sparse repr).
228
+ Deprecated/Only to double-check. Read from data if not specified.
229
+ :param data_dtypes: self-data-key -> dtype. Read from data if not specified. Deprecated, not used.
224
230
  """
225
231
  assert window == 1 # not implemented
226
232
  super(MetaDataset, self).__init__(**kwargs)
@@ -239,7 +245,7 @@ class MetaDataset(CachedDataset2):
239
245
 
240
246
  # This will only initialize datasets needed for features occuring in data_map
241
247
  self.datasets = {
242
- key: init_dataset(datasets[key], extra_kwargs={"name": "%s_%s" % (self.name, key)})
248
+ key: init_dataset(datasets[key], extra_kwargs={"name": "%s_%s" % (self.name, key)}, parent_dataset=self)
243
249
  for key in self.dataset_keys
244
250
  } # type: typing.Dict[str,Dataset]
245
251
 
@@ -283,11 +289,9 @@ class MetaDataset(CachedDataset2):
283
289
  self.orig_seq_order_is_initialized = False
284
290
  self.seq_list_ordered = None # type: typing.Optional[typing.Dict[str,typing.List[str]]]
285
291
 
286
- def _is_same_seq_name_for_each_dataset(self):
292
+ def _is_same_seq_name_for_each_dataset(self) -> bool:
287
293
  """
288
294
  This should be fast.
289
-
290
- :rtype: bool
291
295
  """
292
296
  main_list = self.seq_list_original[self.default_dataset_key]
293
297
  for key, other_list in self.seq_list_original.items():
@@ -295,11 +299,10 @@ class MetaDataset(CachedDataset2):
295
299
  return False
296
300
  return True
297
301
 
298
- def _load_seq_list(self, seq_list_file=None):
302
+ def _load_seq_list(self, seq_list_file: Optional[str] = None) -> Dict[str, List[str]]:
299
303
  """
300
- :param str seq_list_file:
304
+ :param seq_list_file:
301
305
  :return: dict: dataset key -> seq list
302
- :rtype: dict[str,list[str]]
303
306
  """
304
307
  if seq_list_file:
305
308
  seq_list = Dataset._load_seq_list_file(seq_list_file, expect_list=False)
@@ -361,7 +364,7 @@ class MetaDataset(CachedDataset2):
361
364
 
362
365
  return seq_list
363
366
 
364
- def _get_dataset_seq_length(self, seq_idx):
367
+ def _get_dataset_seq_length(self, seq_idx: int):
365
368
  if not self.orig_seq_order_is_initialized:
366
369
  # To use get_seq_length() we first have to init the sequence order once in original order.
367
370
  # If sequence lengths are not needed by get_seq_order_for_epoch this is never executed.
@@ -576,15 +579,17 @@ class ClusteringDataset(CachedDataset2):
576
579
  We will read the cluster-map (seq-name -> cluster-idx) here directly.
577
580
  """
578
581
 
579
- def __init__(self, dataset, cluster_map_file, n_clusters, single_cluster=False, **kwargs):
582
+ def __init__(
583
+ self, dataset: Dict[str, Any], cluster_map_file: str, n_clusters: int, single_cluster: bool = False, **kwargs
584
+ ):
580
585
  """
581
- :param dict[str] dataset:
586
+ :param dataset:
582
587
  :param cluster_map_file:
583
- :param int n_clusters:
588
+ :param n_clusters:
584
589
  :param single_cluster:
585
590
  """
586
591
  super(CachedDataset2, self).__init__(**kwargs)
587
- self.dataset = init_dataset(dataset)
592
+ self.dataset = init_dataset(dataset, parent_dataset=self)
588
593
  self.n_clusters = n_clusters
589
594
  self.single_cluster = single_cluster
590
595
  self.cluster_map = self._load_cluster_map(cluster_map_file)
@@ -594,7 +599,7 @@ class ClusteringDataset(CachedDataset2):
594
599
  self.num_outputs["cluster_idx"] = (n_clusters, 1) # will be a single int32
595
600
  self.expected_load_seq_start = 0
596
601
 
597
- def _load_cluster_map(self, filename):
602
+ def _load_cluster_map(self, filename: str):
598
603
  lines = open(filename).read().splitlines()
599
604
  assert "<coprus-key-map>" in lines[:3], "We expect the Sprint XML format."
600
605
  # It has lines like: <map-item key="CHiME3/dt05_bth/M03_22GC010M_BTH.CH5/1" value="0"/>
@@ -733,12 +738,12 @@ class ConcatDataset(CachedDataset2):
733
738
  It will go through the datasets always in order.
734
739
  """
735
740
 
736
- def __init__(self, datasets, **kwargs):
741
+ def __init__(self, datasets: Sequence[Dict[str, Any]], **kwargs):
737
742
  """
738
- :param list[dict[str]] datasets: list of kwargs for init_dataset
743
+ :param datasets: list of kwargs for init_dataset
739
744
  """
740
745
  super(ConcatDataset, self).__init__(**kwargs)
741
- self.datasets = [init_dataset(d_kwargs) for d_kwargs in datasets]
746
+ self.datasets = [init_dataset(d_kwargs, parent_dataset=self) for d_kwargs in datasets]
742
747
  assert self.datasets
743
748
  self.num_inputs = self.datasets[0].num_inputs
744
749
  self.num_outputs = self.datasets[0].num_outputs
@@ -906,19 +911,31 @@ class CombinedDataset(CachedDataset2):
906
911
  Also see :class:`MetaDataset`.
907
912
  """
908
913
 
909
- def __init__(self, datasets, data_map, data_dims=None, data_dtypes=None, sampling_sizes=None, window=1, **kwargs):
914
+ def __init__(
915
+ self,
916
+ datasets: Dict[str, Dict[str, Any]],
917
+ data_map: Dict[Tuple[str, str], str],
918
+ sampling_sizes: Union[None, int, Dict[str, int]] = None,
919
+ data_dims: Optional[Dict[str, Tuple[int, int]]] = None,
920
+ data_dtypes: Optional[Dict[str, str]] = None,
921
+ window: int = 1,
922
+ **kwargs,
923
+ ):
910
924
  """
911
- :param dict[str,dict[str]] datasets: dataset-key -> dataset-kwargs. including keyword 'class' and maybe 'files'
912
- :param dict[(str,str),str] data_map: (dataset-key, dataset-data-key) -> self-data-key.
913
- Should contain 'data' as key. Also defines the target-list, which is all except 'data'.
914
- :param dict[str,int]|int sampling_sizes: dataset-key -> number-of-sequences. If set, the given fixed amount of
915
- sequences is taken from each dataset in every epoch (instead of using all). If an int is given, this number
916
- is used for all datasets. The sequences will be taken in the order provided by the sub-datasets and we will
917
- loop back to the beginning of the dataset each time we reach the end. Sequence ordering will be applied
918
- after the sampling. Partition and repeat epoch are not supported when sampling.
919
- :param dict[str,(int,int)] data_dims: self-data-key -> data-dimension, len(shape) (1 ==> sparse repr).
920
- Deprecated/Only to double check. Read from data if not specified.
921
- :param dict[str,str] data_dtypes: self-data-key -> dtype. Read from data if not specified.
925
+ :param datasets: dataset-key -> dataset-kwargs. including keyword 'class' and maybe 'files'
926
+ :param data_map: (dataset-key, dataset-data-key) -> self-data-key.
927
+ Should contain 'data' as key. Also defines the target-list, which is all except 'data'.
928
+ :param sampling_sizes: dataset-key -> number-of-sequences.
929
+ If set, the given fixed amount of sequences is taken
930
+ from each dataset in every epoch (instead of using all).
931
+ If an int is given, this number is used for all datasets.
932
+ The sequences will be taken in the order provided by the sub-datasets
933
+ nd we will loop back to the beginning of the dataset each time we reach the end.
934
+ Sequence ordering will be applied after the sampling.
935
+ Partition and repeat epoch are not supported when sampling.
936
+ :param data_dims: self-data-key -> data-dimension, len(shape) (1 ==> sparse repr).
937
+ Deprecated/Only to double check. Read from data if not specified.
938
+ :param data_dtypes: self-data-key -> dtype. Read from data if not specified.
922
939
  """
923
940
  assert window == 1 # not implemented
924
941
  super(CombinedDataset, self).__init__(**kwargs)
@@ -949,15 +966,7 @@ class CombinedDataset(CachedDataset2):
949
966
  self.sampling_sizes = sampling_sizes
950
967
 
951
968
  # This will only initialize datasets needed for features occurring in data_map
952
- self.datasets = {
953
- key: init_dataset(
954
- {
955
- **datasets[key],
956
- "random_seed_offset": datasets[key].get("random_seed_offset", self.random_seed_offset),
957
- }
958
- )
959
- for key in self.dataset_keys
960
- }
969
+ self.datasets = {key: init_dataset(datasets[key], parent_dataset=self) for key in self.dataset_keys}
961
970
 
962
971
  self._estimated_num_seqs = sum([self.datasets[k].estimated_num_seqs for k in sorted(self.datasets.keys())])
963
972
  self.estimated_num_seq_per_subset = [self.datasets[k].estimated_num_seqs for k in sorted(self.datasets.keys())]
@@ -1408,7 +1417,7 @@ class ConcatSeqsDataset(CachedDataset2):
1408
1417
  if isinstance(dataset, dict):
1409
1418
  dataset = dataset.copy()
1410
1419
  dataset.setdefault("name", "%s_subdataset" % self.name)
1411
- self.sub_dataset = init_dataset(dataset)
1420
+ self.sub_dataset = init_dataset(dataset, parent_dataset=self)
1412
1421
  self.num_outputs = self.sub_dataset.num_outputs
1413
1422
  self.num_inputs = self.sub_dataset.num_inputs
1414
1423
  self.labels = self.sub_dataset.labels
@@ -1605,18 +1614,18 @@ class ChunkShuffleDataset(CachedDataset2):
1605
1614
 
1606
1615
  def __init__(
1607
1616
  self,
1608
- dataset,
1609
- chunk_shuffle_cache=1000,
1610
- batch_gen_batch_size=5000,
1611
- batch_gen_max_seqs=1,
1612
- batch_gen_recurrent_net=True,
1617
+ dataset: Dict[str, Any],
1618
+ chunk_shuffle_cache: int = 1000,
1619
+ batch_gen_batch_size: int = 5000,
1620
+ batch_gen_max_seqs: int = 1,
1621
+ batch_gen_recurrent_net: bool = True,
1613
1622
  **kwargs,
1614
1623
  ):
1615
1624
  """
1616
1625
  :param dict[str] dataset: kwargs for init_dataset
1617
1626
  """
1618
1627
  super(ChunkShuffleDataset, self).__init__(**kwargs)
1619
- self.dataset = init_dataset(dataset)
1628
+ self.dataset = init_dataset(dataset, parent_dataset=self)
1620
1629
  assert self.dataset
1621
1630
  self.dataset_last_load_seq_end = None
1622
1631
  self.chunk_shuffle_cache = chunk_shuffle_cache
@@ -1804,7 +1813,7 @@ class VariableDataset(Dataset):
1804
1813
  dataset_dict = self._get_dataset(epoch=epoch)
1805
1814
  if dataset_dict != self._dataset_dict:
1806
1815
  self._dataset_dict = dataset_dict
1807
- self._dataset = init_dataset(dataset_dict)
1816
+ self._dataset = init_dataset(dataset_dict, parent_dataset=self)
1808
1817
 
1809
1818
  def init_seq_order(self, epoch=None, seq_list=None, seq_order=None):
1810
1819
  """init seq order"""
@@ -1925,7 +1934,6 @@ class AnythingDataset(Dataset):
1925
1934
  self._input_key = next(iter(data_keys))
1926
1935
  self.num_inputs = data_keys[self._input_key]["dim"]
1927
1936
  self.num_outputs = {k: (v["dim"], len(v["shape"])) for (k, v) in data_keys.items()}
1928
- self.labels = None
1929
1937
  self._seq_list = None
1930
1938
  self._seq_order = None
1931
1939
 
@@ -10,7 +10,7 @@ import multiprocessing as mp
10
10
  from returnn.util.basic import try_run
11
11
  from returnn.config import SubProcCopyGlobalConfigPreInitFunc
12
12
  from returnn.util.multi_proc_non_daemonic_spawn import NonDaemonicSpawnContext
13
- from .basic import init_dataset, Dataset, DatasetSeq
13
+ from .basic import init_dataset, extend_dataset_dict_from_parent_dataset, Dataset, DatasetSeq
14
14
  from .cached2 import CachedDataset2
15
15
 
16
16
  # noinspection PyProtectedMember
@@ -46,10 +46,8 @@ class MultiProcDataset(CachedDataset2):
46
46
  assert num_workers > 0 and buffer_size > 0
47
47
  dataset = dataset.copy()
48
48
  for k, v in kwargs.items():
49
- if k not in dataset:
50
- dataset[k] = v
51
- if "random_seed_offset" not in dataset:
52
- dataset["random_seed_offset"] = self.random_seed_offset
49
+ dataset.setdefault(k, v)
50
+ dataset = extend_dataset_dict_from_parent_dataset(dataset, parent_dataset=self)
53
51
  self.dataset = dataset
54
52
  self.num_workers = num_workers
55
53
  self.buffer_size = buffer_size
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20240610.111814
3
+ Version: 1.20240610.120719
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
@@ -1,2 +0,0 @@
1
- version = '1.20240610.111814'
2
- long_version = '1.20240610.111814+git.b8dc968'