returnn 1.20240607.133858__tar.gz → 1.20240610.111814__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.20240607.133858/returnn.egg-info → returnn-1.20240610.111814}/PKG-INFO +1 -1
  2. returnn-1.20240610.111814/_setup_info_generated.py +2 -0
  3. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/basic.py +8 -1
  4. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/concat_files.py +15 -9
  5. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/hdf.py +5 -4
  6. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/meta.py +250 -10
  7. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/basic.py +20 -0
  8. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/multi_proc_non_daemonic_spawn.py +1 -1
  9. {returnn-1.20240607.133858 → returnn-1.20240610.111814/returnn.egg-info}/PKG-INFO +1 -1
  10. returnn-1.20240607.133858/_setup_info_generated.py +0 -2
  11. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/.editorconfig +0 -0
  12. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/.gitignore +0 -0
  13. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/.gitmodules +0 -0
  14. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/.kateconfig +0 -0
  15. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/CHANGELOG.md +0 -0
  16. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/CODEOWNERS +0 -0
  17. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/CONTRIBUTING.md +0 -0
  18. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/LICENSE +0 -0
  19. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/MANIFEST.in +0 -0
  20. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/README.rst +0 -0
  21. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/__init__.py +0 -0
  22. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/12AX.cluster_map +0 -0
  23. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/_setup_returnn_env.py +0 -0
  24. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-fwd.config +0 -0
  25. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-horovod-mpi.py +0 -0
  26. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-horovod-mpi.py.sh +0 -0
  27. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-horovod-mpi.sh +0 -0
  28. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-hyper-param-tuning.config +0 -0
  29. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-iter-dataset.py +0 -0
  30. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-list-devices.py +0 -0
  31. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-lua-torch-layer.config +0 -0
  32. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-pretrain.config +0 -0
  33. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-record-and-push-to-webserver.py +0 -0
  34. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-returnn-as-framework.py +0 -0
  35. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-rf-pt-benchmark.py +0 -0
  36. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-rf.config +0 -0
  37. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-rhn-enwik8.config +0 -0
  38. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-sprint-interface.py +0 -0
  39. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-att-copy.config +0 -0
  40. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-attention.config +0 -0
  41. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  42. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  43. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-enc-dec.config +0 -0
  44. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-hard-att-copy.config +0 -0
  45. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-lstm-benchmark.py +0 -0
  46. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  47. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  48. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-native-lstm.12ax.config +0 -0
  49. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  50. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  51. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  52. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  53. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  54. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-rec-self-att.config +0 -0
  55. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-search-compiled-graph.py +0 -0
  56. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  57. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-timit-lstm-ctc.config +0 -0
  58. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-torch.config +0 -0
  59. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  60. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/demo.sh +0 -0
  61. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  62. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  63. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  64. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/README.txt +0 -0
  65. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/chars.txt +0 -0
  66. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/config_demo +0 -0
  67. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/config_fwd +0 -0
  68. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/config_real +0 -0
  69. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  70. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/decode.py +0 -0
  71. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  72. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/go.sh +0 -0
  73. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/lines.txt +0 -0
  74. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/split/eval.txt +0 -0
  75. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/split/train.txt +0 -0
  76. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/IAM/split/valid.txt +0 -0
  77. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/README.md +0 -0
  78. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  79. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/artificial/forwardconfig +0 -0
  80. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/artificial/go.sh +0 -0
  81. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/artificial/trainconfig +0 -0
  82. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  83. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  84. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  85. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  86. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/pyproject.toml +0 -0
  87. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/requirements.txt +0 -0
  88. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/__init__.py +0 -0
  89. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/__main__.py +0 -0
  90. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/__old_mod_loader__.py +0 -0
  91. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/__setup__.py +0 -0
  92. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/config.py +0 -0
  93. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/__init__.py +0 -0
  94. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/audio.py +0 -0
  95. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/bundle_file.py +0 -0
  96. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/cached.py +0 -0
  97. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/cached2.py +0 -0
  98. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/generating.py +0 -0
  99. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/lm.py +0 -0
  100. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/map.py +0 -0
  101. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/multi_proc.py +0 -0
  102. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/normalization_data.py +0 -0
  103. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/numpy_dump.py +0 -0
  104. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/raw_wav.py +0 -0
  105. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/sprint.py +0 -0
  106. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/stereo.py +0 -0
  107. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/util/__init__.py +0 -0
  108. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/util/feature_extraction.py +0 -0
  109. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/util/strings.py +0 -0
  110. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/datasets/util/vocabulary.py +0 -0
  111. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/engine/__init__.py +0 -0
  112. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/engine/base.py +0 -0
  113. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/engine/batch.py +0 -0
  114. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/__init__.py +0 -0
  115. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/__main__.py +0 -0
  116. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  117. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  118. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  119. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  120. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  121. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  122. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  123. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  124. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  125. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  126. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  127. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  128. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  129. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  130. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  131. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  132. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  133. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  134. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  135. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  136. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  137. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  138. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  139. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  140. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  141. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/__init__.py +0 -0
  142. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/graph_editor/README.md +0 -0
  143. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/graph_editor/__init__.py +0 -0
  144. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/graph_editor/edit.py +0 -0
  145. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/graph_editor/reroute.py +0 -0
  146. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/graph_editor/select.py +0 -0
  147. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/graph_editor/subgraph.py +0 -0
  148. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/graph_editor/transform.py +0 -0
  149. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/extern/graph_editor/util.py +0 -0
  150. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/forward_iface.py +0 -0
  151. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/__init__.py +0 -0
  152. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_backend.py +0 -0
  153. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_native/__init__.py +0 -0
  154. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_native/backend.cpp +0 -0
  155. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_native/backend.hpp +0 -0
  156. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_native/module.cpp +0 -0
  157. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_native/module.hpp +0 -0
  158. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_native/py_utils.hpp +0 -0
  159. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_native/tensor_ops.cpp +0 -0
  160. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_native/tensor_ops.hpp +0 -0
  161. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_numpy_backend.py +0 -0
  162. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_random_journal.py +0 -0
  163. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/_utils.py +0 -0
  164. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/array_.py +0 -0
  165. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/attention.py +0 -0
  166. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/audio/__init__.py +0 -0
  167. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/audio/mel.py +0 -0
  168. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/audio/specaugment.py +0 -0
  169. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/backend.py +0 -0
  170. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/cond.py +0 -0
  171. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/const.py +0 -0
  172. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/container.py +0 -0
  173. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/control_flow_ctx.py +0 -0
  174. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/conv.py +0 -0
  175. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/decoder/__init__.py +0 -0
  176. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/decoder/transformer.py +0 -0
  177. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/device.py +0 -0
  178. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/dims.py +0 -0
  179. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/dropout.py +0 -0
  180. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/dtype.py +0 -0
  181. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/encoder/__init__.py +0 -0
  182. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/encoder/base.py +0 -0
  183. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/encoder/conformer.py +0 -0
  184. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/gradient.py +0 -0
  185. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/graph.py +0 -0
  186. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/hooks.py +0 -0
  187. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/init.py +0 -0
  188. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/label_smoothing.py +0 -0
  189. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/linear.py +0 -0
  190. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/loop.py +0 -0
  191. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/loss.py +0 -0
  192. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/math_.py +0 -0
  193. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/matmul.py +0 -0
  194. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/module.py +0 -0
  195. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/normalization.py +0 -0
  196. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/parameter.py +0 -0
  197. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/rand.py +0 -0
  198. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/rec.py +0 -0
  199. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/reduce.py +0 -0
  200. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/run_ctx.py +0 -0
  201. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/signal.py +0 -0
  202. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/state.py +0 -0
  203. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/tensor_array.py +0 -0
  204. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/frontend/types.py +0 -0
  205. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/import_/__init__.py +0 -0
  206. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/import_/common.py +0 -0
  207. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/import_/git.py +0 -0
  208. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/import_/import_.py +0 -0
  209. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/learning_rate_control.py +0 -0
  210. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/log.py +0 -0
  211. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/native_op.cpp +0 -0
  212. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/native_op.py +0 -0
  213. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/pretrain.py +0 -0
  214. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/sprint/__init__.py +0 -0
  215. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/sprint/cache.py +0 -0
  216. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/sprint/control.py +0 -0
  217. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/sprint/error_signals.py +0 -0
  218. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/sprint/extern_interface.py +0 -0
  219. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/sprint/interface.py +0 -0
  220. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/README.md +0 -0
  221. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/__init__.py +0 -0
  222. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/_dim_extra.py +0 -0
  223. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/_tensor_extra.py +0 -0
  224. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/_tensor_mixin_base.py +0 -0
  225. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/_tensor_op_overloads.py +0 -0
  226. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/control_flow_ctx.py +0 -0
  227. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/dim.py +0 -0
  228. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/marked_dim.py +0 -0
  229. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/tensor.py +0 -0
  230. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/tensor_dict.py +0 -0
  231. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tensor/utils.py +0 -0
  232. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/__init__.py +0 -0
  233. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/compat.py +0 -0
  234. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/data_pipeline.py +0 -0
  235. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/distributed.py +0 -0
  236. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/engine.py +0 -0
  237. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/README.md +0 -0
  238. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/__init__.py +0 -0
  239. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/_backend.py +0 -0
  240. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/_utils.py +0 -0
  241. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/cond.py +0 -0
  242. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  243. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  244. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/dims.py +0 -0
  245. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/layer.py +0 -0
  246. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/loop.py +0 -0
  247. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/make_layer.py +0 -0
  248. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  249. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  250. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  251. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_low_level/__init__.py +0 -0
  252. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/frontend_low_level/_backend.py +0 -0
  253. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/horovod.py +0 -0
  254. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/hyper_param_tuning.py +0 -0
  255. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/layers/__init__.py +0 -0
  256. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/layers/base.py +0 -0
  257. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/layers/basic.py +0 -0
  258. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/layers/rec.py +0 -0
  259. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/layers/segmental_model.py +0 -0
  260. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/layers/signal_processing.py +0 -0
  261. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/layers/variable.py +0 -0
  262. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/native_op.py +0 -0
  263. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/network.py +0 -0
  264. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/sprint.py +0 -0
  265. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/updater.py +0 -0
  266. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/util/__init__.py +0 -0
  267. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/util/basic.py +0 -0
  268. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/util/data.py +0 -0
  269. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/util/gradient_checkpoint.py +0 -0
  270. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/util/ken_lm.py +0 -0
  271. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/tf/util/open_fst.py +0 -0
  272. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/README.md +0 -0
  273. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/__init__.py +0 -0
  274. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/data/__init__.py +0 -0
  275. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/data/extern_data.py +0 -0
  276. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/data/pipeline.py +0 -0
  277. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/data/queued_data_iter.py +0 -0
  278. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  279. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/data/tensor_utils.py +0 -0
  280. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/distributed.py +0 -0
  281. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/engine.py +0 -0
  282. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/frontend/__init__.py +0 -0
  283. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/frontend/_backend.py +0 -0
  284. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/frontend/_rand.py +0 -0
  285. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/frontend/bridge.py +0 -0
  286. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/frontend/raw_ops.py +0 -0
  287. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/updater.py +0 -0
  288. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/util/README.md +0 -0
  289. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/util/__init__.py +0 -0
  290. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/util/diagnose_gpu.py +0 -0
  291. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/torch/util/scaled_gradient.py +0 -0
  292. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/__init__.py +0 -0
  293. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/better_exchook.py +0 -0
  294. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/bpe.py +0 -0
  295. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/debug.py +0 -0
  296. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/debug_helpers.py +0 -0
  297. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/file_cache.py +0 -0
  298. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/fsa.py +0 -0
  299. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/literal_py_to_pickle.py +0 -0
  300. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/math.py +0 -0
  301. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/native_code_compiler.py +0 -0
  302. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/pprint.py +0 -0
  303. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/py-to-pickle.cpp +0 -0
  304. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/py_compat.py +0 -0
  305. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/py_ext_mod_compiler.py +0 -0
  306. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/result_with_reason.py +0 -0
  307. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/sig_proc.py +0 -0
  308. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/task_system.py +0 -0
  309. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/train_proc_manager.py +0 -0
  310. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn/util/watch_memory.py +0 -0
  311. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn.egg-info/SOURCES.txt +0 -0
  312. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn.egg-info/dependency_links.txt +0 -0
  313. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/returnn.egg-info/top_level.txt +0 -0
  314. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/rnn.py +0 -0
  315. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/setup.cfg +0 -0
  316. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/setup.py +0 -0
  317. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/DummySprintExec.py +0 -0
  318. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm-inspection-profile.xml +0 -0
  319. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm.idea/.gitignore +0 -0
  320. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm.idea/.name +0 -0
  321. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  322. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  323. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  324. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  325. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  326. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm.idea/misc.xml +0 -0
  327. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm.idea/modules.xml +0 -0
  328. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm.idea/returnn.iml +0 -0
  329. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  330. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/_set_num_threads1.py +0 -0
  331. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/_setup_returnn_env.py +0 -0
  332. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/_setup_test_env.py +0 -0
  333. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/bpe-unicode-demo.codes +0 -0
  334. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/bpe-unicode-demo.vocab +0 -0
  335. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/lexicon_opt.fst +0 -0
  336. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/lexicon_opt.isyms +0 -0
  337. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/lexicon_opt.jpg +0 -0
  338. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/lexicon_opt.osyms +0 -0
  339. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/lint_common.py +0 -0
  340. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/pycharm-inspect.py +0 -0
  341. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/pylint.py +0 -0
  342. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/returnn-as-framework.py +0 -0
  343. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/rf_utils.py +0 -0
  344. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/spelling.dic +0 -0
  345. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_Config.py +0 -0
  346. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_Dataset.py +0 -0
  347. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_Fsa.py +0 -0
  348. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_GeneratingDataset.py +0 -0
  349. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_HDFDataset.py +0 -0
  350. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_LearningRateControl.py +0 -0
  351. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_Log.py +0 -0
  352. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_MultiProcDataset.py +0 -0
  353. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_Pretrain.py +0 -0
  354. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_ResNet.py +0 -0
  355. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_SprintDataset.py +0 -0
  356. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_SprintInterface.py +0 -0
  357. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_TFEngine.py +0 -0
  358. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_TFNativeOp.py +0 -0
  359. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_TFNetworkLayer.py +0 -0
  360. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_TFNetworkRecLayer.py +0 -0
  361. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_TFNetworkSigProcLayer.py +0 -0
  362. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_TFUpdater.py +0 -0
  363. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_TFUtil.py +0 -0
  364. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_TF_determinism.py +0 -0
  365. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_TaskSystem.py +0 -0
  366. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_TaskSystem_SharedMem.py +0 -0
  367. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_TranslationDataset.py +0 -0
  368. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_Util.py +0 -0
  369. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_demos.py +0 -0
  370. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_fork_exec.py +0 -0
  371. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_hdf_dump.py +0 -0
  372. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_array.py +0 -0
  373. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_attention.py +0 -0
  374. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_base.py +0 -0
  375. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_cond.py +0 -0
  376. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_const.py +0 -0
  377. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_container.py +0 -0
  378. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_conv.py +0 -0
  379. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_encoder_conformer.py +0 -0
  380. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_gradient.py +0 -0
  381. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_label_smoothing.py +0 -0
  382. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_loop.py +0 -0
  383. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_math.py +0 -0
  384. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_normalization.py +0 -0
  385. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_rec.py +0 -0
  386. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_reduce.py +0 -0
  387. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_rf_signal.py +0 -0
  388. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_tensor.py +0 -0
  389. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_tools.py +0 -0
  390. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_torch_dataset.py +0 -0
  391. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_torch_engine.py +0 -0
  392. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_torch_frontend.py +0 -0
  393. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tests/test_torch_internal_frontend.py +0 -0
  394. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/_setup_returnn_env.py +0 -0
  395. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/analyze-dataset-batches.py +0 -0
  396. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/bliss-collect-seq-lens.py +0 -0
  397. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/bliss-dump-text.py +0 -0
  398. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/bliss-get-segment-names.py +0 -0
  399. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/bliss-to-ogg-zip.py +0 -0
  400. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/bpe-create-lexicon.py +0 -0
  401. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/calculate-word-error-rate.py +0 -0
  402. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/cleanup-old-models.py +0 -0
  403. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/collect-orth-symbols.py +0 -0
  404. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/collect-words.py +0 -0
  405. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/compile_native_op.py +0 -0
  406. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/compile_tf_graph.py +0 -0
  407. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/debug-dump-search-scores.py +0 -0
  408. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/debug-plot-search-scores.py +0 -0
  409. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/dump-dataset-raw-strings.py +0 -0
  410. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/dump-dataset.py +0 -0
  411. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/dump-forward-stats.py +0 -0
  412. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/dump-forward.py +0 -0
  413. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/dump-network-json.py +0 -0
  414. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/dump-pickle.py +0 -0
  415. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/extract_state_tying_from_dataset.py +0 -0
  416. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/get-attention-weights.py +0 -0
  417. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/get-best-model-epoch.py +0 -0
  418. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/hdf_dump.py +0 -0
  419. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/hdf_dump_translation_dataset.py +0 -0
  420. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/import-blocks-mt-model.py +0 -0
  421. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/import-t2t-mt-model.py +0 -0
  422. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/.gitignore +0 -0
  423. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/Makefile +0 -0
  424. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/README.md +0 -0
  425. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/example/README.md +0 -0
  426. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/example/libs_list +0 -0
  427. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  428. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
  429. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  430. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/example/state_vars_list +0 -0
  431. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  432. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/file.h +0 -0
  433. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  434. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  435. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/main.cc +0 -0
  436. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/rescorer.h +0 -0
  437. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/vocabulary.cc +0 -0
  438. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/lattice_rescorer/vocabulary.h +0 -0
  439. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/tf_avg_checkpoints.py +0 -0
  440. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/tf_inspect_checkpoint.py +0 -0
  441. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/tf_inspect_summary_log.py +0 -0
  442. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/torch_avg_checkpoints.py +0 -0
  443. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/torch_export_to_onnx.py +0 -0
  444. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/tools/torch_inspect_checkpoint.py +0 -0
  445. {returnn-1.20240607.133858 → returnn-1.20240610.111814}/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.20240607.133858
