returnn 1.20230411.4301__tar.gz → 1.20230411.133415__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.
Files changed (364) hide show
  1. {returnn-1.20230411.4301/returnn.egg-info → returnn-1.20230411.133415}/PKG-INFO +1 -1
  2. returnn-1.20230411.133415/_setup_info_generated.py +2 -0
  3. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-iter-dataset.py +2 -2
  4. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/engine/base.py +8 -16
  5. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/sprint/interface.py +2 -2
  6. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tensor/_tensor_extra.py +38 -22
  7. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/engine.py +2 -2
  8. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/engine.py +1 -1
  9. {returnn-1.20230411.4301 → returnn-1.20230411.133415/returnn.egg-info}/PKG-INFO +1 -1
  10. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/_setup_test_env.py +9 -6
  11. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_TFUtil.py +4 -4
  12. returnn-1.20230411.4301/_setup_info_generated.py +0 -2
  13. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/.editorconfig +0 -0
  14. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/.gitignore +0 -0
  15. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/.gitmodules +0 -0
  16. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/.kateconfig +0 -0
  17. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/CHANGELOG.md +0 -0
  18. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/CODEOWNERS +0 -0
  19. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/CONTRIBUTING.md +0 -0
  20. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/LICENSE +0 -0
  21. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/MANIFEST.in +0 -0
  22. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/README.rst +0 -0
  23. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/__init__.py +0 -0
  24. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/12AX.cluster_map +0 -0
  25. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/_setup_returnn_env.py +0 -0
  26. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-fwd.config +0 -0
  27. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-horovod-mpi.py +0 -0
  28. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-horovod-mpi.py.sh +0 -0
  29. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-horovod-mpi.sh +0 -0
  30. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-hyper-param-tuning.config +0 -0
  31. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-list-devices.py +0 -0
  32. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-lua-torch-layer.config +0 -0
  33. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-pretrain.config +0 -0
  34. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-record-and-push-to-webserver.py +0 -0
  35. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-returnn-as-framework.py +0 -0
  36. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-rf.config +0 -0
  37. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-rhn-enwik8.config +0 -0
  38. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-sprint-interface.py +0 -0
  39. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-att-copy.config +0 -0
  40. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-attention.config +0 -0
  41. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  42. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  43. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-enc-dec.config +0 -0
  44. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-hard-att-copy.config +0 -0
  45. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-lstm-benchmark.py +0 -0
  46. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  47. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  48. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-native-lstm.12ax.config +0 -0
  49. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  50. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  51. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  52. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  53. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  54. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-rec-self-att.config +0 -0
  55. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-search-compiled-graph.py +0 -0
  56. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  57. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-timit-lstm-ctc.config +0 -0
  58. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-torch.config +0 -0
  59. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  60. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/demo.sh +0 -0
  61. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  62. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  63. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  64. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/README.txt +0 -0
  65. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/chars.txt +0 -0
  66. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/config_demo +0 -0
  67. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/config_fwd +0 -0
  68. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/config_real +0 -0
  69. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  70. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/decode.py +0 -0
  71. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  72. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/go.sh +0 -0
  73. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/lines.txt +0 -0
  74. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/split/eval.txt +0 -0
  75. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/split/train.txt +0 -0
  76. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/IAM/split/valid.txt +0 -0
  77. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/README.md +0 -0
  78. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  79. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/artificial/forwardconfig +0 -0
  80. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/artificial/go.sh +0 -0
  81. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/artificial/trainconfig +0 -0
  82. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  83. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  84. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  85. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  86. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/pyproject.toml +0 -0
  87. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/requirements.txt +0 -0
  88. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/__init__.py +0 -0
  89. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/__main__.py +0 -0
  90. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/__old_mod_loader__.py +0 -0
  91. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/__setup__.py +0 -0
  92. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/config.py +0 -0
  93. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/__init__.py +0 -0
  94. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/audio.py +0 -0
  95. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/basic.py +0 -0
  96. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/bundle_file.py +0 -0
  97. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/cached.py +0 -0
  98. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/cached2.py +0 -0
  99. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/generating.py +0 -0
  100. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/hdf.py +0 -0
  101. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/lm.py +0 -0
  102. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/map.py +0 -0
  103. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/meta.py +0 -0
  104. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/multi_proc.py +0 -0
  105. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/normalization_data.py +0 -0
  106. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/numpy_dump.py +0 -0
  107. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/raw_wav.py +0 -0
  108. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/sprint.py +0 -0
  109. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/stereo.py +0 -0
  110. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/util/__init__.py +0 -0
  111. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/util/feature_extraction.py +0 -0
  112. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/datasets/util/vocabulary.py +0 -0
  113. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/engine/__init__.py +0 -0
  114. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/engine/batch.py +0 -0
  115. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/__init__.py +0 -0
  116. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/__main__.py +0 -0
  117. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  118. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  119. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  120. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  121. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  122. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  123. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  124. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  125. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  126. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  127. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  128. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  129. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  130. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  131. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  132. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  133. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  134. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  135. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  136. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  137. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  138. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  139. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  140. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  141. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  142. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/__init__.py +0 -0
  143. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/graph_editor/README.md +0 -0
  144. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/graph_editor/__init__.py +0 -0
  145. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/graph_editor/edit.py +0 -0
  146. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/graph_editor/reroute.py +0 -0
  147. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/graph_editor/select.py +0 -0
  148. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/graph_editor/subgraph.py +0 -0
  149. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/graph_editor/transform.py +0 -0
  150. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/extern/graph_editor/util.py +0 -0
  151. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/__init__.py +0 -0
  152. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/_backend.py +0 -0
  153. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/_numpy_backend.py +0 -0
  154. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/_utils.py +0 -0
  155. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/array_.py +0 -0
  156. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/const.py +0 -0
  157. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/dims.py +0 -0
  158. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/dtype.py +0 -0
  159. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/init.py +0 -0
  160. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/linear.py +0 -0
  161. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/loss.py +0 -0
  162. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/math_.py +0 -0
  163. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/matmul.py +0 -0
  164. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/module.py +0 -0
  165. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/parameter.py +0 -0
  166. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/rand.py +0 -0
  167. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/reduce.py +0 -0
  168. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/run_ctx.py +0 -0
  169. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/state.py +0 -0
  170. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/frontend/types.py +0 -0
  171. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/import_/__init__.py +0 -0
  172. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/import_/common.py +0 -0
  173. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/import_/git.py +0 -0
  174. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/import_/import_.py +0 -0
  175. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/learning_rate_control.py +0 -0
  176. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/log.py +0 -0
  177. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/native_op.cpp +0 -0
  178. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/native_op.py +0 -0
  179. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/pretrain.py +0 -0
  180. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/sprint/__init__.py +0 -0
  181. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/sprint/cache.py +0 -0
  182. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/sprint/control.py +0 -0
  183. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/sprint/error_signals.py +0 -0
  184. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/sprint/extern_interface.py +0 -0
  185. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tensor/README.md +0 -0
  186. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tensor/__init__.py +0 -0
  187. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tensor/_dim_extra.py +0 -0
  188. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tensor/_tensor_mixin_base.py +0 -0
  189. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tensor/_tensor_op_overloads.py +0 -0
  190. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tensor/control_flow_ctx.py +0 -0
  191. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tensor/dim.py +0 -0
  192. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tensor/marked_dim.py +0 -0
  193. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tensor/tensor.py +0 -0
  194. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tensor/tensor_dict.py +0 -0
  195. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/__init__.py +0 -0
  196. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/compat.py +0 -0
  197. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/data_pipeline.py +0 -0
  198. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/distributed.py +0 -0
  199. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/frontend_layers/__init__.py +0 -0
  200. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/frontend_layers/_backend.py +0 -0
  201. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/frontend_layers/_utils.py +0 -0
  202. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  203. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  204. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/frontend_layers/dims.py +0 -0
  205. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/frontend_layers/layer.py +0 -0
  206. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/frontend_layers/make_layer.py +0 -0
  207. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  208. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/frontend_low_level/__init__.py +0 -0
  209. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/frontend_low_level/_backend.py +0 -0
  210. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/horovod.py +0 -0
  211. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/hyper_param_tuning.py +0 -0
  212. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/layers/__init__.py +0 -0
  213. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/layers/base.py +0 -0
  214. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/layers/basic.py +0 -0
  215. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/layers/rec.py +0 -0
  216. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/layers/segmental_model.py +0 -0
  217. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/layers/signal_processing.py +0 -0
  218. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/native_op.py +0 -0
  219. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/network.py +0 -0
  220. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/sprint.py +0 -0
  221. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/updater.py +0 -0
  222. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/util/__init__.py +0 -0
  223. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/util/basic.py +0 -0
  224. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/util/data.py +0 -0
  225. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/util/ken_lm.py +0 -0
  226. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/tf/util/open_fst.py +0 -0
  227. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/README.md +0 -0
  228. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/__init__.py +0 -0
  229. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/data/__init__.py +0 -0
  230. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/data/pipeline.py +0 -0
  231. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  232. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/data/tensor_utils.py +0 -0
  233. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/frontend/__init__.py +0 -0
  234. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/frontend/_backend.py +0 -0
  235. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/frontend/_rand.py +0 -0
  236. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/frontend/bridge.py +0 -0
  237. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/functional/README.md +0 -0
  238. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/functional/__init__.py +0 -0
  239. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/torch/updater.py +0 -0
  240. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/__init__.py +0 -0
  241. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/basic.py +0 -0
  242. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/better_exchook.py +0 -0
  243. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/bpe.py +0 -0
  244. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/debug.py +0 -0
  245. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/debug_helpers.py +0 -0
  246. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/fsa.py +0 -0
  247. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/literal_py_to_pickle.py +0 -0
  248. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/pprint.py +0 -0
  249. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/py-to-pickle.cpp +0 -0
  250. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/sig_proc.py +0 -0
  251. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn/util/task_system.py +0 -0
  252. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn.egg-info/SOURCES.txt +0 -0
  253. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn.egg-info/dependency_links.txt +0 -0
  254. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/returnn.egg-info/top_level.txt +0 -0
  255. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/rnn.py +0 -0
  256. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/setup.cfg +0 -0
  257. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/setup.py +0 -0
  258. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/DummySprintExec.py +0 -0
  259. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm-inspection-profile.xml +0 -0
  260. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm.idea/.gitignore +0 -0
  261. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm.idea/.name +0 -0
  262. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  263. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  264. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  265. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  266. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  267. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm.idea/misc.xml +0 -0
  268. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm.idea/modules.xml +0 -0
  269. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm.idea/returnn.iml +0 -0
  270. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  271. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/_set_num_threads1.py +0 -0
  272. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/_setup_returnn_env.py +0 -0
  273. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/bpe-unicode-demo.codes +0 -0
  274. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/bpe-unicode-demo.vocab +0 -0
  275. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/lexicon_opt.fst +0 -0
  276. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/lexicon_opt.isyms +0 -0
  277. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/lexicon_opt.jpg +0 -0
  278. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/lexicon_opt.osyms +0 -0
  279. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/lint_common.py +0 -0
  280. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/pycharm-inspect.py +0 -0
  281. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/pylint.py +0 -0
  282. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/returnn-as-framework.py +0 -0
  283. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/rf_utils.py +0 -0
  284. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/spelling.dic +0 -0
  285. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_Config.py +0 -0
  286. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_Dataset.py +0 -0
  287. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_Fsa.py +0 -0
  288. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_GeneratingDataset.py +0 -0
  289. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_HDFDataset.py +0 -0
  290. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_LearningRateControl.py +0 -0
  291. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_Log.py +0 -0
  292. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_MultiProcDataset.py +0 -0
  293. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_PTDataset.py +0 -0
  294. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_Pretrain.py +0 -0
  295. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_ResNet.py +0 -0
  296. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_SprintDataset.py +0 -0
  297. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_SprintInterface.py +0 -0
  298. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_TFEngine.py +0 -0
  299. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_TFNativeOp.py +0 -0
  300. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_TFNetworkLayer.py +0 -0
  301. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_TFNetworkRecLayer.py +0 -0
  302. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_TFNetworkSigProcLayer.py +0 -0
  303. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_TFUpdater.py +0 -0
  304. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_TF_determinism.py +0 -0
  305. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_TaskSystem.py +0 -0
  306. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_TaskSystem_SharedMem.py +0 -0
  307. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_TranslationDataset.py +0 -0
  308. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_Util.py +0 -0
  309. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_demos.py +0 -0
  310. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_fork_exec.py +0 -0
  311. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_hdf_dump.py +0 -0
  312. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_rf_base.py +0 -0
  313. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_tensor.py +0 -0
  314. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_tools.py +0 -0
  315. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_torch_frontend.py +0 -0
  316. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tests/test_torch_internal_frontend.py +0 -0
  317. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/_setup_returnn_env.py +0 -0
  318. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/analyze-dataset-batches.py +0 -0
  319. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/bliss-collect-seq-lens.py +0 -0
  320. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/bliss-dump-text.py +0 -0
  321. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/bliss-get-segment-names.py +0 -0
  322. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/bliss-to-ogg-zip.py +0 -0
  323. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/bpe-create-lexicon.py +0 -0
  324. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/calculate-word-error-rate.py +0 -0
  325. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/cleanup-old-models.py +0 -0
  326. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/collect-orth-symbols.py +0 -0
  327. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/collect-words.py +0 -0
  328. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/compile_native_op.py +0 -0
  329. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/compile_tf_graph.py +0 -0
  330. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/debug-dump-search-scores.py +0 -0
  331. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/debug-plot-search-scores.py +0 -0
  332. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/dump-dataset-raw-strings.py +0 -0
  333. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/dump-dataset.py +0 -0
  334. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/dump-forward-stats.py +0 -0
  335. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/dump-forward.py +0 -0
  336. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/dump-network-json.py +0 -0
  337. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/dump-pickle.py +0 -0
  338. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/extract_state_tying_from_dataset.py +0 -0
  339. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/get-attention-weights.py +0 -0
  340. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/get-best-model-epoch.py +0 -0
  341. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/hdf_dump.py +0 -0
  342. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/hdf_dump_translation_dataset.py +0 -0
  343. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/import-blocks-mt-model.py +0 -0
  344. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/import-t2t-mt-model.py +0 -0
  345. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/.gitignore +0 -0
  346. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/Makefile +0 -0
  347. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/README.md +0 -0
  348. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/example/README.md +0 -0
  349. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/example/libs_list +0 -0
  350. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  351. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
  352. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  353. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/example/state_vars_list +0 -0
  354. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  355. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/file.h +0 -0
  356. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  357. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  358. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/main.cc +0 -0
  359. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/rescorer.h +0 -0
  360. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/vocabulary.cc +0 -0
  361. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/lattice_rescorer/vocabulary.h +0 -0
  362. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/tf_avg_checkpoints.py +0 -0
  363. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/tf_inspect_checkpoint.py +0 -0
  364. {returnn-1.20230411.4301 → returnn-1.20230411.133415}/tools/tf_inspect_summary_log.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20230411.4301
