returnn 1.20240723.121602__tar.gz → 1.20240723.153926__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 (455) hide show
  1. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/PKG-INFO +1 -1
  2. returnn-1.20240723.153926/_setup_info_generated.py +2 -0
  3. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/lm.py +94 -54
  4. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/engine.py +6 -5
  5. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn.egg-info/PKG-INFO +1 -1
  6. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_Dataset.py +152 -0
  7. returnn-1.20240723.121602/_setup_info_generated.py +0 -2
  8. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/.editorconfig +0 -0
  9. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/.gitignore +0 -0
  10. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/.gitmodules +0 -0
  11. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/.kateconfig +0 -0
  12. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/CHANGELOG.md +0 -0
  13. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/CODEOWNERS +0 -0
  14. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/CONTRIBUTING.md +0 -0
  15. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/LICENSE +0 -0
  16. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/MANIFEST.in +0 -0
  17. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/README.rst +0 -0
  18. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/__init__.py +0 -0
  19. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/12AX.cluster_map +0 -0
  20. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/_setup_returnn_env.py +0 -0
  21. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-fwd.config +0 -0
  22. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-horovod-mpi.py +0 -0
  23. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-horovod-mpi.py.sh +0 -0
  24. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-horovod-mpi.sh +0 -0
  25. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-hyper-param-tuning.config +0 -0
  26. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-iter-dataset.py +0 -0
  27. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-list-devices.py +0 -0
  28. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-lua-torch-layer.config +0 -0
  29. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-pretrain.config +0 -0
  30. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-record-and-push-to-webserver.py +0 -0
  31. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-returnn-as-framework.py +0 -0
  32. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-rf-pt-benchmark.py +0 -0
  33. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-rf.config +0 -0
  34. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-rhn-enwik8.config +0 -0
  35. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-sprint-interface.py +0 -0
  36. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-att-copy.config +0 -0
  37. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-attention.config +0 -0
  38. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  39. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  40. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-enc-dec.config +0 -0
  41. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-hard-att-copy.config +0 -0
  42. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-lstm-benchmark.py +0 -0
  43. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  44. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  45. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-native-lstm.12ax.config +0 -0
  46. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  47. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  48. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  49. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  50. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  51. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-rec-self-att.config +0 -0
  52. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-search-compiled-graph.py +0 -0
  53. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  54. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-timit-lstm-ctc.config +0 -0
  55. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-torch.config +0 -0
  56. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  57. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/demo.sh +0 -0
  58. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  59. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  60. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  61. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/README.txt +0 -0
  62. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/chars.txt +0 -0
  63. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/config_demo +0 -0
  64. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/config_fwd +0 -0
  65. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/config_real +0 -0
  66. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  67. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/decode.py +0 -0
  68. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  69. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/go.sh +0 -0
  70. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/lines.txt +0 -0
  71. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/split/eval.txt +0 -0
  72. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/split/train.txt +0 -0
  73. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/IAM/split/valid.txt +0 -0
  74. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/README.md +0 -0
  75. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  76. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/artificial/forwardconfig +0 -0
  77. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/artificial/go.sh +0 -0
  78. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/artificial/trainconfig +0 -0
  79. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  80. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  81. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  82. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  83. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/pyproject.toml +0 -0
  84. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/requirements.txt +0 -0
  85. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/__init__.py +0 -0
  86. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/__main__.py +0 -0
  87. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/__old_mod_loader__.py +0 -0
  88. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/__setup__.py +0 -0
  89. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/config.py +0 -0
  90. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/__init__.py +0 -0
  91. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/audio.py +0 -0
  92. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/basic.py +0 -0
  93. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/bundle_file.py +0 -0
  94. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/cached.py +0 -0
  95. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/cached2.py +0 -0
  96. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/distrib_files.py +0 -0
  97. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/generating.py +0 -0
  98. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/hdf.py +0 -0
  99. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/map.py +0 -0
  100. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/meta.py +0 -0
  101. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/multi_proc.py +0 -0
  102. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/normalization_data.py +0 -0
  103. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/numpy_dump.py +0 -0
  104. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/raw_wav.py +0 -0
  105. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/sprint.py +0 -0
  106. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/stereo.py +0 -0
  107. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/util/__init__.py +0 -0
  108. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/util/feature_extraction.py +0 -0
  109. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/util/strings.py +0 -0
  110. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/datasets/util/vocabulary.py +0 -0
  111. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/engine/__init__.py +0 -0
  112. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/engine/base.py +0 -0
  113. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/engine/batch.py +0 -0
  114. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/__init__.py +0 -0
  115. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/__main__.py +0 -0
  116. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  117. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  118. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  119. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  120. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  121. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  122. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  123. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  124. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  125. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  126. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  127. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  128. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  129. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  130. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  131. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  132. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  133. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  134. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  135. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  136. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  137. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  138. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  139. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  140. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  141. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/__init__.py +0 -0
  142. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/graph_editor/README.md +0 -0
  143. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/graph_editor/__init__.py +0 -0
  144. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/graph_editor/edit.py +0 -0
  145. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/graph_editor/reroute.py +0 -0
  146. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/graph_editor/select.py +0 -0
  147. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/graph_editor/subgraph.py +0 -0
  148. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/graph_editor/transform.py +0 -0
  149. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/extern/graph_editor/util.py +0 -0
  150. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/forward_iface.py +0 -0
  151. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/__init__.py +0 -0
  152. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_backend.py +0 -0
  153. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_native/__init__.py +0 -0
  154. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_native/backend.cpp +0 -0
  155. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_native/backend.hpp +0 -0
  156. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_native/module.cpp +0 -0
  157. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_native/module.hpp +0 -0
  158. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_native/py_utils.hpp +0 -0
  159. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_native/tensor_ops.cpp +0 -0
  160. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_native/tensor_ops.hpp +0 -0
  161. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_numpy_backend.py +0 -0
  162. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_random_journal.py +0 -0
  163. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/_utils.py +0 -0
  164. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/array_.py +0 -0
  165. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/attention.py +0 -0
  166. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/audio/__init__.py +0 -0
  167. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/audio/mel.py +0 -0
  168. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/audio/specaugment.py +0 -0
  169. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/backend.py +0 -0
  170. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/build_from_dict.py +0 -0
  171. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/cond.py +0 -0
  172. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/const.py +0 -0
  173. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/container.py +0 -0
  174. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/control_flow_ctx.py +0 -0
  175. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/conv.py +0 -0
  176. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/decoder/__init__.py +0 -0
  177. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/decoder/transformer.py +0 -0
  178. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/device.py +0 -0
  179. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/dims.py +0 -0
  180. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/dropout.py +0 -0
  181. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/dtype.py +0 -0
  182. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/encoder/__init__.py +0 -0
  183. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/encoder/base.py +0 -0
  184. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/encoder/conformer.py +0 -0
  185. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/gradient.py +0 -0
  186. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/graph.py +0 -0
  187. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/hooks.py +0 -0
  188. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/init.py +0 -0
  189. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/label_smoothing.py +0 -0
  190. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/linear.py +0 -0
  191. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/loop.py +0 -0
  192. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/loss.py +0 -0
  193. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/math_.py +0 -0
  194. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/matmul.py +0 -0
  195. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/module.py +0 -0
  196. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/normalization.py +0 -0
  197. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/parameter.py +0 -0
  198. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/parametrizations.py +0 -0
  199. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/parametrize.py +0 -0
  200. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/piecewise_linear.py +0 -0
  201. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/rand.py +0 -0
  202. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/rec.py +0 -0
  203. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/reduce.py +0 -0
  204. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/run_ctx.py +0 -0
  205. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/signal.py +0 -0
  206. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/state.py +0 -0
  207. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/stepwise_scheduler.py +0 -0
  208. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/tensor_array.py +0 -0
  209. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/frontend/types.py +0 -0
  210. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/import_/__init__.py +0 -0
  211. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/import_/common.py +0 -0
  212. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/import_/git.py +0 -0
  213. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/import_/import_.py +0 -0
  214. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/learning_rate_control.py +0 -0
  215. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/log.py +0 -0
  216. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/native_op.cpp +0 -0
  217. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/native_op.py +0 -0
  218. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/pretrain.py +0 -0
  219. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/sprint/__init__.py +0 -0
  220. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/sprint/cache.py +0 -0
  221. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/sprint/control.py +0 -0
  222. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/sprint/error_signals.py +0 -0
  223. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/sprint/extern_interface.py +0 -0
  224. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/sprint/interface.py +0 -0
  225. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/README.md +0 -0
  226. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/__init__.py +0 -0
  227. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/_dim_extra.py +0 -0
  228. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/_tensor_extra.py +0 -0
  229. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/_tensor_mixin_base.py +0 -0
  230. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/_tensor_op_overloads.py +0 -0
  231. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/control_flow_ctx.py +0 -0
  232. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/dim.py +0 -0
  233. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/marked_dim.py +0 -0
  234. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/tensor.py +0 -0
  235. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/tensor_dict.py +0 -0
  236. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tensor/utils.py +0 -0
  237. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/__init__.py +0 -0
  238. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/compat.py +0 -0
  239. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/data_pipeline.py +0 -0
  240. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/distributed.py +0 -0
  241. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/engine.py +0 -0
  242. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/README.md +0 -0
  243. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/__init__.py +0 -0
  244. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/_backend.py +0 -0
  245. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/_utils.py +0 -0
  246. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/cond.py +0 -0
  247. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  248. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  249. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/dims.py +0 -0
  250. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/layer.py +0 -0
  251. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/loop.py +0 -0
  252. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/make_layer.py +0 -0
  253. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  254. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  255. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  256. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_low_level/__init__.py +0 -0
  257. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/frontend_low_level/_backend.py +0 -0
  258. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/horovod.py +0 -0
  259. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/hyper_param_tuning.py +0 -0
  260. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/layers/__init__.py +0 -0
  261. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/layers/base.py +0 -0
  262. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/layers/basic.py +0 -0
  263. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/layers/rec.py +0 -0
  264. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/layers/segmental_model.py +0 -0
  265. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/layers/signal_processing.py +0 -0
  266. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/layers/variable.py +0 -0
  267. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/native_op.py +0 -0
  268. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/network.py +0 -0
  269. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/sprint.py +0 -0
  270. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/updater.py +0 -0
  271. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/util/__init__.py +0 -0
  272. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/util/basic.py +0 -0
  273. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/util/data.py +0 -0
  274. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/util/gradient_checkpoint.py +0 -0
  275. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/util/ken_lm.py +0 -0
  276. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/tf/util/open_fst.py +0 -0
  277. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/README.md +0 -0
  278. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/__init__.py +0 -0
  279. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/data/__init__.py +0 -0
  280. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/data/extern_data.py +0 -0
  281. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/data/pipeline.py +0 -0
  282. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/data/queued_data_iter.py +0 -0
  283. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  284. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/data/tensor_utils.py +0 -0
  285. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/distributed.py +0 -0
  286. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/frontend/__init__.py +0 -0
  287. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/frontend/_backend.py +0 -0
  288. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/frontend/_rand.py +0 -0
  289. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/frontend/bridge.py +0 -0
  290. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/frontend/raw_ops.py +0 -0
  291. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/updater.py +0 -0
  292. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/util/README.md +0 -0
  293. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/util/__init__.py +0 -0
  294. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/util/array_.py +0 -0
  295. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/util/diagnose_gpu.py +0 -0
  296. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/util/gradient_checkpoint.py +0 -0
  297. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/torch/util/scaled_gradient.py +0 -0
  298. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/__init__.py +0 -0
  299. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/basic.py +0 -0
  300. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/better_exchook.py +0 -0
  301. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/bpe.py +0 -0
  302. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/debug.py +0 -0
  303. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/debug_helpers.py +0 -0
  304. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/file_cache.py +0 -0
  305. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/fsa.py +0 -0
  306. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/literal_py_to_pickle.py +0 -0
  307. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/math.py +0 -0
  308. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
  309. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/native_code_compiler.py +0 -0
  310. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/pprint.py +0 -0
  311. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/py-to-pickle.cpp +0 -0
  312. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/py_compat.py +0 -0
  313. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/py_ext_mod_compiler.py +0 -0
  314. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/result_with_reason.py +0 -0
  315. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/sig_proc.py +0 -0
  316. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/task_system.py +0 -0
  317. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/train_proc_manager.py +0 -0
  318. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn/util/watch_memory.py +0 -0
  319. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn.egg-info/SOURCES.txt +0 -0
  320. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn.egg-info/dependency_links.txt +0 -0
  321. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/returnn.egg-info/top_level.txt +0 -0
  322. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/rnn.py +0 -0
  323. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/setup.cfg +0 -0
  324. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/setup.py +0 -0
  325. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/DummySprintExec.py +0 -0
  326. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm-inspection-profile.xml +0 -0
  327. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm.idea/.gitignore +0 -0
  328. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm.idea/.name +0 -0
  329. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  330. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  331. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  332. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  333. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  334. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm.idea/misc.xml +0 -0
  335. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm.idea/modules.xml +0 -0
  336. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm.idea/returnn.iml +0 -0
  337. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  338. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/_set_num_threads1.py +0 -0
  339. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/_setup_returnn_env.py +0 -0
  340. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/_setup_test_env.py +0 -0
  341. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/bpe-unicode-demo.codes +0 -0
  342. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/bpe-unicode-demo.vocab +0 -0
  343. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/lexicon_opt.fst +0 -0
  344. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/lexicon_opt.isyms +0 -0
  345. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/lexicon_opt.jpg +0 -0
  346. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/lexicon_opt.osyms +0 -0
  347. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/lint_common.py +0 -0
  348. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/pycharm-inspect.py +0 -0
  349. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/pylint.py +0 -0
  350. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/returnn-as-framework.py +0 -0
  351. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/rf_utils.py +0 -0
  352. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/spelling.dic +0 -0
  353. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_Config.py +0 -0
  354. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_Fsa.py +0 -0
  355. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_GeneratingDataset.py +0 -0
  356. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_HDFDataset.py +0 -0
  357. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_LearningRateControl.py +0 -0
  358. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_Log.py +0 -0
  359. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_MultiProcDataset.py +0 -0
  360. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_Pretrain.py +0 -0
  361. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_ResNet.py +0 -0
  362. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_SprintDataset.py +0 -0
  363. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_SprintInterface.py +0 -0
  364. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_TFEngine.py +0 -0
  365. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_TFNativeOp.py +0 -0
  366. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_TFNetworkLayer.py +0 -0
  367. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_TFNetworkRecLayer.py +0 -0
  368. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_TFNetworkSigProcLayer.py +0 -0
  369. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_TFUpdater.py +0 -0
  370. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_TFUtil.py +0 -0
  371. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_TF_determinism.py +0 -0
  372. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_TaskSystem.py +0 -0
  373. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_TaskSystem_SharedMem.py +0 -0
  374. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_TranslationDataset.py +0 -0
  375. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_Util.py +0 -0
  376. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_demos.py +0 -0
  377. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_fork_exec.py +0 -0
  378. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_hdf_dump.py +0 -0
  379. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_array.py +0 -0
  380. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_attention.py +0 -0
  381. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_base.py +0 -0
  382. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_cond.py +0 -0
  383. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_const.py +0 -0
  384. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_container.py +0 -0
  385. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_conv.py +0 -0
  386. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_encoder_conformer.py +0 -0
  387. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_gradient.py +0 -0
  388. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_label_smoothing.py +0 -0
  389. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_loop.py +0 -0
  390. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_math.py +0 -0
  391. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_normalization.py +0 -0
  392. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_piecewise_linear.py +0 -0
  393. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_rec.py +0 -0
  394. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_reduce.py +0 -0
  395. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_rf_signal.py +0 -0
  396. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_tensor.py +0 -0
  397. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_tools.py +0 -0
  398. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_torch_dataset.py +0 -0
  399. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_torch_engine.py +0 -0
  400. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_torch_frontend.py +0 -0
  401. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_torch_internal_frontend.py +0 -0
  402. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/test_torch_util.py +0 -0
  403. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tests/torch_utils.py +0 -0
  404. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/_setup_returnn_env.py +0 -0
  405. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/analyze-dataset-batches.py +0 -0
  406. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/bliss-collect-seq-lens.py +0 -0
  407. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/bliss-dump-text.py +0 -0
  408. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/bliss-get-segment-names.py +0 -0
  409. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/bliss-to-ogg-zip.py +0 -0
  410. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/bpe-create-lexicon.py +0 -0
  411. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/calculate-word-error-rate.py +0 -0
  412. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/cleanup-old-models.py +0 -0
  413. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/collect-orth-symbols.py +0 -0
  414. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/collect-words.py +0 -0
  415. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/compile_native_op.py +0 -0
  416. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/compile_tf_graph.py +0 -0
  417. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/debug-dump-search-scores.py +0 -0
  418. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/debug-plot-search-scores.py +0 -0
  419. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/dump-dataset-raw-strings.py +0 -0
  420. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/dump-dataset.py +0 -0
  421. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/dump-forward-stats.py +0 -0
  422. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/dump-forward.py +0 -0
  423. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/dump-network-json.py +0 -0
  424. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/dump-pickle.py +0 -0
  425. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/extract_state_tying_from_dataset.py +0 -0
  426. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/get-attention-weights.py +0 -0
  427. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/get-best-model-epoch.py +0 -0
  428. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/hdf_dump.py +0 -0
  429. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/hdf_dump_translation_dataset.py +0 -0
  430. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/import-blocks-mt-model.py +0 -0
  431. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/import-t2t-mt-model.py +0 -0
  432. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/.gitignore +0 -0
  433. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/Makefile +0 -0
  434. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/README.md +0 -0
  435. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/example/README.md +0 -0
  436. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/example/libs_list +0 -0
  437. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  438. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
  439. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  440. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/example/state_vars_list +0 -0
  441. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  442. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/file.h +0 -0
  443. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  444. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  445. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/main.cc +0 -0
  446. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/rescorer.h +0 -0
  447. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/vocabulary.cc +0 -0
  448. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/lattice_rescorer/vocabulary.h +0 -0
  449. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/tf_avg_checkpoints.py +0 -0
  450. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/tf_inspect_checkpoint.py +0 -0
  451. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/tf_inspect_summary_log.py +0 -0
  452. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/torch_avg_checkpoints.py +0 -0
  453. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/torch_export_to_onnx.py +0 -0
  454. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/tools/torch_inspect_checkpoint.py +0 -0
  455. {returnn-1.20240723.121602 → returnn-1.20240723.153926}/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.20240723.121602
