Commit graph

38 commits

Author SHA1 Message Date
Esun Kim
7914a2d7a1
Clean-up unused bzl load (#3576) 2026-05-26 22:55:55 +00:00
Ryan Kuester
068c6a59b6
build(bazel): inject tflite_micro shim via tflm_py_* wrappers (#3573)
Python targets in this repository import one another under the
"tflite_micro" package namespace, which //:tflite_micro_shim synthesizes
at import time. The shim is required under Bzlmod, where the main
repository's runfiles root is the fixed name "_main" rather than the
module name, so the "tflite_micro" prefix no longer resolves on its own.
Every such target therefore had to list //:tflite_micro_shim in its
deps, which was repetitive and easy to forget.

Add tflm_py_library, tflm_py_test, and tflm_py_binary wrappers in a new
//python:py_rules.bzl that inject the shim dependency automatically,
following the naming convention of the existing tflm_cc_* wrappers, and
document the shim's rationale there. Convert every target that
previously listed the shim to the corresponding wrapper and drop the
explicit dependency. The dependency graph is unchanged; only the means
by which the shim is attached differs.
2026-05-26 19:51:58 +00:00
Esun Kim
807c35d6a9
Bazel Module (#3364)
* Work

* Review update

* Enabled tests

* Bazel: Suppress warnings from external repositories

* Fixed whl_test

* Formatted

* More format
2026-02-11 14:11:47 -08:00
Esun Kim
183da3e302
Typo in code (#3447)
* Typo in code

* Format
2026-02-11 20:34:42 +00:00
Esun Kim
f16b2659f4
[CI] @platforms//os:windows (#3354)
* @platforms//os:windows

* Updated CI links in README.md
2026-01-26 11:03:18 -08:00
Esun Kim
2aa6e12979
[CI] Reformat (#3347)
* Clean-up BUILD

* Added pyproject.toml

* Format gen

* Fix

* Fix format

* Fix
2026-01-24 21:13:38 -08:00
Esun Kim
4b65b08cd8
Fix (#3338) 2026-01-24 13:35:57 -08:00
Esun Kim
0e7af97a6d
[CI] windows 2 (#3334)
* Fix more

* More fix to go
2026-01-24 11:08:09 -08:00
Esun Kim
1672f9dee8
Fix more (#3333) 2026-01-24 11:00:45 -08:00
Esun Kim
db0e3d9bf2
More fix (#3331) 2026-01-24 10:34:15 -08:00
Esun Kim
fd33340e06
Revert "[CI] Replaced tensorflow with tensorflow-cpu (#3261)" (#3290)
This reverts commit 9cbf6e0403.
2026-01-12 11:19:37 -08:00
Esun Kim
9cbf6e0403
[CI] Replaced tensorflow with tensorflow-cpu (#3261)
* Replaced tensorflow with tensorflow-cpu

* Use tensorflow-cpu for bazel targets
2025-12-03 13:43:14 -08:00
Esun Kim
858f5a3edd
[CI] Removed six, updated absl_py (#3203)
* Removed ci/install_qemu.sh

* Removed six from direct deps

* Removed six from tflm-ci docker

* Use requirement(absl_py)

* New qemu-user
2025-09-25 14:37:39 -07:00
Esun Kim
ba753cef3e
[CI] Fix build (#3194)
- Upgraded the Bazel BuildTool to the latest version (8.2.1).
- Updated the `tflm-ci` Docker image and pushed the new tag (0.6.1) to the `ghcr.io/tflm-bot/tflm-ci registry`.
- Updated the WORKSPACE to load `rules_cc` and `rules_shell` explicitly
- Ran `buildifier` to ensure all BUILD files to have all the fixes.

BUG=Clean-up
2025-09-19 20:48:22 +00:00
suleshahid
bc68d362d6
Remove deprecated BUILD tags (#3091)
These tags have been deprecated and are unused now. Syncing with upstream and removing them from the BUILD files.

BUG=remove deprecated tags
2025-04-08 19:21:25 +00:00
Ryan Kuester
124db9607e
ci(bazel): simplify scripts and configuration in advance of additions (#2918)
* ci(bazel): simplify scripts and configuration in advance of additions

Simplify the Bazel-related CI scripts and BUILD configuration in
preparation for adding several more for the compression feature.

- Move CC=clang to .bazelrc

- Define CXX in case it's already defined in the environment, in
  which case it overrides deferring to CC

- Replace --repo_env, which doesn't affect build, with --action_env

- Move commented-out ubsan invocation to its own CI job. Since
  ubsan was commented out, Bazel invocations have moved to their
  own jobs so they can run in parallel.

- Consistently test all targets, `...`, since TFLM is no longer
  confined to the tensorflow/lite/micro directory. Filter out
  inappropriate new targets with no.san tags.

- Don't run `bazel build ...` before `bazel test ...`; the latter
  already builds all non-test targets.

- Remove obsolete filter for `no_oss`, there were no more
  `no_oss` tags in the tree.

- Stop using readable_run: it has diverged from its original
  meaning and now only redirects stderr to stdout. This is not
  needed.

BUG=see description

* refactor: clarify intention to run at top and test entire project

Clarify that the scripts run from the root directory of the
project by restoring the change of directory at the top of the
script, even though CI runs from the root directory of the
project.

Also clarify the intention that all tests in the project be run
by specifying `//...`, rather than `...`, which means all targets
at or below the working directory.
2024-11-21 10:38:16 -08:00
suleshahid
e47981c133
Fix casting for Numpy 2.0 (#2696)
Numpy 2.0 will explicitly downcast now, which casues us to see a regerssion in the conversion for the audio model.

BUG=[361070678](https://b.corp.google.com/issues/361070678)
2024-09-24 19:17:13 +00:00
RJ Ascani
bb4fc83d10
Pass cc_op_defs as deps, not srcs, to underlying cc_library rule (#2522)
This is because the targets are cc_libraries, not C++ source files.

BUG=cl/619288666
2024-03-28 18:56:17 +00:00
Alpha BAO
cfa4c91d1b
Fix array out-of-bounds access in WideDynamicFuncLut (#2468)
### Problem description:

In the original code, pointer arithmetic of gain_lut and the assignment of gain_lut[4 * interval + 3] could potentially lead to out-of-bounds array access.
On certain architectures (e.g., macOS ARM64), this out-of-bounds access causes the program to crash.
BUG=None, reported issue#2464

### Solution:

Increase the size of the gain_lut_storage array by 1 to provide an extra buffer and prevent overflow during the calculation within the loop.

### Risks and considerations:

Increasing the array size will slightly increase memory usage.
In extremely resource-constrained systems, alternative algorithm implementations may need to be considered.
2024-02-24 05:40:47 +00:00
RJ Ascani
29526e413b
Replace tensorflow-cpu usage with tensorflow (#2396)
The tensorflow-cpu package does not support MacOS or non-x86 hardware. Replacing the tensorflow-cpu python package requirement with the tensorflow meta package should enable the bazel build and the dependent python scripts to be used on those platforms.

BUG=#2367, #1781
2024-02-23 00:35:22 +00:00
RJ Ascani
bfd5866c55
Enable subpackage visibility for signal (#2363)
The py_tflm_signal_library macro generates multiple targets, some of which are referenced by an internal subdirectory target. This PR adds a default visibility for the package for all targets to be visibile within the subpackage.

BUG=b/316963245
2023-12-19 01:37:00 +00:00
Shlomi Regev
b654b1bd90
Fix Bazel dependencies for targets under signal/ (#2353)
The targets for building the ops should depend on
"//third_party/tflite_micro/python/tflite_micro/signal/utils:util Instead of just their unit tests.

BUG=315941833
2023-12-12 14:55:33 +00:00
David Davis
d5a83db0d0
Change micro_speech example (#2249)
@tensorflow/micro 

Create Python examples that use Signal Ops Library.
Create Python examples for micro_speech model prediction.
Update README documentation.
Update images.
Add additional speech sample files (silence, noise) to testdata directory.
Add audio preprocessing models to models  directory.
Update Bazel BUILD files.
Update Makefiles
Add micro_speech to project generation examples for bluepill
Disable micro_speech_test for Hexagon (b/302404477)

bug=fixes  #2248
2023-10-12 23:17:32 +00:00
Steven Toribio
494499956e
Python PCAN (#2204)
port python PCAN op to open source in tflm_signal

-port PCAN op and corresponding to new open source location for Python

corresponding [g3 cl](https://critique.corp.google.com/cl/559172657)

BUG=[b/294387385](https://b.corp.google.com/issues/294387385)
2023-09-01 21:20:10 +00:00
RJ Ascani
46ccaf8fb3
Remove unused and combine similar loads (#2165)
BUG=cleanup
2023-08-14 19:50:55 +00:00
Steven Toribio
80cb11b131
load()s are being added in preparation for changes being made to Blaze/Bazel (#2160)
`load()`s are being added in preparation for changes being made to Blaze/Bazel !

corresponding [google3 cl](https://critique.corp.google.com/cl/553849494)

BUG=[b/295216390](https://b.corp.google.com/issues/295216390)
2023-08-10 03:30:46 +00:00
suleshahid
e2cdefd520
Python extensions for filter bank and stacker Signal Ops. (#2143)
Functionality to use the rest of the Signal Library OPs directly from python.

Test with `bazel run python/tflite_micro/signal:stacker_op_test` and `bazel run python/tflite_micro/signal:filter_bank_ops_test`

BUG=[287346710](http://b/287346710)
2023-07-25 15:11:22 +00:00
suleshahid
bb3fda3a9c
Python extensions for energy, framer, overlap_add Signal OPs (#2142)
We this PR, you can use these ops directly from python, including in TF graphs.

Test with `bazel run python/tflite_micro/signal:framer_op_test`, etc.

BUG=[287346710](http://b/287346710)
2023-07-24 17:21:48 +00:00
suleshahid
55037d2d5e
Adds IRFFT Op to Signal Library (#2137)
Inverse-RFFT as part of Signal library ops.
Testing via current FFT Op tests.

BUG=[287346710](http://b/287346710)
2023-07-20 01:17:26 +00:00
suleshahid
ed11500ab9
Delay OP python extension (#2138)
Extends the Signal Library Delay OP to be usable from python.
Can test via `bazel run python/tflite_micro/signal:delay_op_test`

BUG=[287346710](http://b/287346710)
2023-07-19 22:52:06 +00:00
suleshahid
70aed11c95
Adds FFT Auto Scale Op (#2134)
This PR adds additional FFT op functionality in the Signal library, namely adding the FFT Auto Scale operation.
Testing added in the original `fft_test.cc` and `fft_ops_test.py`.
BUG=[287346710](http://b/287346710)
2023-07-19 00:08:47 +00:00
Advait Jain
699c5178b9
Explicit load for py_library. (#2127)
BUG=http://b/291306662
2023-07-14 21:59:36 +00:00
suleshahid
360f05d294
Signal Library OPs python BUILD update (#2088)
This is needed to properly build all the ops together. Since we are calling into a singular utils function to load the ops, if it checks for any other ops, it would break before this.

Now we make it build all ops everytime utils.py is built.

BUG=[288938993](http://b/288938993)
2023-06-27 20:25:59 +00:00
suleshahid
f22888af65
Adds Signal Library RFFT OP (#2056)
Second OP for the TFLM Signal library, Real-Valued Fast Fourier Transform.

The RFFT OP provides three resolutions: `FLOAT, INT16, INT32`

Similar usage as to previous Window OP:
* `op_resolver.AddRfft()` (which will add all resolutions, and determine the type at runtime)
* `op_resolver.AddRfftFloat()`, `op_resolver.AddRfftInt16()`, `op_resolver.AddRfftInt32()` for a specific resolution type.
* or via python as can be seen in `fft_ops_test.py`

3 testing options are provided:
* Micro(C++): bazel run signal/micro/kernels:fft_test
* Tensorflow/Micro(Python): bazel run python/tflite_micro/signal:fft_ops_test
* Makefile(C++): make -f tensorflow/lite/micro/tools/make/Makefile test_kernel_fft_test

BUG=[287346710](http://b/287346710)
2023-06-21 20:36:55 +00:00
Ryan Kuester
52c9568156
build(bazel): use --std=c++17 by default (#2060)
Make all bazel builds use --std=c++17 by default.

BUG=fixes #2058
2023-06-15 20:22:54 +00:00
Ryan Kuester
b5da836410
refactor(python): move runtime to package-friendly directory structure (#2051)
To package the module `runtime` as `tflite_micro.runtime`, put `runtime` under
a directory representing the Python namespace package `tflite_micro`. For
organization's sake, move it all to the top-level directory `python/`. Adjust
tests and docs to match.

Some code outside of the Python extension module has come to depend on
`python/tflite_micro:python_ops_resolver` as a replacement for
`all_ops_resolver` (e.g.:`t/l/m/integration_tests/seanet/add/integration_tests.cc`).
`python_ops_resolver` is intended to be a private implementation detail of the
Python extension module. For now, grandfather in the dependent code by updating
its references to the resolver's location; however, soon the dependent code
should be migrated away to a different resolver. (#2033,
https://issuetracker.google.com/286508251)

BUG=part of #1484
2023-06-15 06:25:19 +00:00
suleshahid
925909cf6b
Update internal name for Window OP (#2054)
We have some name clash issues with the current Window OP name.

We will be changing it from "Window"->"SignalWindow" until the names clashes are resolved and revert back afterwards.

This is an internal implementation detail, so user level API has no change from current usage, i.e. still use (op_resolver.AddWindow() and window_op.window)

BUG=[286250473](http://b/286250473)
2023-06-14 20:33:41 +00:00
suleshahid
c306ff6084
Adds Signal Library Window Op (#2019)
First Op for the TFLM Signal Processing Ops library.
Doc linked in bug.

The Window OP is a custom signal processing OP similar to what is found in tf.signal library, but specific for integer (int16) purposes.

You can directly use this as a builtin op via the op resolver as:
* `op_resolver.AddWindow()` 
* or via python as shown in `window_op_test.py`

3 testing options are provided:
* Micro(C++): `bazel run signal/micro/kernels:window_test`
* Tensorflow/Micro(Python): `bazel run python/tflite_micro/signal:window_op_test`
* Makefile(C++): `make -f tensorflow/lite/micro/tools/make/Makefile test_kernel_window_test`  

BUG=[259145369](http://b/259145369)
2023-06-14 00:25:02 +00:00