returnn 1.20250226.115259__tar.gz → 1.20250226.132109__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 (476) hide show
  1. {returnn-1.20250226.115259/returnn.egg-info → returnn-1.20250226.132109}/PKG-INFO +1 -1
  2. returnn-1.20250226.132109/_setup_info_generated.py +2 -0
  3. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/array_.py +22 -5
  4. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/conv.py +38 -12
  5. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/dims.py +40 -0
  6. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/normalization.py +3 -4
  7. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/signal.py +8 -0
  8. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/basic.py +1 -1
  9. {returnn-1.20250226.115259 → returnn-1.20250226.132109/returnn.egg-info}/PKG-INFO +1 -1
  10. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_array.py +8 -1
  11. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_encoder_conformer.py +4 -1
  12. returnn-1.20250226.115259/_setup_info_generated.py +0 -2
  13. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/.editorconfig +0 -0
  14. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/.gitignore +0 -0
  15. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/.gitmodules +0 -0
  16. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/.kateconfig +0 -0
  17. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/CHANGELOG.md +0 -0
  18. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/CODEOWNERS +0 -0
  19. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/CONTRIBUTING.md +0 -0
  20. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/LICENSE +0 -0
  21. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/MANIFEST.in +0 -0
  22. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/README.rst +0 -0
  23. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/__init__.py +0 -0
  24. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/12AX.cluster_map +0 -0
  25. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/_setup_returnn_env.py +0 -0
  26. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-fwd.config +0 -0
  27. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-horovod-mpi.py +0 -0
  28. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-horovod-mpi.py.sh +0 -0
  29. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-horovod-mpi.sh +0 -0
  30. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-hyper-param-tuning.config +0 -0
  31. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-iter-dataset.py +0 -0
  32. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-list-devices.py +0 -0
  33. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-lua-torch-layer.config +0 -0
  34. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-pretrain.config +0 -0
  35. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-record-and-push-to-webserver.py +0 -0
  36. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-returnn-as-framework.py +0 -0
  37. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-rf-pt-benchmark.py +0 -0
  38. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-rf.config +0 -0
  39. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-rhn-enwik8.config +0 -0
  40. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-sprint-interface.py +0 -0
  41. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-att-copy.config +0 -0
  42. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-attention.config +0 -0
  43. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  44. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  45. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-enc-dec.config +0 -0
  46. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-hard-att-copy.config +0 -0
  47. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-lstm-benchmark.py +0 -0
  48. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  49. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  50. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm.12ax.config +0 -0
  51. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  52. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  53. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  54. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  55. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  56. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-rec-self-att.config +0 -0
  57. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-search-compiled-graph.py +0 -0
  58. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  59. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-timit-lstm-ctc.config +0 -0
  60. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-torch.config +0 -0
  61. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  62. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/demo.sh +0 -0
  63. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  64. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  65. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  66. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/README.txt +0 -0
  67. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/chars.txt +0 -0
  68. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/config_demo +0 -0
  69. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/config_fwd +0 -0
  70. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/config_real +0 -0
  71. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  72. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/decode.py +0 -0
  73. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  74. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/go.sh +0 -0
  75. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/lines.txt +0 -0
  76. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/split/eval.txt +0 -0
  77. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/split/train.txt +0 -0
  78. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/IAM/split/valid.txt +0 -0
  79. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/README.md +0 -0
  80. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  81. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/artificial/forwardconfig +0 -0
  82. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/artificial/go.sh +0 -0
  83. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/artificial/trainconfig +0 -0
  84. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  85. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  86. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  87. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  88. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/pyproject.toml +0 -0
  89. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/requirements.txt +0 -0
  90. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/__init__.py +0 -0
  91. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/__main__.py +0 -0
  92. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/__old_mod_loader__.py +0 -0
  93. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/__setup__.py +0 -0
  94. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/config.py +0 -0
  95. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/__init__.py +0 -0
  96. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/audio.py +0 -0
  97. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/basic.py +0 -0
  98. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/bundle_file.py +0 -0
  99. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/cached.py +0 -0
  100. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/cached2.py +0 -0
  101. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/distrib_files.py +0 -0
  102. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/generating.py +0 -0
  103. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/hdf.py +0 -0
  104. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/lm.py +0 -0
  105. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/map.py +0 -0
  106. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/meta.py +0 -0
  107. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/multi_proc.py +0 -0
  108. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/normalization_data.py +0 -0
  109. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/numpy_dump.py +0 -0
  110. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/postprocessing.py +0 -0
  111. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/raw_wav.py +0 -0
  112. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/sprint.py +0 -0
  113. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/stereo.py +0 -0
  114. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/text_dict.py +0 -0
  115. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/util/__init__.py +0 -0
  116. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/util/feature_extraction.py +0 -0
  117. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/util/strings.py +0 -0
  118. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/datasets/util/vocabulary.py +0 -0
  119. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/engine/__init__.py +0 -0
  120. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/engine/base.py +0 -0
  121. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/engine/batch.py +0 -0
  122. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/__init__.py +0 -0
  123. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/__main__.py +0 -0
  124. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  125. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  126. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  127. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  128. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  129. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  130. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  131. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  132. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  133. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  134. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  135. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  136. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  137. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  138. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  139. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  140. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  141. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  142. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  143. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  144. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  145. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  146. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  147. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  148. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  149. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/__init__.py +0 -0
  150. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/graph_editor/README.md +0 -0
  151. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/graph_editor/__init__.py +0 -0
  152. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/graph_editor/edit.py +0 -0
  153. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/graph_editor/reroute.py +0 -0
  154. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/graph_editor/select.py +0 -0
  155. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/graph_editor/subgraph.py +0 -0
  156. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/graph_editor/transform.py +0 -0
  157. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/extern/graph_editor/util.py +0 -0
  158. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/forward_iface.py +0 -0
  159. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/__init__.py +0 -0
  160. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_backend.py +0 -0
  161. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_cache.py +0 -0
  162. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_native/__init__.py +0 -0
  163. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_native/backend.cpp +0 -0
  164. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_native/backend.hpp +0 -0
  165. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_native/module.cpp +0 -0
  166. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_native/module.hpp +0 -0
  167. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_native/py_utils.hpp +0 -0
  168. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_native/tensor_ops.cpp +0 -0
  169. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_native/tensor_ops.hpp +0 -0
  170. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_numpy_backend.py +0 -0
  171. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_random_journal.py +0 -0
  172. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/_utils.py +0 -0
  173. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/attention.py +0 -0
  174. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/audio/__init__.py +0 -0
  175. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/audio/mel.py +0 -0
  176. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/audio/specaugment.py +0 -0
  177. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/backend.py +0 -0
  178. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/build_from_dict.py +0 -0
  179. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/cond.py +0 -0
  180. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/const.py +0 -0
  181. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/container.py +0 -0
  182. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/control_flow_ctx.py +0 -0
  183. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/conversions/__init__.py +0 -0
  184. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/conversions/espnet_e_branchformer.py +0 -0
  185. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/conversions/hf_llama.py +0 -0
  186. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/conversions/torch_nn.py +0 -0
  187. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/decoder/__init__.py +0 -0
  188. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/decoder/transformer.py +0 -0
  189. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/device.py +0 -0
  190. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/dropout.py +0 -0
  191. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/dtype.py +0 -0
  192. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/encoder/__init__.py +0 -0
  193. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/encoder/base.py +0 -0
  194. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/encoder/conformer.py +0 -0
  195. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/encoder/conformer_v2.py +0 -0
  196. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/encoder/e_branchformer.py +0 -0
  197. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/encoder/transformer.py +0 -0
  198. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/gradient.py +0 -0
  199. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/graph.py +0 -0
  200. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/hooks.py +0 -0
  201. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/init.py +0 -0
  202. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/label_smoothing.py +0 -0
  203. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/linear.py +0 -0
  204. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/loop.py +0 -0
  205. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/loss.py +0 -0
  206. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/math_.py +0 -0
  207. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/matmul.py +0 -0
  208. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/module.py +0 -0
  209. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/nested.py +0 -0
  210. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/parameter.py +0 -0
  211. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/parametrizations.py +0 -0
  212. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/parametrize.py +0 -0
  213. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/piecewise_linear.py +0 -0
  214. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/rand.py +0 -0
  215. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/rec.py +0 -0
  216. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/reduce.py +0 -0
  217. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/run_ctx.py +0 -0
  218. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/state.py +0 -0
  219. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/stepwise_scheduler.py +0 -0
  220. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/tensor_array.py +0 -0
  221. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/frontend/types.py +0 -0
  222. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/import_/__init__.py +0 -0
  223. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/import_/common.py +0 -0
  224. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/import_/git.py +0 -0
  225. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/import_/import_.py +0 -0
  226. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/learning_rate_control.py +0 -0
  227. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/log.py +0 -0
  228. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/native_op.cpp +0 -0
  229. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/native_op.py +0 -0
  230. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/pretrain.py +0 -0
  231. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/sprint/__init__.py +0 -0
  232. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/sprint/cache.py +0 -0
  233. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/sprint/control.py +0 -0
  234. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/sprint/error_signals.py +0 -0
  235. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/sprint/extern_interface.py +0 -0
  236. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/sprint/interface.py +0 -0
  237. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/README.md +0 -0
  238. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/__init__.py +0 -0
  239. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/_dim_extra.py +0 -0
  240. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/_tensor_extra.py +0 -0
  241. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/_tensor_mixin_base.py +0 -0
  242. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/_tensor_op_overloads.py +0 -0
  243. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/control_flow_ctx.py +0 -0
  244. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/dim.py +0 -0
  245. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/marked_dim.py +0 -0
  246. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/tensor.py +0 -0
  247. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/tensor_dict.py +0 -0
  248. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tensor/utils.py +0 -0
  249. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/__init__.py +0 -0
  250. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/compat.py +0 -0
  251. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/data_pipeline.py +0 -0
  252. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/distributed.py +0 -0
  253. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/engine.py +0 -0
  254. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/README.md +0 -0
  255. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/__init__.py +0 -0
  256. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/_backend.py +0 -0
  257. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/_utils.py +0 -0
  258. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/cond.py +0 -0
  259. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  260. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  261. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/dims.py +0 -0
  262. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/layer.py +0 -0
  263. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/loop.py +0 -0
  264. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/make_layer.py +0 -0
  265. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  266. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  267. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  268. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_low_level/__init__.py +0 -0
  269. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/frontend_low_level/_backend.py +0 -0
  270. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/horovod.py +0 -0
  271. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/hyper_param_tuning.py +0 -0
  272. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/layers/__init__.py +0 -0
  273. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/layers/base.py +0 -0
  274. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/layers/basic.py +0 -0
  275. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/layers/rec.py +0 -0
  276. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/layers/segmental_model.py +0 -0
  277. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/layers/signal_processing.py +0 -0
  278. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/layers/variable.py +0 -0
  279. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/native_op.py +0 -0
  280. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/network.py +0 -0
  281. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/sprint.py +0 -0
  282. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/updater.py +0 -0
  283. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/util/__init__.py +0 -0
  284. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/util/basic.py +0 -0
  285. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/util/data.py +0 -0
  286. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/util/gradient_checkpoint.py +0 -0
  287. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/util/ken_lm.py +0 -0
  288. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/tf/util/open_fst.py +0 -0
  289. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/README.md +0 -0
  290. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/__init__.py +0 -0
  291. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/data/__init__.py +0 -0
  292. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/data/extern_data.py +0 -0
  293. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/data/pipeline.py +0 -0
  294. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/data/queued_data_iter.py +0 -0
  295. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  296. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/data/tensor_utils.py +0 -0
  297. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/distributed.py +0 -0
  298. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/engine.py +0 -0
  299. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/frontend/__init__.py +0 -0
  300. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/frontend/_backend.py +0 -0
  301. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/frontend/_rand.py +0 -0
  302. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/frontend/bridge.py +0 -0
  303. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/frontend/raw_ops.py +0 -0
  304. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/optim/README.md +0 -0
  305. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/optim/__init__.py +0 -0
  306. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/optim/lion.py +0 -0
  307. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/updater.py +0 -0
  308. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/util/README.md +0 -0
  309. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/util/__init__.py +0 -0
  310. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/util/array_.py +0 -0
  311. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/util/debug_inf_nan.py +0 -0
  312. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/util/diagnose_gpu.py +0 -0
  313. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/util/exception_helper.py +0 -0
  314. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/util/gradient_checkpoint.py +0 -0
  315. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/util/module.py +0 -0
  316. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/torch/util/scaled_gradient.py +0 -0
  317. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/__init__.py +0 -0
  318. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/better_exchook.py +0 -0
  319. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/bpe.py +0 -0
  320. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/debug.py +0 -0
  321. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/debug_helpers.py +0 -0
  322. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/file_cache.py +0 -0
  323. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/fsa.py +0 -0
  324. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/literal_py_to_pickle.py +0 -0
  325. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/lru_cache.py +0 -0
  326. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/math.py +0 -0
  327. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
  328. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/native_code_compiler.py +0 -0
  329. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/pprint.py +0 -0
  330. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/py-to-pickle.cpp +0 -0
  331. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/py_ext_mod_compiler.py +0 -0
  332. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/result_with_reason.py +0 -0
  333. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/sig_proc.py +0 -0
  334. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/task_system.py +0 -0
  335. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/train_proc_manager.py +0 -0
  336. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn/util/watch_memory.py +0 -0
  337. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn.egg-info/SOURCES.txt +0 -0
  338. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn.egg-info/dependency_links.txt +0 -0
  339. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn.egg-info/requires.txt +0 -0
  340. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/returnn.egg-info/top_level.txt +0 -0
  341. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/rnn.py +0 -0
  342. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/setup.cfg +0 -0
  343. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/setup.py +0 -0
  344. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/DummySprintExec.py +0 -0
  345. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm-inspection-profile.xml +0 -0
  346. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm.idea/.gitignore +0 -0
  347. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm.idea/.name +0 -0
  348. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  349. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  350. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  351. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  352. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  353. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm.idea/misc.xml +0 -0
  354. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm.idea/modules.xml +0 -0
  355. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm.idea/returnn.iml +0 -0
  356. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  357. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/_set_num_threads1.py +0 -0
  358. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/_setup_returnn_env.py +0 -0
  359. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/_setup_test_env.py +0 -0
  360. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/bpe-unicode-demo.codes +0 -0
  361. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/bpe-unicode-demo.vocab +0 -0
  362. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/lexicon_opt.fst +0 -0
  363. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/lexicon_opt.isyms +0 -0
  364. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/lexicon_opt.jpg +0 -0
  365. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/lexicon_opt.osyms +0 -0
  366. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/lint_common.py +0 -0
  367. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/pycharm-inspect.py +0 -0
  368. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/pylint.py +0 -0
  369. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/returnn-as-framework.py +0 -0
  370. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/rf_utils.py +0 -0
  371. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/spelling.dic +0 -0
  372. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_Config.py +0 -0
  373. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_Dataset.py +0 -0
  374. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_Fsa.py +0 -0
  375. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_GeneratingDataset.py +0 -0
  376. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_HDFDataset.py +0 -0
  377. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_LearningRateControl.py +0 -0
  378. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_Log.py +0 -0
  379. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_MultiProcDataset.py +0 -0
  380. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_Pretrain.py +0 -0
  381. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_ResNet.py +0 -0
  382. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_SprintDataset.py +0 -0
  383. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_SprintInterface.py +0 -0
  384. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_TFEngine.py +0 -0
  385. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_TFNativeOp.py +0 -0
  386. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_TFNetworkLayer.py +0 -0
  387. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_TFNetworkRecLayer.py +0 -0
  388. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_TFNetworkSigProcLayer.py +0 -0
  389. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_TFUpdater.py +0 -0
  390. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_TFUtil.py +0 -0
  391. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_TF_determinism.py +0 -0
  392. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_TaskSystem.py +0 -0
  393. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_TaskSystem_SharedMem.py +0 -0
  394. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_TranslationDataset.py +0 -0
  395. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_Util.py +0 -0
  396. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_demos.py +0 -0
  397. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_fork_exec.py +0 -0
  398. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_hdf_dump.py +0 -0
  399. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_attention.py +0 -0
  400. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_base.py +0 -0
  401. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_cond.py +0 -0
  402. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_const.py +0 -0
  403. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_container.py +0 -0
  404. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_conv.py +0 -0
  405. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_decoder_transformer.py +0 -0
  406. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_gradient.py +0 -0
  407. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_label_smoothing.py +0 -0
  408. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_loop.py +0 -0
  409. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_math.py +0 -0
  410. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_normalization.py +0 -0
  411. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_piecewise_linear.py +0 -0
  412. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_rec.py +0 -0
  413. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_reduce.py +0 -0
  414. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_rf_signal.py +0 -0
  415. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_tensor.py +0 -0
  416. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_threading.py +0 -0
  417. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_tools.py +0 -0
  418. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_torch_dataset.py +0 -0
  419. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_torch_engine.py +0 -0
  420. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_torch_frontend.py +0 -0
  421. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_torch_internal_frontend.py +0 -0
  422. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/test_torch_util.py +0 -0
  423. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tests/torch_utils.py +0 -0
  424. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/_setup_returnn_env.py +0 -0
  425. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/analyze-dataset-batches.py +0 -0
  426. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/bliss-collect-seq-lens.py +0 -0
  427. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/bliss-dump-text.py +0 -0
  428. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/bliss-get-segment-names.py +0 -0
  429. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/bliss-to-ogg-zip.py +0 -0
  430. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/bpe-create-lexicon.py +0 -0
  431. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/calculate-word-error-rate.py +0 -0
  432. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/cleanup-old-models.py +0 -0
  433. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/collect-orth-symbols.py +0 -0
  434. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/collect-words.py +0 -0
  435. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/compile_native_op.py +0 -0
  436. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/compile_tf_graph.py +0 -0
  437. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/debug-dump-search-scores.py +0 -0
  438. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/debug-plot-search-scores.py +0 -0
  439. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/dump-dataset-raw-strings.py +0 -0
  440. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/dump-dataset.py +0 -0
  441. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/dump-forward-stats.py +0 -0
  442. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/dump-forward.py +0 -0
  443. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/dump-network-json.py +0 -0
  444. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/dump-pickle.py +0 -0
  445. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/extract_state_tying_from_dataset.py +0 -0
  446. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/get-attention-weights.py +0 -0
  447. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/get-best-model-epoch.py +0 -0
  448. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/hdf_dump.py +0 -0
  449. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/hdf_dump_translation_dataset.py +0 -0
  450. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/import-blocks-mt-model.py +0 -0
  451. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/import-t2t-mt-model.py +0 -0
  452. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/.gitignore +0 -0
  453. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/Makefile +0 -0
  454. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/README.md +0 -0
  455. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/README.md +0 -0
  456. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/libs_list +0 -0
  457. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  458. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
  459. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  460. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/state_vars_list +0 -0
  461. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  462. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/file.h +0 -0
  463. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  464. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  465. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/main.cc +0 -0
  466. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/rescorer.h +0 -0
  467. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/vocabulary.cc +0 -0
  468. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/lattice_rescorer/vocabulary.h +0 -0
  469. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/tf_avg_checkpoints.py +0 -0
  470. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/tf_inspect_checkpoint.py +0 -0
  471. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/tf_inspect_summary_log.py +0 -0
  472. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/torch_avg_checkpoints.py +0 -0
  473. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/torch_export_to_onnx.py +0 -0
  474. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/torch_inspect_checkpoint.py +0 -0
  475. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
  476. {returnn-1.20250226.115259 → returnn-1.20250226.132109}/tools/torch_scale_tuning.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20250226.115259
