returnn 1.20241129.101119__tar.gz → 1.20241129.125520__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 (469) hide show
  1. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/PKG-INFO +1 -1
  2. returnn-1.20241129.125520/_setup_info_generated.py +2 -0
  3. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/__main__.py +4 -1
  4. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/hdf.py +1 -1
  5. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/engine.py +28 -5
  6. returnn-1.20241129.125520/returnn/torch/util/debug_inf_nan.py +141 -0
  7. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/better_exchook.py +3 -1
  8. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn.egg-info/PKG-INFO +1 -1
  9. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn.egg-info/SOURCES.txt +1 -0
  10. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_HDFDataset.py +56 -0
  11. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_torch_util.py +51 -0
  12. returnn-1.20241129.101119/_setup_info_generated.py +0 -2
  13. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/.editorconfig +0 -0
  14. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/.gitignore +0 -0
  15. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/.gitmodules +0 -0
  16. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/.kateconfig +0 -0
  17. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/CHANGELOG.md +0 -0
  18. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/CODEOWNERS +0 -0
  19. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/CONTRIBUTING.md +0 -0
  20. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/LICENSE +0 -0
  21. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/MANIFEST.in +0 -0
  22. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/README.rst +0 -0
  23. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/__init__.py +0 -0
  24. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/12AX.cluster_map +0 -0
  25. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/_setup_returnn_env.py +0 -0
  26. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-fwd.config +0 -0
  27. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-horovod-mpi.py +0 -0
  28. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-horovod-mpi.py.sh +0 -0
  29. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-horovod-mpi.sh +0 -0
  30. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-hyper-param-tuning.config +0 -0
  31. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-iter-dataset.py +0 -0
  32. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-list-devices.py +0 -0
  33. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-lua-torch-layer.config +0 -0
  34. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-pretrain.config +0 -0
  35. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-record-and-push-to-webserver.py +0 -0
  36. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-returnn-as-framework.py +0 -0
  37. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-rf-pt-benchmark.py +0 -0
  38. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-rf.config +0 -0
  39. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-rhn-enwik8.config +0 -0
  40. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-sprint-interface.py +0 -0
  41. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-att-copy.config +0 -0
  42. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-attention.config +0 -0
  43. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  44. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  45. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-enc-dec.config +0 -0
  46. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-hard-att-copy.config +0 -0
  47. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-lstm-benchmark.py +0 -0
  48. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  49. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  50. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-native-lstm.12ax.config +0 -0
  51. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  52. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  53. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  54. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  55. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  56. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-rec-self-att.config +0 -0
  57. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-search-compiled-graph.py +0 -0
  58. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  59. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-timit-lstm-ctc.config +0 -0
  60. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-torch.config +0 -0
  61. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  62. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/demo.sh +0 -0
  63. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  64. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  65. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  66. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/README.txt +0 -0
  67. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/chars.txt +0 -0
  68. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/config_demo +0 -0
  69. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/config_fwd +0 -0
  70. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/config_real +0 -0
  71. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  72. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/decode.py +0 -0
  73. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  74. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/go.sh +0 -0
  75. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/lines.txt +0 -0
  76. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/split/eval.txt +0 -0
  77. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/split/train.txt +0 -0
  78. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/IAM/split/valid.txt +0 -0
  79. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/README.md +0 -0
  80. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  81. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/artificial/forwardconfig +0 -0
  82. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/artificial/go.sh +0 -0
  83. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/artificial/trainconfig +0 -0
  84. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  85. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  86. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  87. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  88. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/pyproject.toml +0 -0
  89. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/requirements.txt +0 -0
  90. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/__init__.py +0 -0
  91. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/__old_mod_loader__.py +0 -0
  92. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/__setup__.py +0 -0
  93. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/config.py +0 -0
  94. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/__init__.py +0 -0
  95. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/audio.py +0 -0
  96. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/basic.py +0 -0
  97. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/bundle_file.py +0 -0
  98. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/cached.py +0 -0
  99. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/cached2.py +0 -0
  100. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/distrib_files.py +0 -0
  101. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/generating.py +0 -0
  102. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/lm.py +0 -0
  103. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/map.py +0 -0
  104. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/meta.py +0 -0
  105. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/multi_proc.py +0 -0
  106. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/normalization_data.py +0 -0
  107. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/numpy_dump.py +0 -0
  108. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/postprocessing.py +0 -0
  109. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/raw_wav.py +0 -0
  110. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/sprint.py +0 -0
  111. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/stereo.py +0 -0
  112. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/util/__init__.py +0 -0
  113. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/util/feature_extraction.py +0 -0
  114. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/util/strings.py +0 -0
  115. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/datasets/util/vocabulary.py +0 -0
  116. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/engine/__init__.py +0 -0
  117. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/engine/base.py +0 -0
  118. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/engine/batch.py +0 -0
  119. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/__init__.py +0 -0
  120. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/__main__.py +0 -0
  121. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  122. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  123. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  124. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  125. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  126. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  127. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  128. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  129. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  130. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  131. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  132. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  133. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  134. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  135. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  136. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  137. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  138. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  139. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  140. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  141. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  142. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  143. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  144. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  145. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  146. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/__init__.py +0 -0
  147. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/graph_editor/README.md +0 -0
  148. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/graph_editor/__init__.py +0 -0
  149. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/graph_editor/edit.py +0 -0
  150. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/graph_editor/reroute.py +0 -0
  151. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/graph_editor/select.py +0 -0
  152. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/graph_editor/subgraph.py +0 -0
  153. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/graph_editor/transform.py +0 -0
  154. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/extern/graph_editor/util.py +0 -0
  155. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/forward_iface.py +0 -0
  156. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/__init__.py +0 -0
  157. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_backend.py +0 -0
  158. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_native/__init__.py +0 -0
  159. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_native/backend.cpp +0 -0
  160. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_native/backend.hpp +0 -0
  161. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_native/module.cpp +0 -0
  162. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_native/module.hpp +0 -0
  163. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_native/py_utils.hpp +0 -0
  164. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_native/tensor_ops.cpp +0 -0
  165. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_native/tensor_ops.hpp +0 -0
  166. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_numpy_backend.py +0 -0
  167. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_random_journal.py +0 -0
  168. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/_utils.py +0 -0
  169. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/array_.py +0 -0
  170. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/attention.py +0 -0
  171. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/audio/__init__.py +0 -0
  172. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/audio/mel.py +0 -0
  173. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/audio/specaugment.py +0 -0
  174. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/backend.py +0 -0
  175. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/build_from_dict.py +0 -0
  176. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/cond.py +0 -0
  177. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/const.py +0 -0
  178. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/container.py +0 -0
  179. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/control_flow_ctx.py +0 -0
  180. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/conv.py +0 -0
  181. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/conversions/__init__.py +0 -0
  182. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/conversions/espnet_e_branchformer.py +0 -0
  183. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/conversions/hf_llama.py +0 -0
  184. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/conversions/torch_nn.py +0 -0
  185. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/decoder/__init__.py +0 -0
  186. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/decoder/transformer.py +0 -0
  187. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/device.py +0 -0
  188. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/dims.py +0 -0
  189. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/dropout.py +0 -0
  190. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/dtype.py +0 -0
  191. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/encoder/__init__.py +0 -0
  192. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/encoder/base.py +0 -0
  193. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/encoder/conformer.py +0 -0
  194. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/encoder/e_branchformer.py +0 -0
  195. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/encoder/transformer.py +0 -0
  196. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/gradient.py +0 -0
  197. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/graph.py +0 -0
  198. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/hooks.py +0 -0
  199. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/init.py +0 -0
  200. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/label_smoothing.py +0 -0
  201. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/linear.py +0 -0
  202. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/loop.py +0 -0
  203. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/loss.py +0 -0
  204. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/math_.py +0 -0
  205. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/matmul.py +0 -0
  206. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/module.py +0 -0
  207. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/normalization.py +0 -0
  208. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/parameter.py +0 -0
  209. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/parametrizations.py +0 -0
  210. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/parametrize.py +0 -0
  211. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/piecewise_linear.py +0 -0
  212. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/rand.py +0 -0
  213. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/rec.py +0 -0
  214. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/reduce.py +0 -0
  215. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/run_ctx.py +0 -0
  216. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/signal.py +0 -0
  217. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/state.py +0 -0
  218. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/stepwise_scheduler.py +0 -0
  219. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/tensor_array.py +0 -0
  220. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/frontend/types.py +0 -0
  221. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/import_/__init__.py +0 -0
  222. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/import_/common.py +0 -0
  223. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/import_/git.py +0 -0
  224. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/import_/import_.py +0 -0
  225. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/learning_rate_control.py +0 -0
  226. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/log.py +0 -0
  227. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/native_op.cpp +0 -0
  228. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/native_op.py +0 -0
  229. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/pretrain.py +0 -0
  230. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/sprint/__init__.py +0 -0
  231. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/sprint/cache.py +0 -0
  232. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/sprint/control.py +0 -0
  233. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/sprint/error_signals.py +0 -0
  234. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/sprint/extern_interface.py +0 -0
  235. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/sprint/interface.py +0 -0
  236. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/README.md +0 -0
  237. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/__init__.py +0 -0
  238. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/_dim_extra.py +0 -0
  239. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/_tensor_extra.py +0 -0
  240. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/_tensor_mixin_base.py +0 -0
  241. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/_tensor_op_overloads.py +0 -0
  242. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/control_flow_ctx.py +0 -0
  243. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/dim.py +0 -0
  244. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/marked_dim.py +0 -0
  245. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/tensor.py +0 -0
  246. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/tensor_dict.py +0 -0
  247. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tensor/utils.py +0 -0
  248. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/__init__.py +0 -0
  249. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/compat.py +0 -0
  250. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/data_pipeline.py +0 -0
  251. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/distributed.py +0 -0
  252. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/engine.py +0 -0
  253. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/README.md +0 -0
  254. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/__init__.py +0 -0
  255. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/_backend.py +0 -0
  256. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/_utils.py +0 -0
  257. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/cond.py +0 -0
  258. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  259. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  260. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/dims.py +0 -0
  261. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/layer.py +0 -0
  262. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/loop.py +0 -0
  263. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/make_layer.py +0 -0
  264. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  265. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  266. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  267. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_low_level/__init__.py +0 -0
  268. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/frontend_low_level/_backend.py +0 -0
  269. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/horovod.py +0 -0
  270. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/hyper_param_tuning.py +0 -0
  271. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/layers/__init__.py +0 -0
  272. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/layers/base.py +0 -0
  273. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/layers/basic.py +0 -0
  274. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/layers/rec.py +0 -0
  275. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/layers/segmental_model.py +0 -0
  276. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/layers/signal_processing.py +0 -0
  277. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/layers/variable.py +0 -0
  278. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/native_op.py +0 -0
  279. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/network.py +0 -0
  280. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/sprint.py +0 -0
  281. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/updater.py +0 -0
  282. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/util/__init__.py +0 -0
  283. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/util/basic.py +0 -0
  284. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/util/data.py +0 -0
  285. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/util/gradient_checkpoint.py +0 -0
  286. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/util/ken_lm.py +0 -0
  287. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/tf/util/open_fst.py +0 -0
  288. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/README.md +0 -0
  289. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/__init__.py +0 -0
  290. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/data/__init__.py +0 -0
  291. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/data/extern_data.py +0 -0
  292. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/data/pipeline.py +0 -0
  293. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/data/queued_data_iter.py +0 -0
  294. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  295. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/data/tensor_utils.py +0 -0
  296. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/distributed.py +0 -0
  297. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/frontend/__init__.py +0 -0
  298. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/frontend/_backend.py +0 -0
  299. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/frontend/_rand.py +0 -0
  300. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/frontend/bridge.py +0 -0
  301. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/frontend/raw_ops.py +0 -0
  302. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/optim/README.md +0 -0
  303. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/optim/__init__.py +0 -0
  304. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/optim/lion.py +0 -0
  305. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/updater.py +0 -0
  306. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/util/README.md +0 -0
  307. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/util/__init__.py +0 -0
  308. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/util/array_.py +0 -0
  309. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/util/diagnose_gpu.py +0 -0
  310. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/util/exception_helper.py +0 -0
  311. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/util/gradient_checkpoint.py +0 -0
  312. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/util/module.py +0 -0
  313. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/torch/util/scaled_gradient.py +0 -0
  314. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/__init__.py +0 -0
  315. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/basic.py +0 -0
  316. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/bpe.py +0 -0
  317. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/debug.py +0 -0
  318. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/debug_helpers.py +0 -0
  319. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/file_cache.py +0 -0
  320. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/fsa.py +0 -0
  321. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/literal_py_to_pickle.py +0 -0
  322. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/math.py +0 -0
  323. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
  324. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/native_code_compiler.py +0 -0
  325. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/pprint.py +0 -0
  326. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/py-to-pickle.cpp +0 -0
  327. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/py_compat.py +0 -0
  328. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/py_ext_mod_compiler.py +0 -0
  329. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/result_with_reason.py +0 -0
  330. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/sig_proc.py +0 -0
  331. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/task_system.py +0 -0
  332. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/train_proc_manager.py +0 -0
  333. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn/util/watch_memory.py +0 -0
  334. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn.egg-info/dependency_links.txt +0 -0
  335. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/returnn.egg-info/top_level.txt +0 -0
  336. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/rnn.py +0 -0
  337. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/setup.cfg +0 -0
  338. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/setup.py +0 -0
  339. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/DummySprintExec.py +0 -0
  340. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm-inspection-profile.xml +0 -0
  341. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm.idea/.gitignore +0 -0
  342. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm.idea/.name +0 -0
  343. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  344. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  345. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  346. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  347. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  348. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm.idea/misc.xml +0 -0
  349. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm.idea/modules.xml +0 -0
  350. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm.idea/returnn.iml +0 -0
  351. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  352. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/_set_num_threads1.py +0 -0
  353. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/_setup_returnn_env.py +0 -0
  354. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/_setup_test_env.py +0 -0
  355. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/bpe-unicode-demo.codes +0 -0
  356. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/bpe-unicode-demo.vocab +0 -0
  357. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/lexicon_opt.fst +0 -0
  358. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/lexicon_opt.isyms +0 -0
  359. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/lexicon_opt.jpg +0 -0
  360. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/lexicon_opt.osyms +0 -0
  361. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/lint_common.py +0 -0
  362. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/pycharm-inspect.py +0 -0
  363. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/pylint.py +0 -0
  364. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/returnn-as-framework.py +0 -0
  365. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/rf_utils.py +0 -0
  366. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/spelling.dic +0 -0
  367. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_Config.py +0 -0
  368. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_Dataset.py +0 -0
  369. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_Fsa.py +0 -0
  370. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_GeneratingDataset.py +0 -0
  371. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_LearningRateControl.py +0 -0
  372. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_Log.py +0 -0
  373. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_MultiProcDataset.py +0 -0
  374. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_Pretrain.py +0 -0
  375. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_ResNet.py +0 -0
  376. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_SprintDataset.py +0 -0
  377. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_SprintInterface.py +0 -0
  378. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_TFEngine.py +0 -0
  379. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_TFNativeOp.py +0 -0
  380. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_TFNetworkLayer.py +0 -0
  381. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_TFNetworkRecLayer.py +0 -0
  382. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_TFNetworkSigProcLayer.py +0 -0
  383. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_TFUpdater.py +0 -0
  384. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_TFUtil.py +0 -0
  385. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_TF_determinism.py +0 -0
  386. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_TaskSystem.py +0 -0
  387. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_TaskSystem_SharedMem.py +0 -0
  388. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_TranslationDataset.py +0 -0
  389. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_Util.py +0 -0
  390. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_demos.py +0 -0
  391. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_fork_exec.py +0 -0
  392. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_hdf_dump.py +0 -0
  393. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_array.py +0 -0
  394. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_attention.py +0 -0
  395. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_base.py +0 -0
  396. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_cond.py +0 -0
  397. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_const.py +0 -0
  398. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_container.py +0 -0
  399. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_conv.py +0 -0
  400. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_decoder_transformer.py +0 -0
  401. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_encoder_conformer.py +0 -0
  402. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_gradient.py +0 -0
  403. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_label_smoothing.py +0 -0
  404. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_loop.py +0 -0
  405. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_math.py +0 -0
  406. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_normalization.py +0 -0
  407. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_piecewise_linear.py +0 -0
  408. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_rec.py +0 -0
  409. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_reduce.py +0 -0
  410. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_rf_signal.py +0 -0
  411. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_tensor.py +0 -0
  412. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_tools.py +0 -0
  413. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_torch_dataset.py +0 -0
  414. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_torch_engine.py +0 -0
  415. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_torch_frontend.py +0 -0
  416. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/test_torch_internal_frontend.py +0 -0
  417. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tests/torch_utils.py +0 -0
  418. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/_setup_returnn_env.py +0 -0
  419. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/analyze-dataset-batches.py +0 -0
  420. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/bliss-collect-seq-lens.py +0 -0
  421. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/bliss-dump-text.py +0 -0
  422. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/bliss-get-segment-names.py +0 -0
  423. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/bliss-to-ogg-zip.py +0 -0
  424. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/bpe-create-lexicon.py +0 -0
  425. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/calculate-word-error-rate.py +0 -0
  426. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/cleanup-old-models.py +0 -0
  427. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/collect-orth-symbols.py +0 -0
  428. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/collect-words.py +0 -0
  429. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/compile_native_op.py +0 -0
  430. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/compile_tf_graph.py +0 -0
  431. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/debug-dump-search-scores.py +0 -0
  432. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/debug-plot-search-scores.py +0 -0
  433. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/dump-dataset-raw-strings.py +0 -0
  434. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/dump-dataset.py +0 -0
  435. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/dump-forward-stats.py +0 -0
  436. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/dump-forward.py +0 -0
  437. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/dump-network-json.py +0 -0
  438. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/dump-pickle.py +0 -0
  439. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/extract_state_tying_from_dataset.py +0 -0
  440. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/get-attention-weights.py +0 -0
  441. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/get-best-model-epoch.py +0 -0
  442. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/hdf_dump.py +0 -0
  443. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/hdf_dump_translation_dataset.py +0 -0
  444. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/import-blocks-mt-model.py +0 -0
  445. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/import-t2t-mt-model.py +0 -0
  446. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/.gitignore +0 -0
  447. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/Makefile +0 -0
  448. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/README.md +0 -0
  449. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/example/README.md +0 -0
  450. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/example/libs_list +0 -0
  451. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  452. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
  453. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  454. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/example/state_vars_list +0 -0
  455. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  456. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/file.h +0 -0
  457. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  458. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  459. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/main.cc +0 -0
  460. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/rescorer.h +0 -0
  461. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/vocabulary.cc +0 -0
  462. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/lattice_rescorer/vocabulary.h +0 -0
  463. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/tf_avg_checkpoints.py +0 -0
  464. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/tf_inspect_checkpoint.py +0 -0
  465. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/tf_inspect_summary_log.py +0 -0
  466. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/torch_avg_checkpoints.py +0 -0
  467. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/torch_export_to_onnx.py +0 -0
  468. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/torch_inspect_checkpoint.py +0 -0
  469. {returnn-1.20241129.101119 → returnn-1.20241129.125520}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20241129.101119
