returnn 1.20241210.150216__tar.gz → 1.20241211.145755__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of returnn might be problematic. Click here for more details.

Files changed (469) hide show
  1. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/PKG-INFO +1 -1
  2. returnn-1.20241211.145755/_setup_info_generated.py +2 -0
  3. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn.egg-info/PKG-INFO +1 -1
  4. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_Config.py +39 -40
  5. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_Dataset.py +177 -178
  6. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_GeneratingDataset.py +35 -36
  7. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_HDFDataset.py +12 -16
  8. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_LearningRateControl.py +8 -9
  9. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_Log.py +17 -18
  10. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_Pretrain.py +7 -8
  11. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_ResNet.py +0 -1
  12. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_SprintDataset.py +13 -14
  13. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_SprintInterface.py +1 -2
  14. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_TFEngine.py +60 -66
  15. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_TFNativeOp.py +39 -40
  16. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_TFNetworkLayer.py +193 -199
  17. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_TFNetworkRecLayer.py +138 -141
  18. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_TFUpdater.py +8 -9
  19. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_TFUtil.py +366 -411
  20. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_TaskSystem.py +2 -3
  21. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_TranslationDataset.py +5 -10
  22. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_Util.py +102 -104
  23. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_demos.py +5 -6
  24. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_fork_exec.py +8 -12
  25. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/import-blocks-mt-model.py +9 -11
  26. returnn-1.20241210.150216/_setup_info_generated.py +0 -2
  27. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/.editorconfig +0 -0
  28. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/.gitignore +0 -0
  29. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/.gitmodules +0 -0
  30. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/.kateconfig +0 -0
  31. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/CHANGELOG.md +0 -0
  32. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/CODEOWNERS +0 -0
  33. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/CONTRIBUTING.md +0 -0
  34. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/LICENSE +0 -0
  35. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/MANIFEST.in +0 -0
  36. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/README.rst +0 -0
  37. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/__init__.py +0 -0
  38. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/12AX.cluster_map +0 -0
  39. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/_setup_returnn_env.py +0 -0
  40. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-fwd.config +0 -0
  41. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-horovod-mpi.py +0 -0
  42. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-horovod-mpi.py.sh +0 -0
  43. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-horovod-mpi.sh +0 -0
  44. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-hyper-param-tuning.config +0 -0
  45. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-iter-dataset.py +0 -0
  46. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-list-devices.py +0 -0
  47. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-lua-torch-layer.config +0 -0
  48. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-pretrain.config +0 -0
  49. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-record-and-push-to-webserver.py +0 -0
  50. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-returnn-as-framework.py +0 -0
  51. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-rf-pt-benchmark.py +0 -0
  52. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-rf.config +0 -0
  53. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-rhn-enwik8.config +0 -0
  54. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-sprint-interface.py +0 -0
  55. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-att-copy.config +0 -0
  56. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-attention.config +0 -0
  57. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-chunking-blstm.12ax.config +0 -0
  58. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-contribrnn-lstm.12ax.config +0 -0
  59. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-enc-dec.config +0 -0
  60. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-hard-att-copy.config +0 -0
  61. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-lstm-benchmark.py +0 -0
  62. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-maxgradnorm-lstm.12ax.config +0 -0
  63. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-native-lstm-lowmem.12ax.config +0 -0
  64. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-native-lstm.12ax.config +0 -0
  65. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-native-lstm2.12ax.config +0 -0
  66. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-native-lstm2.12ax.tuned.config +0 -0
  67. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-neural-transducer.12ax.config +0 -0
  68. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-rec-explicit-lstm.config +0 -0
  69. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-rec-explicit-rnn.config +0 -0
  70. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-rec-self-att.config +0 -0
  71. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-search-compiled-graph.py +0 -0
  72. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-tf-vanilla-lstm.12ax.config +0 -0
  73. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-timit-lstm-ctc.config +0 -0
  74. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-torch.config +0 -0
  75. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo-upd-mult-model.lstm.12ax.config +0 -0
  76. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/demo.sh +0 -0
  77. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/IAM_lines/a01-000u-00.png +0 -0
  78. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/IAM_lines/a01-007-04.png +0 -0
  79. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/IAM_lines/a01-007-06.png +0 -0
  80. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/README.txt +0 -0
  81. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/chars.txt +0 -0
  82. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/config_demo +0 -0
  83. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/config_fwd +0 -0
  84. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/config_real +0 -0
  85. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/create_IAM_dataset.py +0 -0
  86. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/decode.py +0 -0
  87. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/features/raw/demo.h5 +0 -0
  88. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/go.sh +0 -0
  89. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/lines.txt +0 -0
  90. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/split/eval.txt +0 -0
  91. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/split/train.txt +0 -0
  92. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/IAM/split/valid.txt +0 -0
  93. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/README.md +0 -0
  94. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/artificial/create_test_h5.py +0 -0
  95. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/artificial/forwardconfig +0 -0
  96. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/artificial/go.sh +0 -0
  97. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/artificial/trainconfig +0 -0
  98. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/artificial_rgb/create_test_h5.py +0 -0
  99. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/artificial_rgb/forwardconfig +0 -0
  100. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/artificial_rgb/go.sh +0 -0
  101. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/demos/mdlstm/artificial_rgb/trainconfig +0 -0
  102. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/pyproject.toml +0 -0
  103. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/requirements.txt +0 -0
  104. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/__init__.py +0 -0
  105. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/__main__.py +0 -0
  106. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/__old_mod_loader__.py +0 -0
  107. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/__setup__.py +0 -0
  108. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/config.py +0 -0
  109. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/__init__.py +0 -0
  110. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/audio.py +0 -0
  111. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/basic.py +0 -0
  112. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/bundle_file.py +0 -0
  113. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/cached.py +0 -0
  114. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/cached2.py +0 -0
  115. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/distrib_files.py +0 -0
  116. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/generating.py +0 -0
  117. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/hdf.py +0 -0
  118. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/lm.py +0 -0
  119. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/map.py +0 -0
  120. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/meta.py +0 -0
  121. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/multi_proc.py +0 -0
  122. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/normalization_data.py +0 -0
  123. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/numpy_dump.py +0 -0
  124. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/postprocessing.py +0 -0
  125. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/raw_wav.py +0 -0
  126. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/sprint.py +0 -0
  127. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/stereo.py +0 -0
  128. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/util/__init__.py +0 -0
  129. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/util/feature_extraction.py +0 -0
  130. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/util/strings.py +0 -0
  131. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/datasets/util/vocabulary.py +0 -0
  132. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/engine/__init__.py +0 -0
  133. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/engine/base.py +0 -0
  134. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/engine/batch.py +0 -0
  135. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/__init__.py +0 -0
  136. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/__main__.py +0 -0
  137. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/.git +0 -0
  138. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/.gitignore +0 -0
  139. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/LICENSE +0 -0
  140. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/README.md +0 -0
  141. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/aligner.gif +0 -0
  142. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/check.png +0 -0
  143. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/core.cu +0 -0
  144. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/core.h +0 -0
  145. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/core_cpu.cpp +0 -0
  146. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/pytorch_binding/LICENSE +0 -0
  147. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/pytorch_binding/MANIFEST.in +0 -0
  148. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/pytorch_binding/README.md +0 -0
  149. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/pytorch_binding/binding.cpp +0 -0
  150. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.cu +0 -0
  151. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/pytorch_binding/core.h +0 -0
  152. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/pytorch_binding/requirements.txt +0 -0
  153. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/pytorch_binding/setup.py +0 -0
  154. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/__init__.py +0 -0
  155. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/pytorch_binding/warp_rna/test.py +0 -0
  156. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/ref_rna.py +0 -0
  157. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/setup.py +0 -0
  158. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op.cc +0 -0
  159. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/src/warp_rna_op_kernel_tmpl.h +0 -0
  160. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/tensorflow_binding/warp_rna/__init__.py +0 -0
  161. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/WarpRna/warp-rna/test.cpp +0 -0
  162. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/__init__.py +0 -0
  163. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/graph_editor/README.md +0 -0
  164. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/graph_editor/__init__.py +0 -0
  165. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/graph_editor/edit.py +0 -0
  166. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/graph_editor/reroute.py +0 -0
  167. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/graph_editor/select.py +0 -0
  168. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/graph_editor/subgraph.py +0 -0
  169. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/graph_editor/transform.py +0 -0
  170. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/extern/graph_editor/util.py +0 -0
  171. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/forward_iface.py +0 -0
  172. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/__init__.py +0 -0
  173. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_backend.py +0 -0
  174. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_native/__init__.py +0 -0
  175. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_native/backend.cpp +0 -0
  176. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_native/backend.hpp +0 -0
  177. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_native/module.cpp +0 -0
  178. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_native/module.hpp +0 -0
  179. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_native/py_utils.hpp +0 -0
  180. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_native/tensor_ops.cpp +0 -0
  181. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_native/tensor_ops.hpp +0 -0
  182. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_numpy_backend.py +0 -0
  183. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_random_journal.py +0 -0
  184. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/_utils.py +0 -0
  185. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/array_.py +0 -0
  186. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/attention.py +0 -0
  187. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/audio/__init__.py +0 -0
  188. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/audio/mel.py +0 -0
  189. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/audio/specaugment.py +0 -0
  190. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/backend.py +0 -0
  191. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/build_from_dict.py +0 -0
  192. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/cond.py +0 -0
  193. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/const.py +0 -0
  194. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/container.py +0 -0
  195. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/control_flow_ctx.py +0 -0
  196. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/conv.py +0 -0
  197. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/conversions/__init__.py +0 -0
  198. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/conversions/espnet_e_branchformer.py +0 -0
  199. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/conversions/hf_llama.py +0 -0
  200. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/conversions/torch_nn.py +0 -0
  201. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/decoder/__init__.py +0 -0
  202. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/decoder/transformer.py +0 -0
  203. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/device.py +0 -0
  204. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/dims.py +0 -0
  205. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/dropout.py +0 -0
  206. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/dtype.py +0 -0
  207. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/encoder/__init__.py +0 -0
  208. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/encoder/base.py +0 -0
  209. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/encoder/conformer.py +0 -0
  210. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/encoder/e_branchformer.py +0 -0
  211. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/encoder/transformer.py +0 -0
  212. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/gradient.py +0 -0
  213. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/graph.py +0 -0
  214. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/hooks.py +0 -0
  215. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/init.py +0 -0
  216. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/label_smoothing.py +0 -0
  217. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/linear.py +0 -0
  218. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/loop.py +0 -0
  219. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/loss.py +0 -0
  220. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/math_.py +0 -0
  221. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/matmul.py +0 -0
  222. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/module.py +0 -0
  223. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/normalization.py +0 -0
  224. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/parameter.py +0 -0
  225. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/parametrizations.py +0 -0
  226. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/parametrize.py +0 -0
  227. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/piecewise_linear.py +0 -0
  228. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/rand.py +0 -0
  229. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/rec.py +0 -0
  230. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/reduce.py +0 -0
  231. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/run_ctx.py +0 -0
  232. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/signal.py +0 -0
  233. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/state.py +0 -0
  234. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/stepwise_scheduler.py +0 -0
  235. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/tensor_array.py +0 -0
  236. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/frontend/types.py +0 -0
  237. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/import_/__init__.py +0 -0
  238. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/import_/common.py +0 -0
  239. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/import_/git.py +0 -0
  240. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/import_/import_.py +0 -0
  241. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/learning_rate_control.py +0 -0
  242. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/log.py +0 -0
  243. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/native_op.cpp +0 -0
  244. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/native_op.py +0 -0
  245. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/pretrain.py +0 -0
  246. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/sprint/__init__.py +0 -0
  247. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/sprint/cache.py +0 -0
  248. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/sprint/control.py +0 -0
  249. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/sprint/error_signals.py +0 -0
  250. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/sprint/extern_interface.py +0 -0
  251. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/sprint/interface.py +0 -0
  252. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/README.md +0 -0
  253. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/__init__.py +0 -0
  254. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/_dim_extra.py +0 -0
  255. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/_tensor_extra.py +0 -0
  256. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/_tensor_mixin_base.py +0 -0
  257. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/_tensor_op_overloads.py +0 -0
  258. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/control_flow_ctx.py +0 -0
  259. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/dim.py +0 -0
  260. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/marked_dim.py +0 -0
  261. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/tensor.py +0 -0
  262. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/tensor_dict.py +0 -0
  263. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tensor/utils.py +0 -0
  264. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/__init__.py +0 -0
  265. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/compat.py +0 -0
  266. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/data_pipeline.py +0 -0
  267. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/distributed.py +0 -0
  268. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/engine.py +0 -0
  269. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/README.md +0 -0
  270. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/__init__.py +0 -0
  271. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/_backend.py +0 -0
  272. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/_utils.py +0 -0
  273. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/cond.py +0 -0
  274. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/config_entry_points.py +0 -0
  275. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/debug_eager_mode.py +0 -0
  276. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/dims.py +0 -0
  277. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/layer.py +0 -0
  278. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/loop.py +0 -0
  279. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/make_layer.py +0 -0
  280. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/masked_computation.py +0 -0
  281. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/parameter_assign.py +0 -0
  282. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_layers/prev_tensor_ref.py +0 -0
  283. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_low_level/__init__.py +0 -0
  284. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/frontend_low_level/_backend.py +0 -0
  285. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/horovod.py +0 -0
  286. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/hyper_param_tuning.py +0 -0
  287. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/layers/__init__.py +0 -0
  288. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/layers/base.py +0 -0
  289. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/layers/basic.py +0 -0
  290. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/layers/rec.py +0 -0
  291. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/layers/segmental_model.py +0 -0
  292. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/layers/signal_processing.py +0 -0
  293. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/layers/variable.py +0 -0
  294. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/native_op.py +0 -0
  295. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/network.py +0 -0
  296. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/sprint.py +0 -0
  297. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/updater.py +0 -0
  298. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/util/__init__.py +0 -0
  299. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/util/basic.py +0 -0
  300. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/util/data.py +0 -0
  301. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/util/gradient_checkpoint.py +0 -0
  302. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/util/ken_lm.py +0 -0
  303. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/tf/util/open_fst.py +0 -0
  304. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/README.md +0 -0
  305. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/__init__.py +0 -0
  306. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/data/__init__.py +0 -0
  307. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/data/extern_data.py +0 -0
  308. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/data/pipeline.py +0 -0
  309. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/data/queued_data_iter.py +0 -0
  310. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/data/returnn_dataset_wrapper.py +0 -0
  311. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/data/tensor_utils.py +0 -0
  312. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/distributed.py +0 -0
  313. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/engine.py +0 -0
  314. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/frontend/__init__.py +0 -0
  315. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/frontend/_backend.py +0 -0
  316. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/frontend/_rand.py +0 -0
  317. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/frontend/bridge.py +0 -0
  318. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/frontend/raw_ops.py +0 -0
  319. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/optim/README.md +0 -0
  320. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/optim/__init__.py +0 -0
  321. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/optim/lion.py +0 -0
  322. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/updater.py +0 -0
  323. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/util/README.md +0 -0
  324. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/util/__init__.py +0 -0
  325. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/util/array_.py +0 -0
  326. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/util/debug_inf_nan.py +0 -0
  327. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/util/diagnose_gpu.py +0 -0
  328. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/util/exception_helper.py +0 -0
  329. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/util/gradient_checkpoint.py +0 -0
  330. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/util/module.py +0 -0
  331. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/torch/util/scaled_gradient.py +0 -0
  332. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/__init__.py +0 -0
  333. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/basic.py +0 -0
  334. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/better_exchook.py +0 -0
  335. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/bpe.py +0 -0
  336. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/debug.py +0 -0
  337. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/debug_helpers.py +0 -0
  338. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/file_cache.py +0 -0
  339. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/fsa.py +0 -0
  340. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/literal_py_to_pickle.py +0 -0
  341. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/math.py +0 -0
  342. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/multi_proc_non_daemonic_spawn.py +0 -0
  343. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/native_code_compiler.py +0 -0
  344. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/pprint.py +0 -0
  345. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/py-to-pickle.cpp +0 -0
  346. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/py_compat.py +0 -0
  347. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/py_ext_mod_compiler.py +0 -0
  348. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/result_with_reason.py +0 -0
  349. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/sig_proc.py +0 -0
  350. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/task_system.py +0 -0
  351. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/train_proc_manager.py +0 -0
  352. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn/util/watch_memory.py +0 -0
  353. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn.egg-info/SOURCES.txt +0 -0
  354. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn.egg-info/dependency_links.txt +0 -0
  355. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/returnn.egg-info/top_level.txt +0 -0
  356. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/rnn.py +0 -0
  357. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/setup.cfg +0 -0
  358. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/setup.py +0 -0
  359. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/DummySprintExec.py +0 -0
  360. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm-inspection-profile.xml +0 -0
  361. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm.idea/.gitignore +0 -0
  362. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm.idea/.name +0 -0
  363. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm.idea/codeStyleSettings.xml +0 -0
  364. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm.idea/codeStyles/Project.xml +0 -0
  365. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm.idea/codeStyles/codeStyleConfig.xml +0 -0
  366. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm.idea/inspectionProfiles/Project_Default.xml +0 -0
  367. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm.idea/inspectionProfiles/profiles_settings.xml +0 -0
  368. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm.idea/misc.xml +0 -0
  369. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm.idea/modules.xml +0 -0
  370. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm.idea/returnn.iml +0 -0
  371. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/PyCharm.idea/scopes/scope_settings.xml +0 -0
  372. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/_set_num_threads1.py +0 -0
  373. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/_setup_returnn_env.py +0 -0
  374. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/_setup_test_env.py +0 -0
  375. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/bpe-unicode-demo.codes +0 -0
  376. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/bpe-unicode-demo.vocab +0 -0
  377. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/lexicon_opt.fst +0 -0
  378. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/lexicon_opt.isyms +0 -0
  379. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/lexicon_opt.jpg +0 -0
  380. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/lexicon_opt.osyms +0 -0
  381. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/lint_common.py +0 -0
  382. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/pycharm-inspect.py +0 -0
  383. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/pylint.py +0 -0
  384. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/returnn-as-framework.py +0 -0
  385. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/rf_utils.py +0 -0
  386. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/spelling.dic +0 -0
  387. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_Fsa.py +0 -0
  388. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_MultiProcDataset.py +0 -0
  389. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_TFNetworkSigProcLayer.py +0 -0
  390. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_TF_determinism.py +0 -0
  391. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_TaskSystem_SharedMem.py +0 -0
  392. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_hdf_dump.py +0 -0
  393. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_array.py +0 -0
  394. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_attention.py +0 -0
  395. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_base.py +0 -0
  396. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_cond.py +0 -0
  397. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_const.py +0 -0
  398. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_container.py +0 -0
  399. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_conv.py +0 -0
  400. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_decoder_transformer.py +0 -0
  401. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_encoder_conformer.py +0 -0
  402. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_gradient.py +0 -0
  403. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_label_smoothing.py +0 -0
  404. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_loop.py +0 -0
  405. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_math.py +0 -0
  406. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_normalization.py +0 -0
  407. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_piecewise_linear.py +0 -0
  408. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_rec.py +0 -0
  409. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_reduce.py +0 -0
  410. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_rf_signal.py +0 -0
  411. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_tensor.py +0 -0
  412. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_tools.py +0 -0
  413. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_torch_dataset.py +0 -0
  414. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_torch_engine.py +0 -0
  415. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_torch_frontend.py +0 -0
  416. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_torch_internal_frontend.py +0 -0
  417. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/test_torch_util.py +0 -0
  418. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tests/torch_utils.py +0 -0
  419. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/_setup_returnn_env.py +0 -0
  420. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/analyze-dataset-batches.py +0 -0
  421. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/bliss-collect-seq-lens.py +0 -0
  422. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/bliss-dump-text.py +0 -0
  423. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/bliss-get-segment-names.py +0 -0
  424. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/bliss-to-ogg-zip.py +0 -0
  425. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/bpe-create-lexicon.py +0 -0
  426. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/calculate-word-error-rate.py +0 -0
  427. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/cleanup-old-models.py +0 -0
  428. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/collect-orth-symbols.py +0 -0
  429. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/collect-words.py +0 -0
  430. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/compile_native_op.py +0 -0
  431. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/compile_tf_graph.py +0 -0
  432. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/debug-dump-search-scores.py +0 -0
  433. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/debug-plot-search-scores.py +0 -0
  434. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/dump-dataset-raw-strings.py +0 -0
  435. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/dump-dataset.py +0 -0
  436. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/dump-forward-stats.py +0 -0
  437. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/dump-forward.py +0 -0
  438. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/dump-network-json.py +0 -0
  439. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/dump-pickle.py +0 -0
  440. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/extract_state_tying_from_dataset.py +0 -0
  441. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/get-attention-weights.py +0 -0
  442. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/get-best-model-epoch.py +0 -0
  443. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/hdf_dump.py +0 -0
  444. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/hdf_dump_translation_dataset.py +0 -0
  445. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/import-t2t-mt-model.py +0 -0
  446. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/.gitignore +0 -0
  447. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/Makefile +0 -0
  448. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/README.md +0 -0
  449. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/example/README.md +0 -0
  450. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/example/libs_list +0 -0
  451. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.config +0 -0
  452. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/example/network.040/i600_m600_m600.sgd_b16_lr0_cl2.newbobabs.keep_over_epoch.lstm2.config +0 -0
  453. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/example/rescore_lattice.sh +0 -0
  454. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/example/state_vars_list +0 -0
  455. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/example/tensor_names_list +0 -0
  456. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/file.h +0 -0
  457. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/htklatticerescorer.cc +0 -0
  458. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/htklatticerescorer.h +0 -0
  459. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/main.cc +0 -0
  460. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/rescorer.h +0 -0
  461. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/vocabulary.cc +0 -0
  462. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/lattice_rescorer/vocabulary.h +0 -0
  463. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/tf_avg_checkpoints.py +0 -0
  464. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/tf_inspect_checkpoint.py +0 -0
  465. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/tf_inspect_summary_log.py +0 -0
  466. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/torch_avg_checkpoints.py +0 -0
  467. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/torch_export_to_onnx.py +0 -0
  468. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/torch_inspect_checkpoint.py +0 -0
  469. {returnn-1.20241210.150216 → returnn-1.20241211.145755}/tools/torch_inspect_checkpoint_and_opt.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20241210.150216
