returnn 1.20231108.124950__tar.gz → 1.20231109.122538__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 (436) hide show
  1. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/LICENSE +6 -0
  2. {returnn-1.20231108.124950/returnn.egg-info → returnn-1.20231109.122538}/PKG-INFO +1 -1
  3. returnn-1.20231109.122538/_setup_info_generated.py +2 -0
  4. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/sprint.py +6 -27
  5. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/container.py +49 -10
  6. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/sprint/control.py +4 -26
  7. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/sprint/error_signals.py +4 -25
  8. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/sprint/extern_interface.py +3 -11
  9. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/basic.py +55 -1
  10. {returnn-1.20231108.124950 → returnn-1.20231109.122538/returnn.egg-info}/PKG-INFO +1 -1
  11. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_container.py +0 -35
  12. returnn-1.20231108.124950/_setup_info_generated.py +0 -2
  13. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/.editorconfig +0 -0
  14. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/.gitignore +0 -0
  15. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/.gitmodules +0 -0
  16. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/.kateconfig +0 -0
  17. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/CHANGELOG.md +0 -0
  18. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/CODEOWNERS +0 -0
  19. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/CONTRIBUTING.md +0 -0
  20. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/MANIFEST.in +0 -0
  21. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/README.rst +0 -0
  22. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/__init__.py +0 -0
  23. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/12AX.cluster_map +0 -0
  24. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/_setup_returnn_env.py +0 -0
  25. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-fwd.config +0 -0
  26. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-horovod-mpi.py +0 -0
  27. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-horovod-mpi.py.sh +0 -0
  28. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-horovod-mpi.sh +0 -0
  29. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-hyper-param-tuning.config +0 -0
  30. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-iter-dataset.py +0 -0
  31. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-list-devices.py +0 -0
  32. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-lua-torch-layer.config +0 -0
  33. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-pretrain.config +0 -0
  34. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-record-and-push-to-webserver.py +0 -0
  35. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-returnn-as-framework.py +0 -0
  36. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-rf-pt-benchmark.py +0 -0
  37. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-rf.config +0 -0
  38. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-rhn-enwik8.config +0 -0
  39. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-sprint-interface.py +0 -0
  40. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-att-copy.config +0 -0
  41. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-attention.config +0 -0
  42. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  43. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  44. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-enc-dec.config +0 -0
  45. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-hard-att-copy.config +0 -0
  46. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-lstm-benchmark.py +0 -0
  47. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  48. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  49. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-native-lstm.12ax.config +0 -0
  50. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  51. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  52. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  53. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  54. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  55. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-rec-self-att.config +0 -0
  56. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-search-compiled-graph.py +0 -0
  57. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  58. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-timit-lstm-ctc.config +0 -0
  59. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-torch.config +0 -0
  60. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  61. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/demo.sh +0 -0
  62. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  63. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  64. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  65. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/README.txt +0 -0
  66. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/chars.txt +0 -0
  67. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/config_demo +0 -0
  68. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/config_fwd +0 -0
  69. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/config_real +0 -0
  70. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  71. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/decode.py +0 -0
  72. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  73. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/go.sh +0 -0
  74. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/lines.txt +0 -0
  75. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/split/eval.txt +0 -0
  76. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/split/train.txt +0 -0
  77. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/IAM/split/valid.txt +0 -0
  78. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/README.md +0 -0
  79. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  80. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/artificial/forwardconfig +0 -0
  81. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/artificial/go.sh +0 -0
  82. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/artificial/trainconfig +0 -0
  83. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  84. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  85. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  86. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  87. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/pyproject.toml +0 -0
  88. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/requirements.txt +0 -0
  89. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/__init__.py +0 -0
  90. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/__main__.py +0 -0
  91. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/__old_mod_loader__.py +0 -0
  92. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/__setup__.py +0 -0
  93. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/config.py +0 -0
  94. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/__init__.py +0 -0
  95. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/audio.py +0 -0
  96. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/basic.py +0 -0
  97. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/bundle_file.py +0 -0
  98. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/cached.py +0 -0
  99. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/cached2.py +0 -0
  100. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/generating.py +0 -0
  101. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/hdf.py +0 -0
  102. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/lm.py +0 -0
  103. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/map.py +0 -0
  104. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/meta.py +0 -0
  105. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/multi_proc.py +0 -0
  106. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/normalization_data.py +0 -0
  107. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/numpy_dump.py +0 -0
  108. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/raw_wav.py +0 -0
  109. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/stereo.py +0 -0
  110. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/util/__init__.py +0 -0
  111. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/util/feature_extraction.py +0 -0
  112. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/util/strings.py +0 -0
  113. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/datasets/util/vocabulary.py +0 -0
  114. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/engine/__init__.py +0 -0
  115. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/engine/base.py +0 -0
  116. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/engine/batch.py +0 -0
  117. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/__init__.py +0 -0
  118. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/__main__.py +0 -0
  119. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  120. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  121. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  122. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  123. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  124. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  125. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  126. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  127. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  128. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  129. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  130. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  131. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  132. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  133. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  134. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  135. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  136. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  137. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  138. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  139. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  140. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  141. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  142. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  143. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  144. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/__init__.py +0 -0
  145. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/graph_editor/README.md +0 -0
  146. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/graph_editor/__init__.py +0 -0
  147. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/graph_editor/edit.py +0 -0
  148. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/graph_editor/reroute.py +0 -0
  149. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/graph_editor/select.py +0 -0
  150. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/graph_editor/subgraph.py +0 -0
  151. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/graph_editor/transform.py +0 -0
  152. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/extern/graph_editor/util.py +0 -0
  153. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/forward_iface.py +0 -0
  154. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/__init__.py +0 -0
  155. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_backend.py +0 -0
  156. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_native/__init__.py +0 -0
  157. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_native/backend.cpp +0 -0
  158. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_native/backend.hpp +0 -0
  159. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_native/module.cpp +0 -0
  160. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_native/module.hpp +0 -0
  161. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_native/py_utils.hpp +0 -0
  162. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_native/tensor_ops.cpp +0 -0
  163. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_native/tensor_ops.hpp +0 -0
  164. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_numpy_backend.py +0 -0
  165. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_random_journal.py +0 -0
  166. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/_utils.py +0 -0
  167. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/array_.py +0 -0
  168. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/attention.py +0 -0
  169. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/audio/__init__.py +0 -0
  170. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/audio/mel.py +0 -0
  171. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/audio/specaugment.py +0 -0
  172. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/backend.py +0 -0
  173. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/cond.py +0 -0
  174. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/const.py +0 -0
  175. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/control_flow_ctx.py +0 -0
  176. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/conv.py +0 -0
  177. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/device.py +0 -0
  178. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/dims.py +0 -0
  179. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/dropout.py +0 -0
  180. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/dtype.py +0 -0
  181. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/encoder/__init__.py +0 -0
  182. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/encoder/base.py +0 -0
  183. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/encoder/conformer.py +0 -0
  184. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/gradient.py +0 -0
  185. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/graph.py +0 -0
  186. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/init.py +0 -0
  187. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/label_smoothing.py +0 -0
  188. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/linear.py +0 -0
  189. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/loop.py +0 -0
  190. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/loss.py +0 -0
  191. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/math_.py +0 -0
  192. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/matmul.py +0 -0
  193. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/module.py +0 -0
  194. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/normalization.py +0 -0
  195. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/parameter.py +0 -0
  196. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/rand.py +0 -0
  197. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/rec.py +0 -0
  198. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/reduce.py +0 -0
  199. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/run_ctx.py +0 -0
  200. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/signal.py +0 -0
  201. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/state.py +0 -0
  202. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/tensor_array.py +0 -0
  203. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/frontend/types.py +0 -0
  204. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/import_/__init__.py +0 -0
  205. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/import_/common.py +0 -0
  206. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/import_/git.py +0 -0
  207. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/import_/import_.py +0 -0
  208. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/learning_rate_control.py +0 -0
  209. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/log.py +0 -0
  210. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/native_op.cpp +0 -0
  211. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/native_op.py +0 -0
  212. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/pretrain.py +0 -0
  213. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/sprint/__init__.py +0 -0
  214. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/sprint/cache.py +0 -0
  215. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/sprint/interface.py +0 -0
  216. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/README.md +0 -0
  217. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/__init__.py +0 -0
  218. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/_dim_extra.py +0 -0
  219. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/_tensor_extra.py +0 -0
  220. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/_tensor_mixin_base.py +0 -0
  221. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/_tensor_op_overloads.py +0 -0
  222. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/control_flow_ctx.py +0 -0
  223. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/dim.py +0 -0
  224. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/marked_dim.py +0 -0
  225. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/tensor.py +0 -0
  226. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/tensor_dict.py +0 -0
  227. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tensor/utils.py +0 -0
  228. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/__init__.py +0 -0
  229. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/compat.py +0 -0
  230. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/data_pipeline.py +0 -0
  231. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/distributed.py +0 -0
  232. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/engine.py +0 -0
  233. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/README.md +0 -0
  234. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/__init__.py +0 -0
  235. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/_backend.py +0 -0
  236. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/_utils.py +0 -0
  237. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/cond.py +0 -0
  238. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  239. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  240. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/dims.py +0 -0
  241. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/layer.py +0 -0
  242. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/loop.py +0 -0
  243. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/make_layer.py +0 -0
  244. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  245. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  246. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  247. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_low_level/__init__.py +0 -0
  248. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/frontend_low_level/_backend.py +0 -0
  249. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/horovod.py +0 -0
  250. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/hyper_param_tuning.py +0 -0
  251. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/layers/__init__.py +0 -0
  252. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/layers/base.py +0 -0
  253. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/layers/basic.py +0 -0
  254. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/layers/rec.py +0 -0
  255. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/layers/segmental_model.py +0 -0
  256. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/layers/signal_processing.py +0 -0
  257. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/layers/variable.py +0 -0
  258. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/native_op.py +0 -0
  259. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/network.py +0 -0
  260. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/sprint.py +0 -0
  261. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/updater.py +0 -0
  262. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/util/__init__.py +0 -0
  263. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/util/basic.py +0 -0
  264. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/util/data.py +0 -0
  265. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/util/gradient_checkpoint.py +0 -0
  266. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/util/ken_lm.py +0 -0
  267. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/tf/util/open_fst.py +0 -0
  268. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/README.md +0 -0
  269. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/__init__.py +0 -0
  270. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/data/__init__.py +0 -0
  271. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/data/extern_data.py +0 -0
  272. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/data/pipeline.py +0 -0
  273. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  274. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/data/tensor_utils.py +0 -0
  275. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/distributed.py +0 -0
  276. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/engine.py +0 -0
  277. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/frontend/__init__.py +0 -0
  278. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/frontend/_backend.py +0 -0
  279. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/frontend/_rand.py +0 -0
  280. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/frontend/bridge.py +0 -0
  281. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/frontend/raw_ops.py +0 -0
  282. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/functional/README.md +0 -0
  283. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/functional/__init__.py +0 -0
  284. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/functional/diagnose_gpu.py +0 -0
  285. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/functional/scaled_gradient.py +0 -0
  286. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/torch/updater.py +0 -0
  287. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/__init__.py +0 -0
  288. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/better_exchook.py +0 -0
  289. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/bpe.py +0 -0
  290. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/debug.py +0 -0
  291. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/debug_helpers.py +0 -0
  292. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/fsa.py +0 -0
  293. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/literal_py_to_pickle.py +0 -0
  294. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/math.py +0 -0
  295. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/native_code_compiler.py +0 -0
  296. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/pprint.py +0 -0
  297. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/py-to-pickle.cpp +0 -0
  298. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/py_compat.py +0 -0
  299. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/py_ext_mod_compiler.py +0 -0
  300. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/result_with_reason.py +0 -0
  301. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/sig_proc.py +0 -0
  302. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/task_system.py +0 -0
  303. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn/util/watch_memory.py +0 -0
  304. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn.egg-info/SOURCES.txt +0 -0
  305. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn.egg-info/dependency_links.txt +0 -0
  306. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/returnn.egg-info/top_level.txt +0 -0
  307. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/rnn.py +0 -0
  308. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/setup.cfg +0 -0
  309. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/setup.py +0 -0
  310. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/DummySprintExec.py +0 -0
  311. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm-inspection-profile.xml +0 -0
  312. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm.idea/.gitignore +0 -0
  313. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm.idea/.name +0 -0
  314. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  315. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  316. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  317. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  318. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  319. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm.idea/misc.xml +0 -0
  320. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm.idea/modules.xml +0 -0
  321. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm.idea/returnn.iml +0 -0
  322. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  323. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/_set_num_threads1.py +0 -0
  324. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/_setup_returnn_env.py +0 -0
  325. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/_setup_test_env.py +0 -0
  326. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/bpe-unicode-demo.codes +0 -0
  327. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/bpe-unicode-demo.vocab +0 -0
  328. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/lexicon_opt.fst +0 -0
  329. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/lexicon_opt.isyms +0 -0
  330. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/lexicon_opt.jpg +0 -0
  331. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/lexicon_opt.osyms +0 -0
  332. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/lint_common.py +0 -0
  333. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/pycharm-inspect.py +0 -0
  334. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/pylint.py +0 -0
  335. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/returnn-as-framework.py +0 -0
  336. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/rf_utils.py +0 -0
  337. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/spelling.dic +0 -0
  338. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_Config.py +0 -0
  339. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_Dataset.py +0 -0
  340. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_Fsa.py +0 -0
  341. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_GeneratingDataset.py +0 -0
  342. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_HDFDataset.py +0 -0
  343. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_LearningRateControl.py +0 -0
  344. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_Log.py +0 -0
  345. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_MultiProcDataset.py +0 -0
  346. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_Pretrain.py +0 -0
  347. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_ResNet.py +0 -0
  348. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_SprintDataset.py +0 -0
  349. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_SprintInterface.py +0 -0
  350. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_TFEngine.py +0 -0
  351. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_TFNativeOp.py +0 -0
  352. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_TFNetworkLayer.py +0 -0
  353. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_TFNetworkRecLayer.py +0 -0
  354. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_TFNetworkSigProcLayer.py +0 -0
  355. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_TFUpdater.py +0 -0
  356. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_TFUtil.py +0 -0
  357. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_TF_determinism.py +0 -0
  358. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_TaskSystem.py +0 -0
  359. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_TaskSystem_SharedMem.py +0 -0
  360. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_TranslationDataset.py +0 -0
  361. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_Util.py +0 -0
  362. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_demos.py +0 -0
  363. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_fork_exec.py +0 -0
  364. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_hdf_dump.py +0 -0
  365. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_array.py +0 -0
  366. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_attention.py +0 -0
  367. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_base.py +0 -0
  368. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_cond.py +0 -0
  369. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_const.py +0 -0
  370. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_conv.py +0 -0
  371. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_encoder_conformer.py +0 -0
  372. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_gradient.py +0 -0
  373. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_label_smoothing.py +0 -0
  374. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_loop.py +0 -0
  375. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_math.py +0 -0
  376. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_normalization.py +0 -0
  377. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_rec.py +0 -0
  378. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_reduce.py +0 -0
  379. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_rf_signal.py +0 -0
  380. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_tensor.py +0 -0
  381. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_tools.py +0 -0
  382. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_torch_dataset.py +0 -0
  383. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_torch_engine.py +0 -0
  384. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_torch_frontend.py +0 -0
  385. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tests/test_torch_internal_frontend.py +0 -0
  386. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/_setup_returnn_env.py +0 -0
  387. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/analyze-dataset-batches.py +0 -0
  388. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/bliss-collect-seq-lens.py +0 -0
  389. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/bliss-dump-text.py +0 -0
  390. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/bliss-get-segment-names.py +0 -0
  391. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/bliss-to-ogg-zip.py +0 -0
  392. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/bpe-create-lexicon.py +0 -0
  393. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/calculate-word-error-rate.py +0 -0
  394. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/cleanup-old-models.py +0 -0
  395. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/collect-orth-symbols.py +0 -0
  396. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/collect-words.py +0 -0
  397. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/compile_native_op.py +0 -0
  398. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/compile_tf_graph.py +0 -0
  399. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/debug-dump-search-scores.py +0 -0
  400. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/debug-plot-search-scores.py +0 -0
  401. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/dump-dataset-raw-strings.py +0 -0
  402. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/dump-dataset.py +0 -0
  403. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/dump-forward-stats.py +0 -0
  404. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/dump-forward.py +0 -0
  405. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/dump-network-json.py +0 -0
  406. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/dump-pickle.py +0 -0
  407. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/extract_state_tying_from_dataset.py +0 -0
  408. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/get-attention-weights.py +0 -0
  409. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/get-best-model-epoch.py +0 -0
  410. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/hdf_dump.py +0 -0
  411. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/hdf_dump_translation_dataset.py +0 -0
  412. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/import-blocks-mt-model.py +0 -0
  413. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/import-t2t-mt-model.py +0 -0
  414. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/.gitignore +0 -0
  415. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/Makefile +0 -0
  416. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/README.md +0 -0
  417. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/example/README.md +0 -0
  418. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/example/libs_list +0 -0
  419. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  420. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
  421. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  422. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/example/state_vars_list +0 -0
  423. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  424. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/file.h +0 -0
  425. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  426. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  427. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/main.cc +0 -0
  428. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/rescorer.h +0 -0
  429. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/vocabulary.cc +0 -0
  430. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/lattice_rescorer/vocabulary.h +0 -0
  431. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/tf_avg_checkpoints.py +0 -0
  432. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/tf_inspect_checkpoint.py +0 -0
  433. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/tf_inspect_summary_log.py +0 -0
  434. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/torch_export_to_onnx.py +0 -0
  435. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/torch_inspect_checkpoint.py +0 -0
  436. {returnn-1.20231108.124950 → returnn-1.20231109.122538}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