3
+ Version: 1.20241129.125520
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.20241129.125520'
2
+ long_version = '1.20241129.125520+git.882e00c'
@@ -585,7 +585,10 @@ def execute_main_task():
585
585
  assert forward_callback, "no forward_callback specified"
586
586
  if callable(forward_callback):
587
587
  forward_callback = forward_callback()
588
- engine.forward_with_callback(dataset=data, callback=forward_callback)
588
+ allow_skipping_seqs = config.bool("allow_skipping_seqs_in_forward", False)
589
+ engine.forward_with_callback(
590
+ dataset=data, callback=forward_callback, allow_skipping_seqs=allow_skipping_seqs
591
+ )
589
592
  else:
590
593
  assert BackendEngine.is_tensorflow_selected()
591
594
  assert eval_data is not None, "no eval data provided"
@@ -1257,7 +1257,7 @@ class SimpleHDFWriter:
1257
1257
  assert isinstance(raw_data, numpy.ndarray), "raw_data is %r of type %r" % (raw_data, type(raw_data))
1258
1258
  if add_time_dim or raw_data.ndim == 0:
1259
1259
  raw_data = numpy.expand_dims(raw_data, 0)
1260
- assert raw_data.ndim > 0 and raw_data.shape[0] > 0
1260
+ assert raw_data.ndim > 0
1261
1261
  if dtype:
1262
1262
  raw_data = raw_data.astype(dtype)
1263
1263
  if dim is None:
@@ -46,6 +46,7 @@ from .frontend.bridge import rf_module_to_pt_module
46
46
  from .util import diagnose_gpu
47
47
  from .util import module as util_module
48
48
  from .util.exception_helper import help_on_torch_exception
49
+ from .util.debug_inf_nan import debug_inf_nan
49
50
  from .distributed import DistributedContext, get_ctx as dist_get_ctx
50
51
 
51
52
 
@@ -499,6 +500,13 @@ class Engine(EngineBase):
499
500
  accumulated_losses_dict / accumulated_inv_norm_factors_dict,
500
501
  file=log.v1,
501
502
  )
503
+
504
+ def _debug_func() -> torch.Tensor:
505
+ self._run_step(extern_data, train_flag=True, train_func=True)
506
+ return rf.get_run_ctx().total_loss()
507
+
508
+ print("Running debug_inf_nan...", file=log.v1)
509
+ debug_inf_nan(_debug_func, with_grad=True)
502
510
  raise Exception(f"Inf/nan score in step {step_idx}.")
503
511
 
504
512
  step_idx += 1
@@ -1140,7 +1148,12 @@ class Engine(EngineBase):
1140
1148
  os.unlink(filename)