3
+ Version: 1.20241211.145755
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.20241211.145755'
2
+ long_version = '1.20241211.145755+git.4c6e245'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: returnn
3
- Version: 1.20241210.150216
3
+ Version: 1.20241211.145755
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,7 +1,6 @@
1
1
  import sys
2
2
  import _setup_test_env # noqa
3
3
  import unittest
4
- from nose.tools import assert_equal, assert_is_instance, assert_in, assert_greater, assert_true, assert_false
5
4
  from pprint import pprint
6
5
  from returnn.config import *
7
6
  from returnn.util import better_exchook
@@ -21,16 +20,16 @@ def test_old_format():
21
20
  )
22
21
  )
23
22
 
24
- assert_true(config.has("num_inputs"))
25
- assert_true(config.has("hidden_type"))
26
- assert_equal(config.int("num_inputs", -1), 3)
27
- assert_equal(config.value("hidden_type", "x"), "forward,lstm")
28
- assert_equal(config.value("hidden_type", "x", index=0), "forward")
29
- assert_equal(config.value("hidden_type", "x", index=1), "lstm")
30
- assert_equal(config.list("hidden_type", ["x"]), ["forward", "lstm"])
23
+ assert config.has("num_inputs") is True
24
+ assert config.has("hidden_type") is True
25
+ assert config.int("num_inputs", -1) == 3
26
+ assert config.value("hidden_type", "x") == "forward,lstm"
27
+ assert config.value("hidden_type", "x", index=0) == "forward"
28
+ assert config.value("hidden_type", "x", index=1) == "lstm"
29
+ assert config.list("hidden_type", ["x"]) == ["forward", "lstm"]
31
30
 