3
+ Version: 1.20230411.133415
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.20230411.133415'
2
+ long_version = '1.20230411.133415+git.9593d64'
@@ -36,10 +36,10 @@ def iterate_epochs():
36
36
  """
37
37
  Iterate through epochs.
38
38
  """
39
- start_epoch, start_batch = EngineBase.get_train_start_epoch_batch(config)
39
+ start_epoch = EngineBase.get_train_start_epoch(config)
40
40
  final_epoch = EngineBase.config_get_final_epoch(config)
41
41
 
42
- print("Starting with epoch %i, batch %i." % (start_epoch, start_batch), file=log.v3)
42
+ print("Starting with epoch %i." % (start_epoch,), file=log.v3)
43
43
  print("Final epoch is: %i" % final_epoch, file=log.v3)
44
44
 
45
45
  recurrent_net = "lstm" in config.value("hidden_type", "") # good enough...
@@ -4,9 +4,9 @@ Provides :class:`EngineBase`.
4
4
 
5
5
  from __future__ import annotations
6
6
 
7
+ from typing import Optional
7
8
  import os
8
9
  import sys
9
- from typing import Optional
10
10
 
11
11
  from returnn.config import Config, get_global_config
12
12
  from returnn.learning_rate_control import load_learning_rate_control_from_config, LearningRateControl