3
+ Version: 1.20240723.153926
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.20240723.153926'
2
+ long_version = '1.20240723.153926+git.7118c54'
@@ -23,6 +23,7 @@ from returnn.log import log
23
23
 
24
24
  from .basic import DatasetSeq
25
25
  from .cached2 import CachedDataset2
26
+ from .util.vocabulary import Vocabulary
26
27
 
27
28
 
28
29
  class LmDataset(CachedDataset2):
@@ -37,6 +38,7 @@ class LmDataset(CachedDataset2):
37
38
  self,
38
39
  corpus_file,
39
40
  skip_empty_lines=True,
41
+ orth_vocab=None,
40
42
  orth_symbols_file=None,
41
43
  orth_symbols_map_file=None,
42
44
  orth_replace_map_file=None,
@@ -76,6 +78,7 @@ class LmDataset(CachedDataset2):
76
78
 
77
79
  :param str|()->str|list[str]|()->list[str] corpus_file: Bliss XML or line-based txt. optionally can be gzip.
78
80
  :param bool skip_empty_lines: for line-based txt
81
+ :param dict[str,typing.Any]|Vocabulary orth_vocab:
79
82
  :param str|()->str|None orth_symbols_file: a text file containing a list of orthography symbols
80
83
  :param str|()->str|None orth_symbols_map_file: either a list of orth symbols, each line: "<symbol> <index>",