@@ -159,4 +159,10 @@ Contains code from CPython:
159
159
  - Copyright 2001..2021 Python Software Foundation
160
160
  - py-to-pickle.cpp
161
161
 
162
+ Contains code from PyTorch:
163
+ - https://github.com/pytorch/pytorch/
164
+ - BSD 3-Clause License
165
+ - Copyright 2016..2023 various developers
166
+ - Various code snippets
167
+
162
168
  Various code snippets from StackOverflow, which are under Creative Commons / Public Domain.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20231108.124950
3
+ Version: 1.20231109.122538
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.20231109.122538'
2
+ long_version = '1.20231109.122538+git.e5a5d90'
@@ -23,8 +23,9 @@ import returnn.util.task_system as task_system
23
23
  from returnn.datasets.basic import Dataset, DatasetSeq
24
24
  from .cached2 import CachedDataset2
25
25
  from returnn.log import log
26
- from returnn.util.task_system import Unpickler, numpy_copy_and_set_unused
27
- from returnn.util.basic import eval_shell_str, interrupt_main, unicode, PY3, BytesIO, close_all_fds_except
26
+ from returnn.util.task_system import numpy_copy_and_set_unused
27
+ from returnn.util.basic import eval_shell_str, interrupt_main, unicode, PY3, close_all_fds_except
28
+ import returnn.util.basic as util
28
29
 