32
- assert_false(config.is_typed("num_inputs"))
33
- assert_false(config.is_typed("hidden_type"))
31
+ assert config.is_typed("num_inputs") is False
32
+ assert config.is_typed("hidden_type") is False
34
33
 
35
34
 
36
35
  def test_json_format():
@@ -47,19 +46,19 @@ def test_json_format():
47
46
  )
48
47
  )
49
48
 
50
- assert_true(config.has("num_inputs"))
51
- assert_true(config.has("hidden_type"))
52
- assert_equal(config.int("num_inputs", -1), 3)
53
- assert_equal(config.value("hidden_type", "x"), "forward,lstm")
54
- assert_equal(config.value("hidden_type", "x", index=0), "forward")
55
- assert_equal(config.value("hidden_type", "x", index=1), "lstm")
56
- assert_equal(config.list("hidden_type", ["x"]), ["forward", "lstm"])
49
+ assert config.has("num_inputs") is True
50
+ assert config.has("hidden_type") is True
51
+ assert config.int("num_inputs", -1) == 3
52
+ assert config.value("hidden_type", "x") == "forward,lstm"
53
+ assert config.value("hidden_type", "x", index=0) == "forward"
54
+ assert config.value("hidden_type", "x", index=1) == "lstm"
55
+ assert config.list("hidden_type", ["x"]) == ["forward", "lstm"]
57
56
 
