returnn 1.20230825.121159__tar.gz → 1.20230829.130342__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 (417) hide show
  1. {returnn-1.20230825.121159/returnn.egg-info → returnn-1.20230829.130342}/PKG-INFO +1 -1
  2. returnn-1.20230829.130342/_setup_info_generated.py +2 -0
  3. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/run_ctx.py +6 -3
  4. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/layers/basic.py +187 -2
  5. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/util/basic.py +20 -1
  6. {returnn-1.20230825.121159 → returnn-1.20230829.130342/returnn.egg-info}/PKG-INFO +1 -1
  7. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_TFNetworkLayer.py +45 -0
  8. returnn-1.20230825.121159/_setup_info_generated.py +0 -2
  9. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/.editorconfig +0 -0
  10. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/.gitignore +0 -0
  11. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/.gitmodules +0 -0
  12. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/.kateconfig +0 -0
  13. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/CHANGELOG.md +0 -0
  14. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/CODEOWNERS +0 -0
  15. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/CONTRIBUTING.md +0 -0
  16. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/LICENSE +0 -0
  17. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/MANIFEST.in +0 -0
  18. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/README.rst +0 -0
  19. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/__init__.py +0 -0
  20. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/12AX.cluster_map +0 -0
  21. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/_setup_returnn_env.py +0 -0
  22. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-fwd.config +0 -0
  23. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-horovod-mpi.py +0 -0
  24. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-horovod-mpi.py.sh +0 -0
  25. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-horovod-mpi.sh +0 -0
  26. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-hyper-param-tuning.config +0 -0
  27. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-iter-dataset.py +0 -0
  28. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-list-devices.py +0 -0
  29. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-lua-torch-layer.config +0 -0
  30. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-pretrain.config +0 -0
  31. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-record-and-push-to-webserver.py +0 -0
  32. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-returnn-as-framework.py +0 -0
  33. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-rf.config +0 -0
  34. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-rhn-enwik8.config +0 -0
  35. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-sprint-interface.py +0 -0
  36. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-att-copy.config +0 -0
  37. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-attention.config +0 -0
  38. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  39. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  40. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-enc-dec.config +0 -0
  41. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-hard-att-copy.config +0 -0
  42. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-lstm-benchmark.py +0 -0
  43. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  44. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  45. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-native-lstm.12ax.config +0 -0
  46. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  47. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  48. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  49. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  50. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  51. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-rec-self-att.config +0 -0
  52. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-search-compiled-graph.py +0 -0
  53. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  54. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-timit-lstm-ctc.config +0 -0
  55. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-torch.config +0 -0
  56. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  57. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/demo.sh +0 -0
  58. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  59. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  60. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  61. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/README.txt +0 -0
  62. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/chars.txt +0 -0
  63. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/config_demo +0 -0
  64. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/config_fwd +0 -0
  65. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/config_real +0 -0
  66. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  67. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/decode.py +0 -0
  68. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  69. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/go.sh +0 -0
  70. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/lines.txt +0 -0
  71. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/split/eval.txt +0 -0
  72. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/split/train.txt +0 -0
  73. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/IAM/split/valid.txt +0 -0
  74. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/README.md +0 -0
  75. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  76. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/artificial/forwardconfig +0 -0
  77. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/artificial/go.sh +0 -0
  78. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/artificial/trainconfig +0 -0
  79. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  80. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  81. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  82. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  83. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/pyproject.toml +0 -0
  84. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/requirements.txt +0 -0
  85. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/__init__.py +0 -0
  86. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/__main__.py +0 -0
  87. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/__old_mod_loader__.py +0 -0
  88. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/__setup__.py +0 -0
  89. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/config.py +0 -0
  90. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/__init__.py +0 -0
  91. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/audio.py +0 -0
  92. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/basic.py +0 -0
  93. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/bundle_file.py +0 -0
  94. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/cached.py +0 -0
  95. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/cached2.py +0 -0
  96. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/generating.py +0 -0
  97. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/hdf.py +0 -0
  98. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/lm.py +0 -0
  99. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/map.py +0 -0
  100. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/meta.py +0 -0
  101. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/multi_proc.py +0 -0
  102. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/normalization_data.py +0 -0
  103. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/numpy_dump.py +0 -0
  104. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/raw_wav.py +0 -0
  105. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/sprint.py +0 -0
  106. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/stereo.py +0 -0
  107. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/util/__init__.py +0 -0
  108. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/util/feature_extraction.py +0 -0
  109. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/util/strings.py +0 -0
  110. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/datasets/util/vocabulary.py +0 -0
  111. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/engine/__init__.py +0 -0
  112. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/engine/base.py +0 -0
  113. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/engine/batch.py +0 -0
  114. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/__init__.py +0 -0
  115. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/__main__.py +0 -0
  116. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  117. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  118. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  119. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  120. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  121. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  122. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  123. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  124. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  125. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  126. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  127. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  128. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  129. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  130. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  131. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  132. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  133. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  134. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  135. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  136. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  137. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  138. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  139. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  140. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  141. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/__init__.py +0 -0
  142. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/graph_editor/README.md +0 -0
  143. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/graph_editor/__init__.py +0 -0
  144. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/graph_editor/edit.py +0 -0
  145. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/graph_editor/reroute.py +0 -0
  146. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/graph_editor/select.py +0 -0
  147. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/graph_editor/subgraph.py +0 -0
  148. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/graph_editor/transform.py +0 -0
  149. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/extern/graph_editor/util.py +0 -0
  150. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/forward_iface.py +0 -0
  151. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/__init__.py +0 -0
  152. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/_backend.py +0 -0
  153. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/_numpy_backend.py +0 -0
  154. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/_random_journal.py +0 -0
  155. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/_utils.py +0 -0
  156. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/array_.py +0 -0
  157. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/attention.py +0 -0
  158. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/audio/__init__.py +0 -0
  159. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/audio/mel.py +0 -0
  160. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/audio/specaugment.py +0 -0
  161. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/cond.py +0 -0
  162. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/const.py +0 -0
  163. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/container.py +0 -0
  164. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/control_flow_ctx.py +0 -0
  165. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/conv.py +0 -0
  166. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/device.py +0 -0
  167. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/dims.py +0 -0
  168. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/dropout.py +0 -0
  169. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/dtype.py +0 -0
  170. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/encoder/__init__.py +0 -0
  171. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/encoder/base.py +0 -0
  172. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/encoder/conformer.py +0 -0
  173. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/gradient.py +0 -0
  174. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/graph.py +0 -0
  175. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/init.py +0 -0
  176. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/label_smoothing.py +0 -0
  177. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/linear.py +0 -0
  178. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/loop.py +0 -0
  179. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/loss.py +0 -0
  180. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/math_.py +0 -0
  181. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/matmul.py +0 -0
  182. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/module.py +0 -0
  183. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/normalization.py +0 -0
  184. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/parameter.py +0 -0
  185. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/rand.py +0 -0
  186. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/rec.py +0 -0
  187. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/reduce.py +0 -0
  188. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/signal.py +0 -0
  189. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/state.py +0 -0
  190. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/tensor_array.py +0 -0
  191. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/frontend/types.py +0 -0
  192. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/import_/__init__.py +0 -0
  193. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/import_/common.py +0 -0
  194. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/import_/git.py +0 -0
  195. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/import_/import_.py +0 -0
  196. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/learning_rate_control.py +0 -0
  197. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/log.py +0 -0
  198. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/native_op.cpp +0 -0
  199. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/native_op.py +0 -0
  200. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/pretrain.py +0 -0
  201. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/sprint/__init__.py +0 -0
  202. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/sprint/cache.py +0 -0
  203. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/sprint/control.py +0 -0
  204. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/sprint/error_signals.py +0 -0
  205. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/sprint/extern_interface.py +0 -0
  206. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/sprint/interface.py +0 -0
  207. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/README.md +0 -0
  208. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/__init__.py +0 -0
  209. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/_dim_extra.py +0 -0
  210. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/_tensor_extra.py +0 -0
  211. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/_tensor_mixin_base.py +0 -0
  212. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/_tensor_op_overloads.py +0 -0
  213. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/control_flow_ctx.py +0 -0
  214. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/dim.py +0 -0
  215. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/marked_dim.py +0 -0
  216. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/tensor.py +0 -0
  217. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/tensor_dict.py +0 -0
  218. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tensor/utils.py +0 -0
  219. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/__init__.py +0 -0
  220. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/compat.py +0 -0
  221. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/data_pipeline.py +0 -0
  222. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/distributed.py +0 -0
  223. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/engine.py +0 -0
  224. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/README.md +0 -0
  225. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/__init__.py +0 -0
  226. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/_backend.py +0 -0
  227. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/_utils.py +0 -0
  228. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/cond.py +0 -0
  229. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  230. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  231. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/dims.py +0 -0
  232. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/layer.py +0 -0
  233. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/loop.py +0 -0
  234. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/make_layer.py +0 -0
  235. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  236. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  237. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  238. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_low_level/__init__.py +0 -0
  239. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/frontend_low_level/_backend.py +0 -0
  240. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/horovod.py +0 -0
  241. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/hyper_param_tuning.py +0 -0
  242. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/layers/__init__.py +0 -0
  243. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/layers/base.py +0 -0
  244. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/layers/rec.py +0 -0
  245. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/layers/segmental_model.py +0 -0
  246. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/layers/signal_processing.py +0 -0
  247. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/layers/variable.py +0 -0
  248. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/native_op.py +0 -0
  249. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/network.py +0 -0
  250. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/sprint.py +0 -0
  251. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/updater.py +0 -0
  252. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/util/__init__.py +0 -0
  253. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/util/data.py +0 -0
  254. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/util/gradient_checkpoint.py +0 -0
  255. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/util/ken_lm.py +0 -0
  256. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/tf/util/open_fst.py +0 -0
  257. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/README.md +0 -0
  258. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/__init__.py +0 -0
  259. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/data/__init__.py +0 -0
  260. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/data/pipeline.py +0 -0
  261. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  262. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/data/tensor_utils.py +0 -0
  263. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/distributed.py +0 -0
  264. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/engine.py +0 -0
  265. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/frontend/__init__.py +0 -0
  266. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/frontend/_backend.py +0 -0
  267. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/frontend/_rand.py +0 -0
  268. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/frontend/bridge.py +0 -0
  269. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/functional/README.md +0 -0
  270. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/functional/__init__.py +0 -0
  271. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/functional/scaled_gradient.py +0 -0
  272. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/torch/updater.py +0 -0
  273. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/__init__.py +0 -0
  274. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/basic.py +0 -0
  275. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/better_exchook.py +0 -0
  276. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/bpe.py +0 -0
  277. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/debug.py +0 -0
  278. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/debug_helpers.py +0 -0
  279. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/fsa.py +0 -0
  280. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/literal_py_to_pickle.py +0 -0
  281. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/math.py +0 -0
  282. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/pprint.py +0 -0
  283. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/py-to-pickle.cpp +0 -0
  284. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/py_compat.py +0 -0
  285. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/sig_proc.py +0 -0
  286. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn/util/task_system.py +0 -0
  287. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn.egg-info/SOURCES.txt +0 -0
  288. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn.egg-info/dependency_links.txt +0 -0
  289. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/returnn.egg-info/top_level.txt +0 -0
  290. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/rnn.py +0 -0
  291. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/setup.cfg +0 -0
  292. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/setup.py +0 -0
  293. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/DummySprintExec.py +0 -0
  294. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm-inspection-profile.xml +0 -0
  295. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm.idea/.gitignore +0 -0
  296. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm.idea/.name +0 -0
  297. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  298. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  299. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  300. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  301. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  302. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm.idea/misc.xml +0 -0
  303. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm.idea/modules.xml +0 -0
  304. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm.idea/returnn.iml +0 -0
  305. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  306. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/_set_num_threads1.py +0 -0
  307. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/_setup_returnn_env.py +0 -0
  308. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/_setup_test_env.py +0 -0
  309. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/bpe-unicode-demo.codes +0 -0
  310. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/bpe-unicode-demo.vocab +0 -0
  311. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/lexicon_opt.fst +0 -0
  312. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/lexicon_opt.isyms +0 -0
  313. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/lexicon_opt.jpg +0 -0
  314. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/lexicon_opt.osyms +0 -0
  315. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/lint_common.py +0 -0
  316. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/pycharm-inspect.py +0 -0
  317. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/pylint.py +0 -0
  318. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/returnn-as-framework.py +0 -0
  319. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/rf_utils.py +0 -0
  320. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/spelling.dic +0 -0
  321. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_Config.py +0 -0
  322. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_Dataset.py +0 -0
  323. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_Fsa.py +0 -0
  324. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_GeneratingDataset.py +0 -0
  325. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_HDFDataset.py +0 -0
  326. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_LearningRateControl.py +0 -0
  327. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_Log.py +0 -0
  328. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_MultiProcDataset.py +0 -0
  329. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_PTDataset.py +0 -0
  330. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_Pretrain.py +0 -0
  331. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_ResNet.py +0 -0
  332. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_SprintDataset.py +0 -0
  333. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_SprintInterface.py +0 -0
  334. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_TFEngine.py +0 -0
  335. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_TFNativeOp.py +0 -0
  336. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_TFNetworkRecLayer.py +0 -0
  337. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_TFNetworkSigProcLayer.py +0 -0
  338. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_TFUpdater.py +0 -0
  339. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_TFUtil.py +0 -0
  340. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_TF_determinism.py +0 -0
  341. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_TaskSystem.py +0 -0
  342. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_TaskSystem_SharedMem.py +0 -0
  343. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_TranslationDataset.py +0 -0
  344. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_Util.py +0 -0
  345. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_demos.py +0 -0
  346. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_fork_exec.py +0 -0
  347. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_hdf_dump.py +0 -0
  348. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_array.py +0 -0
  349. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_attention.py +0 -0
  350. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_base.py +0 -0
  351. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_cond.py +0 -0
  352. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_const.py +0 -0
  353. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_container.py +0 -0
  354. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_conv.py +0 -0
  355. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_encoder_conformer.py +0 -0
  356. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_gradient.py +0 -0
  357. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_label_smoothing.py +0 -0
  358. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_loop.py +0 -0
  359. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_math.py +0 -0
  360. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_normalization.py +0 -0
  361. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_rec.py +0 -0
  362. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_reduce.py +0 -0
  363. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_rf_signal.py +0 -0
  364. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_tensor.py +0 -0
  365. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_tools.py +0 -0
  366. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_torch_engine.py +0 -0
  367. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_torch_frontend.py +0 -0
  368. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tests/test_torch_internal_frontend.py +0 -0
  369. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/_setup_returnn_env.py +0 -0
  370. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/analyze-dataset-batches.py +0 -0
  371. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/bliss-collect-seq-lens.py +0 -0
  372. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/bliss-dump-text.py +0 -0
  373. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/bliss-get-segment-names.py +0 -0
  374. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/bliss-to-ogg-zip.py +0 -0
  375. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/bpe-create-lexicon.py +0 -0
  376. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/calculate-word-error-rate.py +0 -0
  377. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/cleanup-old-models.py +0 -0
  378. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/collect-orth-symbols.py +0 -0
  379. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/collect-words.py +0 -0
  380. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/compile_native_op.py +0 -0
  381. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/compile_tf_graph.py +0 -0
  382. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/debug-dump-search-scores.py +0 -0
  383. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/debug-plot-search-scores.py +0 -0
  384. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/dump-dataset-raw-strings.py +0 -0
  385. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/dump-dataset.py +0 -0
  386. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/dump-forward-stats.py +0 -0
  387. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/dump-forward.py +0 -0
  388. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/dump-network-json.py +0 -0
  389. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/dump-pickle.py +0 -0
  390. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/extract_state_tying_from_dataset.py +0 -0
  391. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/get-attention-weights.py +0 -0
  392. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/get-best-model-epoch.py +0 -0
  393. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/hdf_dump.py +0 -0
  394. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/hdf_dump_translation_dataset.py +0 -0
  395. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/import-blocks-mt-model.py +0 -0
  396. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/import-t2t-mt-model.py +0 -0
  397. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/.gitignore +0 -0
  398. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/Makefile +0 -0
  399. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/README.md +0 -0
  400. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/example/README.md +0 -0
  401. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/example/libs_list +0 -0
  402. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  403. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
  404. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  405. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/example/state_vars_list +0 -0
  406. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  407. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/file.h +0 -0
  408. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  409. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  410. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/main.cc +0 -0
  411. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/rescorer.h +0 -0
  412. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/vocabulary.cc +0 -0
  413. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/lattice_rescorer/vocabulary.h +0 -0
  414. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/tf_avg_checkpoints.py +0 -0
  415. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/tf_inspect_checkpoint.py +0 -0
  416. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/tf_inspect_summary_log.py +0 -0
  417. {returnn-1.20230825.121159 → returnn-1.20230829.130342}/tools/torch_export_to_onnx.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20230825.121159