29
30
 
30
31
  class SprintDatasetBase(Dataset):
@@ -913,31 +914,9 @@ class ExternSprintDataset(SprintDatasetBase):
913
914
  :return: (data_type, args)
914
915
  :rtype: (str, object)
915
916
  """
916
- import struct
917
-
918
- size_raw = self.pipe_c2p[0].read(4)
919
- if len(size_raw) < 4:
920
- raise EOFError
921
- (size,) = struct.unpack("<i", size_raw)
922
- assert size > 0, "%s: We expect to get some non-empty package. Invalid Python mod in Sprint?" % (self,)
923
- stream = BytesIO()
924
- read_size = 0
925
- while read_size < size:
926
- data_raw = self.pipe_c2p[0].read(size - read_size)
927
- if len(data_raw) == 0:
928
- raise EOFError("%s: expected to read %i bytes but got EOF after %i bytes" % (self, size, read_size))
929
- read_size += len(data_raw)
930
- stream.write(data_raw)
931
- stream.seek(0)
932
- try:
933
- if PY3:
934
- # encoding is for converting Python2 strings to Python3.
935
- # Cannot use utf8 because Numpy will also encode the data as strings and there we need it as bytes.
936
- data_type, args = Unpickler(stream, encoding="bytes").load()
937
- else:
938
- data_type, args = Unpickler(stream).load()
939
- except EOFError:
940
- raise Exception("%s: parse error of %i bytes (%r)" % (self, size, stream.getvalue()))
917
+ # encoding is for converting Python2 strings to Python3.
918
+ # Cannot use utf8 because Numpy will also encode the data as strings and there we need it as bytes.
919
+ data_type, args = util.read_pickled_object(self.pipe_c2p[0], encoding="bytes")
941
920
  return data_type, args
942
921
 
943
922
  def _join_child(self, wait=True, expected_exit_status=None):
@@ -3,6 +3,7 @@ container functions
3
3
  """