58
- assert_true(config.is_typed("num_inputs"))
59
- assert_true(config.is_typed("hidden_type"))
60
- assert_is_instance(config.typed_value("num_inputs"), int)
61
- assert_is_instance(config.typed_value("hidden_type"), list)
62
- assert_equal(config.typed_value("hidden_type"), ["forward", "lstm"])
57
+ assert config.is_typed("num_inputs") is True
58
+ assert config.is_typed("hidden_type") is True
59
+ assert isinstance(config.typed_value("num_inputs"), int)
60
+ assert isinstance(config.typed_value("hidden_type"), list)
61
+ assert config.typed_value("hidden_type") == ["forward", "lstm"]
63
62
 
64
63
 
65
64
  def test_py_config():
@@ -74,19 +73,19 @@ hidden_type = ["forward", "lstm"]
74
73
  )
75
74
  )
76
75
 
77
- assert_true(config.has("num_inputs"))
78
- assert_true(config.has("hidden_type"))
79
- assert_equal(config.int("num_inputs", -1), 3)
80
- assert_equal(config.value("hidden_type", "x"), "forward,lstm")
81
- assert_equal(config.value("hidden_type", "x", index=0), "forward")
82
- assert_equal(config.value("hidden_type", "x", index=1), "lstm")
83
- assert_equal(config.list("hidden_type", ["x"]), ["forward", "lstm"])
76
+ assert config.has("num_inputs") is True
77
+ assert config.has("hidden_type") is True
78
+ assert config.int("num_inputs", -1) == 3
79
+ assert config.value("hidden_type", "x") == "forward,lstm"
80
+ assert config.value("hidden_type", "x", index=0) == "forward"
81
+ assert config.value("hidden_type", "x", index=1) == "lstm"
82
+ assert config.list("hidden_type", ["x"]) == ["forward", "lstm"]
84
83
 
85
- assert_true(config.is_typed("num_inputs"))
86
- assert_true(config.is_typed("hidden_type"))
87
- assert_is_instance(config.typed_value("num_inputs"), int)
88
- assert_is_instance(config.typed_value("hidden_type"), list)
89
- assert_equal(config.typed_value("hidden_type"), ["forward", "lstm"])
84
+ assert config.is_typed("num_inputs") is True
85
+ assert config.is_typed("hidden_type") is True
86
+ assert isinstance(config.typed_value("num_inputs"), int)
87
+ assert isinstance(config.typed_value("hidden_type"), list)
88
+ assert config.typed_value("hidden_type") == ["forward", "lstm"]
90
89
 
91
90
 
92
91
  def test_rnn_init_config_py_global_var():
@@ -115,9 +114,9 @@ def test_func():
115
114
  assert rnn.config.has("task")
116
115
  assert rnn.config.has("test_value")
117
116
  assert rnn.config.has("test_func")
118
- assert_equal(rnn.config.value("task", None), "search")
117
+ assert rnn.config.value("task", None) == "search"
119
118
  assert rnn.config.is_typed("test_value")
120
- assert_equal(rnn.config.typed_value("test_value"), 42)
119
+ assert rnn.config.typed_value("test_value") == 42
121
120
  assert rnn.config.is_typed("test_func")
122
121
  # So far it's fine.
123
122
  # Now something a bit strange.
@@ -125,7 +124,7 @@ def test_func():
125
124
  assert rnn.config.is_typed("task")
126
125
  test_func = rnn.config.typed_dict["test_func"]
127
126
  assert callable(test_func)
128
- assert_equal(test_func(), "search")
127
+ assert test_func() == "search"
129
128
 
130
129
 
131
130
  def test_rnn_init_config_py_cmd_type():
@@ -152,7 +151,7 @@ def test_func():
152
151
  assert rnn.config.is_typed("test_func")
153
152
  test_func = rnn.config.typed_dict["test_func"]
154
153
  assert callable(test_func)
155
- assert_equal(test_func(), 0)
154
+ assert test_func() == 0
156
155
 
157
156
 
158
157
  def test_config_py_ext():
@@ -176,9 +175,9 @@ def test_func():
176
175
  assert config.is_typed("test_func")
177
176
  test_func = config.typed_dict["test_func"]
178
177
  assert callable(test_func)
179
- assert_equal(test_func(), "train")
178
+ assert test_func() == "train"
180
179
  config.set("task", "search")
181
- assert_equal(test_func(), "search")
180
+ assert test_func() == "search"
182
181
 
183
182
 
184
183
  def test_config_py_old_returnn_imports():
@@ -10,7 +10,6 @@ import unittest
10
10
  import numpy
11
11
  import tempfile
12
12
  import contextlib
13
- from nose.tools import assert_equal, assert_is_instance, assert_in, assert_not_in, assert_true, assert_false
14
13
  from returnn.datasets.generating import Task12AXDataset, DummyDataset, DummyDatasetMultipleSequenceLength
