returnn 1.20240620.201955__tar.gz → 1.20240621.145554__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 (449) hide show
  1. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/CHANGELOG.md +142 -9
  2. {returnn-1.20240620.201955/returnn.egg-info → returnn-1.20240621.145554}/PKG-INFO +1 -1
  3. returnn-1.20240621.145554/_setup_info_generated.py +2 -0
  4. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/file_cache.py +15 -9
  5. {returnn-1.20240620.201955 → returnn-1.20240621.145554/returnn.egg-info}/PKG-INFO +1 -1
  6. returnn-1.20240620.201955/_setup_info_generated.py +0 -2
  7. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/.editorconfig +0 -0
  8. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/.gitignore +0 -0
  9. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/.gitmodules +0 -0
  10. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/.kateconfig +0 -0
  11. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/CODEOWNERS +0 -0
  12. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/CONTRIBUTING.md +0 -0
  13. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/LICENSE +0 -0
  14. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/MANIFEST.in +0 -0
  15. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/README.rst +0 -0
  16. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/__init__.py +0 -0
  17. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/12AX.cluster_map +0 -0
  18. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/_setup_returnn_env.py +0 -0
  19. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-fwd.config +0 -0
  20. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-horovod-mpi.py +0 -0
  21. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-horovod-mpi.py.sh +0 -0
  22. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-horovod-mpi.sh +0 -0
  23. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-hyper-param-tuning.config +0 -0
  24. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-iter-dataset.py +0 -0
  25. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-list-devices.py +0 -0
  26. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-lua-torch-layer.config +0 -0
  27. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-pretrain.config +0 -0
  28. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-record-and-push-to-webserver.py +0 -0
  29. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-returnn-as-framework.py +0 -0
  30. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-rf-pt-benchmark.py +0 -0
  31. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-rf.config +0 -0
  32. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-rhn-enwik8.config +0 -0
  33. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-sprint-interface.py +0 -0
  34. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-att-copy.config +0 -0
  35. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-attention.config +0 -0
  36. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  37. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  38. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-enc-dec.config +0 -0
  39. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-hard-att-copy.config +0 -0
  40. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-lstm-benchmark.py +0 -0
  41. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  42. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  43. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-native-lstm.12ax.config +0 -0
  44. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  45. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  46. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  47. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  48. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  49. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-rec-self-att.config +0 -0
  50. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-search-compiled-graph.py +0 -0
  51. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  52. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-timit-lstm-ctc.config +0 -0
  53. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-torch.config +0 -0
  54. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  55. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/demo.sh +0 -0
  56. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  57. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  58. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  59. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/README.txt +0 -0
  60. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/chars.txt +0 -0
  61. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/config_demo +0 -0
  62. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/config_fwd +0 -0
  63. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/config_real +0 -0
  64. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  65. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/decode.py +0 -0
  66. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  67. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/go.sh +0 -0
  68. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/lines.txt +0 -0
  69. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/split/eval.txt +0 -0
  70. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/split/train.txt +0 -0
  71. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/IAM/split/valid.txt +0 -0
  72. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/README.md +0 -0
  73. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  74. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/artificial/forwardconfig +0 -0
  75. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/artificial/go.sh +0 -0
  76. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/artificial/trainconfig +0 -0
  77. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  78. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  79. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  80. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  81. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/pyproject.toml +0 -0
  82. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/requirements.txt +0 -0
  83. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/__init__.py +0 -0
  84. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/__main__.py +0 -0
  85. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/__old_mod_loader__.py +0 -0
  86. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/__setup__.py +0 -0
  87. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/config.py +0 -0
  88. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/__init__.py +0 -0
  89. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/audio.py +0 -0
  90. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/basic.py +0 -0
  91. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/bundle_file.py +0 -0
  92. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/cached.py +0 -0
  93. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/cached2.py +0 -0
  94. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/distrib_files.py +0 -0
  95. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/generating.py +0 -0
  96. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/hdf.py +0 -0
  97. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/lm.py +0 -0
  98. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/map.py +0 -0
  99. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/meta.py +0 -0
  100. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/multi_proc.py +0 -0
  101. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/normalization_data.py +0 -0
  102. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/numpy_dump.py +0 -0
  103. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/raw_wav.py +0 -0
  104. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/sprint.py +0 -0
  105. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/stereo.py +0 -0
  106. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/util/__init__.py +0 -0
  107. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/util/feature_extraction.py +0 -0
  108. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/util/strings.py +0 -0
  109. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/datasets/util/vocabulary.py +0 -0
  110. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/engine/__init__.py +0 -0
  111. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/engine/base.py +0 -0
  112. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/engine/batch.py +0 -0
  113. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/__init__.py +0 -0
  114. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/__main__.py +0 -0
  115. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  116. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  117. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  118. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  119. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  120. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  121. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  122. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  123. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  124. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  125. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  126. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  127. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  128. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  129. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  130. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  131. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  132. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  133. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  134. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  135. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  136. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  137. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  138. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  139. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  140. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/__init__.py +0 -0
  141. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/graph_editor/README.md +0 -0
  142. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/graph_editor/__init__.py +0 -0
  143. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/graph_editor/edit.py +0 -0
  144. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/graph_editor/reroute.py +0 -0
  145. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/graph_editor/select.py +0 -0
  146. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/graph_editor/subgraph.py +0 -0
  147. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/graph_editor/transform.py +0 -0
  148. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/extern/graph_editor/util.py +0 -0
  149. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/forward_iface.py +0 -0
  150. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/__init__.py +0 -0
  151. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_backend.py +0 -0
  152. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_native/__init__.py +0 -0
  153. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_native/backend.cpp +0 -0
  154. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_native/backend.hpp +0 -0
  155. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_native/module.cpp +0 -0
  156. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_native/module.hpp +0 -0
  157. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_native/py_utils.hpp +0 -0
  158. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_native/tensor_ops.cpp +0 -0
  159. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_native/tensor_ops.hpp +0 -0
  160. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_numpy_backend.py +0 -0
  161. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_random_journal.py +0 -0
  162. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/_utils.py +0 -0
  163. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/array_.py +0 -0
  164. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/attention.py +0 -0
  165. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/audio/__init__.py +0 -0
  166. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/audio/mel.py +0 -0
  167. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/audio/specaugment.py +0 -0
  168. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/backend.py +0 -0
  169. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/build_from_dict.py +0 -0
  170. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/cond.py +0 -0
  171. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/const.py +0 -0
  172. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/container.py +0 -0
  173. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/control_flow_ctx.py +0 -0
  174. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/conv.py +0 -0
  175. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/decoder/__init__.py +0 -0
  176. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/decoder/transformer.py +0 -0
  177. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/device.py +0 -0
  178. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/dims.py +0 -0
  179. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/dropout.py +0 -0
  180. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/dtype.py +0 -0
  181. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/encoder/__init__.py +0 -0
  182. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/encoder/base.py +0 -0
  183. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/encoder/conformer.py +0 -0
  184. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/gradient.py +0 -0
  185. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/graph.py +0 -0
  186. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/hooks.py +0 -0
  187. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/init.py +0 -0
  188. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/label_smoothing.py +0 -0
  189. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/linear.py +0 -0
  190. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/loop.py +0 -0
  191. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/loss.py +0 -0
  192. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/math_.py +0 -0
  193. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/matmul.py +0 -0
  194. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/module.py +0 -0
  195. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/normalization.py +0 -0
  196. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/parameter.py +0 -0
  197. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/piecewise_linear.py +0 -0
  198. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/rand.py +0 -0
  199. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/rec.py +0 -0
  200. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/reduce.py +0 -0
  201. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/run_ctx.py +0 -0
  202. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/signal.py +0 -0
  203. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/state.py +0 -0
  204. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/stepwise_scheduler.py +0 -0
  205. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/tensor_array.py +0 -0
  206. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/frontend/types.py +0 -0
  207. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/import_/__init__.py +0 -0
  208. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/import_/common.py +0 -0
  209. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/import_/git.py +0 -0
  210. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/import_/import_.py +0 -0
  211. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/learning_rate_control.py +0 -0
  212. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/log.py +0 -0
  213. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/native_op.cpp +0 -0
  214. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/native_op.py +0 -0
  215. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/pretrain.py +0 -0
  216. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/sprint/__init__.py +0 -0
  217. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/sprint/cache.py +0 -0
  218. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/sprint/control.py +0 -0
  219. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/sprint/error_signals.py +0 -0
  220. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/sprint/extern_interface.py +0 -0
  221. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/sprint/interface.py +0 -0
  222. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/README.md +0 -0
  223. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/__init__.py +0 -0
  224. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/_dim_extra.py +0 -0
  225. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/_tensor_extra.py +0 -0
  226. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/_tensor_mixin_base.py +0 -0
  227. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/_tensor_op_overloads.py +0 -0
  228. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/control_flow_ctx.py +0 -0
  229. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/dim.py +0 -0
  230. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/marked_dim.py +0 -0
  231. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/tensor.py +0 -0
  232. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/tensor_dict.py +0 -0
  233. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tensor/utils.py +0 -0
  234. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/__init__.py +0 -0
  235. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/compat.py +0 -0
  236. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/data_pipeline.py +0 -0
  237. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/distributed.py +0 -0
  238. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/engine.py +0 -0
  239. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/README.md +0 -0
  240. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/__init__.py +0 -0
  241. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/_backend.py +0 -0
  242. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/_utils.py +0 -0
  243. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/cond.py +0 -0
  244. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  245. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  246. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/dims.py +0 -0
  247. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/layer.py +0 -0
  248. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/loop.py +0 -0
  249. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/make_layer.py +0 -0
  250. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  251. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  252. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  253. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_low_level/__init__.py +0 -0
  254. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/frontend_low_level/_backend.py +0 -0
  255. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/horovod.py +0 -0
  256. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/hyper_param_tuning.py +0 -0
  257. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/layers/__init__.py +0 -0
  258. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/layers/base.py +0 -0
  259. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/layers/basic.py +0 -0
  260. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/layers/rec.py +0 -0
  261. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/layers/segmental_model.py +0 -0
  262. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/layers/signal_processing.py +0 -0
  263. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/layers/variable.py +0 -0
  264. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/native_op.py +0 -0
  265. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/network.py +0 -0
  266. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/sprint.py +0 -0
  267. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/updater.py +0 -0
  268. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/util/__init__.py +0 -0
  269. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/util/basic.py +0 -0
  270. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/util/data.py +0 -0
  271. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/util/gradient_checkpoint.py +0 -0
  272. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/util/ken_lm.py +0 -0
  273. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/tf/util/open_fst.py +0 -0
  274. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/README.md +0 -0
  275. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/__init__.py +0 -0
  276. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/data/__init__.py +0 -0
  277. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/data/extern_data.py +0 -0
  278. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/data/pipeline.py +0 -0
  279. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/data/queued_data_iter.py +0 -0
  280. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  281. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/data/tensor_utils.py +0 -0
  282. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/distributed.py +0 -0
  283. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/engine.py +0 -0
  284. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/frontend/__init__.py +0 -0
  285. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/frontend/_backend.py +0 -0
  286. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/frontend/_rand.py +0 -0
  287. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/frontend/bridge.py +0 -0
  288. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/frontend/raw_ops.py +0 -0
  289. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/updater.py +0 -0
  290. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/util/README.md +0 -0
  291. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/util/__init__.py +0 -0
  292. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/util/diagnose_gpu.py +0 -0
  293. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/torch/util/scaled_gradient.py +0 -0
  294. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/__init__.py +0 -0
  295. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/basic.py +0 -0
  296. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/better_exchook.py +0 -0
  297. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/bpe.py +0 -0
  298. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/debug.py +0 -0
  299. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/debug_helpers.py +0 -0
  300. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/fsa.py +0 -0
  301. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/literal_py_to_pickle.py +0 -0
  302. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/math.py +0 -0
  303. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
  304. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/native_code_compiler.py +0 -0
  305. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/pprint.py +0 -0
  306. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/py-to-pickle.cpp +0 -0
  307. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/py_compat.py +0 -0
  308. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/py_ext_mod_compiler.py +0 -0
  309. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/result_with_reason.py +0 -0
  310. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/sig_proc.py +0 -0
  311. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/task_system.py +0 -0
  312. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/train_proc_manager.py +0 -0
  313. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn/util/watch_memory.py +0 -0
  314. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn.egg-info/SOURCES.txt +0 -0
  315. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn.egg-info/dependency_links.txt +0 -0
  316. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/returnn.egg-info/top_level.txt +0 -0
  317. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/rnn.py +0 -0
  318. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/setup.cfg +0 -0
  319. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/setup.py +0 -0
  320. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/DummySprintExec.py +0 -0
  321. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm-inspection-profile.xml +0 -0
  322. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm.idea/.gitignore +0 -0
  323. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm.idea/.name +0 -0
  324. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  325. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  326. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  327. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  328. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  329. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm.idea/misc.xml +0 -0
  330. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm.idea/modules.xml +0 -0
  331. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm.idea/returnn.iml +0 -0
  332. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  333. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/_set_num_threads1.py +0 -0
  334. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/_setup_returnn_env.py +0 -0
  335. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/_setup_test_env.py +0 -0
  336. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/bpe-unicode-demo.codes +0 -0
  337. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/bpe-unicode-demo.vocab +0 -0
  338. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/lexicon_opt.fst +0 -0
  339. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/lexicon_opt.isyms +0 -0
  340. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/lexicon_opt.jpg +0 -0
  341. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/lexicon_opt.osyms +0 -0
  342. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/lint_common.py +0 -0
  343. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/pycharm-inspect.py +0 -0
  344. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/pylint.py +0 -0
  345. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/returnn-as-framework.py +0 -0
  346. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/rf_utils.py +0 -0
  347. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/spelling.dic +0 -0
  348. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_Config.py +0 -0
  349. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_Dataset.py +0 -0
  350. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_Fsa.py +0 -0
  351. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_GeneratingDataset.py +0 -0
  352. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_HDFDataset.py +0 -0
  353. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_LearningRateControl.py +0 -0
  354. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_Log.py +0 -0
  355. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_MultiProcDataset.py +0 -0
  356. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_Pretrain.py +0 -0
  357. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_ResNet.py +0 -0
  358. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_SprintDataset.py +0 -0
  359. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_SprintInterface.py +0 -0
  360. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_TFEngine.py +0 -0
  361. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_TFNativeOp.py +0 -0
  362. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_TFNetworkLayer.py +0 -0
  363. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_TFNetworkRecLayer.py +0 -0
  364. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_TFNetworkSigProcLayer.py +0 -0
  365. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_TFUpdater.py +0 -0
  366. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_TFUtil.py +0 -0
  367. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_TF_determinism.py +0 -0
  368. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_TaskSystem.py +0 -0
  369. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_TaskSystem_SharedMem.py +0 -0
  370. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_TranslationDataset.py +0 -0
  371. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_Util.py +0 -0
  372. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_demos.py +0 -0
  373. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_fork_exec.py +0 -0
  374. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_hdf_dump.py +0 -0
  375. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_array.py +0 -0
  376. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_attention.py +0 -0
  377. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_base.py +0 -0
  378. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_cond.py +0 -0
  379. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_const.py +0 -0
  380. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_container.py +0 -0
  381. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_conv.py +0 -0
  382. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_encoder_conformer.py +0 -0
  383. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_gradient.py +0 -0
  384. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_label_smoothing.py +0 -0
  385. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_loop.py +0 -0
  386. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_math.py +0 -0
  387. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_normalization.py +0 -0
  388. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_piecewise_linear.py +0 -0
  389. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_rec.py +0 -0
  390. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_reduce.py +0 -0
  391. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_rf_signal.py +0 -0
  392. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_tensor.py +0 -0
  393. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_tools.py +0 -0
  394. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_torch_dataset.py +0 -0
  395. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_torch_engine.py +0 -0
  396. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_torch_frontend.py +0 -0
  397. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tests/test_torch_internal_frontend.py +0 -0
  398. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/_setup_returnn_env.py +0 -0
  399. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/analyze-dataset-batches.py +0 -0
  400. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/bliss-collect-seq-lens.py +0 -0
  401. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/bliss-dump-text.py +0 -0
  402. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/bliss-get-segment-names.py +0 -0
  403. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/bliss-to-ogg-zip.py +0 -0
  404. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/bpe-create-lexicon.py +0 -0
  405. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/calculate-word-error-rate.py +0 -0
  406. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/cleanup-old-models.py +0 -0
  407. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/collect-orth-symbols.py +0 -0
  408. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/collect-words.py +0 -0
  409. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/compile_native_op.py +0 -0
  410. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/compile_tf_graph.py +0 -0
  411. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/debug-dump-search-scores.py +0 -0
  412. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/debug-plot-search-scores.py +0 -0
  413. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/dump-dataset-raw-strings.py +0 -0
  414. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/dump-dataset.py +0 -0
  415. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/dump-forward-stats.py +0 -0
  416. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/dump-forward.py +0 -0
  417. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/dump-network-json.py +0 -0
  418. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/dump-pickle.py +0 -0
  419. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/extract_state_tying_from_dataset.py +0 -0
  420. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/get-attention-weights.py +0 -0
  421. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/get-best-model-epoch.py +0 -0
  422. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/hdf_dump.py +0 -0
  423. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/hdf_dump_translation_dataset.py +0 -0
  424. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/import-blocks-mt-model.py +0 -0
  425. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/import-t2t-mt-model.py +0 -0
  426. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/.gitignore +0 -0
  427. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/Makefile +0 -0
  428. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/README.md +0 -0
  429. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/example/README.md +0 -0
  430. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/example/libs_list +0 -0
  431. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  432. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
  433. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  434. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/example/state_vars_list +0 -0
  435. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  436. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/file.h +0 -0
  437. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  438. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  439. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/main.cc +0 -0
  440. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/rescorer.h +0 -0
  441. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/vocabulary.cc +0 -0
  442. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/lattice_rescorer/vocabulary.h +0 -0
  443. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/tf_avg_checkpoints.py +0 -0
  444. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/tf_inspect_checkpoint.py +0 -0
  445. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/tf_inspect_summary_log.py +0 -0
  446. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/torch_avg_checkpoints.py +0 -0
  447. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/torch_export_to_onnx.py +0 -0
  448. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/torch_inspect_checkpoint.py +0 -0
  449. {returnn-1.20240620.201955 → returnn-1.20240621.145554}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