4
4
 
5
5
  from __future__ import annotations
6
+ import operator
6
7
  import returnn.frontend as rf
7
8
  from returnn.tensor import Tensor
8
9
  from typing import Optional, TypeVar, Generic, Iterable, Iterator, Union, Tuple, Dict, Callable
@@ -21,12 +22,9 @@ class ModuleList(rf.Module, Generic[__ModT]):
21
22
  Module list, getting passed an Iterable of Modules and creates a list of Modules in that order
22
23
  """
23
24
 
24
- def __init__(self, *modules: Union[__ModT, Iterable[__ModT], Dict[str, __ModT], ModuleList]):
25
+ def __init__(self, *modules: Union[__ModT, Iterable[__ModT], ModuleList]):
25
26
  super().__init__()
26
- if len(modules) == 1 and isinstance(modules[0], dict):
27
- for key, module in modules[0].items():
28
- setattr(self, key, _convert_to_module(module))
29
- elif len(modules) == 1 and isinstance(modules[0], ModuleList):
27
+ if len(modules) == 1 and isinstance(modules[0], ModuleList):
30
28
  for key, module in modules[0]._get_modules().items():
31
29
  setattr(self, key, _convert_to_module(module))
32
30
  elif len(modules) == 1 and _is_iterable(modules[0]):
@@ -37,7 +35,29 @@ class ModuleList(rf.Module, Generic[__ModT]):
37
35
  setattr(self, str(idx), _convert_to_module(module))
38
36
 
39
37
  def _get_modules(self) -> Dict[str, __ModT]:
40
- return {key: value for (key, value) in vars(self).items() if isinstance(value, rf.Module)}
38
+ # Note: Insertion order is relevant here. We use it in __getitem__ for slicing, etc.
39
+ res = {}
40
+ i = 0
41
+ while True:
42
+ try:
43
+ res[str(i)] = getattr(self, str(i))
44
+ i += 1
45
+ except AttributeError:
46
+ break
47
+ return res
48
+
49
+ def _get_abs_index(self, idx: int) -> int:
50
+ """Get the absolute index for the list of modules"""
51
+ idx = operator.index(idx)
52
+ if not (-len(self) <= idx < len(self)):
53
+ raise IndexError("index {} is out of range".format(idx))
54
+ if idx < 0:
55
+ idx += len(self)
56
+ return idx
57
+
58
+ def _get_abs_string_index(self, idx: int) -> str:
59
+ """Get the absolute index for the list of modules"""
60
+ return str(self._get_abs_index(idx))
41
61
 
42
62
  def append(self, module: __ModT) -> ModuleList[__ModT]:
43
63
  """