3
+ Version: 1.20230829.130342
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.20230829.130342'
2
+ long_version = '1.20230829.130342+git.f1d92e1'
@@ -23,7 +23,8 @@ _init_run_ctx = None # type: Optional[RunCtx]
23
23
 
24
24
  def reset_run_ctx():
25
25
  """
26
- If we get out of a train step or forward step.
26
+ Call this after a train_step or forward_step function has been called,
27
+ when you write your own training or forward loop.
27
28
  """
28
29
  global _run_ctx
29
30
  _run_ctx = None
@@ -31,7 +32,8 @@ def reset_run_ctx():
31
32
 
32
33
  def init_train_step_run_ctx(*, train_flag: Union[bool, Tensor], step: Union[int, Tensor]):
33
34
  """
34
- Call this at the beginning of a new train step.
35
+ Call this before the train_step function is called,
36
+ when you write your own training loop.
35
37
  """
36
38
  global _run_ctx
37
39
  _run_ctx = RunCtx(stage="train_step", train_flag=train_flag, step=step)
@@ -39,7 +41,8 @@ def init_train_step_run_ctx(*, train_flag: Union[bool, Tensor], step: Union[int,
39
41
 
40
42
  def init_forward_step_run_ctx(*, expected_outputs: Optional[TensorDict] = None, step: Union[int, Tensor]):
41
43
  """
42
- Call this at the beginning of a new forward step.
44
+ Call this before the forward_step function is called,
45
+ when you write your own forward loop.
43
46
  """
44
47
  global _run_ctx
45
48
  _run_ctx = RunCtx(stage="forward_step", expected_outputs=expected_outputs, step=step)
@@ -3724,15 +3724,21 @@ class WindowLayer(_ConcatInputLayer):
3724
3724
  Adds a window dimension.
3725
3725
  By default, uses the time axis and goes over it with a sliding window.
3726
3726
  The new axis for the window is created right after the time axis.
3727
- Will always return as batch major mode.
3727
+ In PyTorch, this is called ``unfold``.
3728
+ We sometimes call this "chunking".
3729
+ There is also the similar :class:`TimeChunkingLayer`.
3730
+
3728
3731
  E.g. if the input is (batch, time, dim), the output is (batch, time, window_size, dim).
3729
3732
  If you want to merge the (window_size, dim) together to (window_size * dim,),
3730
3733
  you can use the MergeDimsLayer, e.g. {"class": "merge_dims", "axes": "except_time"}.
3734
+
3731
3735
  Use stride==window_size and window_right=window_size - 1 in combination with a
3732
3736
  MergeDimsLayer to achieve feature stacking with right-hand zero padding.
3733
3737
 
3734
- This is not to take out a window from the time-dimension.
3738
+ This is not to take out a single window from the time-dimension.
3735
3739
  See :class:`SliceLayer` or :class:`SliceNdLayer`.
3740
+
3741
+ The inverse layer is :class:`FoldLayer`.
3736
3742
  """
3737
3743
 
3738
3744
  layer_class = "window"
@@ -3893,6 +3899,185 @@ class WindowLayer(_ConcatInputLayer):
3893
3899
  return {}
3894
3900
 
3895
3901
 
3902
+ class FoldLayer(LayerBase):
3903
+ """
3904
+ The inverse of :class:`WindowLayer`.
3905
+ We sometimes call this "unchunking".
3906
+ The :class:`TimeUnChunkingLayer` is similar.
3907
+
3908
+ Input (in_spatial_dim, window_dim, other_dims...)
3909
+ -> output (out_spatial_dim, other_dims...).
3910
+
3911
+ The window_dim is folded into the out_spatial_dim.
3912
+ This is also similar as the PyTorch fold operation (with mode="sum").
3913
+ """
3914
+
3915
+ layer_class = "fold"
3916
+ recurrent = True # order matters
3917
+
3918
+ def __init__(
3919
+ self,
3920
+ mode: str,
3921
+ in_spatial_dim: Union[Dim, str],
3922
+ window_dim: Union[Dim, str],
3923
+ out_spatial_dim: Optional[Dim] = None,
3924
+ padding: str = "same",
3925
+ window_left: Optional[int] = None,
3926
+ window_right: Optional[int] = None,
3927
+ stride: int = 1,
3928
+ **kwargs,
3929
+ ):
3930
+ """
3931
+ :param mode: "sum" or "mean" (average), for overlapping frames
3932
+ :param in_spatial_dim:
3933
+ :param window_dim:
3934
+ :param out_spatial_dim:
3935
+ :param padding:
3936
+ :param window_left:
3937
+ :param window_right:
3938
+ :param stride:
3939
+ """
3940
+ import returnn.frontend as rf
3941
+
3942
+ super().__init__(**kwargs)
3943
+ source = self.sources[0].output.copy()
3944
+ in_spatial_dim_axis = source.get_axis_from_description(in_spatial_dim, allow_int=False)
3945
+ window_dim_axis = source.get_axis_from_description(window_dim, allow_int=False)
3946
+ source = source.copy_transpose(
3947
+ [in_spatial_dim_axis, window_dim_axis]
3948
+ + [i for i in range(source.batch_ndim) if i not in (in_spatial_dim_axis, window_dim_axis)]
3949
+ ) # (in_spatial_dim,window,other_dims...)
3950
+ out_spatial_dim # noqa # unused here, handled in get_out_data_from_opts
3951
+ out_spatial_dim = self.output.dims[0] # here we directly take it from the already created one
3952
+ out_spatial_dim.complete_dyn_size()
3953
+
3954
+ ones = Data("mask", dims=[in_spatial_dim, window_dim], dtype="bool", sparse=False)
3955
+ ones.raw_tensor = tf.ones([in_spatial_dim.get_dim_value(), window_dim.get_dim_value()], dtype="bool")
3956
+ if in_spatial_dim.need_masking():
3957
+ mask_ = in_spatial_dim.get_mask(dim_order=source.dims)
3958
+ source.raw_tensor = tf.where(
3959
+ mask_.copy_compatible_to(source, check_sparse=False, check_dtype=False).placeholder,
3960
+ source.placeholder,
3961
+ tf.zeros_like(source.placeholder),
3962
+ )
3963
+ ones = rf.combine_bc(ones, "logical_and", mask_)
3964
+ if window_dim.need_masking():
3965
+ mask_ = window_dim.get_mask(dim_order=source.dims)
3966
+ source.raw_tensor = tf.where(
3967
+ mask_.copy_compatible_to(source, check_sparse=False, check_dtype=False).placeholder,
3968
+ source.placeholder,
3969
+ tf.zeros_like(source.placeholder),
3970
+ )
3971
+ ones = rf.combine_bc(ones, "logical_and", mask_)
3972
+
3973
+ # See similar code in :func:`windowed_nd` for the reverse, which uses tf.gather.
3974
+ start_times = tf.range(in_spatial_dim.get_dim_value()) * stride # (in_spatial_dim,)
3975
+ win_range = tf.range(window_dim.get_dim_value()) # (window,)
3976
+ indices = start_times[:, None] + win_range[None, :] # (in_spatial_dim,window)
3977
+ indices = tf.reshape(indices, [-1, 1]) # (in_spatial_dim*window,1)
3978
+ source_flat = tf.reshape(
3979
+ source.placeholder, # (in_spatial_dim,window,other_dims...)
3980
+ [in_spatial_dim.get_dim_value() * window_dim.get_dim_value()]
3981
+ + [dim.get_dim_value() for dim in source.dim_tags[2:]],
3982
+ ) # (in_spatial_dim*window,other_dims...)
3983
+ # The maximum index we can get in indices, and one more.
3984
+ out_padded_dim_value = in_spatial_dim.get_dim_value() * stride + window_dim.get_dim_value() - stride
3985
+ out = tf.scatter_nd(
3986
+ indices,
3987
+ source_flat,
3988
+ [out_padded_dim_value] + [dim.get_dim_value() for dim in source.dim_tags[2:]],
3989
+ ) # (out_spatial_dim,other_dims...)
3990
+
3991
+ if mode == "mean":
3992
+ ones = ones.copy_compatible_to(source, check_sparse=False, check_dtype=False)
3993
+ ones_rem_shape = [dim.get_dim_value() for dim in ones.dims[2:]]
3994
+ ones_flat = tf.reshape(
3995
+ ones.placeholder, # (in_spatial_dim,window,other_dims...)
3996
+ [in_spatial_dim.get_dim_value() * window_dim.get_dim_value()] + ones_rem_shape,
3997
+ ) # (in_spatial_dim*window,other_dims'...)
3998
+ ones_ = tf.scatter_nd(
3999
+ indices,
4000
+ tf.cast(ones_flat, out.dtype),
4001
+ [out_padded_dim_value] + ones_rem_shape,
4002
+ ) # (out_spatial_dim,other_dims...)
4003
+ out = out / tf.maximum(ones_, 1.0)
4004
+ elif mode == "sum":
4005
+ pass # already have that
4006
+ else:
4007
+ raise ValueError(f"{self}: unsupported mode {mode!r}")
4008
+
4009
+ # Handle padding. Note that we basically do the inverse of the logic of windowed_nd.
4010
+ if padding.lower() == "valid":
4011
+ pass # nothing to do
4012
+ elif padding.lower() == "same":
4013
+ if window_left is None and window_right is None:
4014
+ window_left = ((window_dim - 1) // 2).get_dim_value()
4015
+ elif window_left is None:
4016
+ window_left = ((window_dim - 1) - window_right).get_dim_value()
4017
+ # Only strip away left padding. The right padding will be handled by the out spatial dim tag slicing below.
4018
+ out = out[window_left:]
4019
+ else:
4020
+ raise ValueError(f"{self}: invalid padding {padding!r}")
4021
+ # Slice in any case because the user might have specified out_spatial_dim
4022
+ out = out[: out_spatial_dim.get_dim_value()]
4023
+
4024
+ self.output.placeholder = out
4025
+
4026
+ @classmethod
4027
+ def get_out_data_from_opts(
4028
+ cls,
4029
+ name: str,
4030
+ sources: List[LayerBase],
4031
+ in_spatial_dim: Union[Dim, str],
4032
+ window_dim: Union[Dim, str],
4033
+ out_spatial_dim: Optional[Dim] = None,
4034
+ padding: str = "same",
4035
+ window_left: Optional[int] = None,
4036
+ window_right: Optional[int] = None,
4037
+ stride: int = 1,
4038
+ **kwargs,
4039
+ ) -> Data:
4040
+ """out data"""
4041
+ assert len(sources) == 1, f"{cls.__name__} {name!r}: requires single source, got {sources}"
4042
+ source = sources[0].output
4043
+ in_spatial_dim_axis = source.get_axis_from_description(in_spatial_dim, allow_int=False)
4044
+ in_spatial_dim = source.dim_tags[in_spatial_dim_axis]
4045
+ in_spatial_is_time_dim = in_spatial_dim_axis == source.time_dim_axis
4046
+ window_dim_axis = source.get_axis_from_description(window_dim, allow_int=False)
4047
+ assert in_spatial_dim_axis != window_dim_axis
4048
+ out = source.copy_template(name="%s_output" % name)
4049
+ for rem_axis in sorted((in_spatial_dim_axis, window_dim_axis), reverse=True):
4050
+ out = out.copy_template_excluding_axis(rem_axis)
4051
+ if (
4052
+ not out_spatial_dim
4053
+ or not out_spatial_dim.is_dim_known()
4054
+ or (out_spatial_dim.dyn_size_ext and out_spatial_dim.dyn_size_ext.raw_tensor is None)
4055
+ ):
4056
+ # We are basically reverting ConvLayer.calc_out_dim.
4057
+ out_spatial_dim_: Dim = in_spatial_dim * stride
4058
+ if padding.lower() == "same":
4059
+ pass # nothing to do
4060
+ elif padding.lower() == "valid":
4061
+ if window_left is None and window_right is None:
4062
+ window_left = (window_dim - 1) // 2
4063
+ if window_right is None:
4064
+ window_right = (window_dim - 1) - window_left
4065
+ elif window_left is None:
4066
+ window_left = (window_dim - 1) - window_right
4067
+ out_spatial_dim_ = window_left + out_spatial_dim_ + window_right
4068
+ else:
4069
+ raise ValueError(f"{cls.__name__} {name!r}: invalid padding {padding!r}")
4070
+ if out_spatial_dim:
4071
+ out_spatial_dim_.declare_same_as(out_spatial_dim)
4072
+ else:
4073
+ out_spatial_dim = out_spatial_dim_
4074
+ out_spatial_dim_.complete_dyn_size(template_only=True)
4075
+ out = out.copy_add_dim_by_tag(axis=0, dim_tag=out_spatial_dim, unbroadcast=True)
4076
+ if in_spatial_is_time_dim:
4077
+ out.time_dim_axis = 0
4078
+ return out
4079
+
4080
+
3896
4081
  class CumsumLayer(_ConcatInputLayer):
3897
4082
  """
3898
4083
  Basically wraps tf.cumsum. Also supports that in the RecLayer.
@@ -4137,7 +4137,26 @@ def windowed_nd(
4137
4137
  ):
4138
4138
  """
4139
4139
  Constructs a new "window" axis which is a moving input over the time-axis.
4140
- If you want to take out a window, i.e. a slice, see :func:`slice_nd`.
4140
+ If you want to take out a single window, i.e. a slice, see :func:`slice_nd`.
4141
+
4142
+ The windowing logic behaves just as in convolution or pooling.
4143
+
4144
+ There are multiple implementations:
4145
+
4146
+ - By tiling + padding and then reshaping, we can get what we want.
4147
+ This is the "clever" implementation which is efficient but difficult to understand.
4148
+ To really understand it, it's best to visualize it.
4149
+ This is the default implementation.
4150
+ It is only efficient with no striding (stride=1),
4151
+ so we only use it for that case.
4152
+ - We can do with :func:`tf.gather` by calculating the exact indices in the input tensor
4153
+ for all windows.
4154
+ This is quite straight-forward and still reasonably efficient.
4155
+ We use this for striding.
4156
+ - :func:`tf.image.extract_patches` is quite similar in behavior.
4157
+ - We also have native implementations for chunk and unchunk,
4158
+ which are also similar in behavior.
4159
+ - PyTorch unfold is also similar in behavior.
4141
4160
 
4142
4161
  :param tf.Tensor source: N-D tensor of shape (..., n_time, ...)
4143
4162
  :param int|tf.Tensor window_size: window size
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20230825.121159
3
+ Version: 1.20230829.130342
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
@@ -8230,6 +8230,51 @@ def test_WindowLayer_output_placeholder():
8230
8230
  assert_equal(seq_lens.tolist(), [3, 1, 0])
8231
8231
 
8232
8232
 
8233
+ def test_FoldLayer_unchunk():
8234
+ from returnn.tensor import Tensor, Dim, batch_dim
8235
+
8236
+ in_spatial_dim = Dim(Tensor("in_spatial", [batch_dim], dtype="int32"))
8237
+ out_spatial_dim = Dim(None, name="out_spatial")
8238
+ window_dim = Dim(3, name="win")
8239
+
8240
+ with make_scope() as session:
8241
+ net = TFNetwork(extern_data=ExternData())
8242
+ net.extern_data.set_batch_info(BatchInfo.make_global_batch_info(tf.constant(3)))
8243
+ src = InternalLayer(
8244
+ name="src",
8245
+ network=net,
8246
+ output=Data(name="src", dims=[batch_dim, in_spatial_dim, window_dim], dtype="float32"),
8247
+ )
8248
+ src.output.dims[1].dyn_size_ext.raw_tensor = tf.constant([3, 2, 1])
8249
+ src.output.raw_tensor = tf.constant(
8250
+ [
8251
+ [[1, 2, 3], [2, 3, 4], [3, 4, 5]],
8252
+ [[6, 7, 8], [7, 8, 9], [8, 9, 10]],
8253
+ [[11, 12, 13], [12, 13, 14], [13, 14, 15]],
8254
+ ],
8255
+ dtype=tf.float32,
8256
+ )
8257
+ opts = dict(
8258
+ name="fold",
8259
+ network=net,
8260
+ sources=[src],
8261
+ in_spatial_dim=in_spatial_dim,
8262
+ window_dim=window_dim,
8263
+ out_spatial_dim=out_spatial_dim,
8264
+ padding="valid",
8265
+ mode="mean",
8266
+ )
8267
+ layer = FoldLayer(**opts, output=FoldLayer.get_out_data_from_opts(**opts))
8268
+ print(layer)
8269
+ assert layer.output.dims == (out_spatial_dim, batch_dim)
8270
+ output = layer.output.copy_transpose((batch_dim, out_spatial_dim))
8271
+ out, seq_lens = session.run([output.raw_tensor, output.dims[1].dyn_size_ext.raw_tensor])
8272
+ print(out)
8273
+ print(seq_lens)
8274
+ assert_equal(out.tolist(), [[1, 2, 3, 4, 5], [6, 7, 8, 9, 0], [11, 12, 13, 0, 0]])
8275
+ assert_equal(seq_lens.tolist(), [5, 4, 3])
8276
+
8277
+
8233
8278
  def test_conv_window_merge_dims():
8234
8279
  n_in = 1
8235
8280
  n_out = 13
@@ -1,2 +0,0 @@
1
- version = '1.20230825.121159'
2
- long_version = '1.20230825.121159+git.4ab6841'