@@ -6,6 +6,139 @@ or any changes which could potentially break or change the behavior of existing
6
6
  This is intentionally kept short. For a full change log, just see the Git log.
7
7
 
8
8
 
9
+ ## 2024-06-07: `VariableDataset`
10
+
11
+ Custom subdataset per subepoch based on user-provided function.
12
+ Can be useful for advanced training pipeline
13
+ where you create some HDFs on-the-fly (e.g. for alignments)
14
+ and then want to load them in later epochs.
15
+
16
+ ## 2024-05-28: [`DistributeFilesDataset`](https://github.com/rwth-i6/returnn/blob/master/returnn/datasets/distrib_files.py) ([PR #1521](https://github.com/rwth-i6/returnn/pull/1521), [issue #1519](https://github.com/rwth-i6/returnn/issues/1519))
17
+
18
+ `DistributeDataset` together with `FileCache`
19
+ allows to train on very large datasets which do not fit on the local disk.
20
+ `DistributeDataset` operates on a list of files,
21
+ and for each sub-epoch will only select a subset of the files,
22
+ and `FileCache` will cache the files locally.
23
+
24
+ It also was specifically designed with distributed training in mind.
25
+ The distributed random_seed_offset method can be used,
26
+ but sharding is also supported ([PR #1538](https://github.com/rwth-i6/returnn/pull/1538)).
27
+
28
+ ## 2023-11-09: `LearningRateControl` saves more meta info in learning-rate-file
29
+
30
+ Like effective learning rate (after `dynamic_learning_rate`),
31
+ training step, GPU, RETURNN version, etc.
32
+ (Was extended a bit over time.)
33
+
34
+ ## 2024-01-09: [Train proc manager](https://github.com/rwth-i6/returnn/blob/master/returnn/util/train_proc_manager.py)
35
+
36
+ Auto restart RETURNN on crashes under certain conditions
37
+ (e.g. it must have trained at least one epoch successfully since the most recent restart).
38
+
39
+ ## 2023-12-30: PyTorch handle OOM for forwarding, auto-split batch
40
+
41
+ This went through several iterations of approaches,
42
+ stumbling through a number of CPython and PyTorch bugs,
43
+ e.g. [CPython #113939](https://github.com/python/cpython/issues/113939),
44
+ [PyTorch #18853](https://github.com/pytorch/pytorch/issues/18853),
45
+ [PyTorch #27600](https://github.com/pytorch/pytorch/issues/27600).
46
+
47
+ ## 2023-12-23: PyTorch distributed training with param averaging
48
+
49
+ In the `torch_distributed` config dict: Set `"reduce_type": "param"` and `"param_sync_step": ...`.
50
+
51
+ ## 2023-10-24: [`watch_memory`](https://github.com/rwth-i6/returnn/blob/master/returnn/util/watch_memory.py): watches memory of all procs
52
+
53
+ ## 2023-10-03: RETURNN frontend (RF) native helpers ([PR #1403](https://github.com/rwth-i6/returnn/pull/1403))
54
+
55
+ ## 2023-06-09: PyTorch distributed training ([PR #1335](https://github.com/rwth-i6/returnn/pull/1335), [issue #1332](https://github.com/rwth-i6/returnn/issues/1332))
56
+
57
+ `torch_distributed` config setting.
58
+ Using the official PyTorch `DistributedDataParallel`, i.e. synchronized accumulated gradients.
59
+ Each worker uses a different `random_seed_offset` for the dataset.
60
+
61
+ ## 2023-05-15: PyTorch automatic mixed precision (AMP) support ([PR #1322](https://github.com/rwth-i6/returnn/pull/1322))
62
+
63
+ ## 2023-04-03: PyTorch `preload_from_files` support ([PR #1292](https://github.com/rwth-i6/returnn/pull/1292))
64
+
65
+ ## 2023-03-26: [`MultiProcDataset`](https://github.com/rwth-i6/returnn/blob/master/returnn/datasets/multi_proc.py)
66
+
67
+ ## 2023-02-24: Make [`Tensor` and `Dim`](https://returnn.readthedocs.io/en/latest/getting_started/data.html) backend independent ([PR #1261](https://github.com/rwth-i6/returnn/pull/1261), [issue #1165](https://github.com/rwth-i6/returnn/issues/1165))
68
+
69
+ * Rename `Data` to `Tensor`, `DimensionTag` to `Dim`.
70
+ * Before, in our `Tensor`, the `placeholder` (now `raw_tensor`) was either None (as a template)
71
+ or a TensorFlow tensor (`tf.Tensor`).
72
+ Now it can support any raw tensor type.
73
+ * Now `Tensor` and `Dim` are moved to `returnn.tensor`.
74
+
75
+ ## 2023-02-20: RETURNN frontend (RF) ([issue #1120](https://github.com/rwth-i6/returnn/issues/1120), [issue #1264](https://github.com/rwth-i6/returnn/issues/1264))
76
+
77
+ Modern alternative to the network dictionary to define models.
78
+ Using Python code to define the network,
79
+ very similar to how it is done in PyTorch or Keras or Flax.
80
+
81
+ This evolved from [`returnn_common.nn`](https://github.com/rwth-i6/returnn_common/tree/main/nn) ([example](https://github.com/rwth-i6/returnn_common/wiki/RETURNN-example-config)),
82
+ which provided already a very similar API.
83
+ But now, we build it such that we support multiple backends.
84
+ Specifically, the current supported (or planned) backends:
85
+
86
+ * PyTorch (fully supported)
87
+ * RETURNN network dictionary (TensorFlow) (fully supported)
88
+ (copied the `returnn_common.nn` code)
89
+ (this might be deprecated in the future)
90
+ * TensorFlow (directly) (mostly supported)
91
+ * NumPy (partially supported)
92
+ * JAX (planned)
93
+
94
+ ## 2023-02-03: Use `black`, drop Python 2 support ([PR #1255](https://github.com/rwth-i6/returnn/pull/1255), [issue #487](https://github.com/rwth-i6/returnn/issues/487), [issue #1158](https://github.com/rwth-i6/returnn/issues/1158))
95
+
96
+ ## 2022-10-24: Remove Theano backend ([PR #1164](https://github.com/rwth-i6/returnn/pull/1164))
97
+
98
+ ## 2022-09-12: PyTorch backend started ([issue #1120](https://github.com/rwth-i6/returnn/issues/1120))
99
+
100
+ This evolved over time.
101
+ It was planned from the beginning
102
+ to support pure PyTorch models defined by the user
103
+ but also RETURNN frontend (RF) models.
104
+
105
+ ## 2022-04-24: TF eager execution initial support
106
+
107
+ ## 2022-02-11: TF loss auto-flatten optimization ([PR #906](https://github.com/rwth-i6/returnn/pull/906))
108
+
109
+ ## 2021-09-12: TF generalized attention, `CumConcatLayer` ([PR #589](https://github.com/rwth-i6/returnn/pull/589), [issue #391](https://github.com/rwth-i6/returnn/issues/391))
110
+
111
+ Generalizes `SelfAttentionLayer` to allow for more custom variants.
112
+ The difficulties were to support this when being inside a `RecLayer`
113
+ and then when the optimization would move it outside the loop.
114
+ For this, we introduced `CumConcatLayer`.
115
+ [Example config for decoder self-attention](https://github.com/rwth-i6/returnn/issues/391#issuecomment-917517032).
116
+ This can also be used just in the encoder, i.e. outside a `RecLayer` anyway
117
+ via `ReinterpretDataLayer` to create a new dim tag.
118
+ [Example config for encoder self-attention](https://github.com/rwth-i6/returnn/issues/391#issuecomment-919873563).
119
+
120
+ ## 2021-08-25: Explicit `Data` dimension tags ([PR #579](https://github.com/rwth-i6/returnn/pull/579))
121
+
122
+ `Data` (later called `Tensor`) has `dim_tags` (later called `dims`)
123
+ to describe the full shape, i.e. the dims of each axis.
124
+ These are `DimensionTag` (later `Dim`) objects.
125
+ Before this change, we already had dim tags but only for dynamic dims.
126
+ Now they are consistently used for all dims.
127
+ This makes everything more consistent and more in line
128
+ with other named tensors / named dimensions frameworks.
129
+
130
+ ## 2021-06-11: [Behavior versions](https://returnn.readthedocs.io/en/latest/configuration_reference/behavior_version.html) ([PR #534](https://github.com/rwth-i6/returnn/pull/534), [issue #508](https://github.com/rwth-i6/returnn/issues/508))
131
+
132
+ Setting `behavior_version` in config control the behavior of RETURNN
133
+ and allows to update bad/buggy/broken behavior without changing behavior for existing setups.
134
+
135
+ ## 2021-06-04: Start of [`returnn_common.nn`](https://github.com/rwth-i6/returnn_common/tree/main/nn)
136
+
137
+ Allows to define the RETURNN network dictionary using a more modern Python API,
138
+ very similar to PyTorch or Keras.
139
+ [Example](https://github.com/rwth-i6/returnn_common/wiki/RETURNN-example-config).
140
+ Note that this later got merged into RETURNN frontend (RF).
141
+
9
142
  ## 2021-03-18: Subnetwork sub layer can be independent ([#473](https://github.com/rwth-i6/returnn/pull/473))
10
143
 
11
144
  This has an effect on recurrent subnetworks.
@@ -103,25 +236,25 @@ This will show the same information as before, but much more compact,
103
236
  and also in addition the dimension tags (`DimensionTag`),
104
237
  which also got improved in many further cases.
105
238
 
106
- ## 2019-08-07: overlay nets (`extra_nets`)
239
+ ## 2019-08-07: Overlay nets (`extra_nets`)
107
240
 
108
241
  You can have e.g. multiple additional networks which redefine
109
242
  existing layers (they would automatically share params),
110
243
  which can use different flags (e.g. enable the search flag).
111
244
 
112
- ## 2019-07: multiple stochastic (latent) variables
245
+ ## 2019-07: Multiple stochastic (latent) variables
113
246
 
114
247
  It was designed to support this from the very beginning,
115
248
  but the implementation was never fully finished for this.
116
249
  Now examples like hard attention work.
117
250
 
118
- ## 2019-05: better support for RETURNN as a framework
251
+ ## 2019-05: Better support for RETURNN as a framework
119
252
 
120
253
  `pip install returnn`, and then `import returnn`.
121
254
 
122
- ## 2019-03-29: remove hard Theano dependency
255
+ ## 2019-03-29: Remove hard Theano dependency
123
256
 
124
- ## 2019-03-24 and ongoing: automatic linter checks
257
+ ## 2019-03-24 and ongoing: Automatic linter checks
125
258
 
126
259
  Currently pylint and PyCharm inspection checks automatically run in Travis.
127
260
  Both have some false positives, but so far the PyCharm inspections seems much more sane.
@@ -180,16 +313,16 @@ and then later `SplitBatchTimeLayer` to get the time-axis back, it was likely in
180
313
 
181
314
  ## 2019-01-30: video: RETURNN overview
182
315
 
183
- ## 2018-08: multi-GPU support via [Horovod](https://github.com/horovod/horovod)
316
+ ## 2018-08: Multi-GPU support via [Horovod](https://github.com/horovod/horovod)
184
317
 
185
- ## 2017-05: flexible `RecLayer`, encoder-decoder attention, beam search (Albert Zeyer)
318
+ ## 2017-05: Flexible `RecLayer`, encoder-decoder attention, beam search (Albert Zeyer)
186
319
 
187
- ## 2016-12: start on [TensorFlow](https://www.tensorflow.org/) support (Albert Zeyer)
320
+ ## 2016-12: Start on [TensorFlow](https://www.tensorflow.org/) support (Albert Zeyer)
188
321
 
189
322
  Initial working support already finished within that month.
190
323
  TF 0.12.0.
191
324
 
192
- ## 2015-07: fast CUDA LSTM kernel (Paul Voigtlaender)
325
+ ## 2015-07: Fast CUDA LSTM kernel (Paul Voigtlaender)
193
326
  ## 2015-03: `SprintDataset`, interface to [RASR](https://www-i6.informatik.rwth-aachen.de/rwth-asr/) (Albert Zeyer)
194
327
  ## 2015-01: Albert Zeyer joined
195
328
  ## ~2013-2014 (?): Patrick Doetsch started the project (Theano)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20240620.201955
3
+ Version: 1.20240621.145554
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.20240621.145554'
2
+ long_version = '1.20240621.145554+git.5fd7cbc'
@@ -55,8 +55,9 @@ class FileCache:
55
55
  *,
56
56
  cache_directory: str = "$TMPDIR/$USER/returnn/file_cache",
57
57
  cleanup_files_always_older_than_days: float = 31.0,
58
- cleanup_files_wanted_older_than_days: float = 7.0,
58
+ cleanup_files_wanted_older_than_days: float = 1.0,
59
59
  cleanup_disk_usage_wanted_free_ratio: float = 0.2, # try to free at least 20% disk space
60
+ cleanup_disk_usage_wanted_multiplier: float = 2.0, # try to free 2x the required space for a file
60
61
  num_tries: int = 3, # retry twice by default
61
62
  ):
62
63
  """
@@ -66,12 +67,16 @@ class FileCache:
66
67
  :param cleanup_files_wanted_older_than_days: if cleanup_disk_usage_wanted_free_ratio not reached,
67
68
  cleanup files older than this.
68
69
  :param cleanup_disk_usage_wanted_free_ratio: try to free at least this ratio of disk space.
70
+ :param cleanup_disk_usage_wanted_multiplier: when making space for a new file, try to free at
71
+ least this times as much space.
69
72
  :param num_tries: how many times to try caching a file before giving up
70
73
  """
71
74
  self.cache_directory = expand_env_vars(cache_directory)
72
75
  self._cleanup_files_always_older_than_days = cleanup_files_always_older_than_days
73
76
  self._cleanup_files_wanted_older_than_days = cleanup_files_wanted_older_than_days
74
77
  self._cleanup_disk_usage_wanted_free_ratio = cleanup_disk_usage_wanted_free_ratio
78
+ assert cleanup_disk_usage_wanted_multiplier >= 1.0
79
+ self._cleanup_disk_usage_wanted_multiplier = cleanup_disk_usage_wanted_multiplier
75
80
  self._touch_files_thread = _TouchFilesThread(cache_base_dir=self.cache_directory)
76
81
  self._touch_files_thread.start()
77
82
  self._recent_full_cleanup_time = float("-inf")
@@ -143,7 +148,8 @@ class FileCache:
143
148
  return
144
149
  disk_usage = shutil.disk_usage(self.cache_directory)
145
150
  want_free_space_size = max(
146
- need_at_least_free_space_size, int(self._cleanup_disk_usage_wanted_free_ratio * disk_usage.total)
151
+ int(self._cleanup_disk_usage_wanted_multiplier * need_at_least_free_space_size),
152
+ int(self._cleanup_disk_usage_wanted_free_ratio * disk_usage.total),
147
153
  )
148
154
  # If we have enough free space, and we did a full cleanup recently, we don't need to do anything.
149
155
  if want_free_space_size <= disk_usage.free and time.monotonic() - self._recent_full_cleanup_time < 60 * 10:
@@ -282,24 +288,24 @@ class FileCache:
282
288
  """
283
289
  Copy the file to the cache directory.
284
290
  """
285
- if self._check_existing_copied_file_maybe_cleanup(src_filename, dst_filename):
286
- os.utime(dst_filename, None) # touch
287
- return
288
-
289
291
  # Create dirs.
290
292
  dst_dir = os.path.dirname(dst_filename)
291
293
  os.makedirs(dst_dir, exist_ok=True)
292
294
 
293
295
  # Copy the file, while holding a lock. See comment on lock_timeout above.
294
- with LockFile(directory=self.cache_directory, name="dir.lock", lock_timeout=self._lock_timeout) as lock:
296
+ with LockFile(
297
+ directory=dst_dir, name=os.path.basename(dst_filename) + ".lock", lock_timeout=self._lock_timeout
298
+ ) as lock:
295
299
  # Maybe it was copied in the meantime, while waiting for the lock.
296
300
  if self._check_existing_copied_file_maybe_cleanup(src_filename, dst_filename):
301
+ print(f"FileCache: using existing file {dst_filename}")
302
+ os.utime(dst_filename, None) # touch
297
303
  return
298
304
 
299
305
  print(f"FileCache: Copy file {src_filename} to cache")
300
306
 
301
- # Make sure we have enough disk space.
302
- self.cleanup(need_at_least_free_space_size=os.stat(src_filename).st_size)
307
+ # Make sure we have enough disk space, st_size +1 due to _copy_with_prealloc
308
+ self.cleanup(need_at_least_free_space_size=os.stat(src_filename).st_size + 1)
303
309
 
304
310
  dst_tmp_filename = dst_filename + ".copy"
305
311
  if os.path.exists(dst_tmp_filename):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20240620.201955
3
+ Version: 1.20240621.145554
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
@@ -1,2 +0,0 @@
1
- version = '1.20240620.201955'
2
- long_version = '1.20240620.201955+git.7a0206a'