3
+ Version: 1.20240610.111814
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.111814'
2
+ long_version = '1.20240610.111814+git.b8dc968'
@@ -28,6 +28,9 @@ from returnn.util.basic import try_run, NumbersDict, OptionalNotImplementedError
28
28
  from returnn.tensor import TensorDict
29
29
 
30
30
 
31
+ RANDOM_SEED_OFFSET_ENV_VAR = "RETURNN_RANDOM_SEED_OFFSET"
32
+
33
+
31
34
  class Dataset(object):
32
35
  """
33
36
  Base class for any dataset. This defines the dataset API.
@@ -245,7 +248,11 @@ class Dataset(object):
245
248
  config = get_global_config(raise_exception=False)
246
249
  if not config:
247
250
  return 0
248
- if config.typed_value("torch_distributed") is not None:
251
+
252
+ env_val = os.environ.get(RANDOM_SEED_OFFSET_ENV_VAR)
253
+ if env_val is not None:
254
+ return int(env_val)
255
+ elif config.typed_value("torch_distributed") is not None:
249
256
  import returnn.torch.distributed
250
257
 
251
258
  return returnn.torch.distributed.get_ctx(config=config).rank() * 16127
@@ -11,10 +11,10 @@ import os
11
11
  import sys
12
12
  import numpy
13
13
  from returnn.log import log
14
- from returnn.util.basic import try_run
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
17
+ from .basic import init_dataset, DatasetSeq, RANDOM_SEED_OFFSET_ENV_VAR
18
18
  from .cached2 import CachedDataset2
19
19
 
20
20
  # noinspection PyProtectedMember
@@ -423,6 +423,9 @@ class _WorkerProcParent:
423
423
  buffer_size: int,
424
424
  exit_hook: Optional[Callable[[], None]] = None,
425
425
  ):
426
+ # the dataset makes sure this is set
427
+ assert "random_seed_offset" in dataset_dict
428
+
426
429
  self.epoch = epoch
427
430
  self.full_epoch_0idx = full_epoch_0idx
428
431
  self.dataset_dict = dataset_dict
@@ -431,13 +434,16 @@ class _WorkerProcParent:
431
434
  parent_conn, child_conn = _mp.Pipe()
432
435
  self.parent_conn: mpConnection = parent_conn
433
436
 
434
- self.worker_proc = _mp.Process(
435
- name=f"{name} worker ep {epoch}",
436
- target=_worker_proc_loop,
437
- args=(epoch, buffer_size, dataset_dict, child_conn),
438
- daemon=True,
439
- )
440
- self.worker_proc.start()
437
+ # the env will be forwarded to the child process
438
+ with override_env_var(RANDOM_SEED_OFFSET_ENV_VAR, str(dataset_dict["random_seed_offset"])):
439
+ self.worker_proc = _mp.Process(
440
+ name=f"{name} worker ep {epoch}",
441
+ target=_worker_proc_loop,
442
+ args=(epoch, buffer_size, dataset_dict, child_conn),
443
+ daemon=True,
444
+ )
445
+ self.worker_proc.start()
446
+
441
447
  # Make sure the child connection is closed here.
442
448
  # It stays open in the child, until the child dies.
443
449
  # When that happens, now any consecutive read on the pipe
@@ -3,6 +3,7 @@ Provides :class:`HDFDataset`.
3
3
  """