15
14
  from returnn.engine.batch import Batch
16
15
  from returnn.datasets.basic import Dataset, DatasetSeq, init_dataset
@@ -116,9 +115,9 @@ def test_iterate_seqs_no_chunking_1():
116
115
  dataset.chunk_size = 0
117
116
  dataset.init_seq_order(1)
118
117
  seqs = list(dataset.iterate_seqs())
119
- assert_equal(len(seqs), 2)
120
- assert_equal(seqs[0], (0, 0, 11)) # seq-idx, start-frame, end-frame
121
- assert_equal(seqs[1], (1, 0, 11))
118
+ assert len(seqs) == 2
119
+ assert seqs[0] == (0, 0, 11) # seq-idx, start-frame, end-frame
120
+ assert seqs[1] == (1, 0, 11)
122
121
 
123
122
 
124
123
  def test_iterate_seqs_chunking_1():
@@ -129,13 +128,13 @@ def test_iterate_seqs_chunking_1():
129
128
  seqs = list(dataset.iterate_seqs())
130
129
  for s in seqs:
131
130
  print(s)
132
- assert_equal(len(seqs), 6)
133
- assert_equal(seqs[0], (0, 0, 10)) # seq-idx, start-frame, end-frame
134
- assert_equal(seqs[1], (0, 5, 11))
135
- assert_equal(seqs[2], (0, 10, 11))
136
- assert_equal(seqs[3], (1, 0, 10))
137
- assert_equal(seqs[4], (1, 5, 11))
138
- assert_equal(seqs[5], (1, 10, 11))
131
+ assert len(seqs) == 6
132
+ assert seqs[0] == (0, 0, 10) # seq-idx, start-frame, end-frame
133
+ assert seqs[1] == (0, 5, 11)
134
+ assert seqs[2] == (0, 10, 11)
135
+ assert seqs[3] == (1, 0, 10)
136
+ assert seqs[4] == (1, 5, 11)
137
+ assert seqs[5] == (1, 10, 11)
139
138
 
140
139
 
141
140
  def test_iterate_seqs_chunking_varying_sequence_length():
@@ -148,15 +147,15 @@ def test_iterate_seqs_chunking_varying_sequence_length():
148
147
  seqs = list(dataset.iterate_seqs())
149
148
  for s in seqs:
150
149
  print(s)
151
- assert_equal(len(seqs), 8)
152
- assert_equal(seqs[0], (0, NumbersDict({"data": 0, "classes": 0}), NumbersDict({"data": 12, "classes": 6})))
153
- assert_equal(seqs[1], (0, NumbersDict({"data": 6, "classes": 3}), NumbersDict({"data": 18, "classes": 9})))
154
- assert_equal(seqs[2], (0, NumbersDict({"data": 12, "classes": 6}), NumbersDict({"data": 24, "classes": 12})))
155
- assert_equal(seqs[3], (0, NumbersDict({"data": 18, "classes": 9}), NumbersDict({"data": 24, "classes": 12})))
156
- assert_equal(seqs[4], (1, NumbersDict({"data": 0, "classes": 0}), NumbersDict({"data": 12, "classes": 6})))
157
- assert_equal(seqs[5], (1, NumbersDict({"data": 6, "classes": 3}), NumbersDict({"data": 18, "classes": 9})))
158
- assert_equal(seqs[6], (1, NumbersDict({"data": 12, "classes": 6}), NumbersDict({"data": 24, "classes": 12})))
159
- assert_equal(seqs[7], (1, NumbersDict({"data": 18, "classes": 9}), NumbersDict({"data": 24, "classes": 12})))
150
+ assert len(seqs) == 8
151
+ assert seqs[0] == (0, NumbersDict({"data": 0, "classes": 0}), NumbersDict({"data": 12, "classes": 6}))
152
+ assert seqs[1] == (0, NumbersDict({"data": 6, "classes": 3}), NumbersDict({"data": 18, "classes": 9}))
153
+ assert seqs[2] == (0, NumbersDict({"data": 12, "classes": 6}), NumbersDict({"data": 24, "classes": 12}))
154
+ assert seqs[3] == (0, NumbersDict({"data": 18, "classes": 9}), NumbersDict({"data": 24, "classes": 12}))
155
+ assert seqs[4] == (1, NumbersDict({"data": 0, "classes": 0}), NumbersDict({"data": 12, "classes": 6}))
156
+ assert seqs[5] == (1, NumbersDict({"data": 6, "classes": 3}), NumbersDict({"data": 18, "classes": 9}))
157
+ assert seqs[6] == (1, NumbersDict({"data": 12, "classes": 6}), NumbersDict({"data": 24, "classes": 12}))
158
+ assert seqs[7] == (1, NumbersDict({"data": 18, "classes": 9}), NumbersDict({"data": 24, "classes": 12}))
160
159
 
161
160
 
162
161
  def test_iterate_seqs_custom_chunking():
@@ -183,13 +182,13 @@ def test_iterate_seqs_custom_chunking():
183
182
  seqs = list(dataset.iterate_seqs())
184
183
  for s in seqs:
185
184
  print(s)
186
- assert_equal(len(seqs), 6)
187
- assert_equal(seqs[0], (0, 0, 10)) # seq-idx, start-frame, end-frame
188
- assert_equal(seqs[1], (0, 5, 11))
189
- assert_equal(seqs[2], (0, 10, 11))
190
- assert_equal(seqs[3], (1, 0, 10))
191
- assert_equal(seqs[4], (1, 5, 11))
192
- assert_equal(seqs[5], (1, 10, 11))
185
+ assert len(seqs) == 6
186
+ assert seqs[0] == (0, 0, 10) # seq-idx, start-frame, end-frame
187
+ assert seqs[1] == (0, 5, 11)
188
+ assert seqs[2] == (0, 10, 11)
189
+ assert seqs[3] == (1, 0, 10)
190
+ assert seqs[4] == (1, 5, 11)
191
+ assert seqs[5] == (1, 10, 11)
193
192
 
194
193
 
195
194
  def test_batches_recurrent_1():
@@ -202,7 +201,7 @@ def test_batches_recurrent_1():
202
201
  " :type: list[Batch] "
203
202
  while batch_gen.has_more():
204
203
  (batch,) = batch_gen.peek_next_n(1)
205
- assert_is_instance(batch, Batch)
204
+ assert isinstance(batch, Batch)
206
205
  print("batch:", batch)
207
206
  print("batch seqs:", batch.seqs)
208
207
  all_batches.append(batch)
@@ -211,47 +210,47 @@ def test_batches_recurrent_1():
211
210
  # Each batch will have 1 batch-slice (max_seqs) and up to 10 frames (chunk_size).
212
211
  # For each seq, we get 3 chunks (chunk_step 5 for 11 frames).
213
212
  # Thus, 6 batches.