@@ -68,14 +88,33 @@ class ModuleList(rf.Module, Generic[__ModT]):
68
88
  from builtins import slice
69
89
 
70
90
  if isinstance(idx, slice):
71
- return self.__class__(dict(list(self._get_modules().items())[idx]))
91
+ return self.__class__(list(self._get_modules().values())[idx])
72
92
  else:
73
- return list(self._get_modules().values())[idx]
93
+ key = self._get_abs_string_index(idx)
94
+ if not hasattr(self, key):
95
+ raise IndexError("index {} is out of range".format(idx))
96
+ return getattr(self, key)
74
97
 
75
98
  def __setitem__(self, idx: int, module: __ModT) -> None:
76
- key = list(self._get_modules().keys())[idx]
99
+ key = self._get_abs_string_index(idx)
100
+ if not hasattr(self, key):
101
+ raise IndexError("index {} is out of range".format(idx))
77
102
  return setattr(self, key, _convert_to_module(module))
78
103
 
104
+ def __delitem__(self, idx: Union[int, slice]) -> None:
105
+ # To preserve numbering, we reconstruct the list of modules after deletion.
106
+ modules = list(self._get_modules().values())
107
+ old_len = len(modules)
108
+ del modules[idx]
109
+ if isinstance(idx, slice):
110
+ min_idx = self._get_abs_index(idx.start)
111
+ else:
112
+ min_idx = self._get_abs_index(idx)
113
+ for i in range(min_idx, len(modules)):
114
+ setattr(self, str(i), modules[i])
115
+ for i in range(len(modules), old_len):
116
+ delattr(self, str(i))
117
+
79
118
  __call__ = rf.Module.__call__ # stays abstract