4
4
 
5
5
  from __future__ import annotations
6
+ import bisect
6
7
  import typing
7
8
  import collections
8
9
  import gc
@@ -457,10 +458,10 @@ class HDFDataset(CachedDataset):
457
458
  return ", ".join(["HDF dataset", "sequences: %i" % self.num_seqs, "frames: %i" % self.get_num_timesteps()])
458
459
 
459
460
  def _get_file_index(self, real_seq_idx):
460
- file_index = 0
461
- while file_index < len(self.file_start) - 1 and real_seq_idx >= self.file_start[file_index + 1]:
462
- file_index += 1
463
- return file_index
461
+ # bisect() returns the position for which all elements to the left of the returned index are <= real_seq_idx,
462
+ # so it actually returns the next file index in which the sequence can be found.
463
+ # Therefore, we subtract 1 to the index provided.
464
+ return bisect.bisect(self.file_start, real_seq_idx) - 1
464
465
 
465
466
 
466
467
  # ------------------------------------------------------------------------------
@@ -23,10 +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 List
26
+ from typing import Optional, Any, Sequence, List, Dict
27
27
  from returnn.datasets.basic import Dataset, DatasetSeq, init_dataset, convert_data_dims
28
28
  from .cached2 import CachedDataset2
29
- from returnn.util.basic import NumbersDict, load_json
29
+ from returnn.util.basic import NumbersDict, load_json, OptionalNotImplementedError
30
30
  from returnn.log import log
