returnn 1.20240723.142327__tar.gz → 1.20240723.155747__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.142327 → returnn-1.20240723.155747}/PKG-INFO +1 -1
  2. returnn-1.20240723.155747/_setup_info_generated.py +2 -0
  3. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/audio.py +1 -1
  4. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/lm.py +102 -55
  5. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn.egg-info/PKG-INFO +1 -1
  6. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_Dataset.py +152 -0
  7. returnn-1.20240723.142327/_setup_info_generated.py +0 -2
  8. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/.editorconfig +0 -0
  9. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/.gitignore +0 -0
  10. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/.gitmodules +0 -0
  11. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/.kateconfig +0 -0
  12. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/CHANGELOG.md +0 -0
  13. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/CODEOWNERS +0 -0
  14. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/CONTRIBUTING.md +0 -0
  15. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/LICENSE +0 -0
  16. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/MANIFEST.in +0 -0
  17. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/README.rst +0 -0
  18. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/__init__.py +0 -0
  19. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/12AX.cluster_map +0 -0
  20. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/_setup_returnn_env.py +0 -0
  21. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-fwd.config +0 -0
  22. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-horovod-mpi.py +0 -0
  23. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-horovod-mpi.py.sh +0 -0
  24. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-horovod-mpi.sh +0 -0
  25. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-hyper-param-tuning.config +0 -0
  26. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-iter-dataset.py +0 -0
  27. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-list-devices.py +0 -0
  28. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-lua-torch-layer.config +0 -0
  29. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-pretrain.config +0 -0
  30. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-record-and-push-to-webserver.py +0 -0
  31. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-returnn-as-framework.py +0 -0
  32. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-rf-pt-benchmark.py +0 -0
  33. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-rf.config +0 -0
  34. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-rhn-enwik8.config +0 -0
  35. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-sprint-interface.py +0 -0
  36. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-att-copy.config +0 -0
  37. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-attention.config +0 -0
  38. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  39. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  40. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-enc-dec.config +0 -0
  41. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-hard-att-copy.config +0 -0
  42. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-lstm-benchmark.py +0 -0
  43. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  44. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  45. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-native-lstm.12ax.config +0 -0
  46. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  47. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  48. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  49. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  50. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  51. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-rec-self-att.config +0 -0
  52. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-search-compiled-graph.py +0 -0
  53. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  54. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-timit-lstm-ctc.config +0 -0
  55. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-torch.config +0 -0
  56. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  57. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/demo.sh +0 -0
  58. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  59. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  60. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  61. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/README.txt +0 -0
  62. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/chars.txt +0 -0
  63. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/config_demo +0 -0
  64. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/config_fwd +0 -0
  65. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/config_real +0 -0
  66. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  67. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/decode.py +0 -0
  68. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  69. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/go.sh +0 -0
  70. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/lines.txt +0 -0
  71. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/split/eval.txt +0 -0
  72. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/split/train.txt +0 -0
  73. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/IAM/split/valid.txt +0 -0
  74. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/README.md +0 -0
  75. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  76. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/artificial/forwardconfig +0 -0
  77. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/artificial/go.sh +0 -0
  78. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/artificial/trainconfig +0 -0
  79. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  80. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  81. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  82. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  83. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/pyproject.toml +0 -0
  84. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/requirements.txt +0 -0
  85. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/__init__.py +0 -0
  86. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/__main__.py +0 -0
  87. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/__old_mod_loader__.py +0 -0
  88. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/__setup__.py +0 -0
  89. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/config.py +0 -0
  90. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/__init__.py +0 -0
  91. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/basic.py +0 -0
  92. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/bundle_file.py +0 -0
  93. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/cached.py +0 -0
  94. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/cached2.py +0 -0
  95. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/distrib_files.py +0 -0
  96. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/generating.py +0 -0
  97. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/hdf.py +0 -0
  98. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/map.py +0 -0
  99. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/meta.py +0 -0
  100. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/multi_proc.py +0 -0
  101. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/normalization_data.py +0 -0
  102. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/numpy_dump.py +0 -0
  103. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/raw_wav.py +0 -0
  104. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/sprint.py +0 -0
  105. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/stereo.py +0 -0
  106. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/util/__init__.py +0 -0
  107. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/util/feature_extraction.py +0 -0
  108. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/util/strings.py +0 -0
  109. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/datasets/util/vocabulary.py +0 -0
  110. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/engine/__init__.py +0 -0
  111. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/engine/base.py +0 -0
  112. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/engine/batch.py +0 -0
  113. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/__init__.py +0 -0
  114. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/__main__.py +0 -0
  115. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  116. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  117. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  118. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  119. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  120. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  121. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  122. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  123. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  124. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  125. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  126. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  127. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  128. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  129. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  130. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  131. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  132. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  133. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  134. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  135. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  136. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  137. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  138. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  139. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  140. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/__init__.py +0 -0
  141. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/graph_editor/README.md +0 -0
  142. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/graph_editor/__init__.py +0 -0
  143. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/graph_editor/edit.py +0 -0
  144. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/graph_editor/reroute.py +0 -0
  145. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/graph_editor/select.py +0 -0
  146. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/graph_editor/subgraph.py +0 -0
  147. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/graph_editor/transform.py +0 -0
  148. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/extern/graph_editor/util.py +0 -0
  149. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/forward_iface.py +0 -0
  150. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/__init__.py +0 -0
  151. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_backend.py +0 -0
  152. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_native/__init__.py +0 -0
  153. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_native/backend.cpp +0 -0
  154. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_native/backend.hpp +0 -0
  155. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_native/module.cpp +0 -0
  156. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_native/module.hpp +0 -0
  157. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_native/py_utils.hpp +0 -0
  158. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_native/tensor_ops.cpp +0 -0
  159. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_native/tensor_ops.hpp +0 -0
  160. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_numpy_backend.py +0 -0
  161. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_random_journal.py +0 -0
  162. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/_utils.py +0 -0
  163. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/array_.py +0 -0
  164. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/attention.py +0 -0
  165. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/audio/__init__.py +0 -0
  166. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/audio/mel.py +0 -0
  167. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/audio/specaugment.py +0 -0
  168. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/backend.py +0 -0
  169. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/build_from_dict.py +0 -0
  170. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/cond.py +0 -0
  171. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/const.py +0 -0
  172. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/container.py +0 -0
  173. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/control_flow_ctx.py +0 -0
  174. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/conv.py +0 -0
  175. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/decoder/__init__.py +0 -0
  176. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/decoder/transformer.py +0 -0
  177. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/device.py +0 -0
  178. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/dims.py +0 -0
  179. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/dropout.py +0 -0
  180. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/dtype.py +0 -0
  181. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/encoder/__init__.py +0 -0
  182. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/encoder/base.py +0 -0
  183. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/encoder/conformer.py +0 -0
  184. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/gradient.py +0 -0
  185. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/graph.py +0 -0
  186. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/hooks.py +0 -0
  187. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/init.py +0 -0
  188. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/label_smoothing.py +0 -0
  189. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/linear.py +0 -0
  190. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/loop.py +0 -0
  191. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/loss.py +0 -0
  192. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/math_.py +0 -0
  193. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/matmul.py +0 -0
  194. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/module.py +0 -0
  195. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/normalization.py +0 -0
  196. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/parameter.py +0 -0
  197. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/parametrizations.py +0 -0
  198. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/parametrize.py +0 -0
  199. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/piecewise_linear.py +0 -0
  200. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/rand.py +0 -0
  201. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/rec.py +0 -0
  202. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/reduce.py +0 -0
  203. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/run_ctx.py +0 -0
  204. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/signal.py +0 -0
  205. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/state.py +0 -0
  206. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/stepwise_scheduler.py +0 -0
  207. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/tensor_array.py +0 -0
  208. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/frontend/types.py +0 -0
  209. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/import_/__init__.py +0 -0
  210. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/import_/common.py +0 -0
  211. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/import_/git.py +0 -0
  212. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/import_/import_.py +0 -0
  213. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/learning_rate_control.py +0 -0
  214. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/log.py +0 -0
  215. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/native_op.cpp +0 -0
  216. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/native_op.py +0 -0
  217. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/pretrain.py +0 -0
  218. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/sprint/__init__.py +0 -0
  219. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/sprint/cache.py +0 -0
  220. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/sprint/control.py +0 -0
  221. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/sprint/error_signals.py +0 -0
  222. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/sprint/extern_interface.py +0 -0
  223. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/sprint/interface.py +0 -0
  224. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/README.md +0 -0
  225. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/__init__.py +0 -0
  226. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/_dim_extra.py +0 -0
  227. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/_tensor_extra.py +0 -0
  228. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/_tensor_mixin_base.py +0 -0
  229. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/_tensor_op_overloads.py +0 -0
  230. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/control_flow_ctx.py +0 -0
  231. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/dim.py +0 -0
  232. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/marked_dim.py +0 -0
  233. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/tensor.py +0 -0
  234. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/tensor_dict.py +0 -0
  235. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tensor/utils.py +0 -0
  236. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/__init__.py +0 -0
  237. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/compat.py +0 -0
  238. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/data_pipeline.py +0 -0
  239. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/distributed.py +0 -0
  240. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/engine.py +0 -0
  241. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/README.md +0 -0
  242. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/__init__.py +0 -0
  243. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/_backend.py +0 -0
  244. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/_utils.py +0 -0
  245. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/cond.py +0 -0
  246. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  247. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  248. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/dims.py +0 -0
  249. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/layer.py +0 -0
  250. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/loop.py +0 -0
  251. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/make_layer.py +0 -0
  252. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  253. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  254. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  255. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_low_level/__init__.py +0 -0
  256. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/frontend_low_level/_backend.py +0 -0
  257. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/horovod.py +0 -0
  258. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/hyper_param_tuning.py +0 -0
  259. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/layers/__init__.py +0 -0
  260. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/layers/base.py +0 -0
  261. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/layers/basic.py +0 -0
  262. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/layers/rec.py +0 -0
  263. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/layers/segmental_model.py +0 -0
  264. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/layers/signal_processing.py +0 -0
  265. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/layers/variable.py +0 -0
  266. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/native_op.py +0 -0
  267. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/network.py +0 -0
  268. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/sprint.py +0 -0
  269. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/updater.py +0 -0
  270. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/util/__init__.py +0 -0
  271. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/util/basic.py +0 -0
  272. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/util/data.py +0 -0
  273. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/util/gradient_checkpoint.py +0 -0
  274. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/util/ken_lm.py +0 -0
  275. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/tf/util/open_fst.py +0 -0
  276. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/README.md +0 -0
  277. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/__init__.py +0 -0
  278. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/data/__init__.py +0 -0
  279. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/data/extern_data.py +0 -0
  280. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/data/pipeline.py +0 -0
  281. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/data/queued_data_iter.py +0 -0
  282. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  283. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/data/tensor_utils.py +0 -0
  284. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/distributed.py +0 -0
  285. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/engine.py +0 -0
  286. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/frontend/__init__.py +0 -0
  287. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/frontend/_backend.py +0 -0
  288. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/frontend/_rand.py +0 -0
  289. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/frontend/bridge.py +0 -0
  290. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/frontend/raw_ops.py +0 -0
  291. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/updater.py +0 -0
  292. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/util/README.md +0 -0
  293. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/util/__init__.py +0 -0
  294. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/util/array_.py +0 -0
  295. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/util/diagnose_gpu.py +0 -0
  296. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/util/gradient_checkpoint.py +0 -0
  297. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/torch/util/scaled_gradient.py +0 -0
  298. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/__init__.py +0 -0
  299. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/basic.py +0 -0
  300. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/better_exchook.py +0 -0
  301. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/bpe.py +0 -0
  302. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/debug.py +0 -0
  303. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/debug_helpers.py +0 -0
  304. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/file_cache.py +0 -0
  305. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/fsa.py +0 -0
  306. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/literal_py_to_pickle.py +0 -0
  307. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/math.py +0 -0
  308. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
  309. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/native_code_compiler.py +0 -0
  310. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/pprint.py +0 -0
  311. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/py-to-pickle.cpp +0 -0
  312. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/py_compat.py +0 -0
  313. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/py_ext_mod_compiler.py +0 -0
  314. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/result_with_reason.py +0 -0
  315. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/sig_proc.py +0 -0
  316. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/task_system.py +0 -0
  317. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/train_proc_manager.py +0 -0
  318. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn/util/watch_memory.py +0 -0
  319. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn.egg-info/SOURCES.txt +0 -0
  320. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn.egg-info/dependency_links.txt +0 -0
  321. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/returnn.egg-info/top_level.txt +0 -0
  322. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/rnn.py +0 -0
  323. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/setup.cfg +0 -0
  324. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/setup.py +0 -0
  325. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/DummySprintExec.py +0 -0
  326. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm-inspection-profile.xml +0 -0
  327. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm.idea/.gitignore +0 -0
  328. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm.idea/.name +0 -0
  329. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  330. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  331. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  332. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  333. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  334. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm.idea/misc.xml +0 -0
  335. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm.idea/modules.xml +0 -0
  336. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm.idea/returnn.iml +0 -0
  337. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  338. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/_set_num_threads1.py +0 -0
  339. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/_setup_returnn_env.py +0 -0
  340. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/_setup_test_env.py +0 -0
  341. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/bpe-unicode-demo.codes +0 -0
  342. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/bpe-unicode-demo.vocab +0 -0
  343. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/lexicon_opt.fst +0 -0
  344. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/lexicon_opt.isyms +0 -0
  345. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/lexicon_opt.jpg +0 -0
  346. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/lexicon_opt.osyms +0 -0
  347. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/lint_common.py +0 -0
  348. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/pycharm-inspect.py +0 -0
  349. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/pylint.py +0 -0
  350. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/returnn-as-framework.py +0 -0
  351. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/rf_utils.py +0 -0
  352. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/spelling.dic +0 -0
  353. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_Config.py +0 -0
  354. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_Fsa.py +0 -0
  355. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_GeneratingDataset.py +0 -0
  356. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_HDFDataset.py +0 -0
  357. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_LearningRateControl.py +0 -0
  358. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_Log.py +0 -0
  359. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_MultiProcDataset.py +0 -0
  360. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_Pretrain.py +0 -0
  361. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_ResNet.py +0 -0
  362. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_SprintDataset.py +0 -0
  363. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_SprintInterface.py +0 -0
  364. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_TFEngine.py +0 -0
  365. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_TFNativeOp.py +0 -0
  366. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_TFNetworkLayer.py +0 -0
  367. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_TFNetworkRecLayer.py +0 -0
  368. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_TFNetworkSigProcLayer.py +0 -0
  369. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_TFUpdater.py +0 -0
  370. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_TFUtil.py +0 -0
  371. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_TF_determinism.py +0 -0
  372. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_TaskSystem.py +0 -0
  373. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_TaskSystem_SharedMem.py +0 -0
  374. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_TranslationDataset.py +0 -0
  375. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_Util.py +0 -0
  376. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_demos.py +0 -0
  377. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_fork_exec.py +0 -0
  378. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_hdf_dump.py +0 -0
  379. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_array.py +0 -0
  380. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_attention.py +0 -0
  381. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_base.py +0 -0
  382. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_cond.py +0 -0
  383. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_const.py +0 -0
  384. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_container.py +0 -0
  385. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_conv.py +0 -0
  386. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_encoder_conformer.py +0 -0
  387. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_gradient.py +0 -0
  388. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_label_smoothing.py +0 -0
  389. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_loop.py +0 -0
  390. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_math.py +0 -0
  391. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_normalization.py +0 -0
  392. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_piecewise_linear.py +0 -0
  393. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_rec.py +0 -0
  394. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_reduce.py +0 -0
  395. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_rf_signal.py +0 -0
  396. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_tensor.py +0 -0
  397. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_tools.py +0 -0
  398. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_torch_dataset.py +0 -0
  399. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_torch_engine.py +0 -0
  400. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_torch_frontend.py +0 -0
  401. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_torch_internal_frontend.py +0 -0
  402. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/test_torch_util.py +0 -0
  403. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tests/torch_utils.py +0 -0
  404. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/_setup_returnn_env.py +0 -0
  405. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/analyze-dataset-batches.py +0 -0
  406. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/bliss-collect-seq-lens.py +0 -0
  407. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/bliss-dump-text.py +0 -0
  408. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/bliss-get-segment-names.py +0 -0
  409. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/bliss-to-ogg-zip.py +0 -0
  410. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/bpe-create-lexicon.py +0 -0
  411. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/calculate-word-error-rate.py +0 -0
  412. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/cleanup-old-models.py +0 -0
  413. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/collect-orth-symbols.py +0 -0
  414. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/collect-words.py +0 -0
  415. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/compile_native_op.py +0 -0
  416. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/compile_tf_graph.py +0 -0
  417. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/debug-dump-search-scores.py +0 -0
  418. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/debug-plot-search-scores.py +0 -0
  419. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/dump-dataset-raw-strings.py +0 -0
  420. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/dump-dataset.py +0 -0
  421. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/dump-forward-stats.py +0 -0
  422. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/dump-forward.py +0 -0
  423. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/dump-network-json.py +0 -0
  424. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/dump-pickle.py +0 -0
  425. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/extract_state_tying_from_dataset.py +0 -0
  426. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/get-attention-weights.py +0 -0
  427. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/get-best-model-epoch.py +0 -0
  428. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/hdf_dump.py +0 -0
  429. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/hdf_dump_translation_dataset.py +0 -0
  430. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/import-blocks-mt-model.py +0 -0
  431. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/import-t2t-mt-model.py +0 -0
  432. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/.gitignore +0 -0
  433. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/Makefile +0 -0
  434. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/README.md +0 -0
  435. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/example/README.md +0 -0
  436. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/example/libs_list +0 -0
  437. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  438. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/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.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  440. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/example/state_vars_list +0 -0
  441. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  442. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/file.h +0 -0
  443. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  444. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  445. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/main.cc +0 -0
  446. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/rescorer.h +0 -0
  447. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/vocabulary.cc +0 -0
  448. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/lattice_rescorer/vocabulary.h +0 -0
  449. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/tf_avg_checkpoints.py +0 -0
  450. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/tf_inspect_checkpoint.py +0 -0
  451. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/tf_inspect_summary_log.py +0 -0
  452. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/torch_avg_checkpoints.py +0 -0
  453. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/torch_export_to_onnx.py +0 -0
  454. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/tools/torch_inspect_checkpoint.py +0 -0
  455. {returnn-1.20240723.142327 → returnn-1.20240723.155747}/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.142327