3
+ Version: 1.20250226.132109
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.20250226.132109'
2
+ long_version = '1.20250226.132109+git.7dbfd3a'
@@ -325,6 +325,7 @@ def window(
325
325
  padding: str = "same",
326
326
  pad_value: Optional[Union[int, float]] = None,
327
327
  stride: int = 1,
328
+ use_mask: Optional[bool] = None,
328
329
  ) -> Tuple[Tensor, Dim]:
329
330
  """
330
331
  Follows the same idea as RETURNN tf_util.windowed,
@@ -338,8 +339,14 @@ def window(
338
339
  :param padding: "same" or "valid"
339
340
  :param pad_value:
340
341
  :param stride:
342
+ :param use_mask: whether we should mask to make sure the zero padding is correct
341
343
  :return: out, out_spatial_dim
342
344
  """
345
+ if spatial_dim.need_masking():
346
+ if use_mask is None:
347
+ use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
348
+ if use_mask:
349
+ source = source.copy_masked(0, dims=[spatial_dim])
343
350
  assert window_dim.dimension is not None
344
351
  if padding == "same":
345
352
  out_spatial_dim = spatial_dim
@@ -784,6 +791,7 @@ def scatter(
784
791
  mode: str = "sum",
785
792
  fill_value: Optional[Union[int, float]] = None,
786
793
  out_dim: Optional[Union[Dim, Sequence[Dim]]] = None,
794
+ use_mask: Optional[bool] = None,
787
795
  ) -> Tensor:
788
796
  """
789
797
  Scatters into new zero-tensor.
@@ -806,6 +814,7 @@ def scatter(
806
814
  If not given, will be automatically determined as the sparse_dim from indices.
807
815
  If multiple out dims, use indices into the merged out dims,
808
816
  and then we use :func:`rf.split_dims` afterwards.
817
+ :param use_mask:
809
818
  :return: [batch_dims..., out_dim(s)..., feature_dims...]
810
819
  """
811
820
  if mode == "logsumexp":
@@ -826,24 +835,32 @@ def scatter(
826
835
  fill_value = 0
827
836
  elif mode == "max":
828
837
  if "int" in source.dtype:
829
- import numpy
830
-
831
838
  fill_value = numpy.iinfo(source.raw_tensor.dtype).min
832
839
  else:
833
840
  fill_value = float("-inf")
834
841
  elif mode == "min":
835
842
  if "int" in source.dtype:
836
- import numpy
837
-
838
843
  fill_value = numpy.iinfo(source.raw_tensor.dtype).max
839
844
  else:
840
845
  fill_value = float("inf")
841
846
  else:
842
847
  raise ValueError(f"scatter: invalid mode {mode!r}")
848
+ indices_dim = indices_dim if isinstance(indices_dim, (list, tuple)) else [indices_dim]
849
+ if any(dim.need_masking() for dim in indices_dim):
850
+ if use_mask is None:
851
+ use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
852
+ if use_mask:
853
+ source = source.copy_masked(fill_value, dims=indices_dim)
854
+ else:
855
+ use_mask = False
843
856
  # noinspection PyProtectedMember
844
- return source._raw_backend.scatter(
857
+ out = source._raw_backend.scatter(
845
858
  source, indices=indices, indices_dim=indices_dim, mode=mode, fill_value=fill_value, out_dim=out_dim
846
859
  )
860
+ if use_mask and mode != "sum":
861
+ # Make sure we don't leave any infinities in the output.
862
+ out = out.copy_masked(0, dims=[out_dim])
863
+ return out
847
864
 
848
865
 
849
866
  def scatter_argmax(
@@ -34,8 +34,8 @@ class _ConvOrTransposedConv(rf.Module):
34
34
  Base class for both convolution and transposed convolution.
35
35
  """
36
36
 
37
- nd: Optional[int] = None
38
- _transposed: bool
37
+ nd: Optional[int] = None # set in the subclasses, e.g. 1 for Conv1d, etc
38
+ _transposed: bool # set in the subclasses _Conv or _TransposedConv
39
39
  groups: Optional[int] = None
40
40
 
41
41
  def __init__(
@@ -187,8 +187,14 @@ def conv(
187
187
  dilation_rate: Optional[Union[int, Sequence[int]]] = None,
188
188
  groups: Optional[int] = None,
189
189
  bias: Optional[Tensor] = None,
190
+ use_mask: Optional[bool] = None,
190
191
  ) -> Tuple[Tensor, Sequence[Dim]]:
191
192
  """convolution"""
193
+ if any(in_spatial_dim.need_masking() for in_spatial_dim in in_spatial_dims):
194
+ if use_mask is None:
195
+ use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
196
+ if use_mask:
197
+ source = source.copy_masked(0, dims=in_spatial_dims)
192
198
  for in_spatial_dim in in_spatial_dims:
193
199
  if in_spatial_dim not in source.dims:
194
200
  raise ValueError(f"conv: source {source} does not have spatial dim {in_spatial_dim}")
@@ -345,8 +351,14 @@ def transposed_conv(
345
351
  output_padding: Optional[Union[Sequence[Optional[int]], int]] = None,
346
352
  strides: Optional[Sequence[int]] = None,
347
353
  bias: Optional[Tensor] = None,
354
+ use_mask: Optional[bool] = None,
348
355
  ) -> Tuple[Tensor, Sequence[Dim]]:
349
356
  """transposed conv"""
357
+ if any(in_spatial_dim.need_masking() for in_spatial_dim in in_spatial_dims):
358
+ if use_mask is None:
359
+ use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
360
+ if use_mask:
361
+ source = source.copy_masked(0, dims=in_spatial_dims)
350
362
  # noinspection PyProtectedMember
351
363
  out, out_spatial_dims = source._raw_backend.transposed_conv(
352
364
  source=source,
@@ -394,6 +406,7 @@ class TransposedConv3d(_TransposedConv):
394
406
  def pool(
395
407
  source: Tensor,
396
408
  *,
409
+ nd: Optional[int] = None,
397
410
  mode: str,
398
411
  pool_size: Union[Sequence[int], int],
399
412
  padding: str = "valid",
@@ -401,22 +414,23 @@ def pool(
401
414
  strides: Optional[Union[Sequence[int], int]] = None,
402
415
  in_spatial_dims: Union[Sequence[Dim], Dim],
403
416
  out_spatial_dims: Optional[Union[Sequence[Dim], Dim]] = None,
404
- nd: Optional[int] = None,
417
+ use_mask: Optional[bool] = None,
405
418
  ) -> Tuple[Tensor, Sequence[Dim]]:
406
419
  """
407
420
  A generic N-D pooling layer.
408
421
  This would usually be done after a convolution for down-sampling.
409
422
 
410
- :param Tensor source:
423
+ :param source:
411
424
  :param nd:
412
- :param str mode: "max" or "avg"
413
- :param tuple[int] pool_size: shape of the window of each reduce
414
- :param str padding: "valid" or "same"
415
- :param tuple[int]|int dilation_rate:
416
- :param tuple[int]|int|None strides: in contrast to tf.nn.pool, the default (if it is None) will be set to pool_size
417
- :param Sequence[Dim] in_spatial_dims:
418
- :param Sequence[Dim]|None out_spatial_dims:
419
- :return: layer, out_spatial_dims
425
+ :param mode: "max" or "avg"
426
+ :param pool_size: shape of the window of each reduce
427
+ :param padding: "valid" or "same"
428
+ :param dilation_rate:
429
+ :param strides: in contrast to tf.nn.pool, the default (if it is None) will be set to pool_size
430
+ :param in_spatial_dims:
431
+ :param out_spatial_dims:
432
+ :param use_mask:
433
+ :return: out, out_spatial_dims
420
434
  """
421
435
  if isinstance(in_spatial_dims, Dim):
422
436
  in_spatial_dims = [in_spatial_dims]
@@ -440,6 +454,14 @@ def pool(
440
454
  assert isinstance(strides, (list, tuple))
441
455
  assert len(strides) == nd
442
456
 
457
+ if any(in_spatial_dim.need_masking() for in_spatial_dim in in_spatial_dims):
458
+ if use_mask is None:
459
+ use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
460
+ if use_mask:
461
+ source = source.copy_masked({"max": float("-inf"), "avg": 0}[mode], dims=in_spatial_dims)
462
+ else:
463
+ use_mask = False
464
+
443
465
  # noinspection PyProtectedMember
444
466
  out, out_spatial_dims = source._raw_backend.pool(
445
467
  source=source,
@@ -451,6 +473,10 @@ def pool(
451
473
  in_spatial_dims=in_spatial_dims,
452
474
  out_spatial_dims=out_spatial_dims,
453
475
  )
476
+ if use_mask and mode == "max":
477
+ # We masked with -inf for max-pooling to get correct pooling at the boundaries.
478
+ # However, the resulting tensor might have -inf in it, and it is better to mask it out.
479
+ out = out.copy_masked(0, dims=out_spatial_dims)
454
480
  return out, out_spatial_dims
455
481
 
456
482
 
@@ -22,6 +22,7 @@ __all__ = [
22
22
  "num_elements_of_shape",
23
23
  "masked_fraction_of_shape",
24
24
  "last_frame_position_of_dim",
25
+ "use_mask_default",
25
26
  ]
26
27
 
27
28
 
@@ -305,3 +306,42 @@ def last_frame_position_of_dim(
305
306
  pos = rf.maximum(pos, 0)
306
307
  pos.sparse_dim = dim
307
308
  return pos
309
+
310
+
311
+ def use_mask_default(
312
+ *, default: Optional[bool] = None, default_false_for_behavior_version_up_to: Optional[int] = None
313
+ ) -> Optional[bool]:
314
+ """
315
+ Check the global RETURNN config for the ``rf_use_mask``
316
+ on what default we should use for the ``use_mask`` argument in various functions
317
+ (e.g. :func:`conv`, :func:`pool`, :func:`reduce`, :func:`matmul`, ...).
318
+
319
+ See issue `#1691 <https://github.com/rwth-i6/returnn/issues/1691>`__.
320
+
321
+ :param default: what to return if it is not defined in the config,
322
+ and ``default_false_for_behavior_version_up_to`` does not apply.
323
+ :param default_false_for_behavior_version_up_to: if it is not defined in the config,
324
+ and if this is set, and the behavior version is less or equal,
325
+ then return False by default, i.e. do not use the mask by default, if it is not defined in the config.
326
+ This takes precedence over `default`.
327
+ :return: what to use for the ``use_mask`` argument by default
328
+ """
329
+ from returnn.config import get_global_config
330
+
331
+ config = get_global_config(raise_exception=False)
332
+ config_value = None
333
+ if config:
334
+ if "rf_use_mask" in config.typed_dict:
335
+ config_value = config.typed_dict["rf_use_mask"]
336
+ assert config_value is None or isinstance(config_value, bool)
337
+ elif "rf_use_mask" in config.dict:
338
+ config_value = config.bool("rf_use_mask", None)
339
+ if config_value is not None:
340
+ return config_value
341
+
342
+ if default_false_for_behavior_version_up_to is not None:
343
+ from returnn.util.basic import BehaviorVersion
344
+
345
+ if BehaviorVersion.get() <= default_false_for_behavior_version_up_to:
346
+ return False
347
+ return default
@@ -218,10 +218,9 @@ class BatchNorm(rf.Module):
218
218
 
219
219
  if any(d.need_masking() for d in source.dims if d != self.in_dim):
220
220
  if self.use_mask is None:
221
- raise ValueError(
222
- f"{self}: use_mask must be specified if the input {source} has any dynamic spatial dims"
223
- )
224
- use_mask = self.use_mask
221
+ use_mask = rf.use_mask_default(default=True)
222
+ else:
223
+ use_mask = self.use_mask
225
224
  else:
226
225
  use_mask = False # not needed. False because this potentially enables an efficient fused op.
227
226
 
@@ -6,6 +6,7 @@ stft etc
6
6
  from __future__ import annotations
7
7
  from typing import Optional, Tuple
8
8
  from returnn.tensor import Tensor, Dim
9
+ import returnn.frontend as rf
9
10
 
10
11
 
11
12
  __all__ = ["stft"]
@@ -23,6 +24,7 @@ def stft(
23
24
  window_enforce_even: bool = True,
24
25
  out_spatial_dim: Optional[Dim] = None,
25
26
  out_dim: Optional[Dim] = None,
27
+ use_mask: Optional[bool] = None,
26
28
  ) -> Tuple[Tensor, Dim, Dim]:
27
29
  """
28
30
  Calculate the short-time Fourier transform (STFT) of a signal.
@@ -65,8 +67,14 @@ def stft(
65
67
  but in most other frameworks, the behavior matches to window_enforce_even=False.
66
68
  :param out_spatial_dim:
67
69
  :param out_dim:
70
+ :param use_mask:
68
71
  :return: (stft, out_spatial_dim, out_dim)
69
72
  """
73
+ if in_spatial_dim.need_masking():
74
+ if use_mask is None:
75
+ use_mask = rf.use_mask_default(default=True, default_false_for_behavior_version_up_to=22)
76
+ if use_mask:
77
+ x = x.copy_masked(0, dims=[in_spatial_dim])
70
78
  fft_length = fft_length or frame_length
71
79
  if out_dim is None:
72
80
  out_dim = Dim(fft_length // 2 + 1, name="stft-freq")
@@ -219,7 +219,7 @@ class BehaviorVersion:
219
219
  See :ref:`behavior_version`.
220
220
  """
221
221
 
222
- _latest_behavior_version = 22
222
+ _latest_behavior_version = 23
223
223
  _behavior_version = None # type: typing.Optional[int]
224
224
  _min_behavior_version = 0 # type: int
225
225
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20250226.115259
3
+ Version: 1.20250226.132109
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
@@ -193,9 +193,16 @@ def test_pad_packed_batched():
193
193
  in_ = out_dict["in"]
194
194
  flat = out_dict["flat"]
195
195
  out = out_dict["out"]
196
- print(in_.raw_tensor.shape, flat.raw_tensor.shape, out.raw_tensor.shape)
196
+ print("in:", in_, in_.raw_tensor.shape)
197
+ print("in time1:", in_.dims[1].dyn_size)
198
+ print("in time2:", in_.dims[2].dyn_size)
199
+ print("flat:", flat, flat.raw_tensor.shape)
200
+ print("out:", out, out.raw_tensor.shape)
201
+ print("in raw:")
197
202
  print(in_.raw_tensor)
203
+ print("flat raw:")
198
204
  print(flat.raw_tensor)
205
+ print("out raw:")
199
206
  print(out.raw_tensor)
200
207
  np.testing.assert_array_equal(in_.raw_tensor, out.raw_tensor)
201
208
 
@@ -78,6 +78,7 @@ def test_e_branchformer():
78
78
  import torch
79
79
  import returnn.frontend as rf
80
80
  from returnn.util.debug import PyTracer, check_py_traces_rf_to_pt_equal
81
+ from returnn.config import global_config_ctx, Config
81
82
 
82
83
  rf.select_backend_torch()
83
84
  rf.set_random_seed(42)
@@ -300,7 +301,9 @@ def test_e_branchformer():
300
301
  ],
301
302
  Tensor,
302
303
  ) as trace_rf, torch.no_grad():
303
- enc_out, _ = model_rf(enc_in, in_spatial_dim=enc_spatial_dim)
304
+ # ESPnet E-Branchformer does not use masking properly. Keep it disabled here as well.
305
+ with global_config_ctx(Config({"rf_use_mask": False})):
306
+ enc_out, _ = model_rf(enc_in, in_spatial_dim=enc_spatial_dim)
304
307
  enc_out = enc_out.copy_transpose((batch_dim, enc_spatial_dim, model_dim))
305
308
  enc_out = enc_out.copy_masked(0.0)
306
309
 
@@ -1,2 +0,0 @@
1
- version = '1.20250226.115259'
2
- long_version = '1.20250226.115259+git.0d32534'