xmos-ai-tools 1.3.2.dev80__py3-none-macosx_10_15_universal2.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. xmos_ai_tools/__init__.py +7 -0
  2. xmos_ai_tools/io_server/__init__.py +151 -0
  3. xmos_ai_tools/runtime/__init__.py +0 -0
  4. xmos_ai_tools/runtime/buildfiles/aitoolslib.cmake +13 -0
  5. xmos_ai_tools/runtime/buildfiles/aitoolslib.make +8 -0
  6. xmos_ai_tools/runtime/include/flash_server.h +74 -0
  7. xmos_ai_tools/runtime/include/flatbuffers/allocator.h +68 -0
  8. xmos_ai_tools/runtime/include/flatbuffers/array.h +243 -0
  9. xmos_ai_tools/runtime/include/flatbuffers/base.h +474 -0
  10. xmos_ai_tools/runtime/include/flatbuffers/bfbs_generator.h +43 -0
  11. xmos_ai_tools/runtime/include/flatbuffers/buffer.h +142 -0
  12. xmos_ai_tools/runtime/include/flatbuffers/buffer_ref.h +53 -0
  13. xmos_ai_tools/runtime/include/flatbuffers/code_generators.h +235 -0
  14. xmos_ai_tools/runtime/include/flatbuffers/default_allocator.h +64 -0
  15. xmos_ai_tools/runtime/include/flatbuffers/detached_buffer.h +114 -0
  16. xmos_ai_tools/runtime/include/flatbuffers/flatbuffer_builder.h +1197 -0
  17. xmos_ai_tools/runtime/include/flatbuffers/flatbuffers.h +270 -0
  18. xmos_ai_tools/runtime/include/flatbuffers/flatc.h +111 -0
  19. xmos_ai_tools/runtime/include/flatbuffers/flexbuffers.h +1897 -0
  20. xmos_ai_tools/runtime/include/flatbuffers/grpc.h +300 -0
  21. xmos_ai_tools/runtime/include/flatbuffers/hash.h +127 -0
  22. xmos_ai_tools/runtime/include/flatbuffers/idl.h +1232 -0
  23. xmos_ai_tools/runtime/include/flatbuffers/minireflect.h +419 -0
  24. xmos_ai_tools/runtime/include/flatbuffers/pch/flatc_pch.h +39 -0
  25. xmos_ai_tools/runtime/include/flatbuffers/pch/pch.h +38 -0
  26. xmos_ai_tools/runtime/include/flatbuffers/reflection.h +502 -0
  27. xmos_ai_tools/runtime/include/flatbuffers/reflection_generated.h +1449 -0
  28. xmos_ai_tools/runtime/include/flatbuffers/registry.h +128 -0
  29. xmos_ai_tools/runtime/include/flatbuffers/stl_emulation.h +509 -0
  30. xmos_ai_tools/runtime/include/flatbuffers/string.h +64 -0
  31. xmos_ai_tools/runtime/include/flatbuffers/struct.h +53 -0
  32. xmos_ai_tools/runtime/include/flatbuffers/table.h +168 -0
  33. xmos_ai_tools/runtime/include/flatbuffers/util.h +690 -0
  34. xmos_ai_tools/runtime/include/flatbuffers/vector.h +370 -0
  35. xmos_ai_tools/runtime/include/flatbuffers/vector_downward.h +271 -0
  36. xmos_ai_tools/runtime/include/flatbuffers/verifier.h +283 -0
  37. xmos_ai_tools/runtime/include/ioserver.h +44 -0
  38. xmos_ai_tools/runtime/include/lib_nn/api/TransposeConv.h +24 -0
  39. xmos_ai_tools/runtime/include/lib_nn/api/add_int16.h +27 -0
  40. xmos_ai_tools/runtime/include/lib_nn/api/add_int16_transform.h +42 -0
  41. xmos_ai_tools/runtime/include/lib_nn/api/dequantize_int16.h +22 -0
  42. xmos_ai_tools/runtime/include/lib_nn/api/dequantize_int16_transform.h +34 -0
  43. xmos_ai_tools/runtime/include/lib_nn/api/expand_8_to_16.h +8 -0
  44. xmos_ai_tools/runtime/include/lib_nn/api/multiply_int16.h +42 -0
  45. xmos_ai_tools/runtime/include/lib_nn/api/multiply_int16_transform.h +71 -0
  46. xmos_ai_tools/runtime/include/lib_nn/api/nn_api.h +15 -0
  47. xmos_ai_tools/runtime/include/lib_nn/api/nn_bin_types.h +14 -0
  48. xmos_ai_tools/runtime/include/lib_nn/api/nn_config.h +287 -0
  49. xmos_ai_tools/runtime/include/lib_nn/api/nn_conv2d_structs.h +72 -0
  50. xmos_ai_tools/runtime/include/lib_nn/api/nn_image.h +26 -0
  51. xmos_ai_tools/runtime/include/lib_nn/api/nn_layers.h +303 -0
  52. xmos_ai_tools/runtime/include/lib_nn/api/nn_op_helper.h +132 -0
  53. xmos_ai_tools/runtime/include/lib_nn/api/nn_op_utils.h +150 -0
  54. xmos_ai_tools/runtime/include/lib_nn/api/nn_operator.h +18 -0
  55. xmos_ai_tools/runtime/include/lib_nn/api/nn_pooling.h +551 -0
  56. xmos_ai_tools/runtime/include/lib_nn/api/nn_types.h +83 -0
  57. xmos_ai_tools/runtime/include/lib_nn/api/nn_window_params.h +55 -0
  58. xmos_ai_tools/runtime/include/lib_nn/api/output_transform_fn_int16.h +54 -0
  59. xmos_ai_tools/runtime/include/lib_nn/api/output_transform_fn_int16_kernel_transform.h +37 -0
  60. xmos_ai_tools/runtime/include/lib_nn/api/output_transform_fn_int16_mappings.h +13 -0
  61. xmos_ai_tools/runtime/include/lib_nn/api/quadratic_approximation.h +82 -0
  62. xmos_ai_tools/runtime/include/lib_nn/api/quadratic_interpolation.h +23 -0
  63. xmos_ai_tools/runtime/include/lib_nn/api/quantize_int16.h +22 -0
  64. xmos_ai_tools/runtime/include/lib_nn/api/quantize_int16_transform.h +33 -0
  65. xmos_ai_tools/runtime/include/lib_nn/api/version.h +13 -0
  66. xmos_ai_tools/runtime/include/lib_nn/api/vpu_memmove_word_aligned.h +15 -0
  67. xmos_ai_tools/runtime/include/lib_nn/api/vpu_memset_256.h +55 -0
  68. xmos_ai_tools/runtime/include/lib_nn/api/vpu_sim.h +118 -0
  69. xmos_ai_tools/runtime/include/lib_nn/api/xs3_vpu.h +216 -0
  70. xmos_ai_tools/runtime/include/lib_nn/api/xs3a_registers.h +2869 -0
  71. xmos_ai_tools/runtime/include/lib_nn/src/asm/asm_constants.h +41 -0
  72. xmos_ai_tools/runtime/include/lib_nn/src/asm/window_op_plan.h +25 -0
  73. xmos_ai_tools/runtime/include/lib_tflite_micro/api/fast_flash.h +47 -0
  74. xmos_ai_tools/runtime/include/lib_tflite_micro/api/inference_engine.h +218 -0
  75. xmos_ai_tools/runtime/include/lib_tflite_micro/api/memory_parallel_transport.h +52 -0
  76. xmos_ai_tools/runtime/include/lib_tflite_micro/api/version.h +13 -0
  77. xmos_ai_tools/runtime/include/lib_tflite_micro/api/xcore_config.h +17 -0
  78. xmos_ai_tools/runtime/include/lib_tflite_micro/api/xcore_device_memory.h +62 -0
  79. xmos_ai_tools/runtime/include/lib_tflite_micro/api/xcore_shared_config.h +31 -0
  80. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/conv2d_float.h +155 -0
  81. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_common.h +19 -0
  82. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_custom_options.h +28 -0
  83. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_error_reporter.h +32 -0
  84. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_interpreter.h +49 -0
  85. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_ops.h +71 -0
  86. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_profiler.h +49 -0
  87. xmos_ai_tools/runtime/include/lib_tflite_micro/src/tflite-xcore-kernels/xcore_utils.h +160 -0
  88. xmos_ai_tools/runtime/include/lib_tflite_micro/src/thread_call.h +119 -0
  89. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/legacy/usb_defs.h +4 -0
  90. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/legacy/usb_device.h +4 -0
  91. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/legacy/usb_std_descriptors.h +4 -0
  92. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/legacy/usb_std_requests.h +4 -0
  93. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/xud.h +518 -0
  94. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/xud_conf_default.h +11 -0
  95. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/xud_device.h +87 -0
  96. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/xud_std_descriptors.h +191 -0
  97. xmos_ai_tools/runtime/include/lib_xud/lib_xud/api/xud_std_requests.h +120 -0
  98. xmos_ai_tools/runtime/include/lib_xud/lib_xud/src/user/XUD_USB_Defines.h +70 -0
  99. xmos_ai_tools/runtime/include/lib_xud/lib_xud/src/user/class/hid.h +23 -0
  100. xmos_ai_tools/runtime/include/lib_xud/lib_xud/src/user/class/usbaudio10.h +30 -0
  101. xmos_ai_tools/runtime/include/lib_xud/lib_xud/src/user/class/usbaudio20.h +357 -0
  102. xmos_ai_tools/runtime/include/lib_xud/lib_xud/src/user/class/usbaudiocommon.h +168 -0
  103. xmos_ai_tools/runtime/include/signal/micro/kernels/delay_flexbuffers_generated_data.h +25 -0
  104. xmos_ai_tools/runtime/include/signal/micro/kernels/energy_flexbuffers_generated_data.h +28 -0
  105. xmos_ai_tools/runtime/include/signal/micro/kernels/fft_flexbuffers_generated_data.h +37 -0
  106. xmos_ai_tools/runtime/include/signal/micro/kernels/filter_bank_flexbuffers_generated_data.h +25 -0
  107. xmos_ai_tools/runtime/include/signal/micro/kernels/filter_bank_log_flexbuffers_generated_data.h +27 -0
  108. xmos_ai_tools/runtime/include/signal/micro/kernels/filter_bank_spectral_subtraction_flexbuffers_generated_data.h +26 -0
  109. xmos_ai_tools/runtime/include/signal/micro/kernels/framer_flexbuffers_generated_data.h +25 -0
  110. xmos_ai_tools/runtime/include/signal/micro/kernels/irfft.h +31 -0
  111. xmos_ai_tools/runtime/include/signal/micro/kernels/overlap_add_flexbuffers_generated_data.h +25 -0
  112. xmos_ai_tools/runtime/include/signal/micro/kernels/pcan_flexbuffers_generated_data.h +7 -0
  113. xmos_ai_tools/runtime/include/signal/micro/kernels/rfft.h +31 -0
  114. xmos_ai_tools/runtime/include/signal/micro/kernels/stacker_flexbuffers_generated_data.h +25 -0
  115. xmos_ai_tools/runtime/include/signal/micro/kernels/window_flexbuffers_generated_data.h +25 -0
  116. xmos_ai_tools/runtime/include/signal/src/circular_buffer.h +118 -0
  117. xmos_ai_tools/runtime/include/signal/src/complex.h +29 -0
  118. xmos_ai_tools/runtime/include/signal/src/energy.h +38 -0
  119. xmos_ai_tools/runtime/include/signal/src/fft_auto_scale.h +35 -0
  120. xmos_ai_tools/runtime/include/signal/src/filter_bank.h +69 -0
  121. xmos_ai_tools/runtime/include/signal/src/filter_bank_log.h +38 -0
  122. xmos_ai_tools/runtime/include/signal/src/filter_bank_spectral_subtraction.h +73 -0
  123. xmos_ai_tools/runtime/include/signal/src/filter_bank_square_root.h +34 -0
  124. xmos_ai_tools/runtime/include/signal/src/irfft.h +84 -0
  125. xmos_ai_tools/runtime/include/signal/src/kiss_fft_wrappers/kiss_fft_common.h +49 -0
  126. xmos_ai_tools/runtime/include/signal/src/kiss_fft_wrappers/kiss_fft_float.h +31 -0
  127. xmos_ai_tools/runtime/include/signal/src/kiss_fft_wrappers/kiss_fft_int16.h +30 -0
  128. xmos_ai_tools/runtime/include/signal/src/kiss_fft_wrappers/kiss_fft_int32.h +31 -0
  129. xmos_ai_tools/runtime/include/signal/src/log.h +30 -0
  130. xmos_ai_tools/runtime/include/signal/src/max_abs.h +31 -0
  131. xmos_ai_tools/runtime/include/signal/src/msb.h +32 -0
  132. xmos_ai_tools/runtime/include/signal/src/overlap_add.h +46 -0
  133. xmos_ai_tools/runtime/include/signal/src/pcan_argc_fixed.h +41 -0
  134. xmos_ai_tools/runtime/include/signal/src/rfft.h +85 -0
  135. xmos_ai_tools/runtime/include/signal/src/square_root.h +32 -0
  136. xmos_ai_tools/runtime/include/signal/src/window.h +31 -0
  137. xmos_ai_tools/runtime/include/signal/testdata/fft_test_data.h +48 -0
  138. xmos_ai_tools/runtime/include/tensorflow/lite/array.h +156 -0
  139. xmos_ai_tools/runtime/include/tensorflow/lite/builtin_op_data.h +22 -0
  140. xmos_ai_tools/runtime/include/tensorflow/lite/builtin_ops.h +241 -0
  141. xmos_ai_tools/runtime/include/tensorflow/lite/c/builtin_op_data.h +20 -0
  142. xmos_ai_tools/runtime/include/tensorflow/lite/c/c_api_types.h +26 -0
  143. xmos_ai_tools/runtime/include/tensorflow/lite/c/common.h +30 -0
  144. xmos_ai_tools/runtime/include/tensorflow/lite/context_util.h +54 -0
  145. xmos_ai_tools/runtime/include/tensorflow/lite/core/api/error_reporter.h +72 -0
  146. xmos_ai_tools/runtime/include/tensorflow/lite/core/api/flatbuffer_conversions.h +440 -0
  147. xmos_ai_tools/runtime/include/tensorflow/lite/core/api/tensor_utils.h +28 -0
  148. xmos_ai_tools/runtime/include/tensorflow/lite/core/c/builtin_op_data.h +626 -0
  149. xmos_ai_tools/runtime/include/tensorflow/lite/core/c/c_api_types.h +178 -0
  150. xmos_ai_tools/runtime/include/tensorflow/lite/core/c/common.h +1496 -0
  151. xmos_ai_tools/runtime/include/tensorflow/lite/core/macros.h +78 -0
  152. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/bits.h +102 -0
  153. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/fft.h +50 -0
  154. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/fft_io.h +34 -0
  155. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/fft_util.h +34 -0
  156. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/filterbank.h +63 -0
  157. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/filterbank_io.h +35 -0
  158. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/filterbank_util.h +50 -0
  159. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/frontend.h +64 -0
  160. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/frontend_io.h +31 -0
  161. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/frontend_util.h +52 -0
  162. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_common.h +48 -0
  163. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/kiss_fft_int16.h +33 -0
  164. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/log_lut.h +40 -0
  165. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/log_scale.h +39 -0
  166. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/log_scale_io.h +33 -0
  167. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/log_scale_util.h +45 -0
  168. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/noise_reduction.h +46 -0
  169. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/noise_reduction_io.h +36 -0
  170. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/noise_reduction_util.h +50 -0
  171. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control.h +47 -0
  172. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/pcan_gain_control_util.h +57 -0
  173. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/window.h +49 -0
  174. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/window_io.h +34 -0
  175. xmos_ai_tools/runtime/include/tensorflow/lite/experimental/microfrontend/lib/window_util.h +45 -0
  176. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/common.h +1358 -0
  177. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/compatibility.h +122 -0
  178. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/cppmath.h +40 -0
  179. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/max.h +35 -0
  180. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/min.h +35 -0
  181. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/optimized/neon_check.h +20 -0
  182. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/portable_tensor.h +141 -0
  183. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/portable_tensor_utils.h +623 -0
  184. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/quantization_util.h +292 -0
  185. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/add.h +561 -0
  186. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/add_n.h +86 -0
  187. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/arg_min_max.h +88 -0
  188. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/batch_matmul.h +275 -0
  189. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/batch_to_space_nd.h +101 -0
  190. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/binary_function.h +91 -0
  191. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/broadcast_args.h +56 -0
  192. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/broadcast_to.h +97 -0
  193. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/ceil.h +37 -0
  194. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/comparisons.h +271 -0
  195. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/concatenation.h +141 -0
  196. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/conv.h +289 -0
  197. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/cumsum.h +175 -0
  198. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/depth_to_space.h +79 -0
  199. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/depthwiseconv_float.h +100 -0
  200. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/depthwiseconv_uint8.h +319 -0
  201. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/dequantize.h +78 -0
  202. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/div.h +247 -0
  203. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/elu.h +37 -0
  204. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/exp.h +38 -0
  205. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/fill.h +38 -0
  206. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/floor.h +39 -0
  207. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/floor_div.h +35 -0
  208. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/floor_mod.h +44 -0
  209. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/fully_connected.h +323 -0
  210. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/hard_swish.h +168 -0
  211. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/add.h +250 -0
  212. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/conv.h +241 -0
  213. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/depthwise_conv.h +291 -0
  214. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/fully_connected.h +126 -0
  215. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/l2normalization.h +67 -0
  216. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/logistic.h +121 -0
  217. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/mean.h +18 -0
  218. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/mul.h +194 -0
  219. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/pooling.h +264 -0
  220. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/tanh.h +117 -0
  221. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/integer_ops/transpose_conv.h +224 -0
  222. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/l2normalization.h +90 -0
  223. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/leaky_relu.h +69 -0
  224. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/log_softmax.h +256 -0
  225. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/logistic.h +132 -0
  226. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/lstm_cell.h +422 -0
  227. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/maximum_minimum.h +64 -0
  228. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/mul.h +267 -0
  229. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/neg.h +37 -0
  230. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/pad.h +169 -0
  231. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/pooling.h +303 -0
  232. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/portable_tensor_utils.h +333 -0
  233. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/portable_tensor_utils_impl.h +244 -0
  234. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/prelu.h +111 -0
  235. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/process_broadcast_shapes.h +140 -0
  236. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/quantize.h +89 -0
  237. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/reduce.h +491 -0
  238. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/requantize.h +70 -0
  239. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/resize_bilinear.h +233 -0
  240. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/resize_nearest_neighbor.h +102 -0
  241. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/round.h +51 -0
  242. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/select.h +151 -0
  243. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/slice.h +80 -0
  244. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/softmax.h +233 -0
  245. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/space_to_batch_nd.h +109 -0
  246. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/space_to_depth.h +80 -0
  247. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/strided_slice.h +147 -0
  248. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/sub.h +465 -0
  249. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/tanh.h +129 -0
  250. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/transpose.h +203 -0
  251. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/reference/transpose_conv.h +225 -0
  252. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/runtime_shape.h +168 -0
  253. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/strided_slice_logic.h +278 -0
  254. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/tensor_ctypes.h +42 -0
  255. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/internal/types.h +1096 -0
  256. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/kernel_util.h +341 -0
  257. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/op_macros.h +49 -0
  258. xmos_ai_tools/runtime/include/tensorflow/lite/kernels/padding.h +115 -0
  259. xmos_ai_tools/runtime/include/tensorflow/lite/micro/arena_allocator/ibuffer_allocator.h +100 -0
  260. xmos_ai_tools/runtime/include/tensorflow/lite/micro/arena_allocator/non_persistent_arena_buffer_allocator.h +104 -0
  261. xmos_ai_tools/runtime/include/tensorflow/lite/micro/arena_allocator/persistent_arena_buffer_allocator.h +58 -0
  262. xmos_ai_tools/runtime/include/tensorflow/lite/micro/arena_allocator/recording_single_arena_buffer_allocator.h +63 -0
  263. xmos_ai_tools/runtime/include/tensorflow/lite/micro/arena_allocator/single_arena_buffer_allocator.h +144 -0
  264. xmos_ai_tools/runtime/include/tensorflow/lite/micro/benchmarks/micro_benchmark.h +95 -0
  265. xmos_ai_tools/runtime/include/tensorflow/lite/micro/compatibility.h +32 -0
  266. xmos_ai_tools/runtime/include/tensorflow/lite/micro/cortex_m_generic/debug_log_callback.h +49 -0
  267. xmos_ai_tools/runtime/include/tensorflow/lite/micro/debug_log.h +38 -0
  268. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/micro_speech/micro_model_settings.h +37 -0
  269. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/network_tester/expected_output_data.h +47 -0
  270. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/network_tester/input_data.h +108 -0
  271. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/network_tester/network_model.h +166 -0
  272. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/person_detection/detection_responder.h +32 -0
  273. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/person_detection/image_provider.h +38 -0
  274. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/person_detection/main_functions.h +37 -0
  275. xmos_ai_tools/runtime/include/tensorflow/lite/micro/examples/person_detection/model_settings.h +35 -0
  276. xmos_ai_tools/runtime/include/tensorflow/lite/micro/fake_micro_context.h +70 -0
  277. xmos_ai_tools/runtime/include/tensorflow/lite/micro/flatbuffer_utils.h +65 -0
  278. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/activation_utils.h +57 -0
  279. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/activations.h +64 -0
  280. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/add.h +78 -0
  281. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/mli_function_specializations.h +141 -0
  282. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/mli_interface.h +75 -0
  283. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/mli_slicers.h +56 -0
  284. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/mli_tf_utils.h +310 -0
  285. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/scratch_buf_mgr.h +145 -0
  286. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/arc_mli/scratch_buffers.h +78 -0
  287. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/ceva/ceva_common.h +24 -0
  288. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/ceva/ceva_tflm_lib.h +613 -0
  289. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/ceva/mcps_macros.h +115 -0
  290. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/ceva/types.h +1286 -0
  291. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/circular_buffer.h +45 -0
  292. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/circular_buffer_flexbuffers_generated_data.h +22 -0
  293. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/conv.h +117 -0
  294. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/conv_test.h +94 -0
  295. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/depthwise_conv.h +80 -0
  296. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/dequantize.h +38 -0
  297. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/detection_postprocess_flexbuffers_generated_data.h +25 -0
  298. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/ethosu.h +28 -0
  299. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/fully_connected.h +112 -0
  300. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/hard_swish.h +30 -0
  301. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/kernel_runner.h +86 -0
  302. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/kernel_util.h +150 -0
  303. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/leaky_relu.h +43 -0
  304. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/logical.h +35 -0
  305. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/logistic.h +42 -0
  306. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/lstm_eval.h +541 -0
  307. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/lstm_eval_test.h +817 -0
  308. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/lstm_shared.h +150 -0
  309. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/micro_ops.h +158 -0
  310. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/micro_tensor_utils.h +56 -0
  311. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/mul.h +74 -0
  312. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/pad.h +27 -0
  313. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/pooling.h +142 -0
  314. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/prelu.h +39 -0
  315. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/quantize.h +37 -0
  316. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/reduce.h +65 -0
  317. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/reshape.h +26 -0
  318. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/softmax.h +67 -0
  319. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/strided_slice.h +40 -0
  320. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/sub.h +60 -0
  321. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/svdf.h +100 -0
  322. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/testdata/conv_test_data.h +37 -0
  323. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/testdata/lstm_test_data.h +579 -0
  324. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/unidirectional_sequence_lstm.h +47 -0
  325. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/hifimini/fixedpoint_utils.h +139 -0
  326. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/lstm_eval.h +216 -0
  327. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/lstm_shared.h +78 -0
  328. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa.h +38 -0
  329. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_add.h +48 -0
  330. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_conv.h +89 -0
  331. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_depthwise_conv.h +74 -0
  332. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_fully_connected.h +78 -0
  333. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_pad.h +49 -0
  334. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_pooling.h +76 -0
  335. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_reduce.h +47 -0
  336. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_reshape.h +44 -0
  337. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_softmax.h +58 -0
  338. xmos_ai_tools/runtime/include/tensorflow/lite/micro/kernels/xtensa/xtensa_svdf.h +39 -0
  339. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_helpers.h +64 -0
  340. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_planner/greedy_memory_planner.h +170 -0
  341. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_planner/linear_memory_planner.h +53 -0
  342. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_planner/memory_plan_struct.h +73 -0
  343. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_planner/micro_memory_planner.h +95 -0
  344. xmos_ai_tools/runtime/include/tensorflow/lite/micro/memory_planner/non_persistent_buffer_planner_shim.h +133 -0
  345. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_allocation_info.h +138 -0
  346. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_allocator.h +351 -0
  347. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_arena_constants.h +28 -0
  348. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_common.h +38 -0
  349. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_context.h +176 -0
  350. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_graph.h +79 -0
  351. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_interpreter.h +189 -0
  352. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_interpreter_context.h +125 -0
  353. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_interpreter_graph.h +110 -0
  354. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_log.h +42 -0
  355. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_mutable_op_resolver.h +708 -0
  356. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_op_resolver.h +62 -0
  357. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_profiler.h +140 -0
  358. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_profiler_interface.h +38 -0
  359. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_resource_variable.h +89 -0
  360. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_time.h +36 -0
  361. xmos_ai_tools/runtime/include/tensorflow/lite/micro/micro_utils.h +162 -0
  362. xmos_ai_tools/runtime/include/tensorflow/lite/micro/mock_micro_graph.h +60 -0
  363. xmos_ai_tools/runtime/include/tensorflow/lite/micro/python/interpreter/src/python_ops_resolver.h +21 -0
  364. xmos_ai_tools/runtime/include/tensorflow/lite/micro/python/tflite_size/src/flatbuffer_size.h +30 -0
  365. xmos_ai_tools/runtime/include/tensorflow/lite/micro/python/tflite_size/src/flatbuffer_size_wrapper.h +33 -0
  366. xmos_ai_tools/runtime/include/tensorflow/lite/micro/recording_micro_allocator.h +125 -0
  367. xmos_ai_tools/runtime/include/tensorflow/lite/micro/recording_micro_interpreter.h +69 -0
  368. xmos_ai_tools/runtime/include/tensorflow/lite/micro/system_setup.h +27 -0
  369. xmos_ai_tools/runtime/include/tensorflow/lite/micro/test_helper_custom_ops.h +49 -0
  370. xmos_ai_tools/runtime/include/tensorflow/lite/micro/test_helpers.h +334 -0
  371. xmos_ai_tools/runtime/include/tensorflow/lite/micro/testing/micro_test.h +267 -0
  372. xmos_ai_tools/runtime/include/tensorflow/lite/micro/testing/test_conv_model.h +23 -0
  373. xmos_ai_tools/runtime/include/tensorflow/lite/micro/tflite_bridge/flatbuffer_conversions_bridge.h +45 -0
  374. xmos_ai_tools/runtime/include/tensorflow/lite/micro/tflite_bridge/micro_error_reporter.h +36 -0
  375. xmos_ai_tools/runtime/include/tensorflow/lite/micro/tools/benchmarking/log_utils.h +273 -0
  376. xmos_ai_tools/runtime/include/tensorflow/lite/micro/tools/benchmarking/metrics.h +41 -0
  377. xmos_ai_tools/runtime/include/tensorflow/lite/micro/tools/benchmarking/op_resolver.h +127 -0
  378. xmos_ai_tools/runtime/include/tensorflow/lite/portable_type_to_tflitetype.h +75 -0
  379. xmos_ai_tools/runtime/include/tensorflow/lite/schema/schema_generated.h +24644 -0
  380. xmos_ai_tools/runtime/include/tensorflow/lite/schema/schema_utils.h +33 -0
  381. xmos_ai_tools/runtime/include/tile_ram_server.h +38 -0
  382. xmos_ai_tools/runtime/lib/libhost_xtflitemicro.a +0 -0
  383. xmos_ai_tools/runtime/lib/libxtflitemicro.a +0 -0
  384. xmos_ai_tools/xformer/__init__.py +60 -0
  385. xmos_ai_tools/xformer/flash.py +190 -0
  386. xmos_ai_tools/xinterpreters/__init__.py +1 -0
  387. xmos_ai_tools/xinterpreters/exceptions.py +38 -0
  388. xmos_ai_tools/xinterpreters/host_interpreter.py +652 -0
  389. xmos_ai_tools/xinterpreters/libs/macos/xtflm_python.1.0.1.dylib +0 -0
  390. xmos_ai_tools/xinterpreters/libs/macos/xtflm_python.dylib +0 -0
  391. xmos_ai_tools-1.3.2.dev80.data/data/bin/xcore-opt +0 -0
  392. xmos_ai_tools-1.3.2.dev80.dist-info/METADATA +33 -0
  393. xmos_ai_tools-1.3.2.dev80.dist-info/RECORD +395 -0
  394. xmos_ai_tools-1.3.2.dev80.dist-info/WHEEL +5 -0
  395. xmos_ai_tools-1.3.2.dev80.dist-info/top_level.txt +1 -0