31
31
  from random import Random
32
32
  import numpy
@@ -949,7 +949,15 @@ class CombinedDataset(CachedDataset2):
949
949
  self.sampling_sizes = sampling_sizes
950
950
 
951
951
  # This will only initialize datasets needed for features occurring in data_map
952
- self.datasets = {key: init_dataset(datasets[key]) for key in self.dataset_keys}
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
+ }
953
961
 
954
962
  self._estimated_num_seqs = sum([self.datasets[k].estimated_num_seqs for k in sorted(self.datasets.keys())])
955
963
  self.estimated_num_seq_per_subset = [self.datasets[k].estimated_num_seqs for k in sorted(self.datasets.keys())]
@@ -1772,13 +1780,245 @@ class ChunkShuffleDataset(CachedDataset2):
1772
1780
  return self.dataset.get_target_list()
1773
1781
 
1774
1782
 
1775
- def _simple_to_bool(v):
1776
- if v == 0:
1777
- v = False
1778
- if v == 1:
1779
- v = True
1780
- assert isinstance(v, bool)
1781
- return v
1783
+ class VariableDataset(Dataset):
1784
+ """
1785
+ For every (sub)epoch, it would generate a new subdataset,
1786
+ based on a user-provided function.
1787
+ """
1788
+
1789
+ def __init__(self, *, get_dataset, **kwargs):
1790
+ """
1791
+ :param get_dataset: function (*, epoch: int, **_) -> Dict[str,Any], will be called for every sub-epoch.
1792
+ It will cache the dict from the prev call, and if the dict is the same, it will not recreate the dataset.
1793
+ """
1794
+ super().__init__(**kwargs)
1795
+ self._get_dataset = get_dataset
1796
+ self._dataset_dict: Optional[Dict[str, Any]] = None
1797
+ self._dataset: Optional[Dataset] = None
1798
+ self._load_dataset(epoch=1)
1799
+ self.num_inputs = self._dataset.num_inputs
1800
+ self.num_outputs = self._dataset.num_outputs
1801
+ self.labels = self._dataset.labels
1802
+
1803
+ def _load_dataset(self, epoch: int):
1804
+ dataset_dict = self._get_dataset(epoch=epoch)
1805
+ if dataset_dict != self._dataset_dict:
1806
+ self._dataset_dict = dataset_dict
1807
+ self._dataset = init_dataset(dataset_dict)
1808
+
1809
+ def init_seq_order(self, epoch=None, seq_list=None, seq_order=None):
1810
+ """init seq order"""
1811
+ super().init_seq_order()
1812
+ if epoch is None:
1813
+ if seq_list is not None or seq_order is not None:
1814
+ raise ValueError(f"{self}: epoch is None, but given seq_list or seq_order, not supported")
1815
+ return
1816
+ self._load_dataset(epoch)
1817
+ self._dataset.init_seq_order(epoch=epoch, seq_list=seq_list, seq_order=seq_order)
1818
+
1819
+ def finish_epoch(self, *, free_resources: bool = False):
1820
+ """finish epoch"""
1821
+ super().finish_epoch(free_resources=free_resources)
1822
+ self._dataset.finish_epoch(free_resources=free_resources)
1823
+
1824
+ def supports_seq_order_sorting(self) -> bool:
1825
+ """supports sorting"""
1826
+ return self._dataset.supports_seq_order_sorting()
1827
+
1828
+ def get_current_seq_order(self) -> Sequence[int]:
1829
+ """current seq order"""
1830
+ return self._dataset.get_current_seq_order()
1831
+
1832
+ def get_all_tags(self) -> List[str]:
1833
+ """all tags"""
1834
+ return self._dataset.get_all_tags()
1835
+
1836
+ def get_total_num_seqs(self) -> int:
1837
+ """total num seqs"""
1838
+ return self._dataset.get_total_num_seqs()
1839
+
1840
+ def get_seq_length(self, sorted_seq_idx: int) -> NumbersDict:
1841
+ """seq len"""
1842
+ return self._dataset.get_seq_length(sorted_seq_idx)
1843
+
1844
+ def get_tag(self, sorted_seq_idx: int) -> str:
1845
+ """tag"""
1846
+ return self._dataset.get_tag(sorted_seq_idx)
1847
+
1848
+ def get_data_keys(self) -> List[str]:
1849
+ """data keys"""
1850
+ return self._dataset.get_data_keys()
1851
+
1852
+ def get_target_list(self) -> List[str]:
1853
+ """target list"""
1854
+ return self._dataset.get_target_list()
1855
+
1856
+ def is_cached(self, start: int, end: int) -> bool:
1857
+ """is cached"""
1858
+ return self._dataset.is_cached(start, end)
1859
+
1860
+ @property
1861
+ def num_seqs(self) -> int:
1862
+ """num seqs"""
1863
+ return self._dataset.num_seqs
1864
+
1865
+ def is_less_than_num_seqs(self, n: int) -> bool:
1866
+ """n < num_seqs"""
1867
+ return self._dataset.is_less_than_num_seqs(n)
1868
+
1869
+ def get_num_timesteps(self) -> int:
1870
+ """num timesteps"""
1871
+ return self._dataset.get_num_timesteps()
1872
+
1873
+ def load_seqs(self, start: int, end: int):
1874
+ """load seqs"""
1875
+ self._dataset.load_seqs(start, end)
1876
+
1877
+ def _load_seqs(self, start: int, end: int):
1878
+ raise Exception(f"{self}: _load_seqs: should not get here")
1879
+
1880
+ def get_data(self, seq_idx: int, key: str) -> numpy.ndarray:
1881
+ """data"""
1882
+ return self._dataset.get_data(seq_idx, key)
1883
+
1884
+ def get_input_data(self, seq_idx: int) -> numpy.ndarray:
1885
+ """input data"""
1886
+ return self._dataset.get_input_data(seq_idx)
1887
+
1888
+ def get_targets(self, target: str, seq_idx: int) -> numpy.ndarray:
1889
+ """target data"""
1890
+ return self._dataset.get_targets(target, seq_idx)
1891
+
1892
+ def get_data_dim(self, key: str) -> int:
1893
+ """data dim"""
1894
+ return self._dataset.get_data_dim(key)
1895
+
1896
+ def get_data_shape(self, data_key: str) -> List[int]:
1897
+ """data shape"""
1898
+ return self._dataset.get_data_shape(data_key)
1899
+
1900
+ def get_data_dtype(self, key: str) -> str:
1901
+ """data dtype"""
1902
+ return self._dataset.get_data_dtype(key)
1903
+
1904
+ def is_data_sparse(self, key: str) -> bool:
1905
+ """is data sparse"""
1906
+ return self._dataset.is_data_sparse(key)
1907
+
1908
+
1909
+ class AnythingDataset(Dataset):
1910
+ """
1911
+ An infinite dataset, creating dummy (zero) data on the fly,
1912
+ given the data-keys and their shapes.
1913
+
1914
+ When this is used inside a :class:`MetaDataset`,
1915
+ controlled by the seqs list from another dataset,
1916
+ it will just take over whatever seq list is given.
1917
+ """
1918
+
1919
+ def __init__(self, *, data_keys: Dict[str, Dict[str, Any]], **kwargs):
1920
+ """
1921
+ :param data_keys: similar like extern_data. defines shape, dtype, sparse, dim, etc
1922
+ """
1923
+ super().__init__(**kwargs)
1924
+ self._data_keys = data_keys
1925
+ self._input_key = next(iter(data_keys))
1926
+ self.num_inputs = data_keys[self._input_key]["dim"]
1927
+ self.num_outputs = {k: (v["dim"], len(v["shape"])) for (k, v) in data_keys.items()}
1928
+ self.labels = None
1929
+ self._seq_list = None
1930
+ self._seq_order = None
1931
+
1932
+ def init_seq_order(self, epoch=None, seq_list=None, seq_order=None):
1933
+ """init seq order"""
1934
+ super().init_seq_order()
1935
+ self._seq_list = seq_list
1936
+ self._seq_order = seq_order
1937
+
1938
+ def supports_seq_order_sorting(self) -> bool:
1939
+ """supports sorting"""
1940
+ return True
1941
+
1942
+ def get_current_seq_order(self) -> Sequence[int]:
1943
+ """current seq order"""
1944
+ if self._seq_order is not None:
1945
+ return self._seq_order
1946
+ raise OptionalNotImplementedError
1947
+
1948
+ def have_seqs(self) -> bool:
1949
+ """total num seqs"""
1950
+ return True
1951
+
1952
+ def get_seq_length(self, sorted_seq_idx: int) -> NumbersDict:
1953
+ """seq len"""
1954
+ return NumbersDict(1)
1955
+
1956
+ def get_tag(self, sorted_seq_idx: int) -> str:
1957
+ """tag"""
1958
+ if self._seq_list:
1959
+ return self._seq_list[sorted_seq_idx]
1960
+ return f"seq-{sorted_seq_idx}"
1961
+
1962
+ def get_data_keys(self) -> List[str]:
1963
+ """data keys"""
1964
+ return list(self._data_keys)
1965
+
1966
+ def get_target_list(self) -> List[str]:
1967
+ """target list"""
1968
+ return [key for key in self._data_keys if key != self._input_key]
1969
+
1970
+ def is_cached(self, start: int, end: int) -> bool:
1971
+ """is cached"""
1972
+ return True
1973
+
1974
+ @property
1975
+ def num_seqs(self) -> int:
1976
+ """num seqs"""
1977
+ if self._seq_order:
1978
+ return len(self._seq_order)
1979
+ if self._seq_list:
1980
+ return len(self._seq_list)
1981
+ raise NotImplementedError
1982
+
1983
+ def is_less_than_num_seqs(self, n: int) -> bool:
1984
+ """n < num_seqs"""
1985
+ if self._seq_order:
1986
+ return n < len(self._seq_order)
1987
+ if self._seq_list:
1988
+ return n < len(self._seq_list)
1989
+ return True # we can always generate more
1990
+
1991
+ def _load_seqs(self, start: int, end: int):
1992
+ pass # noop
1993
+
1994
+ def get_data(self, seq_idx: int, key: str) -> numpy.ndarray:
1995
+ """data"""
1996
+ data = self._data_keys[key]
1997
+ return numpy.zeros([d or 1 for d in data["shape"]], dtype=data["dtype"])
1998
+
1999
+ def get_input_data(self, seq_idx: int) -> numpy.ndarray:
2000
+ """input data"""
2001
+ return self.get_data(seq_idx, self._input_key)
2002
+
2003
+ def get_targets(self, target: str, seq_idx: int) -> numpy.ndarray:
2004
+ """target data"""
2005
+ return self.get_data(seq_idx, target)
2006
+
2007
+ def get_data_dim(self, key: str) -> int:
2008
+ """data dim"""
2009
+ return self._data_keys[key]["dim"]
2010
+
2011
+ def get_data_shape(self, data_key: str) -> List[int]:
2012
+ """data shape"""
2013
+ return list(self._data_keys[data_key]["shape"])
2014
+
2015
+ def get_data_dtype(self, key: str) -> str:
2016
+ """data dtype"""
2017
+ return self._data_keys[key]["dtype"]
2018
+
2019
+ def is_data_sparse(self, key: str) -> bool:
2020
+ """is data sparse"""
2021
+ return self._data_keys[key].get("sparse", False)
1782
2022
 