214
- assert_equal(len(all_batches), 6)
215
-
216
- assert_equal(all_batches[0].start_seq, 0)
217
- assert_equal(all_batches[0].end_seq, 1) # exclusive
218
- assert_equal(len(all_batches[0].seqs), 1) # 1 BatchSeqCopyPart
219
- assert_equal(all_batches[0].seqs[0].seq_idx, 0)
220
- assert_equal(all_batches[0].seqs[0].seq_start_frame, 0)
221
- assert_equal(all_batches[0].seqs[0].seq_end_frame, 10)
222
- assert_equal(all_batches[0].seqs[0].frame_length, 10)
223
- assert_equal(all_batches[0].seqs[0].batch_slice, 0)
224
- assert_equal(all_batches[0].seqs[0].batch_frame_offset, 0)
225
-
226
- assert_equal(all_batches[1].start_seq, 0)
227
- assert_equal(all_batches[1].end_seq, 1) # exclusive
228
- assert_equal(len(all_batches[1].seqs), 1) # 1 BatchSeqCopyPart
229
- assert_equal(all_batches[1].seqs[0].seq_idx, 0)
230
- assert_equal(all_batches[1].seqs[0].seq_start_frame, 5)
231
- assert_equal(all_batches[1].seqs[0].seq_end_frame, 11)
232
- assert_equal(all_batches[1].seqs[0].frame_length, 6)
233
- assert_equal(all_batches[1].seqs[0].batch_slice, 0)
234
- assert_equal(all_batches[1].seqs[0].batch_frame_offset, 0)
235
-
236
- assert_equal(all_batches[2].start_seq, 0)
237
- assert_equal(all_batches[2].end_seq, 1) # exclusive
238
- assert_equal(len(all_batches[2].seqs), 1) # 1 BatchSeqCopyPart
239
- assert_equal(all_batches[2].seqs[0].seq_idx, 0)
240
- assert_equal(all_batches[2].seqs[0].seq_start_frame, 10)
241
- assert_equal(all_batches[2].seqs[0].seq_end_frame, 11)
242
- assert_equal(all_batches[2].seqs[0].frame_length, 1)
243
- assert_equal(all_batches[2].seqs[0].batch_slice, 0)
244
- assert_equal(all_batches[2].seqs[0].batch_frame_offset, 0)
245
-
246
- assert_equal(all_batches[3].start_seq, 1)
247
- assert_equal(all_batches[3].end_seq, 2) # exclusive
248
- assert_equal(len(all_batches[3].seqs), 1) # 1 BatchSeqCopyPart
249
- assert_equal(all_batches[3].seqs[0].seq_idx, 1)
250
- assert_equal(all_batches[3].seqs[0].seq_start_frame, 0)
251
- assert_equal(all_batches[3].seqs[0].seq_end_frame, 10)
252
- assert_equal(all_batches[3].seqs[0].frame_length, 10)
253
- assert_equal(all_batches[3].seqs[0].batch_slice, 0)
254
- assert_equal(all_batches[3].seqs[0].batch_frame_offset, 0)
213
+ assert len(all_batches) == 6
214
+
215
+ assert all_batches[0].start_seq == 0
216
+ assert all_batches[0].end_seq == 1 # exclusive
217
+ assert len(all_batches[0].seqs) == 1 # 1 BatchSeqCopyPart
218
+ assert all_batches[0].seqs[0].seq_idx == 0
219
+ assert all_batches[0].seqs[0].seq_start_frame == 0
220
+ assert all_batches[0].seqs[0].seq_end_frame == 10
221
+ assert all_batches[0].seqs[0].frame_length == 10
222
+ assert all_batches[0].seqs[0].batch_slice == 0
223
+ assert all_batches[0].seqs[0].batch_frame_offset == 0
224
+
225
+ assert all_batches[1].start_seq == 0
226
+ assert all_batches[1].end_seq == 1 # exclusive
227
+ assert len(all_batches[1].seqs) == 1 # 1 BatchSeqCopyPart
228
+ assert all_batches[1].seqs[0].seq_idx == 0
229
+ assert all_batches[1].seqs[0].seq_start_frame == 5
230
+ assert all_batches[1].seqs[0].seq_end_frame == 11
231
+ assert all_batches[1].seqs[0].frame_length == 6
232
+ assert all_batches[1].seqs[0].batch_slice == 0
233
+ assert all_batches[1].seqs[0].batch_frame_offset == 0
234
+
235
+ assert all_batches[2].start_seq == 0
236
+ assert all_batches[2].end_seq == 1 # exclusive
237
+ assert len(all_batches[2].seqs) == 1 # 1 BatchSeqCopyPart
238
+ assert all_batches[2].seqs[0].seq_idx == 0
239
+ assert all_batches[2].seqs[0].seq_start_frame == 10
240
+ assert all_batches[2].seqs[0].seq_end_frame == 11
241
+ assert all_batches[2].seqs[0].frame_length == 1
242
+ assert all_batches[2].seqs[0].batch_slice == 0
243
+ assert all_batches[2].seqs[0].batch_frame_offset == 0
244
+
245
+ assert all_batches[3].start_seq == 1
246
+ assert all_batches[3].end_seq == 2 # exclusive
247
+ assert len(all_batches[3].seqs) == 1 # 1 BatchSeqCopyPart
248
+ assert all_batches[3].seqs[0].seq_idx == 1
249
+ assert all_batches[3].seqs[0].seq_start_frame == 0
250
+ assert all_batches[3].seqs[0].seq_end_frame == 10
251
+ assert all_batches[3].seqs[0].frame_length == 10
252
+ assert all_batches[3].seqs[0].batch_slice == 0
253
+ assert all_batches[3].seqs[0].batch_frame_offset == 0
255
254
 
256
255
  # ...
257
256
 
@@ -263,7 +262,7 @@ def test_batches_non_recurrent_1():
263
262
  all_batches = [] # type: list[Batch]
264
263
  while batch_gen.has_more():
265
264
  (batch,) = batch_gen.peek_next_n(1)
266
- assert_is_instance(batch, Batch)
265
+ assert isinstance(batch, Batch)
267
266
  print("batch:", batch)
268
267
  print("batch seqs:", batch.seqs)
269
268
  all_batches.append(batch)
@@ -271,63 +270,63 @@ def test_batches_non_recurrent_1():
271
270
 
272
271
  # Each batch will have 5 frames (batch_size), not more, i.e. a single seq.
273
272
  # There are 2 * 11 frames in total, so 5 batches, because we concat the 2 seqs, in the non-recurrent case.