1141
1149
 
1142
1150
  def forward_with_callback(
1143
- self, *, dataset: Dataset, callback: ForwardCallbackIface, dataset_init_epoch: bool = True
1151
+ self,
1152
+ *,
1153
+ dataset: Dataset,
1154
+ callback: ForwardCallbackIface,
1155
+ dataset_init_epoch: bool = True,
1156
+ allow_skipping_seqs: bool = False,
1144
1157
  ):
1145
1158
  """forward"""
1146
1159
  assert isinstance(dataset, Dataset)
@@ -1163,10 +1176,20 @@ class Engine(EngineBase):
1163
1176
  file=log.v3,
1164
1177
  )
1165
1178
 
1166
- assert (self._min_seq_length is None) and (self._max_seq_length is None), (
1167
- f"min_seq_length {self._min_seq_length}, max_seq_length {self._max_seq_length} not allowed,"
1168
- f" we want to keep all source sentences."
1169
- )
1179
+ if allow_skipping_seqs:
1180
+ # Dangerous! If you enable this, you could lose sequences,
1181
+ # and your evaluation pipeline may silently produce incorrect results!
1182
+ print(
1183
+ f"Note: allow_skipping_seqs is enabled (with min_seq_length {self._min_seq_length},"
1184
+ f" max_seq_length {self._max_seq_length}),"
1185
+ f" this may lead to incorrect evaluation results!",
1186
+ file=log.v2,
1187
+ )
1188
+ else:
1189
+ assert (self._min_seq_length is None) and (self._max_seq_length is None), (
1190
+ f"min_seq_length {self._min_seq_length}, max_seq_length {self._max_seq_length} not allowed,"
1191
+ f" we want to keep all source sentences."
1192
+ )
1170
1193
 