3
+ Version: 1.20240723.155747
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.155747'
2
+ long_version = '1.20240723.155747+git.4d772af'
@@ -62,7 +62,7 @@ class OggZipDataset(CachedDataset2):
62
62
  (e.g. :class:`BytePairEncoding`)
63
63
  :param str|list[str]|((str)->str)|None targets_post_process: :func:`get_post_processor_function`,
64
64
  applied on orth
65
- :param bool use_cache_manager: uses :func:`Util.cf`
65
+ :param bool use_cache_manager: uses :func:`returnn.util.basic.cf`
66
66
  :param str|None segment_file: .txt or .gz text file containing sequence tags that will be used as whitelist
67
67
  :param bool zip_audio_files_have_name_as_prefix:
68
68
  :param float|int|None fixed_random_subset:
@@ -17,12 +17,13 @@ import xml.etree.ElementTree as ElementTree
17
17
  import numpy
18
18
  from random import Random
19
19
 
20
- from returnn.util.basic import parse_orthography, parse_orthography_into_symbols, load_json, unicode
20
+ from returnn.util.basic import parse_orthography, parse_orthography_into_symbols, load_json, unicode, cf
21
21
  from returnn.util.literal_py_to_pickle import literal_eval
22
22
  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):
@@ -36,7 +37,9 @@ class LmDataset(CachedDataset2):
36
37
  def __init__(
37
38
  self,
38
39
  corpus_file,
40
+ use_cache_manager=False,
39
41
  skip_empty_lines=True,
42
+ orth_vocab=None,
40
43
  orth_symbols_file=None,
41
44
  orth_symbols_map_file=None,
42
45
  orth_replace_map_file=None,
@@ -75,7 +78,9 @@ class LmDataset(CachedDataset2):
75
78
  mapping from symbol to integer index (in case ``phone_info`` is not set).
76
79
 
77
80
  :param str|()->str|list[str]|()->list[str] corpus_file: Bliss XML or line-based txt. optionally can be gzip.
81
+ :param bool use_cache_manager: uses :func:`returnn.util.basic.cf`
78
82
  :param bool skip_empty_lines: for line-based txt
83
+ :param dict[str,typing.Any]|Vocabulary orth_vocab:
79
84
  :param str|()->str|None orth_symbols_file: a text file containing a list of orthography symbols
80
85
  :param str|()->str|None orth_symbols_map_file: either a list of orth symbols, each line: "<symbol> <index>",
81
86
  a python dict with {"<symbol>": <index>, ...}
@@ -87,7 +92,7 @@ class LmDataset(CachedDataset2):
87
92
  :param str|None seq_end_symbol: what to add at the end, if given.
88
93
  will be set as postfix=[seq_end_symbol] or postfix=[] for parse_orth_opts.
89
94
  :param str|None unknown_symbol: token to represent unknown words.
90
- :param dict[str]|None parse_orth_opts: kwargs for parse_orthography().
95
+ :param dict[str,typing.Any]|None parse_orth_opts: kwargs for parse_orthography().
91
96
  :param dict|None phone_info: A dict containing parameters including a lexicon file for
92
97
  :class:`LmDataset.PhoneSeqGenerator`.
93
98
  :param int add_random_phone_seqs: will add random seqs with the same len as the real seq as additional data.
@@ -102,6 +107,14 @@ class LmDataset(CachedDataset2):
102
107
  """
103
108
  super(LmDataset, self).__init__(**kwargs)
104
109
 
110
+ self._corpus_file = corpus_file
111
+ self._use_cache_manager = use_cache_manager
112
+ self._skip_empty_lines = skip_empty_lines
113
+ self._orth_symbols_file = orth_symbols_file
114
+ self._orth_symbols_map_file = orth_symbols_map_file
115
+ self._orth_replace_map_file = orth_replace_map_file
116
+ self._phone_info = phone_info
117
+
105
118
  if callable(corpus_file):
106
119
  corpus_file = corpus_file()
107
120
  if callable(orth_symbols_file):
@@ -117,30 +130,31 @@ class LmDataset(CachedDataset2):
117
130
  self.word_end_symbol = word_end_symbol
118
131
  self.seq_end_symbol = seq_end_symbol
119
132
  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
133
 
135
- if orth_symbols_file:
134
+ self.orth_vocab = None
135
+ self.orth_symbols = None
136
+ self.orth_symbols_map = None
137
+ self.seq_gen = None
138
+ if orth_vocab:
139
+ assert not orth_symbols_file, "LmDataset: either orth_vocab or orth_symbols_file"
140
+ assert not phone_info, "LmDataset: either orth_vocab or phone_info"
141
+ assert not orth_symbols_map_file, "LmDataset: either orth_vocab or orth_symbols_map_file"
142
+ assert not auto_replace_unknown_symbol, "LmDataset: auto_replace_unknown_symbol is controlled via the vocab"
143
+ if isinstance(orth_vocab, dict):
144
+ self.orth_vocab = Vocabulary.create_vocab(**orth_vocab)
145
+ elif isinstance(orth_vocab, Vocabulary):
146
+ self.orth_vocab = orth_vocab
147
+ else:
148
+ raise TypeError(f"LmDataset: unexpected orth_vocab type {type(orth_vocab)}")
149
+ self.labels["data"] = self.orth_vocab.labels
150
+ elif orth_symbols_file:
136
151
  assert not phone_info
137
152
  assert not orth_symbols_map_file
138
153
  orth_symbols = open(orth_symbols_file).read().splitlines()
139
154
  self.orth_symbols_map = {sym: i for (i, sym) in enumerate(orth_symbols)}
140
155
  self.orth_symbols = orth_symbols
141
156
  self.labels["data"] = orth_symbols
142
- self.seq_gen = None
143
- if orth_symbols_map_file and orth_symbols_map_file.endswith(".pkl"):
157
+ elif orth_symbols_map_file and orth_symbols_map_file.endswith(".pkl"):
144
158
  import pickle
145
159
 
146
160
  with open(orth_symbols_map_file, "rb") as f:
@@ -148,7 +162,6 @@ class LmDataset(CachedDataset2):
148
162
  self.orth_symbols = self.orth_symbols_map.keys()
149
163
  reverse_map = {i: sym for (sym, i) in sorted(self.orth_symbols_map.items())}
150
164
  self.labels["data"] = [sym for (i, sym) in sorted(reverse_map.items())]
151
- self.seq_gen = None
152
165
  elif orth_symbols_map_file:
153
166
  assert not phone_info
154
167
  with open(orth_symbols_map_file, "r") as f:
@@ -169,30 +182,57 @@ class LmDataset(CachedDataset2):
169
182
  self.orth_symbols = [sym for (i, sym) in orth_symbols_imap_list]
170
183
  reverse_map = {i: sym for (i, sym) in orth_symbols_imap_list}
171
184
  self.labels["data"] = [sym for (i, sym) in sorted(reverse_map.items())]
172
- self.seq_gen = None
173
- else:
185
+ elif phone_info is not None:
174
186
  assert not orth_symbols_file
175
187
  assert isinstance(phone_info, dict)
176
188
  self.seq_gen = PhoneSeqGenerator(**phone_info)
177
- self.orth_symbols = None
178
189
  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
190
  else:
192
- self.orth_replace_map = {}
191
+ raise ValueError("LmDataset: need orth_symbols_file or orth_symbols_map_file or phone_info")
192
+
193
+ self.parse_orth_opts = None
194
+ if self.orth_symbols is not None:
195
+ self.parse_orth_opts = parse_orth_opts.copy() if parse_orth_opts else {}
196
+ self.parse_orth_opts.setdefault("word_based", self.word_based)
197
+ if self.word_end_symbol and not self.word_based:
198
+ # Character-based modeling and word_end_symbol is specified.
199
+ # In this case, sentences end with self.word_end_symbol followed by the self.seq_end_symbol.
200
+ self.parse_orth_opts.setdefault(
201
+ "postfix",
202
+ (
203
+ [self.word_end_symbol, self.seq_end_symbol]
204
+ if self.seq_end_symbol is not None
205
+ else [self.word_end_symbol]
206
+ ),
207
+ )
208
+ else:
209
+ self.parse_orth_opts.setdefault(
210
+ "postfix", [self.seq_end_symbol] if self.seq_end_symbol is not None else []
211
+ )
212
+ else:
213
+ assert not parse_orth_opts
214
+
215
+ self.orth_replace_map = None
216
+ if self.orth_symbols is not None:
217
+ if orth_replace_map_file:
218
+ orth_replace_map = load_json(filename=orth_replace_map_file)
219
+ assert isinstance(orth_replace_map, dict)
220
+ self.orth_replace_map = {
221
+ key: parse_orthography_into_symbols(v, word_based=self.word_based)
222
+ for (key, v) in orth_replace_map.items()
223
+ }
224
+ if self.orth_replace_map:
225
+ if len(self.orth_replace_map) <= 5:
226
+ print(" orth_replace_map: %r" % self.orth_replace_map, file=log.v5)
227
+ else:
228
+ print(" orth_replace_map: %i entries" % len(self.orth_replace_map), file=log.v5)
229
+ else:
230
+ self.orth_replace_map = {}
193
231
 
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.
232
+ if word_end_symbol and not word_based: # Character-based modeling and word_end_symbol is specified.
233
+ self.orth_replace_map[" "] = [word_end_symbol] # Replace all spaces by word_end_symbol.
234
+ else:
235
+ assert not orth_replace_map_file
196
236
 
197
237
  num_labels = len(self.labels["data"])
198
238
  if num_labels <= 2**7:
@@ -229,8 +269,12 @@ class LmDataset(CachedDataset2):
229
269
  if isinstance(corpus_file, list): # If a list of files is provided, concatenate all.
230
270
  self.orths = []
231
271
  for file_name in corpus_file:
272
+ if use_cache_manager:
273
+ file_name = cf(file_name)
232
274
  self.orths += read_corpus(file_name, skip_empty_lines=skip_empty_lines)
233
275
  else:
276
+ if use_cache_manager:
277
+ corpus_file = cf(corpus_file)
234
278
  self.orths = read_corpus(corpus_file, skip_empty_lines=skip_empty_lines)
235
279
  # It's only estimated because we might filter some out or so.
236
280
  self._estimated_num_seqs = len(self.orths) // self.partition_epoch
@@ -346,23 +390,10 @@ class LmDataset(CachedDataset2):
346
390
  if orth == "</s>":
347
391
  continue # special sentence end symbol. empty seq, ignore.
348
392
 
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)
393
+ if self.orth_vocab is not None:
394
+ data = numpy.array(self.orth_vocab.get_seq(orth), dtype=self.dtype)
364
395
 
365
- elif self.orth_symbols:
396
+ elif self.orth_symbols is not None:
366
397
  orth_syms = parse_orthography(orth, **self.parse_orth_opts)
367
398
  while True:
368
399
  orth_syms = sum([self.orth_replace_map.get(s, [s]) for s in orth_syms], [])
@@ -416,8 +447,24 @@ class LmDataset(CachedDataset2):
416
447
  self.num_skipped += 1
417
448
  continue # try another seq
418
449
 
450
+ elif self.seq_gen is not None:
451
+ try:
452
+ phones = self.seq_gen.generate_seq(orth)
453
+ except KeyError as e:
454
+ if self.log_skipped_seqs:
455
+ print(
456
+ "LmDataset: skipping sequence %r because of missing lexicon entry: %s" % (orth, e),
457
+ file=log.v4,
458
+ )
459
+ self._reduce_log_skipped_seqs()
460
+ if self.error_on_invalid_seq:
461
+ raise Exception("LmDataset: invalid seq %r, missing lexicon entry %r" % (orth, e))
462
+ self.num_skipped += 1
463
+ continue # try another seq
464
+ data = self.seq_gen.seq_to_class_idxs(phones, dtype=self.dtype)
465
+
419
466
  else:
420
- assert False
467
+ assert False, f"{self}, {self.orth_vocab}, {self.orth_symbols}, {self.seq_gen}"
421
468
 
422
469
  targets = {}
423
470
  for i in range(self.add_random_phone_seqs):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20240723.142327
3
+ Version: 1.20240723.155747
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.142327'
2
- long_version = '1.20240723.142327+git.f1f1c76'