@@ -0,0 +1,97 @@
1
+ /* Copyright 2020 The TensorFlow Authors. All Rights Reserved.
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
14
+ ==============================================================================*/
15
+ #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_BROADCAST_TO_H_
16
+ #define TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_BROADCAST_TO_H_
17
+
18
+ #include "tensorflow/lite/kernels/internal/common.h"
19
+ #include "tensorflow/lite/kernels/kernel_util.h"
20
+
21
+ namespace tflite_micro {
22
+ namespace reference_ops {
23
+ template <int N>
24
+ void BroadcastImpl(const NdArrayDesc<N>& input_desc, const char* input_data,
25
+ const NdArrayDesc<N>& output_desc, char* output_data,
26
+ int indexes[N], int dim, const int last_broadcasting_dim,
27
+ const int type_size) {
28
+ // Copy data from input to output.
29
+ if (dim == last_broadcasting_dim) {
30
+ int copy_size = output_desc.strides[dim] * type_size;
31
+ const char* data_src =
32
+ input_data + SubscriptToIndex(input_desc, indexes) * type_size;
33
+ char* data_dst =
34
+ output_data + SubscriptToIndex(output_desc, indexes) * type_size;
35
+ for (int i = 0; i < output_desc.extents[dim]; ++i, data_dst += copy_size) {
36
+ memcpy(data_dst, data_src, copy_size);
37
+ }
38
+ return;
39
+ }
40
+
41
+ // Recursive call to find the next broadcasting.
42
+ for (indexes[dim] = 0; indexes[dim] < input_desc.extents[dim];
43
+ ++indexes[dim]) {
44
+ BroadcastImpl<N>(input_desc, input_data, output_desc, output_data, indexes,
45
+ dim + 1, last_broadcasting_dim, type_size);
46
+ }
47
+
48
+ // Duplicate data in output tensor.
49
+ indexes[dim] = 0;
50
+ if (input_desc.extents[dim] != output_desc.extents[dim]) {
51
+ int copy_size = output_desc.strides[dim] * type_size;
52
+ char* data_src =
53
+ output_data + SubscriptToIndex(output_desc, indexes) * type_size;
54
+ char* data_dst = data_src + copy_size;
55
+ for (int i = 1; i < output_desc.extents[dim]; ++i, data_dst += copy_size) {
56
+ memcpy(data_dst, data_src, copy_size);
57
+ }
58
+ }
59
+ }
60
+
61
+ template <int N>
62
+ inline void BroadcastTo(const RuntimeShape& unextended_input_shape,
63
+ const char* input_data,
64
+ const RuntimeShape& unextended_output_shape,
65
+ char* output_data, TfLiteType data_type) {
66
+ NdArrayDesc<N> input_desc;
67
+ NdArrayDesc<N> output_desc;
68
+ CopyDimsToDesc(RuntimeShape::ExtendedShape(N, unextended_input_shape),
69
+ &input_desc);
70
+ CopyDimsToDesc(RuntimeShape::ExtendedShape(N, unextended_output_shape),
71
+ &output_desc);
72
+
73
+ // Get the last dimension has broadcasting. At this dimension, the data is
74
+ // copied from input tensor to output tensor.
75
+ int last_broadcast_dim = -1;
76
+ for (int i = N - 1; i >= 0; --i) {
77
+ if (input_desc.extents[i] != output_desc.extents[i]) {
78
+ last_broadcast_dim = i;
79
+ break;
80
+ }
81
+ }
82
+
83
+ // If non-broadcasting, just copy data from input to output tensor.
84
+ if (last_broadcast_dim == -1) {
85
+ memcpy(output_data, input_data,
86
+ unextended_input_shape.FlatSize() * TfLiteTypeGetSize(data_type));
87
+ return;
88
+ }
89
+
90
+ // Broadcasting using memcpy.
91
+ int indexes[N] = {0};
92
+ BroadcastImpl<N>(input_desc, input_data, output_desc, output_data, indexes, 0,
93
+ last_broadcast_dim, TfLiteTypeGetSize(data_type));
94
+ }
95
+ } // namespace reference_ops
96
+ } // namespace tflite_micro
97
+ #endif // TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_BROADCAST_TO_H_
@@ -0,0 +1,37 @@
1
+ /* Copyright 2018 The TensorFlow Authors. All Rights Reserved.
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
14
+ ==============================================================================*/
15
+ #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_CEIL_H_
16
+ #define TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_CEIL_H_
17
+
18
+ #include <cmath>
19
+
20
+ #include "tensorflow/lite/kernels/internal/types.h"
21
+
22
+ namespace tflite_micro {
23
+
24
+ namespace reference_ops {
25
+
26
+ inline void Ceil(const RuntimeShape& input_shape, const float* input_data,
27
+ const RuntimeShape& output_shape, float* output_data) {
28
+ const int flat_size = MatchingFlatSize(input_shape, output_shape);
29
+
30
+ for (int i = 0; i < flat_size; ++i) {
31
+ output_data[i] = std::ceil(input_data[i]);
32
+ }
33
+ }
34
+
35
+ } // namespace reference_ops
36
+ } // namespace tflite_micro
37
+ #endif // TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_CEIL_H_
@@ -0,0 +1,271 @@
1
+ /* Copyright 2019 The TensorFlow Authors. All Rights Reserved.
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
14
+ ==============================================================================*/
15
+ #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_COMPARISONS_H_
16
+ #define TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_COMPARISONS_H_
17
+
18
+ #include "tensorflow/lite/core/c/common.h"
19
+ #include "tensorflow/lite/kernels/internal/common.h"
20
+ #include "tensorflow/lite/kernels/internal/types.h"
21
+
22
+ namespace tflite_micro {
23
+
24
+ namespace reference_ops {
25
+
26
+ template <typename T>
27
+ inline bool EqualFn(T lhs, T rhs) {
28
+ return lhs == rhs;
29
+ }
30
+
31
+ template <typename T>
32
+ inline bool NotEqualFn(T lhs, T rhs) {
33
+ return lhs != rhs;
34
+ }
35
+
36
+ template <typename T>
37
+ inline bool GreaterFn(T lhs, T rhs) {
38
+ return lhs > rhs;
39
+ }
40
+ template <typename T>
41
+ inline bool GreaterEqualFn(T lhs, T rhs) {
42
+ return lhs >= rhs;
43
+ }
44
+ template <typename T>
45
+ inline bool LessFn(T lhs, T rhs) {
46
+ return lhs < rhs;
47
+ }
48
+ template <typename T>
49
+ inline bool LessEqualFn(T lhs, T rhs) {
50
+ return lhs <= rhs;
51
+ }
52
+
53
+ template <typename T>
54
+ using ComparisonFn = bool (*)(T, T);
55
+
56
+ template <typename T, ComparisonFn<T> F>
57
+ inline void ComparisonImpl(
58
+ const ComparisonParams& op_params, const RuntimeShape& input1_shape,
59
+ const T* input1_data, const RuntimeShape& input2_shape,
60
+ const T* input2_data, const RuntimeShape& output_shape, bool* output_data) {
61
+ const int64_t flatsize =
62
+ MatchingFlatSize(input1_shape, input2_shape, output_shape);
63
+ for (int64_t i = 0; i < flatsize; ++i) {
64
+ output_data[i] = F(input1_data[i], input2_data[i]);
65
+ }
66
+ }
67
+
68
+ template <ComparisonFn<float> F>
69
+ inline void Comparison(const ComparisonParams& op_params,
70
+ const RuntimeShape& input1_shape,
71
+ const float* input1_data,
72
+ const RuntimeShape& input2_shape,
73
+ const float* input2_data,
74
+ const RuntimeShape& output_shape, bool* output_data) {
75
+ ComparisonImpl<float, F>(op_params, input1_shape, input1_data, input2_shape,
76
+ input2_data, output_shape, output_data);
77
+ }
78
+
79
+ template <typename T, ComparisonFn<int32_t> F>
80
+ inline void ComparisonWithScaling(
81
+ const ComparisonParams& op_params, const RuntimeShape& input1_shape,
82
+ const T* input1_data, const RuntimeShape& input2_shape,
83
+ const T* input2_data, const RuntimeShape& output_shape, bool* output_data) {
84
+ int left_shift = op_params.left_shift;
85
+ int32_t input1_offset = op_params.input1_offset;
86
+ int32_t input1_multiplier = op_params.input1_multiplier;
87
+ int input1_shift = op_params.input1_shift;
88
+ int32_t input2_offset = op_params.input2_offset;
89
+ int32_t input2_multiplier = op_params.input2_multiplier;
90
+ int input2_shift = op_params.input2_shift;
91
+
92
+ const int64_t flatsize =
93
+ MatchingFlatSize(input1_shape, input2_shape, output_shape);
94
+ for (int64_t i = 0; i < flatsize; ++i) {
95
+ const int32_t input1_val = input1_offset + input1_data[i];
96
+ const int32_t input2_val = input2_offset + input2_data[i];
97
+ const int32_t shifted_input1_val = input1_val * (1 << left_shift);
98
+ const int32_t shifted_input2_val = input2_val * (1 << left_shift);
99
+ const int32_t scaled_input1_val =
100
+ MultiplyByQuantizedMultiplierSmallerThanOneExp(
101
+ shifted_input1_val, input1_multiplier, input1_shift);
102
+ const int32_t scaled_input2_val =
103
+ MultiplyByQuantizedMultiplierSmallerThanOneExp(
104
+ shifted_input2_val, input2_multiplier, input2_shift);
105
+ output_data[i] = F(scaled_input1_val, scaled_input2_val);
106
+ }
107
+ }
108
+
109
+ struct BroadcastComparison4DSlowCommon {
110
+ const RuntimeShape output_shape;
111
+ NdArrayDesc<4> desc1;
112
+ NdArrayDesc<4> desc2;
113
+ };
114
+
115
+ TFLITE_NOINLINE
116
+ BroadcastComparison4DSlowCommon BroadcastComparison4DSlowPreprocess(
117
+ const RuntimeShape& unextended_input1_shape,
118
+ const RuntimeShape& unextended_input2_shape,
119
+ const RuntimeShape& unextended_output_shape);
120
+
121
+ template <typename T, ComparisonFn<T> F>
122
+ inline void BroadcastComparison4DSlowImpl(
123
+ const ComparisonParams& op_params,
124
+ const RuntimeShape& unextended_input1_shape, const T* input1_data,
125
+ const RuntimeShape& unextended_input2_shape, const T* input2_data,
126
+ const RuntimeShape& unextended_output_shape, bool* output_data) {
127
+ const BroadcastComparison4DSlowCommon dims =
128
+ BroadcastComparison4DSlowPreprocess(unextended_input1_shape,
129
+ unextended_input2_shape,
130
+ unextended_output_shape);
131
+
132
+ for (int b = 0; b < dims.output_shape.Dims(0); ++b) {
133
+ for (int y = 0; y < dims.output_shape.Dims(1); ++y) {
134
+ for (int x = 0; x < dims.output_shape.Dims(2); ++x) {
135
+ for (int c = 0; c < dims.output_shape.Dims(3); ++c) {
136
+ output_data[Offset(dims.output_shape, b, y, x, c)] =
137
+ F(input1_data[SubscriptToIndex(dims.desc1, b, y, x, c)],
138
+ input2_data[SubscriptToIndex(dims.desc2, b, y, x, c)]);
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+
145
+ template <ComparisonFn<float> F>
146
+ inline void BroadcastComparison4DSlow(const ComparisonParams& op_params,
147
+ const RuntimeShape& input1_shape,
148
+ const float* input1_data,
149
+ const RuntimeShape& input2_shape,
150
+ const float* input2_data,
151
+ const RuntimeShape& output_shape,
152
+ bool* output_data) {
153
+ BroadcastComparison4DSlowImpl<float, F>(op_params, input1_shape, input1_data,
154
+ input2_shape, input2_data,
155
+ output_shape, output_data);
156
+ }
157
+
158
+ template <typename T, ComparisonFn<int32_t> F>
159
+ inline void BroadcastComparison4DSlowWithScaling(
160
+ const ComparisonParams& op_params,
161
+ const RuntimeShape& unextended_input1_shape, const T* input1_data,
162
+ const RuntimeShape& unextended_input2_shape, const T* input2_data,
163
+ const RuntimeShape& unextended_output_shape, bool* output_data) {
164
+ const BroadcastComparison4DSlowCommon dims =
165
+ BroadcastComparison4DSlowPreprocess(unextended_input1_shape,
166
+ unextended_input2_shape,
167
+ unextended_output_shape);
168
+
169
+ int left_shift = op_params.left_shift;
170
+ int32_t input1_offset = op_params.input1_offset;
171
+ int32_t input1_multiplier = op_params.input1_multiplier;
172
+ int input1_shift = op_params.input1_shift;
173
+ int32_t input2_offset = op_params.input2_offset;
174
+ int32_t input2_multiplier = op_params.input2_multiplier;
175
+ int input2_shift = op_params.input2_shift;
176
+
177
+ for (int b = 0; b < dims.output_shape.Dims(0); ++b) {
178
+ for (int y = 0; y < dims.output_shape.Dims(1); ++y) {
179
+ for (int x = 0; x < dims.output_shape.Dims(2); ++x) {
180
+ for (int c = 0; c < dims.output_shape.Dims(3); ++c) {
181
+ const int32_t input1_val =
182
+ input1_offset +
183
+ input1_data[SubscriptToIndex(dims.desc1, b, y, x, c)];
184
+ const int32_t input2_val =
185
+ input2_offset +
186
+ input2_data[SubscriptToIndex(dims.desc2, b, y, x, c)];
187
+ const int32_t shifted_input1_val = input1_val * (1 << left_shift);
188
+ const int32_t shifted_input2_val = input2_val * (1 << left_shift);
189
+ const int32_t scaled_input1_val =
190
+ MultiplyByQuantizedMultiplierSmallerThanOneExp(
191
+ shifted_input1_val, input1_multiplier, input1_shift);
192
+ const int32_t scaled_input2_val =
193
+ MultiplyByQuantizedMultiplierSmallerThanOneExp(
194
+ shifted_input2_val, input2_multiplier, input2_shift);
195
+ output_data[Offset(dims.output_shape, b, y, x, c)] =
196
+ F(scaled_input1_val, scaled_input2_val);
197
+ }
198
+ }
199
+ }
200
+ }
201
+ }
202
+
203
+ #define TFLITE_COMPARISON_OP(name) \
204
+ inline void name(const ComparisonParams& op_params, \
205
+ const RuntimeShape& input1_shape, const float* input1_data, \
206
+ const RuntimeShape& input2_shape, const float* input2_data, \
207
+ const RuntimeShape& output_shape, bool* output_data) { \
208
+ Comparison<name##Fn>(op_params, input1_shape, input1_data, input2_shape, \
209
+ input2_data, output_shape, output_data); \
210
+ } \
211
+ template <typename T> \
212
+ inline void name##NoScaling( \
213
+ const ComparisonParams& op_params, const RuntimeShape& input1_shape, \
214
+ const T* input1_data, const RuntimeShape& input2_shape, \
215
+ const T* input2_data, const RuntimeShape& output_shape, \
216
+ bool* output_data) { \
217
+ ComparisonImpl<T, name##Fn>(op_params, input1_shape, input1_data, \
218
+ input2_shape, input2_data, output_shape, \
219
+ output_data); \
220
+ } \
221
+ template <typename T> \
222
+ inline void name##WithScaling( \
223
+ const ComparisonParams& op_params, const RuntimeShape& input1_shape, \
224
+ const T* input1_data, const RuntimeShape& input2_shape, \
225
+ const T* input2_data, const RuntimeShape& output_shape, \
226
+ bool* output_data) { \
227
+ ComparisonWithScaling<T, name##Fn>(op_params, input1_shape, input1_data, \
228
+ input2_shape, input2_data, \
229
+ output_shape, output_data); \
230
+ } \
231
+ template <typename T> \
232
+ inline void Broadcast4DSlow##name##NoScaling( \
233
+ const ComparisonParams& op_params, const RuntimeShape& input1_shape, \
234
+ const T* input1_data, const RuntimeShape& input2_shape, \
235
+ const T* input2_data, const RuntimeShape& output_shape, \
236
+ bool* output_data) { \
237
+ BroadcastComparison4DSlowImpl<T, name##Fn>( \
238
+ op_params, input1_shape, input1_data, input2_shape, input2_data, \
239
+ output_shape, output_data); \
240
+ } \
241
+ inline void Broadcast4DSlow##name( \
242
+ const ComparisonParams& op_params, const RuntimeShape& input1_shape, \
243
+ const float* input1_data, const RuntimeShape& input2_shape, \
244
+ const float* input2_data, const RuntimeShape& output_shape, \
245
+ bool* output_data) { \
246
+ BroadcastComparison4DSlow<name##Fn>(op_params, input1_shape, input1_data, \
247
+ input2_shape, input2_data, \
248
+ output_shape, output_data); \
249
+ } \
250
+ template <typename T> \
251
+ inline void Broadcast4DSlow##name##WithScaling( \
252
+ const ComparisonParams& op_params, const RuntimeShape& input1_shape, \
253
+ const T* input1_data, const RuntimeShape& input2_shape, \
254
+ const T* input2_data, const RuntimeShape& output_shape, \
255
+ bool* output_data) { \
256
+ BroadcastComparison4DSlowWithScaling<T, name##Fn>( \
257
+ op_params, input1_shape, input1_data, input2_shape, input2_data, \
258
+ output_shape, output_data); \
259
+ }
260
+ TFLITE_COMPARISON_OP(Equal)
261
+ TFLITE_COMPARISON_OP(NotEqual)
262
+ TFLITE_COMPARISON_OP(Greater)
263
+ TFLITE_COMPARISON_OP(GreaterEqual)
264
+ TFLITE_COMPARISON_OP(Less)
265
+ TFLITE_COMPARISON_OP(LessEqual)
266
+ #undef TFLITE_COMPARISON_OP
267
+
268
+ } // namespace reference_ops
269
+ } // namespace tflite_micro
270
+
271
+ #endif // TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_COMPARISONS_H_
@@ -0,0 +1,141 @@
1
+ /* Copyright 2019 The TensorFlow Authors. All Rights Reserved.
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
14
+ ==============================================================================*/
15
+
16
+ #ifndef TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_CONCATENATION_H_
17
+ #define TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_CONCATENATION_H_
18
+
19
+ #include <algorithm>
20
+
21
+ #include "tensorflow/lite/kernels/internal/common.h"
22
+ #include "tensorflow/lite/kernels/internal/compatibility.h"
23
+ #include "tensorflow/lite/kernels/internal/cppmath.h"
24
+ #include "tensorflow/lite/kernels/internal/types.h"
25
+
26
+ namespace tflite_micro {
27
+ namespace reference_ops {
28
+
29
+ template <typename Scalar>
30
+ inline void Concatenation(const ConcatenationParams& params,
31
+ const RuntimeShape* const* input_shapes,
32
+ const Scalar* const* input_data,
33
+ const RuntimeShape& output_shape,
34
+ Scalar* output_data) {
35
+ int axis = params.axis;
36
+ int inputs_count = params.inputs_count;
37
+ const int concat_dimensions = output_shape.DimensionsCount();
38
+ TFLITE_DCHECK_LT(axis, concat_dimensions);
39
+
40
+ int64_t concat_size = 0;
41
+ for (int i = 0; i < inputs_count; i++) {
42
+ TFLITE_DCHECK_EQ(input_shapes[i]->DimensionsCount(), concat_dimensions);
43
+ for (int j = 0; j < concat_dimensions; j++) {
44
+ if (j != axis) {
45
+ MatchingDim(*input_shapes[i], j, output_shape, j);
46
+ }
47
+ }
48
+ concat_size += input_shapes[i]->Dims(axis);
49
+ }
50
+ TFLITE_DCHECK_EQ(concat_size, output_shape.Dims(axis));
51
+ int64_t outer_size = 1;
52
+ for (int i = 0; i < axis; ++i) {
53
+ outer_size *= output_shape.Dims(i);
54
+ }
55
+ // For all input arrays,
56
+ // FlatSize() = outer_size * Dims(axis) * base_inner_size;
57
+ int64_t base_inner_size = 1;
58
+ for (int i = axis + 1; i < concat_dimensions; ++i) {
59
+ base_inner_size *= output_shape.Dims(i);
60
+ }
61
+
62
+ Scalar* output_ptr = output_data;
63
+ for (int k = 0; k < outer_size; k++) {
64
+ for (int i = 0; i < inputs_count; ++i) {
65
+ const int copy_size = input_shapes[i]->Dims(axis) * base_inner_size;
66
+ const Scalar* input_ptr = input_data[i] + k * copy_size;
67
+ memcpy(output_ptr, input_ptr, copy_size * sizeof(Scalar));
68
+ output_ptr += copy_size;
69
+ }
70
+ }
71
+ }
72
+
73
+ // TODO(b/174275780): The quantized implementation of concatentation isn't fully
74
+ // quantized as it takes scale as a floating point value. This should be fixed
75
+ // when optimizng this routine further.
76
+ inline void ConcatenationWithScaling(const ConcatenationParams& params,
77
+ const RuntimeShape* const* input_shapes,
78
+ const uint8_t* const* input_data,
79
+ const RuntimeShape& output_shape,
80
+ uint8_t* output_data) {
81
+ int axis = params.axis;
82
+ const int32_t* input_zeropoint = params.input_zeropoint;
83
+ const float* input_scale = params.input_scale;
84
+ int inputs_count = params.inputs_count;
85
+ const int32_t output_zeropoint = params.output_zeropoint;
86
+ const float output_scale = params.output_scale;
87
+
88
+ const int concat_dimensions = output_shape.DimensionsCount();
89
+ TFLITE_DCHECK_LT(axis, concat_dimensions);
90
+
91
+ int64_t concat_size = 0;
92
+ for (int i = 0; i < inputs_count; i++) {
93
+ TFLITE_DCHECK_EQ(input_shapes[i]->DimensionsCount(), concat_dimensions);
94
+ for (int j = 0; j < concat_dimensions; j++) {
95
+ if (j != axis) {
96
+ MatchingDim(*input_shapes[i], j, output_shape, j);
97
+ }
98
+ }
99
+ concat_size += input_shapes[i]->Dims(axis);
100
+ }
101
+ TFLITE_DCHECK_EQ(concat_size, output_shape.Dims(axis));
102
+ int64_t outer_size = 1;
103
+ for (int i = 0; i < axis; ++i) {
104
+ outer_size *= output_shape.Dims(i);
105
+ }
106
+ // For all input arrays,
107
+ // FlatSize() = outer_size * Dims(axis) * base_inner_size;
108
+ int64_t base_inner_size = 1;
109
+ for (int i = axis + 1; i < concat_dimensions; ++i) {
110
+ base_inner_size *= output_shape.Dims(i);
111
+ }
112
+
113
+ const float inverse_output_scale = 1.f / output_scale;
114
+ uint8_t* output_ptr = output_data;
115
+ for (int k = 0; k < outer_size; k++) {
116
+ for (int i = 0; i < inputs_count; ++i) {
117
+ const int copy_size = input_shapes[i]->Dims(axis) * base_inner_size;
118
+ const uint8_t* input_ptr = input_data[i] + k * copy_size;
119
+ if (input_zeropoint[i] == output_zeropoint &&
120
+ input_scale[i] == output_scale) {
121
+ memcpy(output_ptr, input_ptr, copy_size);
122
+ } else {
123
+ const float scale = input_scale[i] * inverse_output_scale;
124
+ const float bias = -input_zeropoint[i] * scale;
125
+ for (int j = 0; j < copy_size; ++j) {
126
+ const int32_t value = static_cast<int32_t>(tflite_micro::TfLiteRound(
127
+ input_ptr[j] * scale + bias)) +
128
+ output_zeropoint;
129
+ output_ptr[j] = static_cast<uint8_t>(
130
+ std::max<int32_t>(std::min<int32_t>(255, value), 0));
131
+ }
132
+ }
133
+ output_ptr += copy_size;
134
+ }
135
+ }
136
+ }
137
+
138
+ } // namespace reference_ops
139
+ } // namespace tflite_micro
140
+
141
+ #endif // TENSORFLOW_LITE_KERNELS_INTERNAL_REFERENCE_CONCATENATION_H_