1171
1194
  data_loader = self._create_data_loader(dataset, dataset_init_epoch=dataset_init_epoch)
1172
1195
  if self._forward_auto_split_batch_on_oom:
@@ -0,0 +1,141 @@
1
+ """
2
+ Helpers to debug nan/inf values in tensors.
3
+ E.g., you get nan/inf values in the loss, and you want to know where it comes from.
4
+ There could be multiple potential sources:
5
+
6
+ - The parameters are already broken (nan/inf).
7
+ Then some prev step caused this.
8
+ For this, we might want to add another option which performs a check before we update params,
9
+ so that updating params will never break them unnoticed.
10
+ - The gradients are broken (nan/inf).
11
+ There are some PyTorch utilities to check this.
12
+ This is currently not the focus here.
13
+ - Some part of the (forward) computation results in nan/inf.
14
+ Currently, this is the focus here.
15
+ We want to know where this happens.
16
+
17
+ We could run the forward pass again in different modes:
18
+
19
+ - Python tracing, and inspecting all local variables which are tensors.
20
+ (Probably slow).
21
+ - PyTorch JIT tracing to compute the loss. This will give us the computation graph.
22
+ We can run this computation graph again and inspect all the intermediate values,
23
+ and then see where the nan/inf values come from.
24
+ - PyTorch profiling.
25
+
26
+ Note, one problem is non-determinism in the computation via e.g. dropout.
27
+ So the method might not be totally reliable.
28
+ Also, there might be inf/nan values which are ok, expected, and not a problem
29
+ (e.g. masking the logits for attention).
30
+ So we don't stop on the first occurrence but just report all of them.
31
+ """
32
+
33
+
34
+ from __future__ import annotations
35
+
36
+ import sys
37
+ from typing import Optional, Union, Callable, TextIO
38
+ from io import TextIOBase
39
+ import traceback
40
+ from types import FrameType
41
+ import torch
42
+
43
+ # noinspection PyProtectedMember
44
+ from torch.utils._python_dispatch import TorchDispatchMode
45
+
46
+ # noinspection PyProtectedMember
47
+ from torch._dispatch.python import no_python_dispatcher
48
+
49
+
50
+ def debug_inf_nan(
51
+ func: Callable[[], Optional[torch.Tensor]],
52
+ *,
53
+ with_grad: bool = False,
54
+ report_every_op_call: bool = True,
55
+ file: Optional[Union[TextIO, TextIOBase]] = None,
56
+ ):
57
+ """
58
+ Debug the function.
59
+
60
+ :param func: will be called like func(). if `with_grad`, we expect some loss tensor as return,
61
+ and we will call `loss = func(); loss.backward()`.
62
+ :param with_grad: whether to compute and debug gradients for inf/nan.
63
+ :param report_every_op_call: whether to report every op call.
64
+ :param file: where to write the output to. Default is stdout.
65
+ """
66
+
67
+ if file is None:
68
+ file = sys.stdout
69
+
70
+ # noinspection PyUnresolvedReferences,PyProtectedMember
71
+ cur_frame: FrameType = sys._getframe()
72
+ trace_ops = _TraceOps(root_frame=cur_frame, file=file, report_every_op_call=report_every_op_call)
73
+
74
+ if with_grad:
75
+
76
+ with torch.autograd.detect_anomaly():
77
+ with trace_ops: # currently only for forward (but we might want to trace the backward too)
78
+ loss = func()
79
+ try:
80
+ loss.backward()
81
+ except RuntimeError as exc:
82
+ print(f"Caught RuntimeError in backward: {exc}", file=file)
83
+
84
+ else: # without grad
85
+
86
+ with trace_ops:
87
+ func()
88
+
89
+
90
+ # For efficiency, and to be less spammy
91
+ _TraceFuncNameBlacklist = {
92
+ "aten::detach",
93
+ "aten::zeros_like",
94
+ "aten::ones_like",
95
+ }
96
+
97
+
98
+ class _TraceOps(TorchDispatchMode):
99
+ def __init__(self, *, root_frame: FrameType, file: Union[TextIO, TextIOBase], report_every_op_call: bool = True):
100
+ super().__init__()
101
+ self.root_frame = root_frame
102
+ self.file = file
103
+ self.report_every_op_call = report_every_op_call
104
+
105
+ def __torch_dispatch__(self, func, types, args=(), kwargs=None):
106
+ if kwargs is None:
107
+ kwargs = {}
108
+ if func.name() in _TraceFuncNameBlacklist:
109
+ return func(*args, **kwargs)
110
+ if self.report_every_op_call:
111
+ print(f"--- op {func.name()}", file=self.file)
112
+ out = func(*args, **kwargs)
113
+ if isinstance(out, torch.Tensor):
114
+ with no_python_dispatcher():
115
+ got_nan_inf_t = torch.stack([torch.isnan(out).any(), torch.isinf(out).any()]).cpu()
116
+ got_nan = got_nan_inf_t[0].item()
117
+ got_inf = got_nan_inf_t[1].item()
118
+ if got_nan or got_inf:
119
+ s = "/".join([s_ for s_, b in [("nan", got_nan), ("inf", got_inf)] if b])
120
+ print(f"--> {s} in {func}: {out}", file=self.file)
121
+ traceback.print_list(
122
+ _extract_stack_up_to(skip_top_num_frames=1, root_frame=self.root_frame), file=self.file
123
+ )
124
+ return out
125
+
126
+
127
+ def _walk_stack_up_to(f: FrameType, *, root_frame: FrameType):
128
+ while f is not None and f != root_frame:
129
+ yield f, f.f_lineno
130
+ f = f.f_back
131
+
132
+
133
+ def _extract_stack_up_to(*, skip_top_num_frames: int = 0, root_frame: FrameType):
134
+ # noinspection PyUnresolvedReferences,PyProtectedMember
135
+ frame = sys._getframe()
136
+ skip_top_num_frames += 1 # skip this function
137
+ for _ in range(skip_top_num_frames):
138
+ frame = frame.f_back
139
+ stack = traceback.StackSummary.extract(_walk_stack_up_to(frame, root_frame=root_frame))
140
+ stack.reverse()
141
+ return stack
@@ -40,7 +40,9 @@ See these functions:
40
40
  - get_current_frame