81
84
  a python dict with {"<symbol>": <index>, ...}
@@ -87,7 +90,7 @@ class LmDataset(CachedDataset2):
87
90
  :param str|None seq_end_symbol: what to add at the end, if given.
88
91
  will be set as postfix=[seq_end_symbol] or postfix=[] for parse_orth_opts.
89
92
  :param str|None unknown_symbol: token to represent unknown words.
90
- :param dict[str]|None parse_orth_opts: kwargs for parse_orthography().
93
+ :param dict[str,typing.Any]|None parse_orth_opts: kwargs for parse_orthography().
91
94
  :param dict|None phone_info: A dict containing parameters including a lexicon file for
92
95
  :class:`LmDataset.PhoneSeqGenerator`.
93
96
  :param int add_random_phone_seqs: will add random seqs with the same len as the real seq as additional data.
@@ -102,6 +105,13 @@ class LmDataset(CachedDataset2):
102
105
  """
103
106
  super(LmDataset, self).__init__(**kwargs)
104
107
 
108
+ self._corpus_file = corpus_file
109
+ self._skip_empty_lines = skip_empty_lines
110
+ self._orth_symbols_file = orth_symbols_file
111
+ self._orth_symbols_map_file = orth_symbols_map_file
112
+ self._orth_replace_map_file = orth_replace_map_file
113
+ self._phone_info = phone_info
114
+
105
115
  if callable(corpus_file):
106
116
  corpus_file = corpus_file()
107
117
  if callable(orth_symbols_file):
@@ -117,30 +127,31 @@ class LmDataset(CachedDataset2):
117
127
  self.word_end_symbol = word_end_symbol
118
128
  self.seq_end_symbol = seq_end_symbol
119
129
  self.unknown_symbol = unknown_symbol
120
- self.parse_orth_opts = parse_orth_opts or {}
121
- self.parse_orth_opts.setdefault("word_based", self.word_based)
122
- if self.word_end_symbol and not self.word_based: # Character-based modeling and word_end_symbol is specified.
123
- # In this case, sentences end with self.word_end_symbol followed by the self.seq_end_symbol.
124
- self.parse_orth_opts.setdefault(
125
- "postfix",
126
- (
127
- [self.word_end_symbol, self.seq_end_symbol]
128
- if self.seq_end_symbol is not None
129
- else [self.word_end_symbol]
130
- ),
131
- )
132
- else:
133
- self.parse_orth_opts.setdefault("postfix", [self.seq_end_symbol] if self.seq_end_symbol is not None else [])
134
130
 
135
- if orth_symbols_file:
131
+ self.orth_vocab = None
132
+ self.orth_symbols = None
133
+ self.orth_symbols_map = None
134
+ self.seq_gen = None
135
+ if orth_vocab:
136
+ assert not orth_symbols_file, "LmDataset: either orth_vocab or orth_symbols_file"
137
+ assert not phone_info, "LmDataset: either orth_vocab or phone_info"
138
+ assert not orth_symbols_map_file, "LmDataset: either orth_vocab or orth_symbols_map_file"
139
+ assert not auto_replace_unknown_symbol, "LmDataset: auto_replace_unknown_symbol is controlled via the vocab"
140
+ if isinstance(orth_vocab, dict):
141
+ self.orth_vocab = Vocabulary.create_vocab(**orth_vocab)
142
+ elif isinstance(orth_vocab, Vocabulary):
143
+ self.orth_vocab = orth_vocab
144
+ else:
145
+ raise TypeError(f"LmDataset: unexpected orth_vocab type {type(orth_vocab)}")
146
+ self.labels["data"] = self.orth_vocab.labels
147
+ elif orth_symbols_file:
136
148
  assert not phone_info
137
149
  assert not orth_symbols_map_file
138
150
  orth_symbols = open(orth_symbols_file).read().splitlines()
139
151
  self.orth_symbols_map = {sym: i for (i, sym) in enumerate(orth_symbols)}
140
152
  self.orth_symbols = orth_symbols
141
153
  self.labels["data"] = orth_symbols
142
- self.seq_gen = None
143
- if orth_symbols_map_file and orth_symbols_map_file.endswith(".pkl"):
154
+ elif orth_symbols_map_file and orth_symbols_map_file.endswith(".pkl"):
144
155
  import pickle
145
156
 
146
157
  with open(orth_symbols_map_file, "rb") as f:
@@ -148,7 +159,6 @@ class LmDataset(CachedDataset2):
148
159
  self.orth_symbols = self.orth_symbols_map.keys()
149
160
  reverse_map = {i: sym for (sym, i) in sorted(self.orth_symbols_map.items())}
150
161
  self.labels["data"] = [sym for (i, sym) in sorted(reverse_map.items())]
151
- self.seq_gen = None
152
162
  elif orth_symbols_map_file:
153
163
  assert not phone_info
154
164
  with open(orth_symbols_map_file, "r") as f:
@@ -169,30 +179,57 @@ class LmDataset(CachedDataset2):
169
179
  self.orth_symbols = [sym for (i, sym) in orth_symbols_imap_list]
170
180
  reverse_map = {i: sym for (i, sym) in orth_symbols_imap_list}
171
181
  self.labels["data"] = [sym for (i, sym) in sorted(reverse_map.items())]
172
- self.seq_gen = None
173
- else:
182
+ elif phone_info is not None:
174
183
  assert not orth_symbols_file
175
184
  assert isinstance(phone_info, dict)
176
185
  self.seq_gen = PhoneSeqGenerator(**phone_info)
177
- self.orth_symbols = None
178
186
  self.labels["data"] = self.seq_gen.get_class_labels()
179
- if orth_replace_map_file:
180
- orth_replace_map = load_json(filename=orth_replace_map_file)
181
- assert isinstance(orth_replace_map, dict)
182
- self.orth_replace_map = {
183
- key: parse_orthography_into_symbols(v, word_based=self.word_based)
184
- for (key, v) in orth_replace_map.items()
185
- }
186
- if self.orth_replace_map:
187
- if len(self.orth_replace_map) <= 5:
188
- print(" orth_replace_map: %r" % self.orth_replace_map, file=log.v5)
189
- else:
190
- print(" orth_replace_map: %i entries" % len(self.orth_replace_map), file=log.v5)
191
187
  else:
192
- self.orth_replace_map = {}
188
+ raise ValueError("LmDataset: need orth_symbols_file or orth_symbols_map_file or phone_info")
189
+
190
+ self.parse_orth_opts = None
191
+ if self.orth_symbols is not None:
192
+ self.parse_orth_opts = parse_orth_opts.copy() if parse_orth_opts else {}
193
+ self.parse_orth_opts.setdefault("word_based", self.word_based)
194
+ if self.word_end_symbol and not self.word_based:
195
+ # Character-based modeling and word_end_symbol is specified.
196
+ # In this case, sentences end with self.word_end_symbol followed by the self.seq_end_symbol.
197
+ self.parse_orth_opts.setdefault(
198
+ "postfix",
199
+ (
200
+ [self.word_end_symbol, self.seq_end_symbol]
201
+ if self.seq_end_symbol is not None
202
+ else [self.word_end_symbol]
203
+ ),
204
+ )
205
+ else:
206
+ self.parse_orth_opts.setdefault(
207
+ "postfix", [self.seq_end_symbol] if self.seq_end_symbol is not None else []
208
+ )
209
+ else:
210
+ assert not parse_orth_opts
211
+
212
+ self.orth_replace_map = None
213
+ if self.orth_symbols is not None:
214
+ if orth_replace_map_file:
215
+ orth_replace_map = load_json(filename=orth_replace_map_file)
216
+ assert isinstance(orth_replace_map, dict)
217
+ self.orth_replace_map = {
218
+ key: parse_orthography_into_symbols(v, word_based=self.word_based)
219
+ for (key, v) in orth_replace_map.items()
220
+ }
221
+ if self.orth_replace_map:
222
+ if len(self.orth_replace_map) <= 5:
223
+ print(" orth_replace_map: %r" % self.orth_replace_map, file=log.v5)
224
+ else:
225
+ print(" orth_replace_map: %i entries" % len(self.orth_replace_map), file=log.v5)
226
+ else:
227
+ self.orth_replace_map = {}
193
228
 
194
- if word_end_symbol and not word_based: # Character-based modeling and word_end_symbol is specified.
195
- self.orth_replace_map[" "] = [word_end_symbol] # Replace all spaces by word_end_symbol.
229
+ if word_end_symbol and not word_based: # Character-based modeling and word_end_symbol is specified.
230
+ self.orth_replace_map[" "] = [word_end_symbol] # Replace all spaces by word_end_symbol.
231
+ else:
232
+ assert not orth_replace_map_file
196
233
 
197
234
  num_labels = len(self.labels["data"])
198
235
  if num_labels <= 2**7:
@@ -346,23 +383,10 @@ class LmDataset(CachedDataset2):
346
383
  if orth == "</s>":
347
384
  continue # special sentence end symbol. empty seq, ignore.
348
385
 
349
- if self.seq_gen:
350
- try:
351
- phones = self.seq_gen.generate_seq(orth)
352
- except KeyError as e:
353
- if self.log_skipped_seqs:
354
- print(
355
- "LmDataset: skipping sequence %r because of missing lexicon entry: %s" % (orth, e),
356
- file=log.v4,
357
- )
358
- self._reduce_log_skipped_seqs()
359
- if self.error_on_invalid_seq:
360
- raise Exception("LmDataset: invalid seq %r, missing lexicon entry %r" % (orth, e))
361
- self.num_skipped += 1
362
- continue # try another seq
363
- data = self.seq_gen.seq_to_class_idxs(phones, dtype=self.dtype)
386
+ if self.orth_vocab is not None:
387
+ data = numpy.array(self.orth_vocab.get_seq(orth), dtype=self.dtype)
364
388
 
365
- elif self.orth_symbols:
389
+ elif self.orth_symbols is not None:
366
390
  orth_syms = parse_orthography(orth, **self.parse_orth_opts)
367
391
  while True:
368
392
  orth_syms = sum([self.orth_replace_map.get(s, [s]) for s in orth_syms], [])
@@ -416,8 +440,24 @@ class LmDataset(CachedDataset2):
416
440
  self.num_skipped += 1
417
441
  continue # try another seq
418
442
 
443
+ elif self.seq_gen is not None:
444
+ try:
445
+ phones = self.seq_gen.generate_seq(orth)
446
+ except KeyError as e:
447
+ if self.log_skipped_seqs:
448
+ print(
449
+ "LmDataset: skipping sequence %r because of missing lexicon entry: %s" % (orth, e),
450
+ file=log.v4,
451
+ )
452
+ self._reduce_log_skipped_seqs()
453
+ if self.error_on_invalid_seq:
454
+ raise Exception("LmDataset: invalid seq %r, missing lexicon entry %r" % (orth, e))
455
+ self.num_skipped += 1
456
+ continue # try another seq
457
+ data = self.seq_gen.seq_to_class_idxs(phones, dtype=self.dtype)
458
+
419
459
  else:
420
- assert False
460
+ assert False, f"{self}, {self.orth_vocab}, {self.orth_symbols}, {self.seq_gen}"
421
461
 
422
462
  targets = {}
423
463
  for i in range(self.add_random_phone_seqs):
@@ -185,9 +185,9 @@ class Engine(EngineBase):
185
185
  for dataset_name, dataset_opts in config.typed_value("eval_datasets", {}).items():
186
186
  self.eval_datasets[dataset_name] = init_dataset(dataset_opts, default_kwargs={"name": dataset_name})
187
187
 
188
- self._train_dataloader = self._create_data_loader(train_data) if train_data else None
188
+ self._train_dataloader = self._create_data_loader(train_data, train=True) if train_data else None
189
189
  for dataset_name, dataset in self.eval_datasets.items():
190
- self._eval_dataloaders[dataset_name] = self._create_data_loader(dataset)
190
+ self._eval_dataloaders[dataset_name] = self._create_data_loader(dataset, train=False)
191
191
 
192
192
  self._start_epoch = self.get_train_start_epoch(self.config)
193
193
  self._final_epoch = self.config_get_final_epoch(self.config)
@@ -588,7 +588,7 @@ class Engine(EngineBase):
588
588
  assert isinstance(ls[0], self.learning_rate_control.EpochData)
589
589
  self.learning_rate_control.epoch_data[self.epoch] = ls[0]
590
590
 
591
- def _create_data_loader(self, dataset: Dataset) -> DataLoader:
591
+ def _create_data_loader(self, dataset: Dataset, *, train: bool = False) -> DataLoader:
592
592
  """