@@ -164,35 +164,27 @@ class EngineBase(object):
164
164
  return epoch_model
165
165
 
166
166
  @classmethod
167
- def get_train_start_epoch_batch(cls, config):
167
+ def get_train_start_epoch(cls, config: Config) -> int:
168
168
  """
169
169
  We will always automatically determine the best start (epoch,batch) tuple
170
170
  based on existing model files.
171
171
  This ensures that the files are present and enforces that there are
172
172
  no old outdated files which should be ignored.
173
173
  Note that epochs start at idx 1 and batches at idx 0.
174
- :type config: returnn.config.Config
175
- :returns (epoch,batch)
176
- :rtype (int,int)
174
+
175
+ :param config:
176
+ :return: epoch
177
177
  """
178
178
  start_batch_mode = config.value("start_batch", "auto")
179
- if start_batch_mode == "auto":
180
- start_batch_config = None
181
- else:
182
- start_batch_config = int(start_batch_mode)
179
+ if start_batch_mode != "auto":
180
+ raise Exception(f"custom start_batch {start_batch_mode!r} not supported")
183
181
  last_epoch, _ = cls.get_epoch_model(config)
184
182
  if last_epoch is None:
185
183
  start_epoch = 1
186
- start_batch = start_batch_config or 0
187
- elif start_batch_config is not None:
188
- # We specified a start batch. Stay in the same epoch, use that start batch.
189
- start_epoch = last_epoch
190
- start_batch = start_batch_config
191
184
  else:
192
185
  # Start with next epoch.
193
186
  start_epoch = last_epoch + 1
194
- start_batch = 0
195
- return start_epoch, start_batch
187
+ return start_epoch
196
188
 
197
189
  @classmethod
198
190
  def epoch_model_filename(cls, model_filename, epoch, is_pretrain):
@@ -355,8 +355,8 @@ def getSegmentList(corpusName, segmentList, **kwargs):
355
355
  sprintDataset.use_multiple_epochs()
356
356
 
357
357
  finalEpoch = get_final_epoch()
358
- startEpoch, startSegmentIdx = Engine.get_train_start_epoch_batch(config)
359
- print("Sprint: Starting with epoch %i, segment-idx %s." % (startEpoch, startSegmentIdx))
358
+ startEpoch = Engine.get_train_start_epoch(config)
359
+ print("Sprint: Starting with epoch %i." % (startEpoch,))
360
360
  print("Final epoch is: %i" % finalEpoch)
361
361
 
362
362
  # Loop over multiple epochs. Epochs start at 1.
@@ -787,18 +787,12 @@ class _TensorMixin(_TensorMixinBase):
787
787
 
788
788
  def copy_add_batch_dim(self, batch_dim_axis, batch=None, dim_tag=None) -> _t.Tensor:
789
789
  """
790
- Warning: Assumes TensorFlow.
791
-
792
790
  :param int batch_dim_axis:
793
791
  :param BatchInfo|None batch:
794
792
  :param Dim|None dim_tag:
795
793
  :return: copy of myself with added batch-dim
796
794
  """