1783
2023
 
1784
2024
  def _select_dtype(key, data_dims, data_dtypes):
@@ -4519,3 +4519,23 @@ def find_libcudart_from_runtime():
4519
4519
  return fn
4520
4520
  _find_libcudart_from_runtime_cached = [None]
4521
4521
  return None
4522
+
4523
+
4524
+ @contextlib.contextmanager
4525
+ def override_env_var(var_name: str, value: str):
4526
+ """
4527
+ context manager for temporarily overriding the value of an env var
4528
+
4529
+ :param var_name: the name of the environment variable to override
4530
+ :param value: the value to set while the context mgr is active
4531
+ """
4532
+
4533
+ cur_val = os.environ.get(var_name)
4534
+ os.environ[var_name] = value
4535
+ try:
4536
+ yield
4537
+ finally:
4538
+ if cur_val is not None:
4539
+ os.environ[var_name] = cur_val
4540
+ else:
4541
+ os.environ.pop(var_name)
@@ -94,7 +94,7 @@ class NonDaemonicSpawnProcess(SpawnProcess):
94
94
  signals = ["SIGINT"] * 3 + ["SIGTERM", "SIGKILL"]
95
95
  for sig in signals:
96
96
  try:
97
- print(f"Send signal {sig} to pid {self.ident}")
97
+ print(f"Send signal {sig} to pid {self.ident}/'{self.name or 'N/A'}'")
98
98
  os.kill(self.ident, getattr(signal, sig))
99
99
  except ProcessLookupError:
100
100
  break
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20240607.133858
3
+ Version: 1.20240610.111814
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.20240607.133858'
2
- long_version = '1.20240607.133858+git.ffd35e5'