41
41
  - dump_all_thread_tracebacks
42
42
  - install
43
+ - setup_all
43
44
  - replace_traceback_format_tb
45
+ - replace_traceback_print_tb
44
46
 
45
47
  Although there might be a few more useful functions, thus we export all of them.
46
48
 
@@ -324,7 +326,7 @@ def debug_shell(user_ns, user_global_ns, traceback=None, execWrapper=None):
324
326
  """
325
327
  Run the IPython shell.
326
328
  """
327
- pdb_obj.interaction(None, traceback=traceback)
329
+ pdb_obj.interaction(None, traceback)
328
330
 
329
331
  except Exception:
330
332
  print("IPython Pdb exception:")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20241129.101119
3
+ Version: 1.20241129.125520
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
@@ -304,6 +304,7 @@ returnn/torch/optim/lion.py
304
304
  returnn/torch/util/README.md
305
305
  returnn/torch/util/__init__.py
306
306
  returnn/torch/util/array_.py
307
+ returnn/torch/util/debug_inf_nan.py
307
308
  returnn/torch/util/diagnose_gpu.py
308
309
  returnn/torch/util/exception_helper.py
309
310
  returnn/torch/util/gradient_checkpoint.py
@@ -301,6 +301,62 @@ def test_SimpleHDFWriter_small():
301
301
  print(repr(gzip.compress(open(fn, "rb").read())))