80
119
 
81
120
 
@@ -108,7 +147,7 @@ def _convert_to_module(obj: _ModT) -> rf.Module:
108
147
  elif callable(obj):
109
148
  return rf.Functional(obj)
110
149
  else:
111
- raise TypeError(f"did not expect {obj!r}")
150
+ raise TypeError(f"Expected rf.Module or callable, did not expect {obj!r} ({type(obj)})")
112
151
 
113
152
 
114
153
  def _is_iterable(obj) -> bool:
@@ -15,15 +15,14 @@ from __future__ import annotations
15
15
  import os
16
16
  import numpy
17
17
  import typing
18
- import io
19
- import struct
20
18
  from threading import Condition
21
19
 
22
20
  import returnn.__main__ as rnn
23
21
  import returnn.util.task_system as task_system
24
22
  import returnn.util.debug as debug
25
- from returnn.util.task_system import Pickler, Unpickler, numpy_set_unused
23
+ from returnn.util.task_system import numpy_set_unused
26
24
  from returnn.util.basic import to_bool, long
25
+ import returnn.util.basic as util
27
26
 
28
27
  InitTypes = set()
29
28
  Verbose = False # disables all per-segment log messages
@@ -434,31 +433,10 @@ class PythonControl:
434
433
  return loss, error_signal
435
434
 
436
435
  def _send(self, data):
437
- stream = io.BytesIO()
438
- Pickler(stream).dump(data)
439
- raw_data = stream.getvalue()
440
- assert len(raw_data) > 0
441
- self.pipe_c2p.write(struct.pack("<i", len(raw_data)))
442
- self.pipe_c2p.write(raw_data)
443
- self.pipe_c2p.flush()
436
+ util.write_pickled_object(self.pipe_c2p, data)
444
437
 
445
438
  def _read(self):