593
593
  :param dataset: RETURNN dataset
594
594
  :return: PyTorch data loader created from given RETURNN dataset
@@ -611,8 +611,9 @@ class Engine(EngineBase):
611
611
  wrapped_dataset, chunking, min_chunk_size=min_chunk_size
612
612
  )
613
613
 
614
- assert self.config.typed_value("batch_size") is not None, "batch_size not defined in config"
615
- batch_size = self.config.typed_value("batch_size", 1)
614
+ batch_size = self.config.typed_value("batch_size", -1)
615
+ batch_size = self.config.typed_value(f"batch_size_{'train' if train else 'dev'}", batch_size)
616
+ assert batch_size != -1, f"batch_size or batch_size_{'train' if train else 'dev'} not defined in config"
616
617
  max_seqs = self.config.int("max_seqs", -1)
617
618
  batches_dataset = data_pipeline.BatchingIterDataPipe(wrapped_dataset, batch_size=batch_size, max_seqs=max_seqs)
618
619
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20240723.121602
3
+ Version: 1.20240723.153926
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
@@ -584,6 +584,158 @@ def test_OggZipDataset():
584
584
  assert classes_ == _demo_txt + "."
585
585
 
586
586
 
587
+ def test_LmDataset_char_based():
588
+ from returnn.datasets.lm import LmDataset
589
+
590
+ with tempfile.NamedTemporaryFile("wt", suffix=".txt") as txt_file, tempfile.NamedTemporaryFile(
591
+ "wt", suffix=".syms"
592
+ ) as orth_syms_file:
593
+ txt_file.write("Hello world\n")
594
+ txt_file.write("Next line\n")
595
+ txt_file.flush()
596
+ orth_syms_file.write("[END]\n")
597
+ covered = set()
598
+ for c in open(txt_file.name, "r").read():
599
+ if c not in covered and c != "\n":
600
+ orth_syms_file.write(c + "\n")
601
+ covered.add(c)
602
+ orth_syms_file.flush()
603
+
604
+ dataset = init_dataset(
605
+ {
606
+ "class": "LmDataset",
607
+ "corpus_file": txt_file.name,
608
+ "orth_symbols_file": orth_syms_file.name,
609
+ }
610
+ )
611
+ assert isinstance(dataset, LmDataset)
612
+ dataset.init_seq_order(epoch=1)
613
+ dataset.load_seqs(0, 2)
614
+ orth = dataset.get_data(0, "data")
615
+ assert orth.tolist() == [1, 2, 3, 3, 4, 5, 6, 4, 7, 3, 8, 0]
616
+ orth = dataset.get_data(1, "data")
617
+ assert orth.tolist() == [9, 2, 10, 11, 5, 3, 12, 13, 2, 0]
618
+ assert not dataset.is_less_than_num_seqs(2)
619
+
620
+
621
+ def test_LmDataset_word_based():
622
+ from returnn.datasets.lm import LmDataset
623
+
624
+ with tempfile.NamedTemporaryFile("wt", suffix=".txt") as txt_file, tempfile.NamedTemporaryFile(
625
+ "wt", suffix=".syms"
626
+ ) as orth_syms_file:
627
+ txt_file.write("Hello world\n")
628
+ txt_file.write("Next line\n")
629
+ txt_file.flush()
630
+ orth_syms_file.write("[END]\n")
631
+ orth_syms_file.write("Hello\n")
632
+ orth_syms_file.write("world\n")
633
+ orth_syms_file.write("Next\n")
634
+ orth_syms_file.write("line\n")
635
+ orth_syms_file.flush()
636
+
637
+ dataset = init_dataset(
638
+ {
639
+ "class": "LmDataset",
640
+ "corpus_file": txt_file.name,
641
+ "word_based": True,
642
+ "orth_symbols_file": orth_syms_file.name,
643
+ }
644
+ )
645
+ assert isinstance(dataset, LmDataset)
646
+ dataset.init_seq_order(epoch=1)
647
+ dataset.load_seqs(0, 2)
648
+ orth = dataset.get_data(0, "data")
649
+ assert orth.tolist() == [1, 2, 0]
650
+ orth = dataset.get_data(1, "data")
651
+ assert orth.tolist() == [3, 4, 0]
652
+ assert not dataset.is_less_than_num_seqs(2)
653
+
654
+
655
+ def test_LmDataset_vocab_based():
656
+ from returnn.datasets.lm import LmDataset
657
+
658
+ with tempfile.NamedTemporaryFile("wt", suffix=".txt") as txt_file, tempfile.NamedTemporaryFile(
659
+ "wt", suffix=".syms"
660
+ ) as orth_syms_file:
661
+ txt_file.write("Hello world\n")
662
+ txt_file.write("Next line\n")
663
+ txt_file.flush()
664
+ orth_syms_file.write(
665
+ repr(
666
+ {
667
+ "[END]": 0,
668
+ "Hello": 1,
669
+ "world": 2,
670
+ "Next": 3,
671
+ "line": 4,
672
+ }
673
+ )
674
+ )
675
+ orth_syms_file.write("\n")
676
+ orth_syms_file.flush()
677
+
678
+ dataset = init_dataset(
679
+ {
680
+ "class": "LmDataset",
681
+ "corpus_file": txt_file.name,
682
+ "orth_vocab": {
683
+ "class": "SamplingBytePairEncoding", # just as an example
684
+ "vocab_file": orth_syms_file.name,
685
+ "breadth_prob": 0.0,
686
+ "unknown_label": None,
687
+ },
688
+ }
689
+ )
690
+ assert isinstance(dataset, LmDataset)
691
+ dataset.init_seq_order(epoch=1)
692
+ dataset.load_seqs(0, 2)
693
+ orth = dataset.get_data(0, "data")
694
+ assert orth.tolist() == [1, 2]
695
+ orth = dataset.get_data(1, "data")
696
+ assert orth.tolist() == [3, 4]
697
+ assert not dataset.is_less_than_num_seqs(2)
698
+
699
+
700
+ def test_LmDataset_pickle():
701
+ import pickle
702
+ from returnn.datasets.lm import LmDataset
703
+
704
+ with tempfile.NamedTemporaryFile("wt", suffix=".txt") as txt_file, tempfile.NamedTemporaryFile(
705
+ "wt", suffix=".syms"
706
+ ) as orth_syms_file:
707
+ txt_file.write("Hello world\n")
708
+ txt_file.write("Next line\n")
709
+ txt_file.flush()
710
+ orth_syms_file.write(repr({"[END]": 0, "Hello": 1, "world": 2, "Next": 3, "line": 4}))
711
+ orth_syms_file.write("\n")
712
+ orth_syms_file.flush()
713
+
714
+ dataset = init_dataset(
715
+ {
716
+ "class": "LmDataset",
717
+ "corpus_file": txt_file.name,
718
+ "orth_vocab": {
719
+ "vocab_file": orth_syms_file.name,
720
+ "unknown_label": None,
721
+ },
722
+ }
723
+ )
724
+ assert isinstance(dataset, LmDataset)
725
+
726
+ s = pickle.dumps(dataset)
727
+ dataset = pickle.loads(s)
728
+ assert isinstance(dataset, LmDataset)
729
+
730
+ dataset.init_seq_order(epoch=1)
731
+ dataset.load_seqs(0, 2)
732
+ orth = dataset.get_data(0, "data")
733
+ assert orth.tolist() == [1, 2]
734
+ orth = dataset.get_data(1, "data")
735
+ assert orth.tolist() == [3, 4]
736
+ assert not dataset.is_less_than_num_seqs(2)
737
+
738
+
587
739
  def test_MetaDataset():
588
740
  _demo_txt = "some utterance text"
589
741
 
@@ -1,2 +0,0 @@
1
- version = '1.20240723.121602'
2
- long_version = '1.20240723.121602+git.81497f4'