302
302
 
303
303
 
304
+ def test_SimpleHDFWriter_empty_extra():
305
+ # This tests whether adding empty data in extra works
306
+ fn = get_test_tmp_file(suffix=".hdf")
307
+ os.remove(fn) # SimpleHDFWriter expects that the file does not exist
308
+ n_dim = 2
309
+ writer = SimpleHDFWriter(filename=fn, dim=n_dim, labels=None)
310
+
311
+ j = 0
312
+ all_seq_lens = []
313
+ # seed
314
+ numpy.random.seed(42)
315
+ while j < 1000:
316
+ batch_size = numpy.random.randint(1, 10)
317
+ seq_lens = numpy.random.randint(0, 8, size=batch_size)
318
+ main_input = numpy.random.normal(size=(len(seq_lens), max(seq_lens), n_dim)).astype("float32")
319
+
320
+ extra_input = main_input.copy() + 4.2
321
+ assert main_input.shape == extra_input.shape
322
+
323
+ writer.insert_batch(
324
+ inputs=main_input,
325
+ seq_len=seq_lens,
326
+ seq_tag=["seq-%i" % (j + i) for i in range(len(seq_lens))],
327
+ extra={"test-extra": extra_input},
328
+ )
329
+ j += len(seq_lens)
330
+ all_seq_lens += seq_lens.tolist()
331
+
332
+ assert 0 in all_seq_lens, "please update random seed, we expect to test empty seqs"
333
+
334
+ writer.close()
335
+
336
+ dataset = HDFDataset(files=[fn])
337
+ assert dataset.get_data_keys() == ["data", "test-extra"], dataset.get_data_keys()
338
+ assert dataset.get_target_list() == ["test-extra"]
339
+ reader = DatasetTestReader(dataset=dataset)
340
+ reader.read_all()
341
+ assert "data" in reader.data_keys
342
+ assert "test-extra" in reader.data_keys
343
+ assert reader.data_sparse["data"] is False
344
+ assert list(reader.data_shape["data"]) == [n_dim]
345
+ assert reader.data_dtype["data"] == "float32"
346
+ assert j == reader.num_seqs
347
+ assert j == len(reader.seq_lens)
348
+
349
+ for i, seq_len in enumerate(all_seq_lens):
350
+ assert reader.seq_lens[i]["data"] == seq_len
351
+ for k in range(0, seq_len): # only test the first seq_len elements
352
+ a = reader.data["data"][i][k] + 4.2
353
+ b = reader.data["test-extra"][i][k]
354
+ assert numpy.allclose(a, b), f"i={i}"
355
+
356
+ assert_equal(reader.seq_tags, ["seq-%i" % i for i in range(reader.num_seqs)])
357
+ assert isinstance(reader.seq_tags[0], str)
358
+
359
+
304
360
  def test_read_simple_hdf():