446
- p = self.pipe_p2c
447
- size_raw = p.read(4)
448
- if len(size_raw) < 4:
449
- raise EOFError
450
- (size,) = struct.unpack("<i", size_raw)
451
- assert size > 0, "%s: We expect to get some non-empty package. Invalid Python mod in Sprint?" % (self,)
452
- stream = io.BytesIO()
453
- read_size = 0
454
- while read_size < size:
455
- data_raw = p.read(size - read_size)
456
- if len(data_raw) == 0:
457
- raise EOFError("%s: expected to read %i bytes but got EOF after %i bytes" % (self, size, read_size))
458
- read_size += len(data_raw)
459
- stream.write(data_raw)
460
- stream.seek(0)
461
- return Unpickler(stream).load()
439
+ return util.read_pickled_object(self.pipe_p2c)
462
440
 
463
441
  def close(self):
464
442
  """
@@ -14,12 +14,11 @@ import os
14
14
  import atexit
15
15
  import signal
16
16
  import typing
17
- import struct
18
- import io
19
17
  from threading import RLock, Thread
20
18
  import returnn.util.task_system as task_system
21
- from returnn.util.task_system import Pickler, Unpickler, numpy_set_unused
19
+ from returnn.util.task_system import numpy_set_unused
22
20
  from returnn.util.basic import eval_shell_str, make_hashable, close_all_fds_except
21
+ import returnn.util.basic as util
23
22
  from returnn.log import log
24
23
 
25
24
 
@@ -219,32 +218,12 @@ class SprintSubprocessInstance:
219
218
  def _send(self, v):
220
219
  assert os.getpid() == self.parent_pid
221
220
  p = self.pipe_p2c[1] # see _start_child
222
- stream = io.BytesIO()
223
- Pickler(stream).dump(v)
224
- raw_data = stream.getvalue()
225
- assert len(raw_data) > 0
226
- p.write(struct.pack("<i", len(raw_data)))
227
- p.write(raw_data)
228
- p.flush()
221
+ util.write_pickled_object(p, v)
229
222
 
230
223
  def _read(self):
231
224
  assert os.getpid() == self.parent_pid
232
225
  p = self.pipe_c2p[0] # see _start_child
233
- size_raw = p.read(4)
234
- if len(size_raw) < 4:
235
- raise EOFError
236
- (size,) = struct.unpack("<i", size_raw)
237
- assert size > 0, "%s: We expect to get some non-empty package. Invalid Python mod in Sprint?" % (self,)
238
- stream = io.BytesIO()
239
- read_size = 0
240
- while read_size < size:
241
- data_raw = p.read(size - read_size)
242
- if len(data_raw) == 0:
243
- raise EOFError("%s: expected to read %i bytes but got EOF after %i bytes" % (self, size, read_size))
244
- read_size += len(data_raw)
245
- stream.write(data_raw)
246
- stream.seek(0)
247
- return Unpickler(stream).load()
226
+ return util.read_pickled_object(p)
248
227
 
249
228
  def _poll(self):
250
229
  assert os.getpid() == self.parent_pid
@@ -11,8 +11,8 @@ import os
11
11
  import typing
12
12
  from returnn.util import better_exchook
13
13
  import returnn.util.task_system as task_system
14
- from returnn.util.task_system import Pickler
15
- from returnn.util.basic import to_bool, unicode, BytesIO
14
+ from returnn.util.basic import to_bool, unicode
15
+ import returnn.util.basic as util
16
16
 
17
17
  # Start Sprint PythonSegmentOrder interface. {
18
18
  # We use the PythonSegmentOrder just to get an estimate (upper limit) about the number of sequences.
@@ -347,15 +347,7 @@ class ExternSprintDatasetSource:
347
347
  :param object args:
348
348
  """
349
349
  assert data_type is not None
350
- import struct
351
-
352
- stream = BytesIO()
353
- Pickler(stream).dump((data_type, args))
354
- raw_data = stream.getvalue()
355
- assert len(raw_data) > 0
356
- self.pipe_c2p.write(struct.pack("<i", len(raw_data)))
357
- self.pipe_c2p.write(raw_data)
358
- self.pipe_c2p.flush()
350
+ util.write_pickled_object(self.pipe_c2p, (data_type, args))
359
351
 
360
352
  def add_new_data(self, segment_name, features, targets):
361
353
  """
@@ -5,7 +5,7 @@ Various generic utilities, which are shared across different backend engines.
5
5
  """
6
6
 
7
7
  from __future__ import annotations
8
- from typing import Optional, Generic, TypeVar, Iterable, Tuple, Dict, List, Callable
8
+ from typing import Optional, Any, Generic, TypeVar, Iterable, Tuple, Dict, List, Callable
9
9
 
10
10
  import subprocess
11
11
  from subprocess import CalledProcessError
@@ -22,6 +22,7 @@ import numpy as np
22
22
  import re
23
23
  import time
24
24
  import contextlib
25
+ import struct
25
26
 
26
27
  try:
27
28
  import thread
@@ -2597,6 +2598,59 @@ def deepcopy(x, stop_types=None):
2597
2598
  return c
2598
2599
 
2599
2600
 
2601
+ def read_bytes_to_new_buffer(p: typing.BinaryIO, size: int) -> BytesIO:
2602
+ """
2603
+ Read bytes from stream s into a BytesIO buffer.
2604
+ Raises EOFError if not enough bytes are available.
2605
+ Then read it via :func:`read_pickled_object`.
2606
+ """
2607
+ stream = BytesIO()
2608
+ read_size = 0
2609
+ while read_size < size:
2610
+ data_raw = p.read(size - read_size)
2611
+ if len(data_raw) == 0:
2612
+ raise EOFError("expected to read %i bytes but got EOF after %i bytes" % (size, read_size))
2613
+ read_size += len(data_raw)
2614
+ stream.write(data_raw)
2615
+ stream.seek(0)
2616
+ return stream
2617
+
2618
+
2619
+ def read_pickled_object(p: typing.BinaryIO, *, encoding=None) -> Any:
2620
+ """
2621
+ Read pickled object from stream p,
2622
+ after it was written via :func:`read_bytes_to_new_buffer`.
2623
+
2624
+ :param p:
2625
+ :param encoding: if given, passed to Unpickler
2626
+ """
2627
+ from returnn.util.task_system import Unpickler
2628
+
2629
+ size_raw = read_bytes_to_new_buffer(p, 4).getvalue()
2630
+ (size,) = struct.unpack("<i", size_raw)
2631
+ assert size > 0, "read_pickled_object: We expect to get some non-empty package."
2632
+ stream = read_bytes_to_new_buffer(p, size)
2633
+ unpickler_kwargs = {}
2634
+ if encoding:
2635
+ unpickler_kwargs["encoding"] = encoding
2636
+ return Unpickler(stream, **unpickler_kwargs).load()
2637
+
2638
+
2639
+ def write_pickled_object(p: typing.BinaryIO, obj: Any):
2640
+ """
2641
+ Writes pickled object to stream p.
2642
+ """
2643
+ from returnn.util.task_system import Pickler
2644
+
2645
+ stream = BytesIO()
2646
+ Pickler(stream).dump(obj)
2647
+ raw_data = stream.getvalue()
2648
+ assert len(raw_data) > 0
2649
+ p.write(struct.pack("<i", len(raw_data)))
2650
+ p.write(raw_data)
2651
+ p.flush()
2652
+
2653
+
2600
2654
  def load_txt_vector(filename):
2601
2655
  """
2602
2656
  Expect line-based text encoding in file.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20231108.124950
3
+ Version: 1.20231109.122538
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
@@ -76,41 +76,6 @@ def test_sequential_base_case():
76
76
  run_model(extern_data, lambda *, epoch, step: _Net(), _forward_step)
77
77
 
78
78
 
79
- def test_sequential_named_case():
80
- time_dim = Dim(Tensor("time", [batch_dim], dtype="int32"))
81
- in_dim = Dim(7, name="in")
82
- extern_data = TensorDict(
83
- {
84
- "data": Tensor("data", [batch_dim, time_dim, in_dim], dtype="float32"),
85
- }
86
- )
87
-
88
- class _Net(rf.Module):
89
- def __init__(self):
90
- super().__init__()
91
- dims = [Dim(1, name="feat1"), Dim(2, name="feat2"), Dim(3, name="feat3")]
92
- self.out_dim = dims[-1]
93
- x = OrderedDict()
94
- x["one"] = rf.Linear(in_dim, dims[0])
95
- x["two"] = rf.Linear(dims[0], dims[1])
96
- x["three"] = rf.Linear(dims[1], dims[2])
97
- self.seq = rf.Sequential(x)
98
-
99
- def __call__(self, data: Tensor) -> Tensor:
100
- """
101
- Forward
102
- """
103
- seq = self.seq(data)
104
- return seq
105
-
106
- # noinspection PyShadowingNames
107
- def _forward_step(*, model: _Net, extern_data: TensorDict):
108
- out = model(extern_data["data"])
109
- out.mark_as_default_output(shape=(batch_dim, time_dim, model.out_dim))
110
-
111
- run_model(extern_data, lambda *, epoch, step: _Net(), _forward_step)
112
-
113
-
114
79
  def test_parameter_list():
115
80
  time_dim = Dim(Tensor("time", [batch_dim], dtype="int32"))
116
81
  in_dim = Dim(7, name="in")
@@ -1,2 +0,0 @@
1
- version = '1.20231108.124950'
2
- long_version = '1.20231108.124950+git.a3d1094'