274
- assert_equal(len(all_batches), 5)
275
-
276
- assert_equal(all_batches[0].start_seq, 0)
277
- assert_equal(all_batches[0].end_seq, 1) # exclusive
278
- assert_equal(len(all_batches[0].seqs), 1) # 1 BatchSeqCopyPart
279
- assert_equal(all_batches[0].seqs[0].seq_idx, 0)
280
- assert_equal(all_batches[0].seqs[0].seq_start_frame, 0)
281
- assert_equal(all_batches[0].seqs[0].seq_end_frame, 5)
282
- assert_equal(all_batches[0].seqs[0].frame_length, 5)
283
- assert_equal(all_batches[0].seqs[0].batch_slice, 0)
284
- assert_equal(all_batches[0].seqs[0].batch_frame_offset, 0)
285
-
286
- assert_equal(all_batches[1].start_seq, 0)
287
- assert_equal(all_batches[1].end_seq, 1) # exclusive
288
- assert_equal(len(all_batches[1].seqs), 1) # 1 BatchSeqCopyPart
289
- assert_equal(all_batches[1].seqs[0].seq_idx, 0)
290
- assert_equal(all_batches[1].seqs[0].seq_start_frame, 5)
291
- assert_equal(all_batches[1].seqs[0].seq_end_frame, 10)
292
- assert_equal(all_batches[1].seqs[0].frame_length, 5)
293
- assert_equal(all_batches[1].seqs[0].batch_slice, 0)
294
- assert_equal(all_batches[1].seqs[0].batch_frame_offset, 0)
295
-
296
- assert_equal(all_batches[2].start_seq, 0)
297
- assert_equal(all_batches[2].end_seq, 2) # exclusive. now both seq 0 and 1
298
- assert_equal(len(all_batches[2].seqs), 2) # two copies, BatchSeqCopyPart
299
- assert_equal(all_batches[2].seqs[0].seq_idx, 0)
300
- assert_equal(all_batches[2].seqs[0].seq_start_frame, 10)
301
- assert_equal(all_batches[2].seqs[0].seq_end_frame, 11)
302
- assert_equal(all_batches[2].seqs[0].frame_length, 1)
303
- assert_equal(all_batches[2].seqs[0].batch_slice, 0)
304
- assert_equal(all_batches[2].seqs[0].batch_frame_offset, 0)
305
- assert_equal(all_batches[2].seqs[1].seq_idx, 1)
306
- assert_equal(all_batches[2].seqs[1].seq_start_frame, 0)
307
- assert_equal(all_batches[2].seqs[1].seq_end_frame, 4)
308
- assert_equal(all_batches[2].seqs[1].frame_length, 4)
309
- assert_equal(all_batches[2].seqs[1].batch_slice, 0)
310
- assert_equal(all_batches[2].seqs[1].batch_frame_offset, 1)
311
-
312
- assert_equal(all_batches[3].start_seq, 1)
313
- assert_equal(all_batches[3].end_seq, 2) # exclusive
314
- assert_equal(len(all_batches[3].seqs), 1) # 1 BatchSeqCopyPart
315
- assert_equal(all_batches[3].seqs[0].seq_idx, 1)
316
- assert_equal(all_batches[3].seqs[0].seq_start_frame, 4)
317
- assert_equal(all_batches[3].seqs[0].seq_end_frame, 9)
318
- assert_equal(all_batches[3].seqs[0].frame_length, 5)
319
- assert_equal(all_batches[3].seqs[0].batch_slice, 0)
320
- assert_equal(all_batches[3].seqs[0].batch_frame_offset, 0)
321
-
322
- assert_equal(all_batches[4].start_seq, 1)
323
- assert_equal(all_batches[4].end_seq, 2) # exclusive
324
- assert_equal(len(all_batches[4].seqs), 1) # 1 BatchSeqCopyPart
325
- assert_equal(all_batches[4].seqs[0].seq_idx, 1)
326
- assert_equal(all_batches[4].seqs[0].seq_start_frame, 9)
327
- assert_equal(all_batches[4].seqs[0].seq_end_frame, 11)
328
- assert_equal(all_batches[4].seqs[0].frame_length, 2)
329
- assert_equal(all_batches[4].seqs[0].batch_slice, 0)
330
- assert_equal(all_batches[4].seqs[0].batch_frame_offset, 0)
273
+ assert len(all_batches) == 5
274
+
275
+ assert all_batches[0].start_seq == 0
276
+ assert all_batches[0].end_seq == 1 # exclusive
277
+ assert len(all_batches[0].seqs) == 1 # 1 BatchSeqCopyPart
278
+ assert all_batches[0].seqs[0].seq_idx == 0
279
+ assert all_batches[0].seqs[0].seq_start_frame == 0
280
+ assert all_batches[0].seqs[0].seq_end_frame == 5
281
+ assert all_batches[0].seqs[0].frame_length == 5
282
+ assert all_batches[0].seqs[0].batch_slice == 0
283
+ assert all_batches[0].seqs[0].batch_frame_offset == 0
284
+
285
+ assert all_batches[1].start_seq == 0
286
+ assert all_batches[1].end_seq == 1 # exclusive
287
+ assert len(all_batches[1].seqs) == 1 # 1 BatchSeqCopyPart
288
+ assert all_batches[1].seqs[0].seq_idx == 0
289
+ assert all_batches[1].seqs[0].seq_start_frame == 5
290
+ assert all_batches[1].seqs[0].seq_end_frame == 10
291
+ assert all_batches[1].seqs[0].frame_length == 5
292
+ assert all_batches[1].seqs[0].batch_slice == 0
293
+ assert all_batches[1].seqs[0].batch_frame_offset == 0
294
+
295
+ assert all_batches[2].start_seq == 0
296
+ assert all_batches[2].end_seq == 2 # exclusive. now both seq 0 and 1
297
+ assert len(all_batches[2].seqs) == 2 # two copies, BatchSeqCopyPart
298
+ assert all_batches[2].seqs[0].seq_idx == 0
299
+ assert all_batches[2].seqs[0].seq_start_frame == 10
300
+ assert all_batches[2].seqs[0].seq_end_frame == 11
301
+ assert all_batches[2].seqs[0].frame_length == 1
302
+ assert all_batches[2].seqs[0].batch_slice == 0
303
+ assert all_batches[2].seqs[0].batch_frame_offset == 0
304
+ assert all_batches[2].seqs[1].seq_idx == 1
305
+ assert all_batches[2].seqs[1].seq_start_frame == 0
306
+ assert all_batches[2].seqs[1].seq_end_frame == 4
307
+ assert all_batches[2].seqs[1].frame_length == 4
308
+ assert all_batches[2].seqs[1].batch_slice == 0
309
+ assert all_batches[2].seqs[1].batch_frame_offset == 1
310
+
311
+ assert all_batches[3].start_seq == 1
312
+ assert all_batches[3].end_seq == 2 # exclusive
313
+ assert len(all_batches[3].seqs) == 1 # 1 BatchSeqCopyPart
314
+ assert all_batches[3].seqs[0].seq_idx == 1
315
+ assert all_batches[3].seqs[0].seq_start_frame == 4
316
+ assert all_batches[3].seqs[0].seq_end_frame == 9
317
+ assert all_batches[3].seqs[0].frame_length == 5
318
+ assert all_batches[3].seqs[0].batch_slice == 0
319
+ assert all_batches[3].seqs[0].batch_frame_offset == 0
320
+
321
+ assert all_batches[4].start_seq == 1
322
+ assert all_batches[4].end_seq == 2 # exclusive
323
+ assert len(all_batches[4].seqs) == 1 # 1 BatchSeqCopyPart
324
+ assert all_batches[4].seqs[0].seq_idx == 1
325
+ assert all_batches[4].seqs[0].seq_start_frame == 9
326
+ assert all_batches[4].seqs[0].seq_end_frame == 11
327
+ assert all_batches[4].seqs[0].frame_length == 2
328
+ assert all_batches[4].seqs[0].batch_slice == 0
329
+ assert all_batches[4].seqs[0].batch_frame_offset == 0
331
330
 
332
331
 
333
332
  def test_batches_context_window():
@@ -344,7 +343,7 @@ def test_batches_context_window():
344
343
  all_batches = [] # type: list[Batch]
345
344
  while batch_gen.has_more():
346
345
  (batch,) = batch_gen.peek_next_n(1)
347
- assert_is_instance(batch, Batch)
346
+ assert isinstance(batch, Batch)
348
347
  print("batch:", batch)
349
348
  print("batch seqs:", batch.seqs)
350
349
  all_batches.append(batch)
@@ -353,50 +352,50 @@ def test_batches_context_window():
353
352
  # Each batch will have 1 batch-slice (max_seqs) and up to 10 frames (chunk_size).
354
353
  # For each seq, we get 3 chunks (chunk_step 5 for 11 frames).
355
354
  # Thus, 3 batches.
356
- assert_equal(len(all_batches), 3)
355
+ assert len(all_batches) == 3
357
356
  b0, b1, b2 = all_batches
358
357
  assert isinstance(b0, Batch)
359
358
  assert isinstance(b1, Batch)
360
359
  assert isinstance(b2, Batch)
361
360
 