797
795
  assert self.batch_dim_axis is None
798
- if not batch:
799
- from returnn.tf.layers.base import LayerBase
800
-
801
- batch = LayerBase.get_recent_layer().get_batch_info()
802
796
  if batch_dim_axis < 0:
803
797
  assert batch_dim_axis + self.batch_ndim + 1 >= 0
804
798
  batch_dim_axis += self.batch_ndim + 1
@@ -808,19 +802,36 @@ class _TensorMixin(_TensorMixinBase):
808
802
  if placeholder is not None:
809
803
  backend = self._raw_backend
810
804
  placeholder = backend.expand_dims_raw(placeholder, batch_dim_axis)
811
- if not isinstance(batch.dim, int) or batch.dim != 1:
812
- placeholder = backend.expand_raw(placeholder, batch_dim_axis, batch.dim)
805
+ if batch:
806
+ batch_dim_ = batch.dim
807
+ elif dim_tag:
808
+ if dim_tag.dyn_size_ext:
809
+ assert dim_tag.dyn_size_ext.dims == ()
810
+ assert dim_tag.dyn_size_ext.raw_tensor is not None
811
+ batch_dim_ = dim_tag.dyn_size_ext.raw_tensor
812
+ elif dim_tag.dimension:
813
+ batch_dim_ = dim_tag.dimension
814
+ else:
815
+ raise Exception(f"{self} copy_add_batch_dim: unknown batch dim for {dim_tag!r}")
816
+ else:
817
+ raise Exception(f"{self} copy_add_batch_dim: unknown batch dim ")
818
+ if not isinstance(batch_dim_, int) or batch_dim_ != 1:
819
+ placeholder = backend.expand_raw(placeholder, batch_dim_axis, batch_dim_)
813
820
  dim_tags = list(self.dim_tags)
814
821
  if dim_tag:
815
822
  assert dim_tag.is_batch_dim()
816
- assert dim_tag.dimension == batch.static_dim or dim_tag.dimension is None
817
823
  assert dim_tag.batch == batch
824
+ if batch:
825
+ assert dim_tag.dimension == batch.static_dim or dim_tag.dimension is None
818
826
  else:
819
- dim_tag = Dim(kind=Dim.Types.Batch, description="batch", dimension=batch.static_dim, batch=batch)
827
+ dim_tag = Dim(
828
+ kind=Dim.Types.Batch, description="batch", dimension=batch.static_dim if batch else None, batch=batch
829
+ )
820
830
  dim_tags.insert(batch_dim_axis, dim_tag)
821
831
  data_opts["dims"] = dim_tags
822
- data_opts["batch"] = batch
823
- data_opts["beam"] = batch.beam
832
+ if batch:
833
+ data_opts["batch"] = batch
834
+ data_opts["beam"] = batch.beam
824
835
  other_special_axes = self.get_special_axes_dict(counted_with_batch_dim=True, only_available=True)
825
836
  for k, a in other_special_axes.items():
826
837
  data_opts[k] = a if (a < batch_dim_axis) else (a + 1)
@@ -909,14 +920,17 @@ class _TensorMixin(_TensorMixinBase):
909
920
  if unbroadcast:
910
921
  return self.copy_add_batch_dim(batch_dim_axis=axis, batch=dim_tag.batch, dim_tag=dim_tag)
911
922
  else:
912
- from returnn.tf.util.data import BatchInfo
923
+ if dim_tag.batch or self.batch:
924
+ from returnn.tf.util.data import BatchInfo
913
925
 
914
- batch_info = BatchInfo.make_global_broadcast_batch_info()
915
- return self.copy_add_batch_dim(
916
- batch_dim_axis=axis,
917
- batch=batch_info,
918
- dim_tag=dim_tag if (dim_tag.dimension == 1 and dim_tag.batch == batch_info) else None,
919
- )
926
+ batch_info = BatchInfo.make_global_broadcast_batch_info()
927
+ else:
928
+ batch_info = None
929
+ if dim_tag and dim_tag.dimension == 1 and dim_tag.batch == batch_info:
930
+ pass # keep it
931
+ else:
932
+ dim_tag = Dim(kind=Dim.Types.Batch, description="batch-broadcast", dimension=1, batch=batch_info)
933
+ return self.copy_add_batch_dim(batch_dim_axis=axis, batch=batch_info, dim_tag=dim_tag)
920
934
 
921
935
  data_opts = self.get_kwargs()
922
936
  # Note: if dim_tag is feature, but we are sparse, we just make it spatial
@@ -2812,9 +2826,11 @@ class _TensorMixin(_TensorMixinBase):
2812
2826
  :rtype: int|None
2813
2827
  """
2814
2828
  # Do not fallback to get_batch_dim or get_recent_layer or so. This should be safe.
2815
- if not self.batch:
2816
- return None
2817
- return self.batch.static_dim
2829
+ if self.batch:
2830
+ return self.batch.static_dim
2831
+ if self.have_batch_axis():
2832
+ return self.get_batch_dim_tag().dimension
2833
+ return None
2818
2834
 
2819
2835
  def get_spatial_batch_axes(self):
2820
2836
  """
@@ -1105,7 +1105,7 @@ class Engine(EngineBase):
1105
1105
  if config.has("eval_datasets"):
1106
1106
  for dataset_name, dataset_opts in config.typed_value("eval_datasets", {}).items():
1107
1107
  self.eval_datasets[dataset_name] = init_dataset(dataset_opts, default_kwargs={"name": dataset_name})
1108
- self.start_epoch, self.start_batch = self.get_train_start_epoch_batch(config)
1108
+ self.start_epoch = self.get_train_start_epoch(config)
1109
1109
  self.batch_size = config.typed_value("batch_size", 1)
1110
1110
  self.shuffle_batches = config.bool("shuffle_batches", False)
1111
1111
  self.update_batch_size = config.int("update_batch_size", 0)
@@ -1577,7 +1577,7 @@ class Engine(EngineBase):
1577
1577
  """
1578
1578
  Does the whole training, i.e. the loop over all the epochs.
1579
1579
  """
1580
- print("start training at epoch %i and step %i" % (self.start_epoch, self.start_batch), file=log.v3)
1580
+ print("start training at epoch %i" % (self.start_epoch,), file=log.v3)
1581
1581
  print("using batch size: %r, max seqs: %i" % (self.batch_size, self.max_seqs), file=log.v4)