305
361
  if sys.version_info[0] <= 2: # gzip.decompress is >=PY3
306
362
  raise unittest.SkipTest
@@ -247,6 +247,57 @@ def test_saved_tensors_hooks_gc_segfault():
247
247
  x.sum().backward()
248
248
 
249
249
 
250
+ def test_debug_inf_nan():
251
+ param = torch.nn.Parameter(torch.tensor([0.5349, 0.8094, -100, 0, -0.9890, 1, 1.3221, 0.8172, -0.7658, -0.7506]))
252
+
253
+ def func():
254
+ x = torch.tensor([0.5349, 0, 1.1103, -1.6898, -0.9890, 1, 1.3221, 0.8172, -0.7658, -0.7506])
255
+ x = mod1(x)
256
+ x = mod2(x)
257
+ x = mod3(x) * param
258
+ x = mod4(x)
259
+ x = mod1(x)
260
+ x = mod2(x)
261
+ x = mod2(x)
262
+ x = mod5(x)
263
+ return x.sum()
264
+
265
+ def mod1(x: torch.Tensor) -> torch.Tensor:
266
+ return x * 2
267
+
268
+ def mod2(x: torch.Tensor) -> torch.Tensor:
269
+ return x.exp()
270
+
271
+ def mod3(x: torch.Tensor) -> torch.Tensor:
272
+ return x - 2
273
+
274
+ def mod4(x: torch.Tensor) -> torch.Tensor:
275
+ x.subtract_(-3.5)
276
+ return x
277
+
278
+ def mod5(x: torch.Tensor) -> torch.Tensor:
279
+ return x / x
280
+
281
+ x = func()
282
+ print(x)
283
+ print("inf/nan:", torch.isinf(x).any().item(), torch.isnan(x).any().item())
284
+
285
+ from returnn.torch.util.debug_inf_nan import debug_inf_nan
286
+
287
+ # Run directly, to just test that it goes through without exception.
288
+ # For some reason, the detect_anomaly does not print the forward op?
289
+ debug_inf_nan(func, with_grad=True)
290
+
291
+ from io import StringIO
292
+
293
+ out = StringIO()
294
+ debug_inf_nan(func, file=out)
295
+ assert "inf in aten.exp" in out.getvalue()
296
+ assert "nan in aten.div" in out.getvalue()
297
+ assert "mod5" in out.getvalue()
298
+ assert os.path.basename(__file__) in out.getvalue()
299
+
300
+
250
301
  if __name__ == "__main__":
251
302
  better_exchook.install()
252
303
  if len(sys.argv) <= 1:
@@ -1,2 +0,0 @@
1
- version = '1.20241129.101119'
2
- long_version = '1.20241129.101119+git.7c5a5fb'