362
- assert_equal(b0.start_seq, 0)
363
- assert_equal(b0.end_seq, 1) # exclusive
364
- assert_equal(len(b0.seqs), 1) # 1 BatchSeqCopyPart
365
- assert_equal(b0.seqs[0].seq_idx, 0)
366
- assert_equal(b0.seqs[0].seq_start_frame["classes"], 0)
367
- assert_equal(b0.seqs[0].seq_end_frame["classes"], 5)
368
- assert_equal(b0.seqs[0].frame_length["classes"], 5)
369
- assert_equal(b0.seqs[0].seq_start_frame["data"], 0 - ctx_left)
370
- assert_equal(b0.seqs[0].seq_end_frame["data"], 5 + ctx_right)
371
- assert_equal(b0.seqs[0].frame_length["data"], 5 + ctx_lr)
372
- assert_equal(b0.seqs[0].batch_slice, 0)
373
- assert_equal(b0.seqs[0].batch_frame_offset, 0)
374
-
375
- assert_equal(b1.start_seq, 0)
376
- assert_equal(b1.end_seq, 1) # exclusive
377
- assert_equal(len(b1.seqs), 1) # 1 BatchSeqCopyPart
378
- assert_equal(b1.seqs[0].seq_idx, 0)
379
- assert_equal(b1.seqs[0].seq_start_frame["classes"], 5)
380
- assert_equal(b1.seqs[0].seq_end_frame["classes"], 10)
381
- assert_equal(b1.seqs[0].frame_length["classes"], 5)
382
- assert_equal(b1.seqs[0].seq_start_frame["data"], 5 - ctx_left)
383
- assert_equal(b1.seqs[0].seq_end_frame["data"], 10 + ctx_right)
384
- assert_equal(b1.seqs[0].frame_length["data"], 5 + ctx_lr)
385
- assert_equal(b1.seqs[0].batch_slice, 0)
386
- assert_equal(b1.seqs[0].batch_frame_offset, 0)
387
-
388
- assert_equal(b2.start_seq, 0)
389
- assert_equal(b2.end_seq, 1) # exclusive
390
- assert_equal(len(b2.seqs), 1) # 1 BatchSeqCopyPart
391
- assert_equal(b2.seqs[0].seq_idx, 0)
392
- assert_equal(b2.seqs[0].seq_start_frame["classes"], 10)
393
- assert_equal(b2.seqs[0].seq_end_frame["classes"], 11)
394
- assert_equal(b2.seqs[0].frame_length["classes"], 1)
395
- assert_equal(b2.seqs[0].seq_start_frame["data"], 10 - ctx_left)
396
- assert_equal(b2.seqs[0].seq_end_frame["data"], 11 + ctx_right)
397
- assert_equal(b2.seqs[0].frame_length["data"], 1 + ctx_lr)
398
- assert_equal(b2.seqs[0].batch_slice, 0)
399
- assert_equal(b2.seqs[0].batch_frame_offset, 0)
361
+ assert b0.start_seq == 0
362
+ assert b0.end_seq == 1 # exclusive
363
+ assert len(b0.seqs) == 1 # 1 BatchSeqCopyPart
364
+ assert b0.seqs[0].seq_idx == 0
365
+ assert b0.seqs[0].seq_start_frame["classes"] == 0
366
+ assert b0.seqs[0].seq_end_frame["classes"] == 5
367
+ assert b0.seqs[0].frame_length["classes"] == 5
368
+ assert b0.seqs[0].seq_start_frame["data"] == 0 - ctx_left
369
+ assert b0.seqs[0].seq_end_frame["data"] == 5 + ctx_right
370
+ assert b0.seqs[0].frame_length["data"] == 5 + ctx_lr
371
+ assert b0.seqs[0].batch_slice == 0
372
+ assert b0.seqs[0].batch_frame_offset == 0
373
+
374
+ assert b1.start_seq == 0
375
+ assert b1.end_seq == 1 # exclusive
376
+ assert len(b1.seqs) == 1 # 1 BatchSeqCopyPart
377
+ assert b1.seqs[0].seq_idx == 0
378
+ assert b1.seqs[0].seq_start_frame["classes"] == 5
379
+ assert b1.seqs[0].seq_end_frame["classes"] == 10
380
+ assert b1.seqs[0].frame_length["classes"] == 5
381
+ assert b1.seqs[0].seq_start_frame["data"] == 5 - ctx_left
382
+ assert b1.seqs[0].seq_end_frame["data"] == 10 + ctx_right
383
+ assert b1.seqs[0].frame_length["data"] == 5 + ctx_lr
384
+ assert b1.seqs[0].batch_slice == 0
385
+ assert b1.seqs[0].batch_frame_offset == 0
386
+
387
+ assert b2.start_seq == 0
388
+ assert b2.end_seq == 1 # exclusive
389
+ assert len(b2.seqs) == 1 # 1 BatchSeqCopyPart
390
+ assert b2.seqs[0].seq_idx == 0
391
+ assert b2.seqs[0].seq_start_frame["classes"] == 10
392
+ assert b2.seqs[0].seq_end_frame["classes"] == 11
393
+ assert b2.seqs[0].frame_length["classes"] == 1
394
+ assert b2.seqs[0].seq_start_frame["data"] == 10 - ctx_left
395
+ assert b2.seqs[0].seq_end_frame["data"] == 11 + ctx_right
396
+ assert b2.seqs[0].frame_length["data"] == 1 + ctx_lr
397
+ assert b2.seqs[0].batch_slice == 0
398
+ assert b2.seqs[0].batch_frame_offset == 0
400
399
 
401
400
 
402
401
  def test_task12ax_window():
@@ -413,13 +412,13 @@ def test_task12ax_window():
413
412
  dataset2.init_seq_order(epoch=1)
414
413
  dataset1.load_seqs(0, 1)
415
414
  dataset2.load_seqs(0, 1)
416
- assert_equal(dataset1.get_data_dim("data"), input_dim)
417
- assert_equal(dataset2.get_data_dim("data"), input_dim * window)
415
+ assert dataset1.get_data_dim("data") == input_dim
416
+ assert dataset2.get_data_dim("data") == input_dim * window
418
417
  data1 = dataset1.get_data(0, "data")
419
418
  data2 = dataset2.get_data(0, "data")
420
419
  seq_len = data1.shape[0]
421
- assert_equal(data1.shape, (seq_len, input_dim))
422
- assert_equal(data2.shape, (seq_len, window * input_dim))
420
+ assert data1.shape == (seq_len, input_dim)
421
+ assert data2.shape == (seq_len, window * input_dim)
423
422
  data2a = data2.reshape(seq_len, window, input_dim)
424
423
  print("data1:")
425
424
  print(data1)
@@ -431,13 +430,13 @@ def test_task12ax_window():
431
430
  print(data2[0])
432
431
  print("data2a[0,0]:")
433
432
  print(data2a[0, 0])
434
- assert_equal(list(data2a[0, 0]), [0] * input_dim) # zero-padded left
435
- assert_equal(list(data2a[0, 1]), list(data1[0]))
436
- assert_equal(list(data2a[0, 2]), list(data1[1]))
437
- assert_equal(list(data2a[1, 0]), list(data1[0]))
438
- assert_equal(list(data2a[1, 1]), list(data1[1]))
439
- assert_equal(list(data2a[1, 2]), list(data1[2]))
440
- assert_equal(list(data2a[-1, 2]), [0] * input_dim) # zero-padded right
433
+ assert list(data2a[0, 0]) == [0] * input_dim # zero-padded left
434
+ assert list(data2a[0, 1]) == list(data1[0])
435
+ assert list(data2a[0, 2]) == list(data1[1])
436
+ assert list(data2a[1, 0]) == list(data1[0])
437
+ assert list(data2a[1, 1]) == list(data1[1])
438
+ assert list(data2a[1, 2]) == list(data1[2])
439
+ assert list(data2a[-1, 2]) == [0] * input_dim # zero-padded right
441
440
 
442
441
 
443
442
  def test_get_seq_order():