1582
1582
  print("learning rate control:", self.learning_rate_control, file=log.v4)
1583
1583
  print("pretrain:", self.pretrain, file=log.v4)
@@ -90,7 +90,7 @@ class Engine(EngineBase):
90
90
  for dataset_name, dataset in self.eval_datasets.items():
91
91
  self._eval_dataloaders[dataset_name] = self._create_data_loader(dataset)
92
92
 
93
- self._start_epoch, _ = self.get_train_start_epoch_batch(self.config)
93
+ self._start_epoch = self.get_train_start_epoch(self.config)
94
94
  self._final_epoch = self.config_get_final_epoch(self.config)
95
95
 
96
96
  self._load_model(epoch=self._start_epoch)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20230411.4301
3
+ Version: 1.20230411.133415
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
@@ -64,13 +64,16 @@ def setup():
64
64
  log.initialize(verbosity=[5], propagate=False)
65
65
 
66
66
  # TF is optional.
67
- # Note that importing TF still has a small side effect:
68
- # BackendEngine._get_default_engine() will return TF by default, if TF is already loaded.
69
- # For most tests, this does not matter.
70
- try:
71
- import tensorflow as tf
72
- except ImportError:
67
+ if "RETURNN_DISABLE_TF" in os.environ and int(os.environ["RETURNN_DISABLE_TF"]) == 1:
73
68
  tf = None
69
+ else:
70
+ # Note that importing TF still has a small side effect:
71
+ # BackendEngine._get_default_engine() will return TF by default, if TF is already loaded.
72
+ # For most tests, this does not matter.
73
+ try:
74
+ import tensorflow as tf
75
+ except ImportError:
76
+ tf = None
74
77
 
75
78
  if tf:
76
79
  import returnn.tf.util.basic as tf_util
@@ -424,7 +424,7 @@ def test_Data_find_matching_dim_map_broadcast_matches():
424
424
  assert mapping[0] == 1 and mapping[1] == 2
425
425
 
426
426
  copied = d2.copy_compatible_to(d1)
427
- assert copied.batch_ndim == d1.batch_ndim and copied.batch.static_dim == 1 and copied.batch_shape == (1, 5, 1)
427
+ assert copied.batch_ndim == d1.batch_ndim and copied.get_static_batch_dim() == 1 and copied.batch_shape == (1, 5, 1)
428
428
  print("copied compatible:", copied)
429
429
 
430
430
 
@@ -633,14 +633,14 @@ def test_Data_copy_compatible_to_src_no_batch():
633
633
  d2 = Data(name="d2", shape=(), batch_dim_axis=None, time_dim_axis=None)
634
634
  d2.placeholder = tf.zeros([d if (d is not None) else 1 for d in d2.batch_shape])
635
635
  d3 = d2.copy_compatible_to(d1)
636
- assert d3.batch.static_dim == 1 and d3.batch_shape == (1, 1, 1)
636
+ assert d3.get_static_batch_dim() == 1 and d3.batch_shape == (1, 1, 1)
637
637
 
638
638
 
639
639
  def test_Data_copy_compatible_to_add_batch_dim():
640
640
  common_data = Data(name="accum_att_weights_output", shape=(None, 1))
641
641
  d1 = Data(name="att_weights_avg_output", shape=(1,), batch_dim_axis=None)
642
642
  d2 = d1.copy_compatible_to(common_data)
643
- assert d2.have_batch_axis() and d2.batch.static_dim == 1 and d2.batch_shape == (1, 1, 1)
643
+ assert d2.have_batch_axis() and d2.get_static_batch_dim() == 1 and d2.batch_shape == (1, 1, 1)
644
644
 
645
645
 
646
646
  def test_Data_copy_compatible_to_add_feature_dim():
@@ -658,7 +658,7 @@ def test_Data_copy_compatible_to_add_batch_feature_dim():
658
658
  d2 = d1.copy_compatible_to(common_data)
659
659
  print(d2)
660
660
  assert d2.have_batch_axis() and d2.have_time_axis()
661
- assert d2.batch.static_dim == 1 # batch-dim is broadcasted
661
+ assert d2.get_static_batch_dim() == 1 # batch-dim is broadcasted
662
662
  assert d2.batch_shape == (1, None, 1)
663
663
 
664
664
 
@@ -1,2 +0,0 @@
1
- version = '1.20230411.004301'
2
- long_version = '1.20230411.004301+git.86c1436'