From 9b8ec04a48c39daf5a26347bd3b6919b5ddc7af7 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 2 Oct 2024 15:14:22 +0000 Subject: [PATCH] Update Sphinx Documentation --- advanced/accelerator.html | 2 +- advanced/extension.html | 2 +- advanced/fifo_depth.html | 2 +- advanced/model_optimization.html | 2 +- api/configuration.html | 2 +- api/hls-model.html | 2 +- api/profiling.html | 2 +- autodoc/hls4ml.backends.catapult.html | 2 +- autodoc/hls4ml.backends.catapult.passes.html | 2 +- autodoc/hls4ml.backends.fpga.html | 2 +- autodoc/hls4ml.backends.fpga.passes.html | 2 +- autodoc/hls4ml.backends.html | 2 +- autodoc/hls4ml.backends.quartus.html | 2 +- autodoc/hls4ml.backends.quartus.passes.html | 2 +- autodoc/hls4ml.backends.symbolic.html | 2 +- autodoc/hls4ml.backends.symbolic.passes.html | 2 +- autodoc/hls4ml.backends.vitis.html | 2 +- autodoc/hls4ml.backends.vitis.passes.html | 2 +- autodoc/hls4ml.backends.vivado.html | 2 +- autodoc/hls4ml.backends.vivado.passes.html | 2 +- .../hls4ml.backends.vivado_accelerator.html | 2 +- ...ml.backends.vivado_accelerator.passes.html | 2 +- autodoc/hls4ml.converters.html | 2 +- autodoc/hls4ml.converters.keras.html | 2 +- autodoc/hls4ml.converters.onnx.html | 2 +- autodoc/hls4ml.converters.pytorch.html | 2 +- autodoc/hls4ml.html | 2 +- autodoc/hls4ml.model.flow.html | 2 +- autodoc/hls4ml.model.html | 2 +- autodoc/hls4ml.model.optimizer.html | 2 +- autodoc/hls4ml.model.optimizer.passes.html | 2 +- autodoc/hls4ml.optimization.html | 2 +- autodoc/hls4ml.optimization.keras.html | 2 +- autodoc/hls4ml.optimization.objectives.html | 2 +- autodoc/hls4ml.report.html | 2 +- autodoc/hls4ml.utils.html | 2 +- autodoc/hls4ml.writer.html | 2 +- command.html | 2 +- concepts.html | 2 +- details.html | 2 +- flows.html | 2 +- genindex.html | 2 +- index.html | 2 +- objects.inv | Bin 14530 -> 14530 bytes py-modindex.html | 2 +- reference.html | 10 +++++----- release_notes.html | 2 +- search.html | 2 +- searchindex.js | 2 +- setup.html | 2 +- status.html | 4 ++-- 51 files changed, 55 insertions(+), 55 deletions(-) diff --git a/advanced/accelerator.html b/advanced/accelerator.html index 5bcc0682c1..b89a38a80d 100644 --- a/advanced/accelerator.html +++ b/advanced/accelerator.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/advanced/extension.html b/advanced/extension.html index aaf3d0422f..98d32f1d8c 100644 --- a/advanced/extension.html +++ b/advanced/extension.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/advanced/fifo_depth.html b/advanced/fifo_depth.html index a2042a0ff1..ffa43d158f 100644 --- a/advanced/fifo_depth.html +++ b/advanced/fifo_depth.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/advanced/model_optimization.html b/advanced/model_optimization.html index b97d6591fb..6f2318e5df 100644 --- a/advanced/model_optimization.html +++ b/advanced/model_optimization.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/api/configuration.html b/api/configuration.html index 8f9c112c79..46376dc401 100644 --- a/api/configuration.html +++ b/api/configuration.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/api/hls-model.html b/api/hls-model.html index 24c5efcf6f..cc2a7c78df 100644 --- a/api/hls-model.html +++ b/api/hls-model.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/api/profiling.html b/api/profiling.html index 297365cc20..900d86a4d8 100644 --- a/api/profiling.html +++ b/api/profiling.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.catapult.html b/autodoc/hls4ml.backends.catapult.html index fbac1b1375..0301fcb233 100644 --- a/autodoc/hls4ml.backends.catapult.html +++ b/autodoc/hls4ml.backends.catapult.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.catapult.passes.html b/autodoc/hls4ml.backends.catapult.passes.html index 3f4505bb7d..df6dd4c5c4 100644 --- a/autodoc/hls4ml.backends.catapult.passes.html +++ b/autodoc/hls4ml.backends.catapult.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.fpga.html b/autodoc/hls4ml.backends.fpga.html index 9d0d0454f3..0e8411aa6d 100644 --- a/autodoc/hls4ml.backends.fpga.html +++ b/autodoc/hls4ml.backends.fpga.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.fpga.passes.html b/autodoc/hls4ml.backends.fpga.passes.html index 94916e12b9..cc19d16bfd 100644 --- a/autodoc/hls4ml.backends.fpga.passes.html +++ b/autodoc/hls4ml.backends.fpga.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.html b/autodoc/hls4ml.backends.html index 3f6f67cffb..7f86880d30 100644 --- a/autodoc/hls4ml.backends.html +++ b/autodoc/hls4ml.backends.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.quartus.html b/autodoc/hls4ml.backends.quartus.html index 67f985e4d0..701f88a151 100644 --- a/autodoc/hls4ml.backends.quartus.html +++ b/autodoc/hls4ml.backends.quartus.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.quartus.passes.html b/autodoc/hls4ml.backends.quartus.passes.html index a4f1825d19..6a8586b192 100644 --- a/autodoc/hls4ml.backends.quartus.passes.html +++ b/autodoc/hls4ml.backends.quartus.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.symbolic.html b/autodoc/hls4ml.backends.symbolic.html index f4195f9781..fd3e5ea1e8 100644 --- a/autodoc/hls4ml.backends.symbolic.html +++ b/autodoc/hls4ml.backends.symbolic.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.symbolic.passes.html b/autodoc/hls4ml.backends.symbolic.passes.html index d4dcdf80ff..80b1965dcc 100644 --- a/autodoc/hls4ml.backends.symbolic.passes.html +++ b/autodoc/hls4ml.backends.symbolic.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.vitis.html b/autodoc/hls4ml.backends.vitis.html index 58aa7c9570..62c4e93248 100644 --- a/autodoc/hls4ml.backends.vitis.html +++ b/autodoc/hls4ml.backends.vitis.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.vitis.passes.html b/autodoc/hls4ml.backends.vitis.passes.html index e3b60fd9b5..86bf9421da 100644 --- a/autodoc/hls4ml.backends.vitis.passes.html +++ b/autodoc/hls4ml.backends.vitis.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.vivado.html b/autodoc/hls4ml.backends.vivado.html index d714481c77..d757d12e77 100644 --- a/autodoc/hls4ml.backends.vivado.html +++ b/autodoc/hls4ml.backends.vivado.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.vivado.passes.html b/autodoc/hls4ml.backends.vivado.passes.html index 9514138031..6f5bfee9bc 100644 --- a/autodoc/hls4ml.backends.vivado.passes.html +++ b/autodoc/hls4ml.backends.vivado.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.vivado_accelerator.html b/autodoc/hls4ml.backends.vivado_accelerator.html index 192fa06392..ada517561d 100644 --- a/autodoc/hls4ml.backends.vivado_accelerator.html +++ b/autodoc/hls4ml.backends.vivado_accelerator.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.backends.vivado_accelerator.passes.html b/autodoc/hls4ml.backends.vivado_accelerator.passes.html index 1c3ceded24..ddd13de758 100644 --- a/autodoc/hls4ml.backends.vivado_accelerator.passes.html +++ b/autodoc/hls4ml.backends.vivado_accelerator.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.converters.html b/autodoc/hls4ml.converters.html index 5d0666ea8c..cbf8b84c58 100644 --- a/autodoc/hls4ml.converters.html +++ b/autodoc/hls4ml.converters.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.converters.keras.html b/autodoc/hls4ml.converters.keras.html index f627dc6db1..cb8c7e614a 100644 --- a/autodoc/hls4ml.converters.keras.html +++ b/autodoc/hls4ml.converters.keras.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.converters.onnx.html b/autodoc/hls4ml.converters.onnx.html index 2a29f92d4a..cbe92a1b17 100644 --- a/autodoc/hls4ml.converters.onnx.html +++ b/autodoc/hls4ml.converters.onnx.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.converters.pytorch.html b/autodoc/hls4ml.converters.pytorch.html index 53da7c62c9..e1c9dde808 100644 --- a/autodoc/hls4ml.converters.pytorch.html +++ b/autodoc/hls4ml.converters.pytorch.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.html b/autodoc/hls4ml.html index 0d0dea5613..ee4c5a4453 100644 --- a/autodoc/hls4ml.html +++ b/autodoc/hls4ml.html @@ -38,7 +38,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.model.flow.html b/autodoc/hls4ml.model.flow.html index e949ca4ca4..ff4a703b19 100644 --- a/autodoc/hls4ml.model.flow.html +++ b/autodoc/hls4ml.model.flow.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.model.html b/autodoc/hls4ml.model.html index 134b2c7da9..ebcceec797 100644 --- a/autodoc/hls4ml.model.html +++ b/autodoc/hls4ml.model.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.model.optimizer.html b/autodoc/hls4ml.model.optimizer.html index 07c788cd1e..e6b7141e98 100644 --- a/autodoc/hls4ml.model.optimizer.html +++ b/autodoc/hls4ml.model.optimizer.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.model.optimizer.passes.html b/autodoc/hls4ml.model.optimizer.passes.html index 6f5dae1ef7..d56ce085a0 100644 --- a/autodoc/hls4ml.model.optimizer.passes.html +++ b/autodoc/hls4ml.model.optimizer.passes.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.optimization.html b/autodoc/hls4ml.optimization.html index 7ec4942b86..fad0d9fa87 100644 --- a/autodoc/hls4ml.optimization.html +++ b/autodoc/hls4ml.optimization.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.optimization.keras.html b/autodoc/hls4ml.optimization.keras.html index b0741cdb2d..aa37fe2af4 100644 --- a/autodoc/hls4ml.optimization.keras.html +++ b/autodoc/hls4ml.optimization.keras.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.optimization.objectives.html b/autodoc/hls4ml.optimization.objectives.html index 3f58ff34ee..5d74df8a6f 100644 --- a/autodoc/hls4ml.optimization.objectives.html +++ b/autodoc/hls4ml.optimization.objectives.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.report.html b/autodoc/hls4ml.report.html index 5e02dcf4b5..0e7469fa29 100644 --- a/autodoc/hls4ml.report.html +++ b/autodoc/hls4ml.report.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.utils.html b/autodoc/hls4ml.utils.html index 09b4e9501f..afda8f3d52 100644 --- a/autodoc/hls4ml.utils.html +++ b/autodoc/hls4ml.utils.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/autodoc/hls4ml.writer.html b/autodoc/hls4ml.writer.html index d023416399..f71db4a3ed 100644 --- a/autodoc/hls4ml.writer.html +++ b/autodoc/hls4ml.writer.html @@ -39,7 +39,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/command.html b/command.html index dcb4a25678..ae6fa713ea 100644 --- a/command.html +++ b/command.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/concepts.html b/concepts.html index 3002b8651b..883402bb04 100644 --- a/concepts.html +++ b/concepts.html @@ -41,7 +41,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/details.html b/details.html index 2dd3729908..dd191b7efd 100644 --- a/details.html +++ b/details.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/flows.html b/flows.html index 3e1b06abe7..5ea4a0cb2b 100644 --- a/flows.html +++ b/flows.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/genindex.html b/genindex.html index 0cdd9a9cb8..40f0a35729 100644 --- a/genindex.html +++ b/genindex.html @@ -37,7 +37,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/index.html b/index.html index 6053deb90f..ae6bb521e3 100644 --- a/index.html +++ b/index.html @@ -39,7 +39,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/objects.inv b/objects.inv index 7c0d94af0f9cf3cf9f9c52a9a1ff06743416fd6f..ac3c2651ca8088cbfaae7d9a019dc81a9b284a1d 100644 GIT binary patch delta 22 dcmX?9c&KoK3%99udSY5?iji@W;YR;r3jk*S2tWV; delta 22 dcmX?9c&KoK3%7}OdWwm$Wtx#$@<#t+3jkvR2kZa< diff --git a/py-modindex.html b/py-modindex.html index 9e762c8b43..c695d2c368 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
diff --git a/reference.html b/reference.html index 381a732197..d51112ee20 100644 --- a/reference.html +++ b/reference.html @@ -40,7 +40,7 @@
- 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
@@ -266,13 +266,13 @@

Contributors
  • diff --git a/release_notes.html b/release_notes.html index 2811f8d766..c9daaeec3c 100644 --- a/release_notes.html +++ b/release_notes.html @@ -40,7 +40,7 @@
    - 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
    diff --git a/search.html b/search.html index 055771ea52..02fb65f23b 100644 --- a/search.html +++ b/search.html @@ -40,7 +40,7 @@
    - 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
    diff --git a/searchindex.js b/searchindex.js index 04d6ecc14b..ace5226eee 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["advanced/accelerator", "advanced/extension", "advanced/fifo_depth", "advanced/model_optimization", "api/configuration", "api/hls-model", "api/profiling", "autodoc/hls4ml", "autodoc/hls4ml.backends", "autodoc/hls4ml.backends.catapult", "autodoc/hls4ml.backends.catapult.passes", "autodoc/hls4ml.backends.fpga", "autodoc/hls4ml.backends.fpga.passes", "autodoc/hls4ml.backends.quartus", "autodoc/hls4ml.backends.quartus.passes", "autodoc/hls4ml.backends.symbolic", "autodoc/hls4ml.backends.symbolic.passes", "autodoc/hls4ml.backends.vitis", "autodoc/hls4ml.backends.vitis.passes", "autodoc/hls4ml.backends.vivado", "autodoc/hls4ml.backends.vivado.passes", "autodoc/hls4ml.backends.vivado_accelerator", "autodoc/hls4ml.backends.vivado_accelerator.passes", "autodoc/hls4ml.converters", "autodoc/hls4ml.converters.keras", "autodoc/hls4ml.converters.onnx", "autodoc/hls4ml.converters.pytorch", "autodoc/hls4ml.model", "autodoc/hls4ml.model.flow", "autodoc/hls4ml.model.optimizer", "autodoc/hls4ml.model.optimizer.passes", "autodoc/hls4ml.optimization", "autodoc/hls4ml.optimization.keras", "autodoc/hls4ml.optimization.objectives", "autodoc/hls4ml.report", "autodoc/hls4ml.utils", "autodoc/hls4ml.writer", "command", "concepts", "details", "flows", "index", "reference", "release_notes", "setup", "status"], "filenames": ["advanced/accelerator.rst", "advanced/extension.rst", "advanced/fifo_depth.rst", "advanced/model_optimization.rst", "api/configuration.rst", "api/hls-model.rst", "api/profiling.rst", "autodoc/hls4ml.rst", "autodoc/hls4ml.backends.rst", "autodoc/hls4ml.backends.catapult.rst", "autodoc/hls4ml.backends.catapult.passes.rst", "autodoc/hls4ml.backends.fpga.rst", "autodoc/hls4ml.backends.fpga.passes.rst", "autodoc/hls4ml.backends.quartus.rst", "autodoc/hls4ml.backends.quartus.passes.rst", "autodoc/hls4ml.backends.symbolic.rst", "autodoc/hls4ml.backends.symbolic.passes.rst", "autodoc/hls4ml.backends.vitis.rst", "autodoc/hls4ml.backends.vitis.passes.rst", "autodoc/hls4ml.backends.vivado.rst", "autodoc/hls4ml.backends.vivado.passes.rst", "autodoc/hls4ml.backends.vivado_accelerator.rst", "autodoc/hls4ml.backends.vivado_accelerator.passes.rst", "autodoc/hls4ml.converters.rst", "autodoc/hls4ml.converters.keras.rst", "autodoc/hls4ml.converters.onnx.rst", "autodoc/hls4ml.converters.pytorch.rst", "autodoc/hls4ml.model.rst", "autodoc/hls4ml.model.flow.rst", "autodoc/hls4ml.model.optimizer.rst", "autodoc/hls4ml.model.optimizer.passes.rst", "autodoc/hls4ml.optimization.rst", "autodoc/hls4ml.optimization.keras.rst", "autodoc/hls4ml.optimization.objectives.rst", "autodoc/hls4ml.report.rst", "autodoc/hls4ml.utils.rst", "autodoc/hls4ml.writer.rst", "command.rst", "concepts.rst", "details.rst", "flows.rst", "index.rst", "reference.rst", "release_notes.rst", "setup.rst", "status.rst"], "titles": ["VivadoAccelerator Backend", "Extension API", "FIFO Buffer Depth Optimization", "Hardware-aware Optimization API", "Configuration", "HLS Model Class", "Profiling", "hls4ml package", "hls4ml.backends package", "hls4ml.backends.catapult package", "hls4ml.backends.catapult.passes package", "hls4ml.backends.fpga package", "hls4ml.backends.fpga.passes package", "hls4ml.backends.quartus package", "hls4ml.backends.quartus.passes package", "hls4ml.backends.symbolic package", "hls4ml.backends.symbolic.passes package", "hls4ml.backends.vitis package", "hls4ml.backends.vitis.passes package", "hls4ml.backends.vivado package", "hls4ml.backends.vivado.passes package", "hls4ml.backends.vivado_accelerator package", "hls4ml.backends.vivado_accelerator.passes package", "hls4ml.converters package", "hls4ml.converters.keras package", "hls4ml.converters.onnx package", "hls4ml.converters.pytorch package", "hls4ml.model package", "hls4ml.model.flow package", "hls4ml.model.optimizer package", "hls4ml.model.optimizer.passes package", "hls4ml.optimization package", "hls4ml.optimization.keras package", "hls4ml.optimization.objectives package", "hls4ml.report package", "hls4ml.utils package", "hls4ml.writer package", "Command Line Interface (deprecated)", "Concepts", "Software Details", "Optimizer Passes and Flows", "Welcome to hls4ml\u2019s documentation!", "Citation, Acknowledgments, and Contributors", "Release Notes", "Setup and Quick Start", "Status and Features"], "terms": {"The": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 44, 45], "hls4ml": [0, 1, 2, 3, 4, 5, 6, 39, 40, 42, 43, 45], "leverag": 0, "pynq": [0, 21, 43], "softwar": [0, 42], "stack": [0, 21], "easili": 0, "deploi": 0, "model": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 31, 32, 35, 36, 37, 38, 39, 40, 41, 43, 44], "support": [0, 1, 4, 5, 23, 31, 32, 35, 37, 39, 42, 43, 44, 45], "devic": [0, 13, 23], "current": [0, 4, 27, 31, 32, 37, 39, 41, 42], "follow": [0, 23, 27, 30, 37, 38, 42, 43, 44], "board": [0, 21, 23, 43], "z2": [0, 21, 43], "part": [0, 1, 2, 4, 8, 9, 13, 15, 17, 19, 21, 23, 27, 35, 38, 43], "xc7z020clg400": [0, 2], "1": [0, 1, 2, 3, 6, 11, 13, 27, 30, 31, 32, 33, 35, 38, 42, 44, 45], "zcu102": [0, 43], "xczu9eg": 0, "ffvb1156": 0, "2": [0, 3, 6, 9, 13, 15, 17, 19, 21, 23, 27, 31, 32, 35, 42, 44, 45], "e": [0, 3, 4, 6, 8, 15, 17, 19, 23, 27, 30, 31, 32, 33, 37, 40, 42, 43], "alveo": [0, 21, 43], "u50": 0, "xcu50": 0, "fsvh2104": 0, "u250": 0, "xcu250": 0, "figd2104": 0, "2l": [0, 32], "u200": 0, "xcu200": 0, "fsgd2104": 0, "u280": 0, "xcu280": 0, "fsvh2892": 0, "principl": [0, 4], "can": [0, 1, 2, 4, 5, 6, 11, 21, 23, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 41, 43, 44, 45], "extend": [0, 1, 6, 8, 11, 32, 43], "ani": [0, 1, 3, 4, 8, 23, 29, 32, 36, 37, 40, 42, 43, 44], "For": [0, 1, 2, 4, 10, 12, 14, 27, 30, 31, 33, 35, 37, 38, 39, 40, 41, 42, 43, 44], "zynq": 0, "base": [0, 1, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 35, 36, 40, 44], "ar": [0, 1, 3, 4, 5, 6, 8, 11, 12, 23, 27, 29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45], "two": [0, 1, 3, 4, 6, 11, 23, 27, 32, 35], "compon": [0, 1], "an": [0, 2, 3, 4, 5, 8, 12, 21, 23, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 42, 43, 44], "arm": 0, "process": [0, 11, 27, 31, 35, 38, 40], "system": [0, 27], "ps": 0, "fpga": [0, 2, 4, 6, 7, 8, 9, 13, 17, 19, 23, 35, 37, 38, 40, 41, 42, 43, 44], "programm": 0, "logic": [0, 31, 43], "pl": 0, "variou": [0, 4, 41, 44], "intefac": 0, "between": [0, 3, 4, 10, 12, 20, 31, 32, 38, 39, 43], "In": [0, 1, 2, 3, 4, 6, 23, 30, 31, 32, 39, 40, 44], "project": [0, 4, 5, 8, 11, 13, 21, 23, 27, 34, 35, 36, 37, 38, 42, 43, 44], "circuit": 0, "present": [0, 3, 23], "hardwar": [0, 21, 31, 32, 38], "librari": [0, 4, 11, 23, 27, 40, 43, 44], "call": [0, 1, 6, 8, 23, 27, 28, 29, 32, 36, 37, 38, 43], "access": [0, 43], "through": [0, 1, 2, 4, 5, 23, 39, 40, 41, 43], "python": [0, 6, 11, 21, 23, 32, 36, 37, 41, 43, 44], "api": [0, 5, 23, 31, 37, 42, 43, 44], "we": [0, 1, 2, 3, 4, 5, 11, 30, 32, 37, 38, 39, 41, 42, 43, 44, 45], "creat": [0, 3, 4, 8, 9, 13, 15, 17, 19, 21, 23, 27, 28, 29, 32, 35, 36, 37, 38, 40, 41, 43, 44], "custom": [0, 1, 3, 8, 30, 32, 35, 36, 43], "which": [0, 1, 2, 4, 6, 11, 17, 19, 21, 23, 27, 28, 29, 30, 31, 32, 35, 36, 38, 39, 40, 45], "send": [0, 39], "receiv": 0, "data": [0, 3, 4, 6, 10, 20, 21, 23, 27, 30, 32, 35, 38, 39, 40, 42, 43], "via": [0, 27, 44], "axi": [0, 1, 3, 21, 36], "stream": [0, 4, 10, 12, 20, 21, 27, 38, 39, 43], "target": [0, 3, 4, 8, 9, 13, 15, 19, 21, 23, 31, 40, 43], "program": [0, 31, 37, 38, 42], "us": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 23, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 41, 42, 43, 44], "bitfil": [0, 9, 21], "gener": [0, 2, 4, 5, 10, 11, 12, 17, 19, 20, 21, 23, 27, 29, 31, 32, 33, 35, 36, 37, 38, 39, 40, 43, 44], "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 23, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 42, 44, 45], "taken": [0, 27, 33, 38], "from": [0, 1, 2, 3, 4, 5, 6, 11, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 42, 43, 44, 45], "7": [0, 27, 31, 32], "tutori": [0, 44], "specif": [0, 4, 8, 11, 27, 29, 30, 35, 38, 40, 42], "ll": 0, "first": [0, 2, 3, 6, 21, 23, 27, 38, 39, 42, 43, 44], "kera": [0, 1, 2, 3, 4, 5, 6, 7, 23, 27, 31, 35, 37, 38, 39, 40, 43, 44, 45], "config": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 21, 23, 25, 27, 36, 43, 44], "import": [0, 2, 3, 4, 5, 6, 32, 38, 42, 44], "util": [0, 2, 3, 4, 5, 7, 31, 33, 38, 39, 43, 44], "config_from_keras_model": [0, 2, 3, 4, 5, 31, 35, 43], "granular": [0, 2, 3, 4, 5, 6, 35, 43], "name": [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 23, 27, 28, 29, 30, 31, 32, 35, 36, 37, 42, 43], "hls_model": [0, 2, 4, 5, 6, 43, 44], "convert": [0, 1, 2, 5, 6, 7, 11, 27, 30, 35, 38, 40, 43, 44], "convert_from_keras_model": [0, 1, 2, 4, 5, 23, 35], "hls_config": [0, 1, 2, 3, 4, 5, 23, 27, 31, 35, 43], "output_dir": [0, 1, 2, 4, 5, 23, 34, 35], "hls4ml_prj_pynq": 0, "build": [0, 2, 9, 13, 15, 17, 19, 21, 27, 31, 32, 36, 38, 43, 44], "true": [0, 2, 3, 4, 9, 13, 15, 17, 19, 21, 23, 27, 31, 32, 33, 34, 35, 36], "after": [0, 3, 4, 5, 6, 11, 12, 27, 30, 31, 32, 38, 40, 43, 44], "command": [0, 5, 43, 44], "complet": [0, 4, 32], "need": [0, 1, 4, 6, 8, 11, 23, 32, 33, 35, 38, 43, 44], "packag": [0, 38, 41, 43, 44, 45], "up": [0, 17, 19, 37, 38, 43], "handoff": 0, "driver": [0, 21], "copi": [0, 36, 43], "mkdir": 0, "p": [0, 37, 43, 44], "cp": 0, "myproject_vivado_acceler": 0, "project_1": 0, "run": [0, 4, 6, 13, 32, 37, 38, 40, 43, 44], "impl_1": 0, "design_1_wrapp": 0, "bit": [0, 4, 6, 21, 27, 32, 35, 38, 43], "hls4ml_nn": 0, "src": [0, 32, 35], "sources_1": 0, "bd": 0, "design_1": 0, "hw_handoff": 0, "hwh": 0, "axi_stream_driv": [0, 43], "py": [0, 43], "tar": [0, 17, 19, 36], "czvf": 0, "gz": [0, 17, 19, 36], "c": [0, 6, 11, 21, 27, 29, 36, 37, 43, 44], "Then": [0, 2, 4, 31], "untar": 0, "final": [0, 1, 3, 4, 6, 12, 38, 40, 43], "neuralnetworkoverlai": 0, "object": [0, 3, 5, 6, 7, 8, 11, 21, 23, 27, 28, 29, 31, 32, 35, 36, 43], "download": [0, 35, 44], "onto": 0, "also": [0, 1, 4, 5, 27, 38, 40, 44, 45], "must": [0, 3, 4, 8, 21, 35, 38, 40, 44], "provid": [0, 4, 6, 8, 9, 13, 15, 23, 27, 32, 37, 38, 40, 43, 44, 45], "shape": [0, 1, 12, 23, 27, 31, 32, 33, 35, 40, 43], "our": [0, 1, 5, 38, 41, 42, 44], "input": [0, 1, 4, 5, 6, 10, 11, 12, 20, 21, 23, 27, 30, 31, 32, 35, 36, 38, 39, 40, 43], "output": [0, 1, 4, 5, 6, 8, 10, 11, 12, 17, 19, 20, 21, 23, 27, 30, 31, 32, 35, 36, 37, 38, 39, 40, 43], "x_test": [0, 3], "y_test": [0, 3], "respect": [0, 1, 32, 33, 38], "alloc": [0, 43], "buffer": [0, 39, 40], "transfer": 0, "predict": [0, 1, 3, 4, 6, 27, 38, 43], "method": [0, 1, 4, 6, 8, 9, 13, 15, 27, 29, 30, 31, 32, 33, 39], "return": [0, 1, 5, 8, 10, 11, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 40, 43, 44], "y_hw": 0, "nn": [0, 39, 43, 45], "latenc": [0, 4, 31, 34, 38, 43], "throughput": [0, 38], "profil": [0, 5, 7, 43, 44], "nativ": 1, "larg": [1, 2, 21, 31, 32, 38], "number": [1, 3, 4, 11, 21, 23, 27, 30, 31, 32, 33, 35, 37, 38, 40, 42, 43, 44], "neural": [1, 2, 4, 6, 10, 14, 31, 32, 38, 39, 42, 45], "network": [1, 2, 3, 4, 6, 10, 14, 27, 31, 32, 38, 39, 42, 45], "layer": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 22, 23, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 43], "But": 1, "what": [1, 4, 39, 40, 43], "desir": [1, 27, 32, 40], "If": [1, 3, 4, 5, 8, 11, 17, 19, 23, 27, 28, 29, 31, 32, 35, 42, 44], "standard": 1, "enough": [1, 31, 32, 40, 44], "its": [1, 3, 4, 5, 23, 27, 31, 33, 40], "implement": [1, 2, 4, 8, 9, 10, 11, 13, 15, 17, 19, 20, 23, 27, 30, 31, 32, 33, 38, 39, 40, 41, 43, 44], "would": [1, 6, 32, 38, 41, 43], "benefit": [1, 38, 42], "commun": [1, 38, 42], "whole": [1, 35, 37], "welcom": [1, 4], "contribut": [1, 2, 39, 43], "add": [1, 2, 8, 23, 27, 28, 29, 36, 40, 43], "set": [1, 2, 3, 4, 5, 23, 27, 29, 30, 32, 35, 36, 38, 40, 43, 44], "howev": [1, 3, 23, 32, 38, 40], "somewhat": 1, "nich": 1, "anoth": [1, 27, 40], "approach": [1, 4, 33], "take": [1, 4, 27, 32, 38, 44], "document": [1, 4, 5, 23, 35, 37, 43, 44, 45], "walk": 1, "end": [1, 23, 27, 35], "test": [1, 4, 6, 23, 35, 37, 43, 44, 45], "suit": [1, 38], "To": [1, 3, 4, 6, 30, 31, 32, 37, 38, 40, 44], "requir": [1, 3, 4, 12, 21, 23, 27, 28, 31, 32, 38, 40, 43, 44], "your": [1, 4, 5, 6, 37, 38, 41, 44], "class": [1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 35, 36, 40], "equival": [1, 3, 27, 31, 32, 43], "parser": [1, 39, 43], "hl": [1, 3, 11, 13, 21, 23, 27, 29, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45], "templat": [1, 4, 7, 14, 40, 43], "function": [1, 3, 5, 8, 11, 12, 23, 27, 29, 31, 32, 35, 36, 38, 40, 41, 43, 44], "registr": 1, "sourc": [1, 2, 8, 27, 36, 38, 41], "code": [1, 3, 6, 17, 19, 27, 36, 38, 40, 44], "concret": [1, 27], "let": [1, 4, 38, 41, 43], "s": [1, 3, 4, 5, 8, 11, 23, 27, 31, 32, 33, 35, 37, 38, 40, 42, 43], "sai": 1, "krevers": 1, "revers": 1, "order": [1, 2, 38, 39, 40, 43, 44], "last": [1, 23, 27, 30, 32, 44], "dimens": [1, 23, 27, 33], "tf": [1, 30, 32], "hypothet": 1, "def": [1, 29], "__init__": 1, "self": [1, 29, 35], "super": 1, "get_config": [1, 29, 32], "make": [1, 6, 27, 32, 33, 40, 43], "sure": [1, 6], "you": [1, 4, 5, 6, 32, 37, 41, 42, 43, 44, 45], "defin": [1, 2, 3, 4, 16, 17, 19, 21, 27, 31, 32, 34, 36, 38, 40, 44], "correct": [1, 2, 12, 27, 30, 32, 33, 39, 40, 43], "pars": [1, 3, 23, 34, 38, 39, 40, 43], "hrevers": 1, "inherit": [1, 33, 40, 43], "initi": [1, 4, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 27, 29, 30, 35, 38, 43], "inp": 1, "get_input_vari": [1, 27], "dim": [1, 4, 43], "dim_nam": [1, 27], "add_output_vari": [1, 27], "A": [1, 3, 4, 5, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 40, 43, 45], "read": [1, 5, 34], "attribut": [1, 3, 7, 8, 10, 11, 12, 20, 30, 32, 33, 40, 43], "instanc": [1, 8, 27, 29, 31, 32, 35, 36], "popul": [1, 21, 40], "dictionari": [1, 4, 5, 23, 27, 31, 32, 34, 35, 43], "It": [1, 4, 5, 6, 23, 27, 35, 40], "list": [1, 5, 8, 11, 23, 27, 28, 29, 30, 31, 32, 33, 35, 40, 44, 45], "one": [1, 4, 21, 23, 27, 31, 32, 33, 38, 39], "sjape": 1, "each": [1, 2, 3, 4, 5, 6, 11, 23, 27, 30, 31, 32, 33, 35, 38, 39, 40, 44], "case": [1, 3, 4, 6, 23, 27, 30, 31, 32, 38, 40, 41, 43], "singl": [1, 27, 30, 31, 38, 39, 40], "same": [1, 23, 27, 32], "parse_reverse_lay": 1, "keras_lay": [1, 23, 24], "input_nam": [1, 23, 24, 27], "input_shap": [1, 2, 23, 24, 25, 31, 35], "data_read": [1, 23, 24], "class_nam": [1, 23, 27], "n_in": [1, 4, 11, 14, 31], "0": [1, 3, 4, 11, 13, 23, 27, 30, 31, 32, 33, 35, 44, 45], "none": [1, 4, 6, 8, 9, 10, 11, 12, 15, 17, 19, 20, 21, 23, 27, 28, 29, 30, 31, 32, 34, 35, 36], "next": [1, 4, 21, 27, 31, 40, 44], "actual": [1, 6, 27], "implementaton": 1, "written": [1, 33, 35], "header": [1, 36], "file": [1, 6, 8, 11, 17, 19, 23, 27, 34, 35, 36, 37, 43, 44], "nnet_revers": 1, "h": [1, 2, 4, 27, 36, 37, 44], "ifndef": 1, "nnet_reverse_h_": 1, "includ": [1, 2, 3, 4, 27, 29, 35, 41, 45], "nnet_common": 1, "namespac": [1, 17, 19, 36], "nnet": [1, 4, 14], "struct": [1, 4, 14], "reverse_config": 1, "static": [1, 4, 14], "const": [1, 4, 14], "unsign": [1, 4, 14, 27, 43], "10": [1, 3, 23, 42, 43], "data_t": [1, 11], "typenam": 1, "config_t": 1, "void": 1, "int": [1, 11, 12, 17, 19, 23, 27, 31, 32, 33, 35, 43], "i": [1, 3, 4, 9, 12, 27, 30, 31, 35], "endif": 1, "now": [1, 43], "These": [1, 6, 8, 11, 27, 30], "determin": [1, 2, 11, 27, 32, 38], "how": [1, 2, 3, 4, 31, 32, 33, 37, 40, 41, 44], "signatur": [1, 23], "rev_config_templ": 1, "index": [1, 11, 14, 23, 27, 32], "n": [1, 4, 14, 31, 32, 35, 43, 45], "rev_function_templ": 1, "input_t": [1, 4], "rev_include_list": 1, "nnet_util": [1, 8, 36], "hreverseconfigtempl": 1, "backend": [1, 2, 4, 7, 23, 27, 28, 29, 30, 35, 40, 43, 44, 45], "layerconfigtempl": [1, 8, 10, 12, 14, 20], "format": [1, 4, 6, 8, 10, 12, 14, 20, 23, 27, 30, 32, 35, 43], "node": [1, 8, 10, 12, 14, 16, 18, 20, 22, 23, 25, 27, 29, 30, 31, 40, 43], "param": [1, 10, 20, 32, 35, 36], "_default_config_param": 1, "hreversefunctiontempl": 1, "functioncalltempl": [1, 8, 10, 12, 14, 20], "include_head": [1, 8], "_default_function_param": 1, "tell": 1, "about": [1, 27, 35, 37, 40, 44], "exist": [1, 8, 27, 28, 29, 30, 32, 40, 43], "new": [1, 8, 11, 27, 29, 32, 38, 40, 41, 43, 44], "regist": [1, 3, 8, 23, 27, 28, 29, 35, 40, 43], "k": [1, 12], "handler": [1, 23], "pass": [1, 2, 8, 9, 11, 13, 15, 17, 19, 21, 23, 27, 29, 32, 35, 39, 43], "particular": [1, 2, 4, 37, 39, 40, 42, 44], "valid": [1, 3, 6, 9, 11, 15, 16, 17, 19, 21, 23, 27, 31, 32, 37, 43], "both": [1, 3, 4, 6, 32, 33, 35], "vivado": [1, 2, 3, 4, 7, 8, 23, 33, 35, 36, 37, 39, 40, 43, 44, 45], "quartu": [1, 7, 8, 23, 34, 40, 43, 44], "register_keras_layer_handl": [1, 23], "ir": 1, "register_lay": [1, 27], "backend_id": 1, "optim": [1, 4, 6, 7, 8, 10, 11, 12, 14, 16, 18, 20, 22, 27, 28, 38, 39, 42, 43], "get_backend": [1, 4, 8], "register_pass": [1, 8, 29, 40], "remove_duplicate_revers": 1, "removeduplicaterevers": 1, "flow": [1, 2, 7, 8, 9, 13, 15, 19, 21, 27, 29, 39, 43], "f": [1, 3, 35, 37, 44], "lower": [1, 31, 38], "given": [1, 3, 6, 8, 10, 12, 14, 16, 18, 20, 21, 23, 27, 29, 30, 31, 32, 33, 34, 35, 38, 40, 45], "register_templ": [1, 8], "register_sourc": [1, 8], "compar": [1, 6, 38, 43], "work": [1, 4, 6, 11, 12, 23, 29, 31, 32, 35, 43, 44], "kmodel": 1, "sequenti": [1, 2, 4, 38, 43], "8": [1, 4, 33, 42, 45], "relu": [1, 2, 4], "x": [1, 4, 5, 6, 27, 31, 32, 35, 36, 38, 43], "np": [1, 3, 31, 32, 43], "random": 1, "randint": 1, "5": [1, 2, 3, 4, 9, 11, 13, 15, 17, 19, 21, 23, 27, 31, 32], "dtype": 1, "int32": 1, "kre": 1, "hmodel": 1, "str": [1, 8, 11, 12, 17, 19, 21, 23, 27, 28, 29, 30, 31, 32, 35, 36], "hls4mlprj_extensions_": 1, "io_typ": [1, 2, 4, 9, 13, 15, 17, 19, 21, 23, 31, 39, 43], "io_parallel": [1, 3, 4, 9, 12, 13, 15, 17, 19, 21, 23, 30, 31, 36, 43], "precis": [1, 4, 6, 11, 16, 21, 23, 27, 31, 33, 35, 38, 42, 43], "ap_int": [1, 4], "6": [1, 3, 4, 23, 27, 31, 32, 33, 35], "reusefactor": [1, 4, 6, 23, 43], "compil": [1, 11, 13, 15, 17, 19, 21, 23, 27, 30, 43, 44], "hre": 1, "astyp": 1, "float32": 1, "assert_array_equ": 1, "With": [2, 33, 38, 39], "io_stream": [2, 4, 12, 17, 19, 21, 23, 31, 36, 43], "io": [2, 39, 43], "type": [2, 4, 6, 7, 8, 11, 12, 17, 19, 23, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 43], "connect": [2, 27, 39, 40, 43, 45], "subsequ": [2, 30, 39, 43], "out": [2, 3, 39, 40, 43, 44, 45], "overal": [2, 3, 39, 43], "resourc": [2, 3, 4, 6, 13, 31, 32, 33, 34, 38, 39, 42, 43, 44], "design": [2, 11, 21, 23, 35, 38, 39], "impact": [2, 39], "bram": [2, 3, 32, 33, 39, 43], "lut": [2, 16, 23, 35, 39, 43], "becaus": [2, 4, 6, 12, 39], "have": [2, 4, 5, 12, 23, 27, 28, 30, 32, 37, 39, 40, 43], "complex": [2, 31, 35, 38, 39], "architectur": [2, 4, 31, 36, 38, 39, 43, 45], "hard": [2, 27, 39], "know": [2, 39, 41], "priori": [2, 39], "By": [2, 3, 23, 27, 39], "default": [2, 4, 6, 8, 9, 11, 13, 15, 17, 19, 21, 23, 27, 28, 29, 30, 31, 32, 35, 36, 39, 40, 43, 44], "chose": [2, 39], "most": [2, 4, 31, 33, 35, 38, 39], "conserv": [2, 39], "possibl": [2, 3, 4, 6, 27, 32, 35, 38, 39, 43], "result": [2, 4, 5, 6, 11, 27, 31, 32, 33, 34, 35, 38, 39], "unnecessari": [2, 39], "overutil": [2, 39], "reduc": [2, 3, 6, 32, 38, 39, 43], "ha": [2, 4, 6, 8, 9, 13, 15, 19, 21, 23, 28, 29, 31, 32, 35, 37, 38, 40, 45], "been": [2, 8, 9, 13, 15, 19, 21, 23, 27, 28, 29, 37, 38, 43], "develop": [2, 4, 21, 32, 41, 42, 43, 45], "509": [2, 43], "correctli": [2, 23, 27, 43], "size": [2, 4, 11, 23, 27, 31, 32, 35, 38, 43], "analyz": 2, "rtl": [2, 37, 43], "cosimul": [2, 43], "resiz": [2, 27], "fifo_depth_optim": [2, 8, 9, 19, 21, 43], "simul": [2, 4, 5, 6, 27, 37, 43, 44], "100": [2, 3], "000": 2, "estim": [2, 13, 33], "maximum": [2, 3, 31, 32, 35], "occup": 2, "onc": [2, 12, 44], "valu": [2, 4, 5, 6, 8, 10, 11, 12, 14, 16, 18, 20, 21, 22, 23, 27, 29, 30, 31, 32, 38, 40], "plu": 2, "As": [2, 3, 6, 23, 27, 32, 38, 44], "exampl": [2, 3, 4, 6, 23, 27, 29, 31, 32, 33, 35, 37, 39, 40, 42, 43], "show": [2, 6, 37, 44], "below": [2, 3, 4, 6, 27, 31, 32, 33, 37, 40, 45], "inspir": 2, "github": [2, 32, 35, 41, 42, 43, 44, 45], "gist": 2, "simpl": [2, 4, 5, 27, 43], "tensorflow": [2, 3, 31, 32, 37, 43, 44], "dens": [2, 3, 4, 6, 27, 30, 31, 32, 33, 39, 40, 43], "64": 2, "16": [2, 3, 4, 23, 27, 32, 33, 35, 43], "fc1": [2, 4, 6], "activ": [2, 4, 6, 11, 27, 30, 32, 36, 38, 43], "32": [2, 32], "fc2": 2, "fc3": 2, "softmax": [2, 27, 43], "get_optim": [2, 29, 30], "configur": [2, 5, 6, 8, 9, 13, 15, 17, 19, 23, 27, 29, 30, 31, 32, 35, 37, 38, 40, 41, 43, 44], "profiling_fifo_depth": [2, 10, 20], "100_000": 2, "hls4mlprj_fifo_depth_opt": 2, "reset": [2, 9, 15, 17, 19, 21, 37], "fals": [2, 4, 9, 11, 13, 15, 17, 19, 21, 23, 27, 31, 32, 33, 34, 35, 43], "csim": [2, 5, 9, 15, 17, 19, 21, 23, 44], "synth": [2, 9, 13, 15, 17, 19, 21, 44], "cosim": [2, 9, 15, 17, 19, 21, 23, 44], "more": [2, 3, 4, 6, 12, 23, 31, 32, 35, 37, 38, 43, 44], "detail": [2, 37, 38, 41, 44], "see": [2, 4, 23, 27, 31, 35, 39, 40, 41, 43, 44, 45], "borra": 2, "et": [2, 32], "al": [2, 32], "open": [2, 6, 34, 38, 41, 42], "ml": [2, 45], "codesign": [2, 42], "mlperf": 2, "tini": 2, "benchmark": 2, "2022": [2, 42, 44, 45], "prune": [3, 31, 32, 33, 42], "weight": [3, 4, 6, 10, 14, 17, 19, 20, 23, 27, 30, 31, 32, 33, 36, 37, 38, 40, 43, 44], "share": [3, 31, 32, 33], "effect": 3, "techniqu": 3, "footprint": 3, "comput": [3, 4, 23, 30, 32, 38, 42], "introduc": [3, 32], "algorithm": [3, 4, 10, 11, 14, 31, 32, 38, 41, 42], "solv": [3, 31, 32], "knapsack": [3, 7, 32], "problem": [3, 31, 32, 38, 43], "aim": 3, "maxim": [3, 38], "perform": [3, 6, 27, 30, 31, 32, 35, 38, 40], "while": [3, 4, 6, 23, 32, 35, 38, 40], "keep": 3, "minimum": [3, 27], "box": [3, 6], "sparsiti": [3, 31, 32, 33], "gpu": [3, 38], "flop": [3, 32], "dsp": [3, 32, 33], "memori": [3, 32], "etc": [3, 11, 27, 31, 32, 33, 34, 35], "block": [3, 27, 31, 32, 33, 40], "showcas": 3, "three": [3, 6], "unstructur": [3, 31, 32, 33], "structur": [3, 4, 31, 32, 33, 42, 43], "pattern": [3, 31, 32, 33], "start": [3, 4, 6, 21, 23, 35, 37, 40], "sklearn": 3, "metric": [3, 31, 32, 33], "accuracy_scor": 3, "adam": 3, "categoricalaccuraci": 3, "loss": [3, 6, 31, 32, 43], "categoricalcrossentropi": 3, "optimize_model": [3, 29, 32], "get_model_spars": [3, 32], "get_attributes_from_keras_model": [3, 31, 32], "parameterestim": [3, 33], "schedul": [3, 7, 32], "polynomialschedul": [3, 31], "baselin": [3, 31, 32], "load": [3, 6, 32, 43], "x_train": [3, 31, 32], "y_train": [3, 31, 32], "x_val": [3, 31, 32], "y_val": [3, 31, 32], "baseline_model": 3, "evalu": [3, 6, 32, 35, 38], "y_baselin": 3, "acc_bas": 3, "argmax": [3, 43], "print": [3, 34, 43, 44], "accuraci": [3, 6, 31, 32], "per": [3, 31, 32, 35], "train": [3, 4, 6, 31, 32, 38, 43, 44], "paramet": [3, 4, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 40, 43, 44], "epoch": [3, 31, 32], "refer": [3, 4, 5, 10, 14, 21, 23, 37, 38, 43], "impos": 3, "some": [3, 4, 6, 23, 32, 33, 40, 43, 44], "pre": [3, 42, 43], "good": [3, 6, 39], "rule": [3, 31], "thumb": 3, "3": [3, 6, 11, 27, 31, 32], "batch_siz": [3, 31, 32], "128": 3, "loss_fn": [3, 31, 32], "from_logit": 3, "monitor": 3, "well": [3, 6, 31, 32, 35, 42], "increas": [3, 31, 32], "decreas": [3, 31], "disctinct": 3, "allow": [3, 6, 31, 32, 35, 38, 43], "regress": 3, "classif": 3, "g": [3, 4, 6, 8, 23, 27, 30, 31, 32, 33, 40, 43, 44], "minim": [3, 8, 9, 13, 15, 23, 32, 33], "mse": [3, 31, 32], "rel": [3, 31, 32, 38], "toler": [3, 31, 32], "rtol": [3, 31, 32], "incur": 3, "975": 3, "increment": [3, 31], "step": [3, 12, 31, 35, 36, 37, 44], "50": 3, "appli": [3, 8, 10, 11, 12, 14, 16, 18, 20, 22, 27, 28, 29, 30, 31, 33, 35, 40, 43], "polynomi": [3, 31, 32], "rate": [3, 11, 32], "unspecifi": [3, 27], "stop": [3, 31, 32], "either": [3, 4, 11], "when": [3, 4, 5, 6, 12, 23, 27, 31, 32, 33, 35, 43], "drop": 3, "threshold": [3, 11, 30, 31, 32], "ii": [3, 43], "reach": [3, 31, 40, 41], "final_spars": [3, 31], "get": [3, 4, 5, 21, 23, 28, 37, 38, 43], "model_attribut": [3, 31, 32], "total": [3, 4, 27, 31, 32, 33, 35], "optimized_model": 3, "y_optim": 3, "acc_optim": 3, "opim": 3, "similar": [3, 5, 12], "manner": [3, 4], "instead": [3, 4, 11, 23, 30, 43], "512": 3, "256": 3, "abov": [3, 4, 32, 38, 40], "gpu_object": [3, 7, 31], "gpuflopestim": [3, 33], "note": [3, 4, 5, 8, 21, 23, 27, 30, 31, 32, 35, 38, 40, 44, 45], "chang": [3, 29, 30, 31, 32, 35, 40, 43], "differ": [3, 4, 5, 6, 12, 23, 27, 29, 30, 31, 32, 38, 43], "remov": [3, 8, 10, 12, 14, 16, 18, 20, 22, 27, 28, 29, 30, 32, 37, 43, 44], "entir": [3, 32, 35], "filter": [3, 27, 32, 38], "neuron": [3, 32, 38], "summari": [3, 45], "vivado_object": [3, 7, 31], "vivadodspestim": [3, 33], "optimize_keras_model_for_hls4ml": [3, 31], "act": 3, "wrapper": [3, 21, 27, 29, 36], "default_reuse_factor": [3, 35], "4": [3, 4, 6, 27, 33, 42, 44, 45], "default_precis": [3, 4, 35], "ac_fix": [3, 27, 43], "iotyp": [3, 4, 12, 23, 43], "strategi": [3, 4, 31, 43], "optimis": 3, "There": [3, 4, 40, 44], "vivadoffestim": [3, 33], "utilis": 3, "vivadomultiobjectiveestim": [3, 33], "ensur": [3, 23, 27, 38, 40, 43], "unrol": [3, 4, 31, 43], "multipl": [3, 12, 27, 29, 31, 38, 39, 43], "befor": [3, 4, 5, 6, 23, 27, 28, 38, 40, 43], "synthes": [3, 35, 44], "modifi": [3, 27, 32, 36], "denseresourceimplement": 3, "addit": [3, 4, 23, 27, 31, 36, 40, 43, 44], "reus": [3, 4, 14, 23, 27, 31, 32, 35, 38], "factor": [3, 4, 12, 23, 27, 31, 32, 35, 38, 43], "wai": 4, "page": [4, 5, 37, 38, 41, 42, 44, 45], "usag": [4, 5, 6, 13, 34, 37, 43], "recommend": [4, 23, 32, 35, 39, 44], "user": [4, 8, 16, 23, 27, 29, 31, 32, 35, 37, 38, 40], "help": [4, 5, 6, 37, 38, 42], "One": [4, 17, 19, 23], "rememb": 4, "respons": 4, "automat": [4, 23, 38, 44], "normal": [4, 6, 11, 32, 43], "so": [4, 11, 27, 30, 31, 32, 35, 38, 41, 43], "done": [4, 12, 38, 44], "quickli": [4, 5], "edit": [4, 43], "advanc": [4, 5, 42], "fix": [4, 27, 30, 35, 38, 43], "viti": [4, 7, 8, 23, 36, 39, 43, 44, 45], "option": [4, 6, 8, 11, 13, 17, 19, 21, 23, 27, 28, 29, 32, 34, 35, 36, 37, 38, 43, 44], "depend": [4, 6, 11, 28, 31, 38, 40, 43, 45], "higher": [4, 27, 31, 32, 43], "granularit": 4, "usual": [4, 31, 32, 40], "auto": [4, 35], "mean": [4, 11, 23, 32, 35, 38], "try": [4, 8, 10, 12, 14, 16, 18, 20, 29, 30, 43], "precend": 4, "over": [4, 27, 31, 43], "inform": [4, 10, 14, 23, 27, 31, 35, 38, 40, 44], "overrid": [4, 43], "layernam": [4, 27], "Or": 4, "ap_fix": [4, 23, 33, 35], "better": [4, 31, 32, 43], "understand": [4, 44], "hierachi": 4, "section": [4, 5, 21, 37, 39, 40, 44, 45], "my_project_dir": 4, "yml": [4, 6, 37, 43, 44], "here": [4, 5, 44], "look": [4, 23, 31, 38, 43], "like": [4, 23, 27, 32, 35, 37, 38, 41], "outputdir": [4, 23], "my": [4, 23, 35, 37, 44], "projectnam": [4, 23, 34], "myproject": [4, 23, 35, 36], "kerasjson": 4, "keras_3lay": [4, 35, 44], "json": [4, 21, 23, 32, 35, 37, 43, 44], "kerash5": [4, 23, 43], "keras_3layer_weight": 4, "h5": [4, 23, 37, 43], "save": [4, 32, 33, 35, 38], "without": [4, 8, 23, 27, 31, 32], "suppli": [4, 5], "inputdata": 4, "keras_3layer_input_featur": 4, "dat": [4, 23, 36], "outputpredict": 4, "keras_3layer_predict": 4, "xcvu13p": [4, 17, 19, 23], "flga2577": [4, 15, 17, 19, 23], "clockperiod": [4, 23], "hlsconfig": [4, 23, 27], "layertyp": 4, "compress": [4, 17, 19, 27, 31, 38, 42], "go": [4, 44, 45], "them": [4, 5, 30, 35, 40, 43], "basic": [4, 27, 44], "setup": [4, 37, 38, 43, 45], "directori": [4, 8, 11, 17, 19, 23, 27, 31, 32, 34, 35, 36, 37, 43, 44, 45], "where": [4, 5, 23, 27, 31, 32, 34, 35], "want": [4, 5, 27, 44], "appear": [4, 27], "ip": [4, 37, 38, 40, 43], "produc": [4, 6, 11, 38, 39, 40], "store": [4, 12, 27, 31, 32, 33, 35, 40], "path": [4, 8, 23, 35], "those": [4, 27, 37, 42], "obtain": [4, 11, 31, 32, 33, 35], "just": [4, 5, 27, 32, 37], "field": 4, "aritifici": 4, "found": [4, 23, 29, 34, 41, 44], "npy": [4, 23], "suggest": 4, "point": [4, 6, 27, 30, 31, 35, 38], "necessari": [4, 30, 38], "create_initial_config": [4, 8, 9, 13, 15, 17, 19, 21, 35], "consid": [4, 32, 38], "xilinx": [4, 44], "virtex": 4, "ultrascal": 4, "vu13p": [4, 43], "clock": [4, 17, 19, 21, 23, 35], "period": [4, 17, 19, 21, 23], "ns": 4, "intermedi": [4, 32, 43], "arrai": [4, 5, 12, 27, 30, 31, 32, 36, 39, 43], "fulli": [4, 45], "typic": [4, 38], "ram": 4, "effici": [4, 32, 38], "scalabl": 4, "mechan": [4, 27], "repres": [4, 6, 8, 23, 27, 28, 31, 32, 35, 38, 40], "consum": [4, 32], "fifo": [4, 9, 27, 39, 40, 43], "parallel": [4, 11, 31, 38, 39, 43], "pipelin": [4, 38, 43], "interv": [4, 38, 43], "hl4ml": 4, "larger": [4, 39, 43], "than": [4, 12, 31, 32, 43], "should": [4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 23, 27, 29, 30, 31, 32, 33, 35, 38, 40, 44], "specifi": [4, 6, 8, 9, 11, 13, 15, 19, 21, 23, 27, 30, 32, 35, 43], "precsion": 4, "bias": [4, 32], "denot": 4, "y": [4, 5, 32], "sign": [4, 11, 27, 35, 38, 43], "binari": [4, 11, 27, 31, 32, 35, 42, 43], "integ": [4, 6, 27, 31, 35, 43], "addition": [4, 42], "1024": [4, 35], "chanc": 4, "further": [4, 6, 10, 14, 43], "fine": [4, 6, 31, 32, 35], "describ": [4, 37, 39], "finer": 4, "under": [4, 32, 42], "head": 4, "variabl": [4, 6, 8, 11, 12, 23, 27, 32, 34, 35, 36, 40, 43], "within": [4, 8, 11, 17, 19, 27, 32], "onli": [4, 6, 12, 21, 23, 27, 32, 35, 38, 44], "mai": [4, 6, 23, 27, 30, 39, 40, 43], "everi": [4, 11, 29, 31, 32, 33, 35], "throughout": 4, "all": [4, 5, 17, 19, 23, 27, 28, 29, 30, 31, 32, 35, 37, 38, 39, 40, 43], "14": [4, 43], "other": [4, 23, 28, 29, 40, 42, 43, 44, 45], "dense1": 4, "bia": [4, 11, 30, 38, 40, 43], "12": [4, 19, 21, 23, 35, 43], "batchnormalization1": 4, "dense2": 4, "thei": [4, 27, 32, 40, 43], "visit": [4, 37, 44], "concept": [4, 39, 44], "chapter": [4, 44], "orient": 4, "opportun": 4, "do": [4, 5, 11, 30, 32, 37, 38, 40, 44, 45], "choos": [4, 31, 32], "firmwar": [4, 41], "cpp": [4, 36], "construct": [4, 27], "snippet": 4, "layer2_t": 4, "layer2_out": 4, "n_layer_2": 4, "pragma": [4, 11, 43], "array_partit": 4, "dense_lat": 4, "config2": 4, "input_1": 4, "w2": 4, "b2": 4, "layer3_t": 4, "layer3_out": 4, "relu_config3": 4, "layer4_t": 4, "layer4_out": 4, "n_layer_4": 4, "config4": 4, "w4": 4, "b4": 4, "sigmoid": [4, 27, 43], "result_t": 4, "sigmoid_config5": 4, "layer5_out": 4, "dnn": 4, "calucl": 4, "own": 4, "machin": [4, 21, 37, 38, 41, 42], "learn": [4, 32, 37, 38, 41, 42, 44], "insert": [4, 10, 12, 20, 27, 30, 31, 43], "dense_config": [4, 14], "n_input_1_1": 4, "n_out": [4, 11, 14, 31], "reuse_factor": [4, 11, 14, 27, 31], "n_zero": 4, "n_nonzero": 4, "320": 4, "bool": [4, 17, 19, 23, 27, 31, 32, 34, 35, 36], "store_weights_in_bram": 4, "typedef": [4, 14, 27], "accum_t": [4, 14, 43], "model_default_t": 4, "bias_t": [4, 14], "weight_t": [4, 11, 14], "ap_uint": 4, "index_t": 4, "stage": [4, 40], "even": [4, 38, 43], "keras_model": [5, 23, 31, 32], "test_prj": 5, "sever": [5, 27, 31, 32, 33, 44, 45], "line": [5, 35, 43, 44], "interfac": [5, 21, 36, 44], "prefer": 5, "pleas": [5, 23, 27, 32, 41, 42, 44], "numpi": 5, "suppos": [5, 37], "alreadi": [5, 8, 23, 27, 28, 29, 38], "much": [5, 38, 43], "faster": [5, 32], "veri": [5, 31, 32, 44], "prototyp": [5, 38], "report": [5, 7, 43, 44], "read_vivado_report": [5, 34, 44], "hls4ml_prj": 5, "version": [5, 32, 35, 37, 42, 43, 45], "individu": [5, 42], "debug": [5, 31, 32], "appropri": [5, 6, 31], "kei": [5, 8, 21, 27, 30, 31, 32, 35], "predict_ouput": 5, "trace_output": 5, "keras_trac": 5, "get_ymodel_kera": 5, "low": [6, 38], "chosen": [6, 39], "inappropri": 6, "tool": [6, 27, 31, 38, 43, 44, 45], "decid": 6, "extra": [6, 23, 29, 35, 36, 43, 44], "instal": [6, 21, 32, 35], "pip": [6, 44], "modul": 6, "modelgraph": [6, 8, 10, 11, 12, 13, 14, 16, 18, 20, 21, 22, 23, 27, 29, 30, 36, 40, 43], "pytorch": [6, 7, 23, 35, 37, 38, 40, 43, 44, 45], "initialis": 6, "numer": 6, "keras_to_hl": [6, 7, 44], "matplotlib": 6, "pyplot": 6, "plt": 6, "yaml": [6, 23, 36], "pseudo": 6, "load_model": 6, "load_data": 6, "real": [6, 42], "r": [6, 32, 33, 37], "ymlfile": 6, "plot": [6, 7, 43], "four": [6, 32, 38], "figur": [6, 38], "titl": [6, 42], "distribut": 6, "origin": [6, 8, 11, 27, 43], "imag": [6, 11, 35, 43], "notic": 6, "bn1": 6, "bn2": 6, "bn3": 6, "label": [6, 31, 32], "miss": 6, "batchnorm": [6, 27, 30, 43], "fuse": [6, 30, 43], "preced": 6, "fc": 6, "product": [6, 11, 14, 43], "similarli": 6, "correspond": [6, 27, 31, 32, 33, 35, 40], "style": [6, 39, 43], "avail": [6, 28, 32, 35, 44], "keyword": 6, "argument": [6, 23, 27, 31, 35, 37, 43], "boxplot": 6, "histogram": 6, "violinplot": 6, "non": [6, 31, 33], "zero": [6, 32, 33, 43], "shown": [6, 38], "whisker": 6, "diagram": 6, "combin": [6, 30], "No": [6, 42, 43], "grei": 6, "indic": [6, 8, 10, 12, 14, 16, 18, 20, 22, 27, 29, 30, 31, 34, 40], "second": [6, 27, 31, 32, 43], "median": 6, "quartil": 6, "shade": 6, "rang": [6, 23, 32, 35], "least": 6, "cover": 6, "contain": [6, 23, 27, 31, 32, 33, 34, 35, 38, 43], "right": [6, 23], "suffici": 6, "avoid": [6, 12, 32, 36, 43], "overflow": [6, 27, 43], "might": [6, 31, 32, 44], "left": [6, 23, 27, 43], "achiev": [6, 33, 38], "satisfactori": 6, "safe": 6, "bare": [6, 21], "still": [6, 32], "establish": 6, "whether": [6, 13, 32, 33, 34, 35, 38], "give": [6, 27, 38, 44], "cpu": [6, 38], "float": [6, 21, 31, 32, 35, 38, 43], "catapult": [7, 8, 23], "submodul": [7, 43, 44, 45], "catapult_backend": [7, 8], "catapult_typ": [7, 8], "fpga_backend": [7, 8], "fpga_lay": [7, 8], "fpga_typ": [7, 8], "quartus_backend": [7, 8], "quartus_typ": [7, 8], "symbol": [7, 8, 23, 43], "symbolic_backend": [7, 8], "vitis_backend": [7, 8], "vivado_backend": [7, 8], "vivado_typ": [7, 8], "vivado_acceler": [7, 8], "vivado_accelerator_backend": [7, 8], "vivado_accelerator_config": [7, 8], "convolut": [7, 10, 11, 12, 14, 23, 27, 30, 32, 42, 43, 45], "core": [7, 23, 32], "graph": [7, 8, 10, 12, 14, 16, 18, 20, 22, 23, 25, 29, 30, 32, 39, 40, 45], "hgq_proxy_model": [7, 8, 11, 23, 27, 29], "merg": [7, 11, 23, 27, 30, 43], "pool": [7, 23, 43], "qkera": [7, 23, 27, 29, 32, 38, 43, 44], "recurr": [7, 23, 32, 45], "reshap": [7, 12, 23, 27, 43], "onnx": [7, 23, 35, 37, 39, 40, 43, 44, 45], "onnx_to_hl": 7, "pytorch_to_hl": 7, "quantiz": [7, 11, 12, 30, 38, 43], "builder": [7, 31], "mask": [7, 12, 31], "reduct": [7, 31, 42], "regular": [7, 27, 30, 31], "catapult_report": 7, "quartus_report": 7, "vivado_report": 7, "example_model": [7, 44], "fixed_point_util": 7, "string_util": 7, "symbolic_util": 7, "writer": [7, 43], "catapult_writ": 7, "quartus_writ": 7, "symbolic_writ": 7, "vitis_writ": 7, "vivado_accelerator_writ": 7, "vivado_writ": 7, "rese": 7, "newse": 7, "broadcast_stream": [8, 9, 19], "conv_same_pad": [8, 9, 19], "conv_stream": [8, 9, 19], "convolution_templ": [8, 9, 13, 19], "convolution_winograd": [8, 9, 13], "core_templ": [8, 9, 13, 19], "garnet_templ": [8, 9, 19], "merge_templ": [8, 9, 13, 19], "pointwis": [8, 9, 13, 19, 30, 43], "pooling_templ": [8, 9, 13, 19], "quantization_templ": [8, 9, 13, 19], "recurrent_templ": [8, 9, 13, 19], "reshaping_templ": [8, 9, 13, 19], "resource_strategi": [8, 9, 13, 19], "transform_typ": [8, 9, 13, 19], "bn_quant": [8, 11], "bram_weight": [8, 11], "clone": [8, 11, 32, 43, 44], "codegen": [8, 11], "embed": [8, 11, 27, 43], "final_reshap": [8, 11], "fix_softmax_table_s": [8, 11], "inplace_parallel_reshap": [8, 11], "inplace_stream_flatten": [8, 11], "remove_softmax": [8, 11], "repack_stream": [8, 11, 43], "xnor_pool": [8, 11], "expr_templ": [8, 15], "validate_lut": [8, 15], "feature_check": [8, 17], "kwarg": [8, 23, 27, 29, 31, 35], "convers": [8, 9, 13, 15, 19, 21, 23, 27, 30, 35, 37, 38, 40, 44], "subclass": [8, 9, 13, 15, 27, 40], "create_layer_class": [8, 11], "layer_class": [8, 11, 29], "wrap": [8, 11, 27, 29, 36, 40], "get_available_flow": [8, 28], "get_custom_sourc": 8, "destin": 8, "absolut": 8, "dict": [8, 17, 19, 23, 27, 31, 32, 34, 35], "get_default_flow": [8, 9, 13, 15, 19, 21], "opt_cl": [8, 29], "invok": 8, "tupl": [8, 12, 23, 27, 31, 32, 33, 35], "source_fil": 8, "destination_dir": 8, "sub": [8, 31, 40], "write": [8, 11, 17, 19, 23, 27, 29, 34, 36, 37, 40, 43], "rais": [8, 11, 13, 23, 27, 28, 29, 35, 43], "except": [8, 11, 13, 23, 27, 28, 29, 35], "template_cl": 8, "op": 8, "get_available_backend": 8, "register_backend": 8, "backend_cl": 8, "registri": [8, 28, 29], "instanti": 8, "constructor": [8, 35], "transform": [8, 10, 11, 12, 14, 16, 18, 20, 22, 29, 30, 40], "match": [8, 10, 12, 14, 16, 18, 20, 22, 29, 30, 40, 43], "wa": [8, 10, 12, 14, 16, 18, 20, 22, 29, 30, 32, 43], "success": [8, 10, 12, 14, 16, 18, 20, 22, 29, 30], "boolean": [8, 10, 12, 14, 16, 18, 20, 22, 29, 30, 31, 32, 33, 40], "alter": [8, 10, 12, 14, 16, 18, 20, 22, 29, 30], "ad": [8, 10, 12, 14, 16, 18, 20, 22, 23, 27, 29, 30, 32, 41, 43], "attribute_nam": [8, 27], "optimizerpass": [8, 10, 12, 14, 18, 20, 29, 30, 40], "get_nam": [8, 29], "predic": [8, 10, 12, 14, 16, 18, 20, 29, 30], "catapultbackend": 9, "fpgabackend": [9, 11, 13, 15, 19], "vhdl": 9, "verilog": 9, "export": [9, 15, 17, 19, 21, 32, 37, 43, 44], "vsynth": [9, 15, 17, 19, 21, 44], "fifo_opt": [9, 19, 21], "ran_fram": 9, "sw_opt": 9, "power": [9, 21, 23, 27, 35, 38], "da": 9, "bup": 9, "tech": [9, 42], "xcku115": 9, "flvb2104": 9, "asiclib": 9, "nangat": 9, "45nm": 9, "clock_period": [9, 13, 15, 17, 19, 21, 23], "get_writer_flow": [9, 11, 13, 15, 19, 21], "init_base_lay": [9, 13, 19], "init_conv1d": [9, 13, 19], "init_conv2d": [9, 13, 19], "init_dens": [9, 13, 19], "init_depconv2d": [9, 19], "init_emb": [9, 13, 19], "init_garnet": [9, 19], "init_garnet_stack": [9, 19], "init_global_pooling1d": 9, "init_global_pooling2d": 9, "init_gru": [9, 13, 19], "init_lstm": [9, 13, 19], "init_pooling1d": [9, 19], "init_pooling2d": [9, 19], "init_sepconv1d": [9, 19], "init_sepconv2d": [9, 19], "init_softmax": [9, 13, 19], "catapultarrayvariableconvert": 9, "type_convert": [9, 11, 13, 19], "arrayvariableconvert": [9, 11, 13, 19], "catapultarrayvariabledefinit": 9, "variabledefinit": [9, 11, 13, 19], "definition_cpp": [9, 11, 13, 19], "name_suffix": [9, 11, 13, 19], "as_refer": [9, 11, 13, 19], "catapultinplacearrayvariableconvert": 9, "catapultinplacearrayvariabledefinit": 9, "catapultinplacestreamvariableconvert": 9, "inplacestreamvariableconvert": [9, 11, 13, 19], "catapultinplacestreamvariabledefinit": 9, "catapultstreamvariableconvert": 9, "streamvariableconvert": [9, 11, 13, 19], "catapultstreamvariabledefinit": 9, "catapultstructmembervariableconvert": 9, "structmembervariableconvert": [9, 11, 13], "catapultstructmembervariabledefinit": 9, "broadcast": [10, 20, 43], "broadcastconfigtempl": [10, 20], "broadcastfunctiontempl": [10, 20], "broadcaststream": [10, 20], "register_broadcast_stream": [10, 20], "insertzeropaddingbeforeconv1d": [10, 20], "insert_zero_padding_before_conv1d": [10, 20], "insertzeropaddingbeforeconv2d": [10, 20], "insert_zero_padding_before_conv2d": [10, 20], "generateconvstreaminginstruct": [10, 20], "instruct": [10, 13, 20, 44], "cnn": [10, 20, 39, 42, 43, 45], "conv1dconfigtempl": [10, 14, 20], "conv1dfunctiontempl": [10, 14, 20], "conv2dconfigtempl": [10, 14, 20], "conv2dfunctiontempl": [10, 14, 20], "depthwiseconv1dfunctiontempl": [10, 20], "depthwiseconv2dfunctiontempl": [10, 20], "separableconv1dconfigtempl": [10, 20], "separableconv1dfunctiontempl": [10, 20], "separableconv2dconfigtempl": [10, 20], "separableconv2dfunctiontempl": [10, 20], "applywinogradkerneltransform": [10, 14], "conv2d": [10, 11, 14, 27, 30, 31, 32, 40, 43], "kernel": [10, 11, 14, 23, 36, 38], "suitabl": [10, 14, 31, 32, 33], "wingorad": [10, 14], "lavin": [10, 14], "grai": [10, 14], "2015": [10, 14], "fast": [10, 14, 32, 38, 42], "activationconfigtempl": [10, 14, 20], "activationfunctiontempl": [10, 14, 20], "batchnormalizationconfigtempl": [10, 14, 20], "batchnormalizationfunctiontempl": [10, 14, 20], "denseconfigtempl": [10, 14, 20], "densefunctiontempl": [10, 14, 20], "hardactivationconfigtempl": [10, 14, 20], "prelufunctiontempl": [10, 14, 20], "paramactivationconfigtempl": [10, 14, 20], "parametrizedactivationfunctiontempl": [10, 14, 20], "softmaxconfigtempl": [10, 14, 20], "fifodepthoptim": [10, 20, 22], "configurableoptimizerpass": [10, 16, 20, 22, 29, 30, 40], "modeloptimizerpass": [10, 20, 22, 29, 30, 40], "generate_max_depth_fil": [10, 20], "max": [10, 20, 31, 43], "get_vcd_data": [10, 20], "populate_valu": [10, 20], "depth": [10, 11, 20, 39, 40, 43], "set_big_fifo": [10, 20], "vars_to_profil": [10, 20], "set_fifo_depth": [10, 20], "garnetconfigtempl": [10, 20], "get_transforms_config": [10, 20], "garnetfunctiontempl": [10, 20], "garnetstackconfigtempl": [10, 20], "garnetstackfunctiontempl": [10, 20], "concatenateconfigtempl": [10, 14, 20], "dotconfigtempl": [10, 14, 20], "mergeconfigtempl": [10, 14, 20], "mergefunctiontempl": [10, 14, 20], "optimizepointwiseconv": [10, 14, 20], "pointwiseconv1dconfigtempl": [10, 14, 20], "pointwiseconv1dfunctiontempl": [10, 14, 20], "pointwiseconv2dconfigtempl": [10, 14, 20], "pointwiseconv2dfunctiontempl": [10, 14, 20], "register_pointwis": [10, 14, 20], "poolingconfigtempl": [10, 14, 20], "poolingfunctiontempl": [10, 14, 20], "applyalphaconfigtempl": [10, 14, 20], "applyalphafunctiontempl": [10, 14, 20], "recurrentconfigtempl": [10, 20], "recurrentfunctiontempl": [10, 20], "resizeconfigtempl": [10, 14, 20], "resizefunctiontempl": [10, 14, 20], "transposeconfigtempl": [10, 14, 20], "transposefunctiontempl": [10, 14, 20], "zeropaddingconfigtempl": [10, 14, 20], "zeropaddingfunctiontempl": [10, 14, 20], "applyresourcestrategi": [10, 14, 20], "transpos": [10, 14, 20, 23, 27, 30, 35], "dense_resourc": [10, 14, 20], "matrix": [10, 14, 20, 31, 32, 33, 38, 43], "multipli": [10, 14, 20, 38], "routin": [10, 14, 20, 23], "transformtyp": [10, 14, 20], "globaloptimizerpass": [10, 14, 20, 29, 40], "link": [11, 27, 43], "runtim": [11, 43], "fail": [11, 39], "string": [11, 23, 31, 32, 34, 35, 43], "compute_conv1d_instruct": 11, "in_w": 11, "in_c": 11, "kernel_s": 11, "stride": [11, 23], "pad": [11, 23, 27, 43], "compute_conv2d_instruct": 11, "in_h": 11, "classmethod": [11, 27, 29, 33], "convert_precision_str": 11, "generate_conv1d_line_buffer_fn": 11, "layer_idx": 11, "n_partit": 11, "dilat": [11, 23], "mimic": 11, "im2col": [11, 12], "1d": [11, 12, 14, 23, 30], "suboptim": 11, "trick": [11, 32, 38], "explicitli": [11, 38, 43], "reli": 11, "loop": 11, "sinc": [11, 31, 32, 43], "partit": 11, "divid": 11, "pixel": [11, 39], "width": [11, 23, 27, 32, 35, 38], "channel": [11, 21, 23, 30, 39], "length": [11, 23, 31, 32], "iter": [11, 31, 32], "left_pad": 11, "right_pad": 11, "generate_conv2d_line_buffer_fn": 11, "2d": [11, 12, 23, 43], "height": [11, 23], "top_pad": 11, "bottom_pad": 11, "get_closest_reuse_factor": 11, "valid_rf": 11, "chosen_rf": 11, "closest": 11, "sort": [11, 40], "get_valid_reuse_factor": 11, "equal": [11, 32], "close": 11, "smallest": 11, "get_layer_mult_s": 11, "get_valid_conv_partition_split": 11, "out_height": 11, "out_width": 11, "split": [11, 38], "conv1d": [11, 27, 40, 43], "essenti": [11, 38], "divisor": 11, "product_typ": [11, 14], "helper": [11, 27, 32], "dure": [11, 13, 23, 27, 31, 32, 38], "infer": [11, 23, 30, 32, 37, 38, 41, 42], "set_closest_reuse_factor": 11, "set_target_reuse_factor": 11, "disk": [11, 27], "write_hl": [11, 36], "batchnormalizationquantizedtanh": [11, 30], "batch": [11, 23, 31, 32, 35, 43], "ternari": [11, 30, 42, 43], "tanh": [11, 27, 43], "varianc": [11, 32], "beta": [11, 32], "gamma": 11, "fold": 11, "flip": 11, "set_threshold": 11, "scale": [11, 30, 31, 38, 43], "ternary_threshold": 11, "pointwiseconv1d": 11, "1x1": [11, 43], "pointwiseconv2d": 11, "acfixedprecisiondefinit": 11, "precisiondefinit": 11, "acintegerprecisiondefinit": 11, "actypeconvert": 11, "fixedprecisionconvert": 11, "apfixedprecisiondefinit": 11, "apintegerprecisiondefinit": 11, "aptypeconvert": 11, "prefix": 11, "definition_cl": 11, "tensor_var": 11, "bramweightvariableconvert": 11, "weight_var": 11, "compressedtypeconvert": 11, "typedefinit": 11, "typeprecisionconvert": 11, "convert_precis": 11, "precision_convert": 11, "exponenttypeconvert": 11, "type_map": 11, "precisionconvert": 11, "precision_typ": 11, "hlstypeconvert": 11, "atyp": [11, 27], "n_pack": [11, 27], "namedtypeconvert": 11, "packedtypeconvert": 11, "staticweightvariableconvert": 11, "staticweightvariabledefinit": 11, "struct_nam": 11, "batchnormalizationquantizedtanhconfigtempl": 12, "batchnormalizationquantizedtanhfunctiontempl": 12, "mergebatchnormandquantizedtanh": 12, "quantizedenseoutput": 12, "register_bn_qu": 12, "registerbramweight": 12, "whose": [12, 27], "clonefunctiontempl": 12, "cloneoutput": 12, "time": [12, 31, 32, 38, 39, 42, 43], "register_clon": 12, "generateconvim2col": 12, "tcode": 12, "embeddingconfigtempl": 12, "embeddingfunctiontempl": 12, "removefinalreshap": 12, "fixsoftmaxtables": 12, "register_softmax__table_size_fix": 12, "processfixedpointquantizercal": 12, "processfixedpointquantizerlay": 12, "fixedpointquant": [12, 30], "processunarylutcal": 12, "generate_mask_fn": 12, "ndarrai": [12, 23, 27], "b": [12, 31, 38], "rnd": [12, 27], "sat": [12, 27], "heterogen": 12, "register_hgq_proxy_model": [12, 30], "to_acfix": 12, "to_apfix": 12, "inplaceparallelreshap": 12, "replac": [12, 23, 27], "inplac": [12, 43], "tensor": [12, 23, 27, 32, 35, 43], "flat": 12, "inplacestreamflatten": 12, "flatten": [12, 30, 32, 43], "expens": [12, 30, 38], "repack": [12, 43], "skipsoftmax": 12, "pack": [12, 27], "repackfunctiontempl": 12, "reshapestream": 12, "register_repack_stream": 12, "xnorpool": 12, "behavior": 12, "maxpool": 12, "xnorprecisiontyp": [12, 27, 43], "propag": [12, 43], "quartusbackend": 13, "fpgasynth": 13, "log_level": 13, "cont_if_large_area": 13, "intel": [13, 39, 44, 45], "synthesi": [13, 23, 37, 38, 39, 41, 43, 44], "log": [13, 23, 31, 32, 35], "level": [13, 31, 32, 35, 36, 38, 40, 41, 45], "displai": [13, 31, 32, 35], "continu": 13, "exce": 13, "error": [13, 43], "arria10": 13, "_": [13, 17, 19, 38], "init_activ": 13, "init_simple_rnn": 13, "chdir": 13, "newdir": 13, "quartusarrayvariableconvert": 13, "quartusarrayvariabledefinit": 13, "quartusinplacearrayvariableconvert": 13, "quartusinplacearrayvariabledefinit": 13, "quartusinplacestreamvariableconvert": 13, "quartusinplacestreamvariabledefinit": 13, "quartusstreamvariableconvert": 13, "quartusstreamvariabledefinit": 13, "quartusstructmembervariableconvert": 13, "quartusstructmembervariabledefinit": 13, "conv_mult_config_templ": 14, "_mult": 14, "rf_pad": 14, "rfpad": 14, "bf_pad": 14, "bfpad": 14, "reuse_factor_round": 14, "block_factor": 14, "div_roundup": 14, "block_factor_round": 14, "multiplier_factor": 14, "min": [14, 43], "multiplier_limit": 14, "multiplier_scal": 14, "x_t": 14, "y_t": 14, "conv": [14, 30, 43], "gruconfigtempl": 14, "grufunctiontempl": 14, "lstmconfigtempl": 14, "lstmfunctiontempl": 14, "simplernnconfigtempl": 14, "simplernnfunctiontempl": 14, "symbolicexpressionbackend": 15, "xcvu9p": 15, "clock_uncertainti": [15, 17, 19, 21, 23], "vivado_hl": [15, 23, 44], "hls_include_path": [15, 23, 35], "hls_libs_path": [15, 23, 35], "validateuserlookupt": 16, "adequ": 16, "vitisbackend": 17, "vivadobackend": [17, 19, 21, 36], "27": [17, 23], "write_weights_txt": [17, 19], "write_tar": [17, 19, 36], "uncertainti": [17, 19, 23], "place": [17, 19], "txt": [17, 19, 36], "speed": [17, 19, 38, 43], "validateconvimplement": 18, "validatestrategi": 18, "init_depconv1d": 19, "vivadoarrayvariableconvert": 19, "vivadoarrayvariabledefinit": 19, "vivadoinplacearrayvariableconvert": 19, "vivadoinplacearrayvariabledefinit": 19, "vivadoinplacestreamvariableconvert": 19, "vivadoinplacestreamvariabledefinit": 19, "vivadostreamvariableconvert": 19, "vivadostreamvariabledefinit": 19, "vivadoacceleratorbackend": 21, "axi_stream": 21, "input_typ": 21, "output_typ": 21, "platform": [21, 31], "xilinx_u250_xdma_201830_2": 21, "acceler": [21, 42], "supported_board": [21, 23], "exploit": 21, "axi_mast": 21, "master": [21, 43], "axi_lit": 21, "lite": 21, "don": [21, 27, 43], "t": [21, 23, 27, 30, 31, 32, 33, 38, 43], "exchang": 21, "amount": [21, 23], "metal": 21, "ap_typ": 21, "round": [21, 30], "make_xclbin": 21, "xclbin": 21, "deploy": 21, "host": 21, "guid": [21, 35], "vivadoacceleratorconfig": 21, "model_input": 21, "model_output": 21, "get_board": 21, "get_board_info": 21, "get_clock_period": 21, "get_corrected_typ": 21, "get_driv": 21, "get_driver_fil": 21, "get_driver_path": 21, "get_input_typ": 21, "get_interfac": 21, "get_io_bitwidth": 21, "get_krnl_rtl_src_dir": 21, "get_output_typ": 21, "get_part": 21, "get_platform": 21, "get_tcl_file_path": 21, "kerasfileread": 23, "kerasread": [23, 24], "get_weights_data": 23, "layer_nam": [23, 27, 30], "var_nam": [23, 27], "kerasmodelread": 23, "kerasnestedfileread": 23, "nested_path": 23, "get_model_arch": 23, "get_supported_keras_lay": 23, "intern": [23, 35, 39, 43], "represent": [23, 30], "vari": [23, 38], "across": 23, "keras_handl": 23, "arg": [23, 31, 43], "parse_default_keras_lay": 23, "parse_keras_model": 23, "model_arch": 23, "reader": [23, 25, 43], "layer_cnam": 23, "handler_func": 23, "parse_func": 23, "properti": [23, 27, 28], "callabl": 23, "onnxdataread": 23, "extract": [23, 30, 31, 43], "relev": [23, 30], "add_input": 23, "perm": [23, 30], "compute_pads_1d": 23, "oper": [23, 35, 40, 43], "compute_pads_2d": 23, "get_input_shap": 23, "input_idx": [23, 27], "get_onnx_attribut": 23, "get_onnx_input_nam": 23, "get_out_layer_nam": 23, "get_supported_onnx_lay": 23, "onnx_handl": 23, "unsupport": [23, 43], "register_onnx_layer_handl": 23, "replace_char_inconsit": 23, "inconsist": 23, "charact": 23, "caus": [23, 32], "issu": [23, 43], "sanitize_layer_nam": 23, "compute_padding_1d": 23, "pad_typ": 23, "in_siz": 23, "filt_siz": 23, "side": 23, "tri": 23, "evenli": 23, "column": 23, "odd": 23, "causal": [23, 43], "insensit": 23, "window": [23, 45], "unknown": [23, 35], "compute_padding_1d_pytorch": 23, "compute_padding_2d": 23, "in_height": 23, "in_width": [23, 43], "stride_height": 23, "stride_width": 23, "filt_height": [23, 32, 43], "filt_width": [23, 32], "top": [23, 31, 32, 35, 36, 43, 45], "bottom": 23, "compute_padding_2d_pytorch": 23, "dilation_height": 23, "dilation_width": 23, "parse_data_format": 23, "data_format": 23, "channels_last": [23, 30, 35], "accord": [23, 31], "element": [23, 27, 31, 32], "interpret": 23, "discard": 23, "3d": 23, "channels_first": [23, 30, 35], "convert_from_config": 23, "filesystem": 23, "project_nam": [23, 35], "input_data_tb": 23, "output_data_tb": 23, "associ": [23, 32], "overwrit": 23, "unus": [23, 43], "convert_from_onnx_model": [23, 35], "convert_from_pytorch_model": [23, 35], "expect": [23, 27, 30, 40], "Not": 23, "hand": 23, "inputs_channel_last": 23, "config_from_pytorch_model": [23, 35], "remain": [23, 40], "transpose_output": [23, 35], "back": 23, "convert_from_symbolic_express": 23, "expr": 23, "n_symbol": 23, "lut_funct": 23, "use_built_in_lut_funct": 23, "sympi": 23, "express": [23, 27, 38, 43], "form": [23, 32, 35], "x0": 23, "x1": 23, "x2": 23, "largest": [23, 38], "definit": [23, 27, 35, 36], "func_nam": [23, 35], "math_func": [23, 35], "func": [23, 27, 35], "table_s": [23, 35], "range_start": [23, 35], "range_end": [23, 35], "pysr": [23, 35], "math": [23, 35], "approxim": [23, 35], "sin": [23, 35], "co": [23, 29, 35, 37, 38], "lookup": [23, 35, 36], "tabl": [23, 35, 36, 43, 45], "strongli": [23, 35], "built": [23, 32, 43, 44, 45], "vitis_hl": 23, "inlcud": 23, "locat": [23, 32, 40], "empti": [23, 30], "won": 23, "integr": [23, 27], "unless": [23, 32], "doesn": [23, 30, 33], "affect": [23, 30, 35], "lib": [23, 35], "parse_yaml_config": 23, "config_fil": 23, "proper": 23, "serial": 23, "my_keras_model": 23, "doc": [23, 43], "parse_conv1d_lay": 24, "parse_conv2d_lay": 24, "parse_activation_lay": [24, 25], "parse_batchnorm_lay": [24, 25], "parse_dense_lay": 24, "parse_embedding_lay": 24, "parse_input_lay": 24, "parse_garnet_lay": 24, "fixedpoint_quantizer_handl": 24, "unary_lut_keras_handl": 24, "parse_merge_lay": [24, 25], "parse_model_lay": 24, "parse_global_pooling_lay": [24, 25], "parse_pooling_lay": 24, "get_quantizer_from_config": 24, "quantizer_var": 24, "parse_qactivation_lay": 24, "parse_qbatchnorm_lay": 24, "parse_qconv2dbatchnorm_lay": 24, "parse_qconv_lay": 24, "parse_qdense_lay": 24, "parse_qdepthwiseqconv_lay": 24, "parse_qrnn_lay": 24, "parse_qsepconv_lay": 24, "parse_rnn_lay": 24, "parse_flatten_lay": 24, "parse_permute_lay": 24, "parse_reshape_lay": [24, 25], "parse_upsampling1d_lay": 24, "parse_upsampling2d_lay": 24, "parse_zeropadding1d_lay": 24, "parse_zeropadding2d_lay": 24, "parse_conv_lay": 25, "inputs_map": 25, "parse_gemm_lay": 25, "parse_pool_lay": 25, "parse_transpose_lay": 25, "bn_fuse": [27, 29], "convert_to_channels_last": [27, 29], "expand_layer_group": [27, 29], "fuse_biasadd": [27, 29, 40], "infer_precis": [27, 29], "multi_dens": [27, 29], "nop": [27, 29], "seperable_to_dw_conv": [27, 29], "stamp": [27, 29, 40], "transpose_opt": [27, 29], "hidden": 27, "unit": [27, 33], "endpoint": 27, "expos": 27, "handl": [27, 31, 39, 43], "unifi": 27, "view": [27, 28, 40], "map": [27, 32, 40, 43], "conveni": 27, "certain": [27, 28, 31, 32, 33, 38, 40], "attributemap": 27, "value_typ": 27, "consist": 27, "creation": [27, 38], "flag": [27, 34], "expected_attribut": 27, "config_nam": 27, "pascal": 27, "attributenam": 27, "pascal_cas": [27, 35], "validate_valu": 27, "attributedict": 27, "mutablemap": 27, "behav": 27, "upon": 27, "trigger": [27, 38], "action": [27, 43], "convent": 27, "clazz": [27, 29], "choiceattribut": 27, "choic": 27, "predefin": 27, "codeattrubut": 27, "codemap": 27, "configurableattribut": 27, "advis": [27, 35, 37], "typeattribut": 27, "namedtyp": 27, "_t": 27, "typemap": 27, "variablemap": 27, "tensorvari": 27, "weightattribut": 27, "weightmap": 27, "weightvari": [27, 36], "get_bram_s": 27, "get_compress": 27, "get_config_valu": 27, "get_conv_implement": 27, "get_layer_config": 27, "get_layer_config_valu": 27, "get_output_dir": 27, "get_precis": 27, "var": [27, 36], "get_project_dir": 27, "get_project_nam": 27, "get_reuse_factor": 27, "get_strategi": 27, "get_target_cycl": 27, "get_writer_config": 27, "is_resource_strategi": 27, "parse_name_config": 27, "layer_cfg": 27, "_parse_hls_config": 27, "set_name_config": 27, "layer_list": 27, "being": [27, 32], "apply_flow": [27, 40], "reappli": [27, 30], "collect": [27, 28, 42], "skip": [27, 43], "environ": [27, 32, 38, 43], "get_layer_output_vari": 27, "output_nam": 27, "get_lay": 27, "get_output_vari": 27, "get_weight_vari": 27, "insert_nod": 27, "make_nod": 27, "ambigu": 27, "sequenc": [27, 30, 38, 40], "attempt": [27, 29], "made": [27, 40, 43], "doe": [27, 31, 32, 42], "kind": 27, "replace_nod": 27, "next_lay": 27, "register_output_vari": 27, "out_nam": 27, "remove_nod": 27, "rewir": [27, 32], "previou": [27, 31, 37, 38, 42], "leaf": 27, "old_nod": 27, "new_nod": 27, "split_nod": 27, "new_node1": 27, "new_node2": 27, "trace": [27, 43], "biasadd": [27, 30], "concaten": [27, 43], "conv2dbatchnorm": 27, "depthwiseconv1d": [27, 43], "depthwiseconv2d": [27, 43], "dot": [27, 35], "gru": [27, 43], "garnet": [27, 43, 45], "ref_impl": 27, "garnetstack": [27, 43], "globalpooling1d": [27, 43], "globalpooling2d": 27, "hardactiv": 27, "tan": [27, 35], "unction": 27, "clip": 27, "slope": 27, "shift": [27, 43], "hard_sigmoid": 27, "lstm": [27, 43, 45], "necessarili": 27, "add_bia": [27, 30], "_out": 27, "type_nam": 27, "add_weight": [27, 30], "add_weights_vari": 27, "get_attr": 27, "get_input_nod": 27, "get_layer_precis": 27, "get_output_nod": 27, "get_output_use_map": 27, "get_vari": 27, "get_weight": 27, "set_attr": [27, 29], "layergroup": [27, 30], "prelu": 27, "parametrizedactiv": 27, "pooling1d": 27, "pooling2d": 27, "separableconv1d": [27, 43], "separableconv2d": [27, 43], "simplernn": 27, "symbolicexpress": 27, "ternarytanh": 27, "zeropadding1d": 27, "zeropadding2d": 27, "classproperti": 27, "local": [27, 31, 32], "binaryquant": 27, "qkerasbinaryquant": 27, "xnor": 27, "around": 27, "qkeraspo2quant": 27, "qkerasquant": 27, "hls_type": 27, "upstream": 27, "ternaryquant": 27, "precisiontyp": 27, "dimension": [27, 31, 32, 33, 43], "compressedtyp": 27, "index_precis": 27, "coo": 27, "compressedweightvari": 27, "_type_": [27, 29], "exponentprecisiontyp": [27, 43], "differenti": 27, "expon": 27, "po2": [27, 43], "exponenttyp": 27, "special": [27, 29, 30, 40, 43], "mark": 27, "exponentweightvari": 27, "aka": 27, "fixedprecisiontyp": [27, 31], "rounding_mod": [27, 30], "saturation_mod": [27, 30], "saturation_bit": 27, "arbitrari": 27, "ap_": 27, "u": [27, 42], "decim": [27, 35], "roundingmod": 27, "mode": [27, 30], "trn": 27, "saturationmod": 27, "satur": [27, 30], "fraction": 27, "inplacetensorvari": 27, "tv": 27, "input_var": 27, "integerprecisiontyp": [27, 43], "ac_int": [27, 43], "packedtyp": 27, "n_elem": 27, "w": [27, 31, 32, 33, 37], "_description_": [27, 28, 29], "enum": [27, 31], "enumer": [27, 31], "rnd_conv": 27, "rnd_inf": 27, "rnd_min_inf": 27, "rnd_zero": 27, "trn_zero": 27, "from_str": 27, "sat_sym": 27, "sat_zero": 27, "get_shap": 27, "size_cpp": 27, "unspecifiedprecisiontyp": 27, "multidimension": [27, 30, 43], "update_precis": 27, "new_precis": 27, "bnn": 27, "ones": 27, "find_minimum_width": 27, "find": [27, 32, 44], "entri": [27, 31, 32], "dynamicflow": 28, "optimizer_func": 28, "dynam": [28, 31, 38], "updat": [28, 31, 32, 43, 45], "get_backend_flow": 28, "get_flow": 28, "register_flow": [28, 40], "belong": [28, 29, 36], "append": [28, 29, 43], "update_flow": 28, "flow_nam": 28, "add_optim": 28, "remove_optim": 28, "global": [29, 31, 32, 36], "layeroptimizerpass": [29, 40], "wrappedoptimizerpass": 29, "commonli": [29, 32, 40], "itself": [29, 40], "deriv": [29, 32, 40, 43], "condit": 29, "manual": [29, 35], "extract_optimizers_from_object": 29, "extract_optimizers_from_path": 29, "opt_path": 29, "module_path": 29, "get_available_pass": 29, "get_backend_pass": 29, "layer_optim": 29, "decor": [29, 40], "turn": [29, 43], "mylay": 29, "init_mylay": 29, "new_attribut": 29, "some_valu": 29, "model_optim": 29, "until": [29, 31, 40], "longer": [29, 32, 38, 40, 43], "occur": 29, "optimizer_pass": 29, "fusebatchnorm": 30, "channelslastconvert": 30, "removetransposebeforeflatten": 30, "expandlayergroup": 30, "expand": [30, 43], "nest": [30, 35, 43], "parent": [30, 31, 43], "fusebiasadd": 30, "common": [30, 40], "enforceproxymodelembeddedconfig": 30, "unarylut": 30, "to_hls4ml_fix": 30, "userconf_ifdef": 30, "inferprecisiontyp": 30, "replacemultidimensionaldensewithconv": 30, "bakend": 30, "eliminatelinearactiv": 30, "applyalpha": [30, 43], "qdens": [30, 32], "alpha": [30, 32, 43], "extractternarythreshold": 30, "execut": [30, 32, 40], "That": 30, "fuseconsecutivebatchnorm": 30, "consecut": [30, 31, 32], "qkerasfactorizealpha": 30, "outputroundingsaturationmod": 30, "accumul": 30, "applic": [30, 31, 32, 38], "output_rounding_saturation_mod": 30, "ap_rnd_conv": 30, "ap_sat": 30, "precision_string_modifi": 30, "pstr": 30, "q": [30, 45], "register_qkera": 30, "seper": 30, "depthwis": 30, "seperabletodepthwiseandconv": 30, "depthwiseconv": 30, "potenti": [30, 38], "later": [30, 31, 32, 40, 42], "makestamp": [30, 40], "removenoptranspos": 30, "anyth": 30, "removesinglechanneltranspos": 30, "layerattribut": [31, 32, 33], "layer_typ": 31, "inbound_lay": 31, "weight_shap": 31, "output_shap": 31, "optimiz": [31, 32, 33], "optimization_attribut": [31, 33], "identifi": [31, 32], "optimizationattribut": [31, 33], "offset": [31, 32], "hls4mlattribut": 31, "update_arg": 31, "structure_typ": [31, 32, 33], "supported_structur": [31, 32], "weight_shar": 31, "block_shap": [31, 32], "pattern_offset": [31, 32], "consecutive_pattern": [31, 32], "mani": [31, 32, 33, 38, 40, 44], "group": [31, 32], "togeth": [31, 32], "sype": 31, "get_attributes_from_keras_model_and_hls4ml_config": 31, "weight_precis": 31, "output_precis": 31, "parallelization_factor": 31, "row": [31, 32], "col": 31, "solve_knapsack": 31, "capac": 31, "cbc_mip": [31, 32], "item": 31, "greedi": [31, 32], "branch": [31, 43, 44], "bound": 31, "time_limit": 31, "limit": [31, 45], "cbc": 31, "solut": 31, "far": 31, "scaling_factor": 31, "optimal_valu": 31, "selected_item": 31, "select": [31, 38], "formul": [31, 32], "m": [31, 32, 37, 38], "v": [31, 37], "x_": 31, "j": 31, "wise": [31, 32], "inequla": 31, "vector": [31, 38], "o": [31, 37, 42], "nw": 31, "constraint": 31, "medium": 31, "googl": 31, "OR": [31, 32], "multi": [31, 33, 42, 43], "often": [31, 37, 38], "greeedi": 31, "mip": 31, "solver": 31, "high": [31, 32, 38, 41, 42], "mn": 31, "highli": [31, 32, 35, 38], "never": 31, "binaryschedul": 31, "initial_spars": 31, "01": [31, 32, 43], "optimizationschedul": [31, 32], "halv": 31, "search": 31, "space": 31, "constantli": 31, "upper": 31, "midpoint": 31, "repair": 31, "decrement": 31, "repair_step": 31, "meet": 31, "satisfi": [31, 40], "constantschedul": 31, "05": [31, 32, 43], "55": 31, "explan": 31, "75": 31, "625": [31, 43], "update_step": 31, "constant": [31, 32], "term": 31, "request": [31, 43, 44], "state": [31, 32, 40], "abc": [31, 33], "regard": 31, "get_spars": 31, "abstract": [31, 33], "maximum_step": 31, "decay_pow": 31, "decai": [31, 32], "zhu": 31, "gupta": 31, "2016": [31, 32], "explor": [31, 44], "efficaci": 31, "slightli": 31, "frequenc": 31, "underperform": 31, "simpli": 31, "jump": 31, "track": 31, "tope": 31, "trial": [31, 32], "validation_metr": [31, 32], "callback": [31, 32], "ranking_metr": [31, 32], "l1": [31, 32], "verbos": [31, 32, 35], "rewinding_epoch": [31, 32], "cutoff_bad_tri": [31, 32], "tuner": [31, 32], "bayesian": [31, 32], "knapsack_solv": [31, 32], "regularization_rang": [31, 32], "1e": [31, 32], "06": [31, 32], "8478497974222906e": [31, 32], "414548873833601e": [31, 32], "30957344480193e": [31, 32], "165914401179831e": [31, 32], "1544346900318823e": [31, 32], "9810717055349695e": [31, 32], "356422544596421e": [31, 32], "00013593563908785255": [31, 32], "00025118864315095795": [31, 32], "00046415888336127773": [31, 32], "0008576958985908938": [31, 32], "001584893192461114": [31, 32], "0029286445646252374": [31, 32], "0054116952654646375": [31, 32], "objectiveestim": [31, 32, 33], "tune": [31, 32, 35], "descript": [31, 32], "improv": [31, 32, 38, 43], "pruned_validation_metr": [31, 32], "baseline_validation_metr": [31, 32], "rank": [31, 32], "l2": [31, 32], "salienc": [31, 32], "oracl": [31, 32], "retrain": [31, 32], "freez": [31, 32], "regrowth": [31, 32], "previous": [31, 32, 43], "bad": [31, 32], "temporari": [31, 32], "hyperband": [31, 32], "hyperparamet": [31, 32], "hyperoptimizationmodel": 32, "hypermodel": 32, "hp": 32, "build_optimizable_model": 32, "train_dataset": 32, "validation_dataset": 32, "idea": 32, "coupl": 32, "quit": 32, "older": 32, "had": [32, 38], "crash": 32, "bug": [32, 43], "simultan": 32, "conflict": [32, 33], "dataset": 32, "consol": 32, "learning_rate_rang": 32, "prepar": 32, "remove_custom_regular": 32, "denseregular": 32, "conv2dregular": 32, "supported_lay": 32, "qlayer": 32, "qconvolut": 32, "qconv2d": 32, "classifi": 32, "redund": 32, "norm": 32, "ab": 32, "dl": 32, "dw": 32, "molchanov": 32, "d": [32, 42], "lecun": 32, "1989": 32, "brain": 32, "damag": 32, "supported_metr": 32, "best": [32, 33, 38], "get_model_mask": 32, "gradient": 32, "hessian": 32, "calcul": [32, 38], "frozen": 32, "resource_util": 32, "baseline_util": 32, "resource_sav": 32, "therefor": [32, 38], "And": [32, 44], "smaller": 32, "otheris": 32, "magnitud": 32, "deal": 32, "reduce_model": 32, "surgeon": 32, "http": [32, 35, 41, 42, 44], "com": [32, 35, 41, 42, 44], "benwhetton": 32, "fork": 32, "fastmachinelearn": [32, 35, 41, 42, 44], "funcion": 32, "separ": [32, 34, 35, 43], "flexibl": 32, "cluster": [32, 35], "spars": 32, "penalti": 32, "push": 32, "toward": 32, "filter_width": 32, "filter_height": 32, "n_chan": 32, "n_filt": 32, "th": 32, "serializ": 32, "reinstanti": 32, "savedmodel": 32, "checkpoint": 32, "model_to_estim": 32, "hdf5": 32, "visual": [32, 35], "penal": 32, "4x4": 32, "8x1": 32, "simd": 32, "processor": 32, "encount": 32, "less": 32, "36": 32, "thu": [32, 38], "get_last_layer_with_weight": 32, "sometim": 32, "cannot": 32, "idx": 32, "get_model_gradi": 32, "grad": 32, "get_model_hessian": 32, "repsect": 32, "diagon": 32, "percentag": 32, "todo": 32, "reccurent_kernel": 32, "maskedbackprop": 32, "backprop": 32, "__call__": 32, "deplet": 32, "update_mask": 32, "is_layer_optimiz": 33, "layer_attribut": 33, "check": [33, 35, 43, 44, 45], "sens": [33, 40], "furthermor": 33, "9": [33, 45], "layer_resourc": 33, "regardless": [33, 40], "layer_sav": 33, "alongsid": 33, "layer_attribtu": 33, "care": 33, "especi": [33, 43], "goal": [33, 38], "get_latest_project_prj_directori": 34, "base_path": 34, "projectdir": 34, "get_latest_project_version_directori": 34, "parse_catapult_report": 34, "qofr": 34, "read_catapult_report": 34, "hls_dir": 34, "full_report": 34, "parse_quartus_report": 34, "write_to_fil": 34, "read_js_object": 34, "js_script": 34, "javascript": 34, "defind": 34, "script": [34, 36, 43], "read_quartus_report": 34, "open_brows": 34, "browser": 34, "parse_vivado_report": 34, "print_vivado_report": [34, 43], "report_dict": 34, "max_precis": 35, "serv": 35, "inspect": 35, "tweak": [35, 40], "explicit": 35, "config_from_onnx_model": 35, "channels_last_convers": 35, "full": [35, 37, 40, 43, 44], "exclud": 35, "off": 35, "assum": 35, "create_config": 35, "fetch_example_list": [35, 44], "fetch_example_model": [35, 44], "model_nam": 35, "repo": [35, 43], "fixedpointemul": 35, "integer_bit": 35, "decimal_bit": 35, "complement": 35, "exp_float": 35, "sig_fig": 35, "inv_float": 35, "set_msb_bit": 35, "to_float": 35, "ceil_log2": 35, "uint_to_binari": 35, "relat": [35, 43], "add_edg": 35, "dst": 35, "check_pydot": 35, "pydot": 35, "graphviz": 35, "model_to_dot": 35, "show_shap": 35, "show_layer_nam": 35, "show_precis": 35, "rankdir": 35, "tb": 35, "dpi": 35, "96": 35, "subgraph": 35, "vertic": 35, "lr": 35, "horizont": 35, "inch": 35, "importerror": 35, "plot_model": 35, "to_fil": 35, "png": 35, "jupyt": 35, "notebook": 35, "enabl": [35, 38, 43], "convert_to_pascal_cas": 35, "snake_cas": 35, "pascalcas": 35, "convert_to_snake_cas": 35, "lutfunct": 35, "generate_operator_complex": 35, "unary_oper": 35, "binary_oper": 35, "cycl": 35, "unari": 35, "init_pysr_lut_funct": 35, "init_default": 35, "function_definit": 35, "math_lut": 35, "pysrregressor": 35, "frequent": [35, 40], "exp": 35, "register_pysr_lut_funct": 35, "julia_main": 35, "catapultwrit": 36, "print_array_to_cpp": 36, "odir": 36, "write_txt_fil": 36, "write_bridg": 36, "bridg": 36, "myproject_bridg": 36, "write_build_script": 36, "tcl": [36, 43, 44], "shell": 36, "build_prj": [36, 44], "build_lib": 36, "sh": 36, "write_defin": 36, "write_generated_cod": 36, "nnet_code_gen": 36, "write_nnet_util": 36, "ap": 36, "write_output_dir": 36, "write_paramet": 36, "write_project_cpp": 36, "main": [36, 43, 44, 45], "write_project_head": 36, "archiv": 36, "write_test_bench": 36, "testbench": 36, "myproject_test": 36, "write_weight": 36, "write_yml": 36, "quartuswrit": 36, "get_max_reuse_factor": 36, "next_pow2": 36, "write_activation_t": 36, "makefil": 36, "write_project_dir": 36, "write_testbench_parallel": 36, "write_testbench_stream": 36, "symbolicexpressionwrit": 36, "vivadowrit": 36, "vivado_synth": 36, "vitiswrit": 36, "adapt": 36, "write_nnet_utils_overrid": 36, "vivadoacceleratorwrit": 36, "modify_build_script": 36, "write_axi_wrapp": 36, "write_board_script": 36, "ipi": 36, "vivadoacceler": [36, 43], "write_driv": 36, "write_new_tar": 36, "write_wrapper_test": 36, "clash": 36, "get_writ": 36, "register_writ": 36, "writer_cl": 36, "migrat": 37, "messag": 37, "posit": 37, "exit": 37, "pb": [37, 43], "pt": 37, "l": [37, 42, 43], "csimul": 37, "impli": 37, "vivado_synthesi": 37, "translat": [38, 41, 44], "transpil": 38, "plug": 38, "freedom": 38, "greatli": 38, "intuit": 38, "balanc": 38, "stem": 38, "energi": [38, 42], "physic": [38, 42], "cern": 38, "hadron": 38, "collid": 38, "lhc": 38, "proven": 38, "extrem": [38, 42], "analysi": 38, "detector": 38, "offlin": 38, "agglomer": 38, "collis": 38, "event": 38, "too": 38, "everyth": 38, "kept": 38, "significantli": [38, 43], "live": 38, "preserv": 38, "mind": 38, "realiz": 38, "task": 38, "remap": 38, "isn": 38, "realli": [38, 43], "come": 38, "cost": 38, "microsecond": 38, "invest": 38, "languag": [38, 41], "rapid": 38, "multilay": [38, 45], "At": 38, "n_m": 38, "mathbf": 38, "_m": 38, "said": 38, "sum": 38, "independ": [38, 39, 40], "n_": 38, "w_": 38, "g_m": 38, "compactli": 38, "accept": 38, "nontrivi": 38, "precomput": 38, "control": [38, 39, 40, 44], "aspect": 38, "princip": 38, "though": 38, "dataflow": 38, "awar": [38, 42, 43], "decis": 38, "Of": 38, "simplifi": 38, "sizabl": 38, "speedup": 38, "arithmet": 38, "offer": 38, "bin": 38, "lowest": 38, "highest": 38, "therebi": 38, "paper": [38, 42, 43], "jinst": [38, 42], "13": [38, 42, 43], "p07027": [38, 42], "2018": [38, 42, 43, 44, 45], "statu": 39, "featur": [39, 41, 42, 44], "known": 39, "mlp": [39, 45], "small": 39, "alwai": 39, "sent": 39, "verifi": 40, "undergo": 40, "seri": 40, "dub": 40, "modif": 40, "uniqu": 40, "criteria": 40, "again": 40, "folder": 40, "assign": 40, "explain": 40, "tradit": 41, "interest": 41, "experi": 41, "latest": [41, 44, 45], "plan": 41, "public": 42, "cite": 42, "fastml_hls4ml": 42, "author": 42, "fastml": 42, "team": 42, "year": 42, "2023": [42, 43], "publish": [42, 43], "zenodo": 42, "v0": 42, "doi": 42, "5281": 42, "1201549": 42, "url": 42, "articl": 42, "duart": 42, "2018ite": 42, "javier": 42, "deep": 42, "particl": 42, "eprint": 42, "1804": 42, "06913": 42, "archiveprefix": 42, "arxiv": [42, 43], "primaryclass": 42, "ins": 42, "det": 42, "reportnumb": 42, "fermilab": 42, "pub": 42, "18": [42, 43], "089": 42, "1088": 42, "1748": 42, "0221": 42, "07": [42, 43], "journal": 42, "volum": 42, "aarrestad": 42, "2021zo": 42, "thea": 42, "2101": [42, 43], "05108": [42, 43], "cs": 42, "lg": 42, "21": [42, 44, 45], "130": 42, "scd": 42, "2632": 42, "2153": 42, "ac0ea1": 42, "mach": 42, "sci": 42, "045015": 42, "2021": [42, 43], "ghielmetti": 42, "2022ndm": 42, "nicol": 42, "semant": 42, "segment": 42, "autonom": 42, "vehicl": 42, "2205": 42, "07690": 42, "cv": 42, "22": 42, "435": [42, 43], "ppd": 42, "ac9cb5": 42, "loncar": 42, "2020hqp": 42, "ngadiuba": 42, "jennif": 42, "2003": 42, "06308": 42, "20": [42, 43, 44, 45], "167": 42, "aba042": 42, "015001": 42, "ramhorst": 42, "2023fpga": 42, "benjamin": 42, "2308": 42, "05170": 42, "particip": 42, "ask": 42, "collabor": 42, "who": 42, "text": 42, "domain": 42, "expert": 42, "were": 42, "gratefulli": 42, "nation": 42, "scienc": 42, "foundat": 42, "nsf": 42, "har": 42, "revolut": 42, "hdr": 42, "institut": 42, "ai": 42, "driven": 42, "discoveri": 42, "a3d3": [42, 43], "cooper": 42, "agreement": 42, "phy": 42, "2117997": 42, "depart": 42, "offic": 42, "scientif": 42, "research": 42, "edg": 42, "xdr": 42, "de": 42, "foa": 42, "0002501": 42, "earli": 42, "career": 42, "sc0021187": 42, "0000247070": 42, "european": 42, "council": 42, "erc": 42, "union": 42, "horizon": 42, "2020": [42, 43, 44, 45], "innov": 42, "grant": [42, 43], "772369": 42, "thank": 42, "vloncar": [42, 43], "jmitrev": [42, 43], "jmduart": [42, 43], "thesp": [42, 43], "bo3z": [42, 43], "nhanvtran": 42, "benjaminkrei": 42, "calad0i": [42, 43], "nghielm": 42, "janfschult": [42, 43], "commit": [42, 43], "ci": [42, 43], "bot": 42, "jngadiub": 42, "drankincm": [42, 43], "duchstf": [42, 43], "hamzajaved780": 42, "ejk43": 42, "laurilaatu": 42, "keb": [42, 43], "adrianalan": [42, 43], "yiiyama": [42, 43], "ngpaladi": 42, "gol": 42, "joshlern": [42, 43], "zhenbinwu": 42, "dependabot": [42, 43], "delonshen": 42, "pitmonticon": [42, 43], "landay7": [42, 43], "jochist": [42, 43], "melko": 42, "qberthet": [42, 43], "veyron8800": 42, "jicampo": 42, "pzejdl": 42, "guyzsarun": 42, "selwyn96": [42, 43], "schsu": [42, 43], "thaarr": 42, "cgutsch": [42, 43], "dgburnett": 42, "katyagovorkova": [42, 43], "nemerchiedd": [42, 43], "sei": 42, "rquartiano": 42, "maksgraczyk": [42, 43], "consvin": [42, 43], "kovi89alip": [42, 43], "jonathan": [42, 43], "shoemak": [42, 43], "siorpa": [42, 43], "chiruichen": [42, 43], "bkmgit": [42, 43], "ander": [42, 43], "wind": [42, 43], "apfusco": [42, 43], "19": 43, "pypi": [43, 45], "905": 43, "906": 43, "autoupd": 43, "921": 43, "logo": 43, "readm": 43, "md": 43, "930": 43, "fp": 43, "gt": 43, "909": 43, "inheirt": 43, "907": 43, "941": 43, "911": 43, "942": 43, "908": 43, "940": 43, "937": 43, "944": 43, "bump": 43, "upload": 43, "artifact": 43, "943": 43, "repalce_nod": 43, "fn": 43, "934": 43, "945": 43, "contributor": 43, "changelog": [43, 45], "11": [43, 44], "decoupl": 43, "781": 43, "770": 43, "tf_to_hl": 43, "795": 43, "796": 43, "qconv2dbatchnorm": 43, "802": 43, "801": 43, "discuss": 43, "inlin": 43, "slow": 43, "down": 43, "x15": 43, "x20": 43, "800": 43, "807": 43, "quantis": 43, "806": 43, "797": 43, "815": 43, "torch": 43, "fx": 43, "clean": 43, "799": 43, "816": 43, "794": 43, "821": 43, "828": 43, "827": 43, "830": 43, "833": 43, "835": 43, "obsolet": 43, "docker": 43, "836": 43, "842": 43, "847": 43, "804": 43, "845": 43, "852": 43, "851": 43, "848": 43, "qdepthwiseconv2d": 43, "834": 43, "660": 43, "837": 43, "checkout": 43, "866": 43, "869": 43, "runner": 43, "gitlab": 43, "879": 43, "880": 43, "877": 43, "acknowledg": 43, "862": 43, "861": 43, "863": 43, "882": 43, "891": 43, "886": 43, "884": 43, "895": 43, "887": 43, "915": 43, "902": 43, "fund": 43, "918": 43, "fetch": [43, 44], "919": 43, "blank": 43, "rst": 43, "923": 43, "ku115": 43, "924": 43, "925": 43, "08": 43, "778": 43, "760": 43, "rnn": [43, 45], "780": 43, "jenkin": 43, "hell": 43, "786": 43, "785": 43, "minor": 43, "788": 43, "791": 43, "04": 43, "26": 43, "403": 43, "407": 43, "399": 43, "414": 43, "qkeras_mnist_dens": 43, "423": 43, "424": 43, "pyyaml": 43, "nicologhielmetti": 43, "420": 43, "443": 43, "amp": 43, "448": 43, "384": 43, "disabl": [43, 44], "447": 43, "quantized_relu": 43, "441": 43, "344": 43, "zeropad": 43, "480": 43, "framework": [43, 45], "395": 43, "499": 43, "501": 43, "cast": 43, "490": 43, "511": 43, "510": 43, "508": 43, "527": 43, "upsampling2d": 43, "520": 43, "upsampling1d": 43, "475": 43, "521": 43, "523": 43, "540": 43, "531": 43, "519": 43, "ingest": 43, "downstream": 43, "544": 43, "547": 43, "extens": 43, "528": 43, "416": 43, "bn": 43, "532": 43, "482": 43, "551": 43, "471": 43, "548": 43, "qactiv": 43, "553": 43, "directli": [43, 44], "567": 43, "559": 43, "transpose2d": 43, "concatenate2d": 43, "402": 43, "io_seri": 43, "info": 43, "334": 43, "453": 43, "487": 43, "few": [43, 44], "typo": 43, "467": 43, "_compute_n_sampl": 43, "537": 43, "552": 43, "sensit": 43, "577": 43, "pr": 43, "582": 43, "560": 43, "syntax": 43, "593": 43, "588": 43, "595": 43, "cppname": 43, "562": 43, "email": 43, "helplin": 43, "601": 43, "598": 43, "609": 43, "test_graph": 43, "611": 43, "597": 43, "enforc": 43, "605": 43, "583": 43, "557": 43, "qconv": 43, "612": 43, "602": 43, "bramfactor": 43, "621": 43, "570": 43, "618": 43, "628": 43, "596": 43, "634": 43, "nondefault": 43, "626": 43, "639": 43, "direct": 43, "635": 43, "qu": 43, "575": 43, "softsign": 43, "585": 43, "561": 43, "contd": 43, "655": 43, "661": 43, "600": 43, "pytest": 43, "663": 43, "664": 43, "applied_flow": 43, "fill": 43, "641": 43, "setuptools_scm": 43, "479": 43, "627": 43, "sphinx": 43, "669": 43, "citat": 43, "615": 43, "fusion": 43, "481": 43, "wider": 43, "averag": 43, "681": 43, "656": 43, "636": 43, "delet": 43, "prj": 43, "682": 43, "adiabat": 43, "678": 43, "688": 43, "689": 43, "690": 43, "703": 43, "clang": [43, 44], "mac": 43, "704": 43, "694": 43, "contrib": 43, "706": 43, "wip": 43, "kl": 43, "606": 43, "incorrectli": 43, "lint": 43, "709": 43, "encod": 43, "min_width": 43, "610": 43, "642": 43, "isort": 43, "719": 43, "727": 43, "715": 43, "keepdim": 43, "globalpool": 43, "716": 43, "724": 43, "569": 43, "nicer": 43, "730": 43, "700": 43, "714": 43, "708": 43, "629": 43, "710": 43, "742": 43, "precommit": 43, "741": 43, "mv": 43, "743": 43, "748": 43, "mess": 43, "751": 43, "cleanup": 43, "codebas": 43, "750": 43, "center": 43, "754": 43, "gpl": 43, "licens": 43, "761": 43, "757": 43, "744": 43, "763": 43, "766": 43, "weight_siz": 43, "772": 43, "749": 43, "774": 43, "15": 43, "line_buff": 43, "violatingcp": 43, "easier": 43, "vs": 43, "302": 43, "318": 43, "323": 43, "332": 43, "307": 43, "298": 43, "03": 43, "redefinit": 43, "standalon": 43, "deprec": 43, "superced": 43, "bugfix": [43, 44], "warn": 43, "mix": 43, "30": 43, "skipoptim": 43, "subtract": 43, "fuse_consecutive_batch_norm": 43, "gor": 43, "reload": 43, "emul": 43, "use_bia": 43, "31": 43, "expans": 43, "move": [43, 45], "retriev": 43, "protobuf": 43, "enhanc": 43, "gather": 43, "02": 43, "refin": 43, "2019": 43, "easi": 44, "releas": [44, 45], "toolbox": 44, "conda": 44, "forg": 44, "repositori": [44, 45], "outdat": 44, "rapidli": 44, "evolv": 44, "experiment": [44, 45], "git": [44, 45], "extern": 44, "manag": 44, "newer": 44, "compat": 44, "On": 44, "linux": [44, 45], "gcc": 44, "recent": 44, "maco": [44, 45], "demonstr": 44, "workflow": 44, "minut": 44, "ve": 44, "apart": 44, "altern": 44, "pi": 44, "recurs": [44, 45], "along": 44, "cd": 44, "dev64": 45, "gd439f26c": 45, "stabl": 45, "perceptron": 45, "gnn": 45, "2024": 45, "bdt": 45, "conif": 45, "init": 45}, "objects": {"": [[7, 0, 0, "-", "hls4ml"]], "hls4ml": [[8, 0, 0, "-", "backends"], [23, 0, 0, "-", "converters"], [27, 0, 0, "-", "model"], [31, 0, 0, "-", "optimization"], [34, 0, 0, "-", "report"], [7, 3, 1, "", "reseed"], [35, 0, 0, "-", "utils"], [36, 0, 0, "-", "writer"]], "hls4ml.backends": [[8, 0, 0, "-", "backend"], [9, 0, 0, "-", "catapult"], [11, 0, 0, "-", "fpga"], [13, 0, 0, "-", "quartus"], [15, 0, 0, "-", "symbolic"], [8, 0, 0, "-", "template"], [17, 0, 0, "-", "vitis"], [19, 0, 0, "-", "vivado"], [21, 0, 0, "-", "vivado_accelerator"]], "hls4ml.backends.backend": [[8, 1, 1, "", "Backend"], [8, 3, 1, "", "get_available_backends"], [8, 3, 1, "", "get_backend"], [8, 3, 1, "", "register_backend"]], "hls4ml.backends.backend.Backend": [[8, 2, 1, "", "create_initial_config"], [8, 2, 1, "", "create_layer_class"], [8, 2, 1, "", "get_available_flows"], [8, 2, 1, "", "get_custom_source"], [8, 2, 1, "", "get_default_flow"], [8, 2, 1, "", "register_pass"], [8, 2, 1, "", "register_source"], [8, 2, 1, "", "register_template"]], "hls4ml.backends.catapult": [[9, 0, 0, "-", "catapult_backend"], [9, 0, 0, "-", "catapult_types"], [10, 0, 0, "-", "passes"]], "hls4ml.backends.catapult.catapult_backend": [[9, 1, 1, "", "CatapultBackend"]], "hls4ml.backends.catapult.catapult_backend.CatapultBackend": [[9, 2, 1, "", "build"], [9, 2, 1, "", "create_initial_config"], [9, 2, 1, "", "get_default_flow"], [9, 2, 1, "", "get_writer_flow"], [9, 2, 1, "", "init_base_layer"], [9, 2, 1, "", "init_conv1d"], [9, 2, 1, "", "init_conv2d"], [9, 2, 1, "", "init_dense"], [9, 2, 1, "", "init_depconv2d"], [9, 2, 1, "", "init_embed"], [9, 2, 1, "", "init_garnet"], [9, 2, 1, "", "init_garnet_stack"], [9, 2, 1, "", "init_global_pooling1d"], [9, 2, 1, "", "init_global_pooling2d"], [9, 2, 1, "", "init_gru"], [9, 2, 1, "", "init_lstm"], [9, 2, 1, "", "init_pooling1d"], [9, 2, 1, "", "init_pooling2d"], [9, 2, 1, "", "init_sepconv1d"], [9, 2, 1, "", "init_sepconv2d"], [9, 2, 1, "", "init_softmax"]], "hls4ml.backends.catapult.catapult_types": [[9, 1, 1, "", "CatapultArrayVariableConverter"], [9, 1, 1, "", "CatapultArrayVariableDefinition"], [9, 1, 1, "", "CatapultInplaceArrayVariableConverter"], [9, 1, 1, "", "CatapultInplaceArrayVariableDefinition"], [9, 1, 1, "", "CatapultInplaceStreamVariableConverter"], [9, 1, 1, "", "CatapultInplaceStreamVariableDefinition"], [9, 1, 1, "", "CatapultStreamVariableConverter"], [9, 1, 1, "", "CatapultStreamVariableDefinition"], [9, 1, 1, "", "CatapultStructMemberVariableConverter"], [9, 1, 1, "", "CatapultStructMemberVariableDefinition"]], "hls4ml.backends.catapult.catapult_types.CatapultArrayVariableDefinition": [[9, 2, 1, "", "definition_cpp"]], "hls4ml.backends.catapult.catapult_types.CatapultInplaceArrayVariableDefinition": [[9, 2, 1, "", "definition_cpp"]], "hls4ml.backends.catapult.catapult_types.CatapultInplaceStreamVariableDefinition": [[9, 2, 1, "", "definition_cpp"]], "hls4ml.backends.catapult.catapult_types.CatapultStreamVariableDefinition": [[9, 2, 1, "", "definition_cpp"]], "hls4ml.backends.catapult.catapult_types.CatapultStructMemberVariableDefinition": [[9, 2, 1, "", "definition_cpp"]], "hls4ml.backends.catapult.passes": [[10, 0, 0, "-", "broadcast_stream"], [10, 0, 0, "-", "conv_same_pad"], [10, 0, 0, "-", "conv_stream"], [10, 0, 0, "-", "convolution_templates"], [10, 0, 0, "-", "convolution_winograd"], [10, 0, 0, "-", "core_templates"], [10, 0, 0, "-", "fifo_depth_optimization"], [10, 0, 0, "-", "garnet_templates"], [10, 0, 0, "-", "merge_templates"], [10, 0, 0, "-", "pointwise"], [10, 0, 0, "-", "pooling_templates"], [10, 0, 0, "-", "quantization_templates"], [10, 0, 0, "-", "recurrent_templates"], [10, 0, 0, "-", "reshaping_templates"], [10, 0, 0, "-", "resource_strategy"], [10, 0, 0, "-", "transform_types"]], "hls4ml.backends.catapult.passes.broadcast_stream": [[10, 1, 1, "", "Broadcast"], [10, 1, 1, "", "BroadcastConfigTemplate"], [10, 1, 1, "", "BroadcastFunctionTemplate"], [10, 1, 1, "", "BroadcastStream"], [10, 3, 1, "", "register_broadcast_stream"]], "hls4ml.backends.catapult.passes.broadcast_stream.Broadcast": [[10, 2, 1, "", "initialize"]], "hls4ml.backends.catapult.passes.broadcast_stream.BroadcastConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.broadcast_stream.BroadcastFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.broadcast_stream.BroadcastStream": [[10, 2, 1, "", "match"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.conv_same_pad": [[10, 1, 1, "", "InsertZeroPaddingBeforeConv1D"], [10, 1, 1, "", "InsertZeroPaddingBeforeConv2D"]], "hls4ml.backends.catapult.passes.conv_same_pad.InsertZeroPaddingBeforeConv1D": [[10, 2, 1, "", "match"], [10, 4, 1, "", "name"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.conv_same_pad.InsertZeroPaddingBeforeConv2D": [[10, 2, 1, "", "match"], [10, 4, 1, "", "name"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.conv_stream": [[10, 1, 1, "", "GenerateConvStreamingInstructions"]], "hls4ml.backends.catapult.passes.conv_stream.GenerateConvStreamingInstructions": [[10, 2, 1, "", "match"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.convolution_templates": [[10, 1, 1, "", "Conv1DConfigTemplate"], [10, 1, 1, "", "Conv1DFunctionTemplate"], [10, 1, 1, "", "Conv2DConfigTemplate"], [10, 1, 1, "", "Conv2DFunctionTemplate"], [10, 1, 1, "", "DepthwiseConv1DFunctionTemplate"], [10, 1, 1, "", "DepthwiseConv2DFunctionTemplate"], [10, 1, 1, "", "SeparableConv1DConfigTemplate"], [10, 1, 1, "", "SeparableConv1DFunctionTemplate"], [10, 1, 1, "", "SeparableConv2DConfigTemplate"], [10, 1, 1, "", "SeparableConv2DFunctionTemplate"]], "hls4ml.backends.catapult.passes.convolution_templates.Conv1DConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.Conv1DFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.Conv2DConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.Conv2DFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.SeparableConv1DConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.SeparableConv1DFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.SeparableConv2DConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.SeparableConv2DFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_winograd": [[10, 1, 1, "", "ApplyWinogradKernelTransformation"]], "hls4ml.backends.catapult.passes.convolution_winograd.ApplyWinogradKernelTransformation": [[10, 2, 1, "", "match"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.core_templates": [[10, 1, 1, "", "ActivationConfigTemplate"], [10, 1, 1, "", "ActivationFunctionTemplate"], [10, 1, 1, "", "BatchNormalizationConfigTemplate"], [10, 1, 1, "", "BatchNormalizationFunctionTemplate"], [10, 1, 1, "", "DenseConfigTemplate"], [10, 1, 1, "", "DenseFunctionTemplate"], [10, 1, 1, "", "HardActivationConfigTemplate"], [10, 1, 1, "", "PReLUFunctionTemplate"], [10, 1, 1, "", "ParamActivationConfigTemplate"], [10, 1, 1, "", "ParametrizedActivationFunctionTemplate"], [10, 1, 1, "", "SoftmaxConfigTemplate"]], "hls4ml.backends.catapult.passes.core_templates.ActivationConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.ActivationFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.BatchNormalizationConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.BatchNormalizationFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.DenseConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.DenseFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.HardActivationConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.PReLUFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.ParamActivationConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.ParametrizedActivationFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.fifo_depth_optimization": [[10, 1, 1, "", "FifoDepthOptimization"], [10, 3, 1, "", "generate_max_depth_file"], [10, 3, 1, "", "get_vcd_data"], [10, 3, 1, "", "populate_values"], [10, 3, 1, "", "set_big_fifos"], [10, 3, 1, "", "set_fifo_depth"]], "hls4ml.backends.catapult.passes.fifo_depth_optimization.FifoDepthOptimization": [[10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.garnet_templates": [[10, 1, 1, "", "GarNetConfigTemplate"], [10, 1, 1, "", "GarNetFunctionTemplate"], [10, 1, 1, "", "GarNetStackConfigTemplate"], [10, 1, 1, "", "GarNetStackFunctionTemplate"]], "hls4ml.backends.catapult.passes.garnet_templates.GarNetConfigTemplate": [[10, 2, 1, "", "format"], [10, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.catapult.passes.garnet_templates.GarNetFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.garnet_templates.GarNetStackConfigTemplate": [[10, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.catapult.passes.merge_templates": [[10, 1, 1, "", "ConcatenateConfigTemplate"], [10, 1, 1, "", "DotConfigTemplate"], [10, 1, 1, "", "MergeConfigTemplate"], [10, 1, 1, "", "MergeFunctionTemplate"]], "hls4ml.backends.catapult.passes.merge_templates.ConcatenateConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.merge_templates.DotConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.merge_templates.MergeConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.merge_templates.MergeFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.pointwise": [[10, 1, 1, "", "OptimizePointwiseConv"], [10, 1, 1, "", "PointwiseConv1DConfigTemplate"], [10, 1, 1, "", "PointwiseConv1DFunctionTemplate"], [10, 1, 1, "", "PointwiseConv2DConfigTemplate"], [10, 1, 1, "", "PointwiseConv2DFunctionTemplate"], [10, 3, 1, "", "register_pointwise"]], "hls4ml.backends.catapult.passes.pointwise.OptimizePointwiseConv": [[10, 2, 1, "", "match"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.pooling_templates": [[10, 1, 1, "", "PoolingConfigTemplate"], [10, 1, 1, "", "PoolingFunctionTemplate"]], "hls4ml.backends.catapult.passes.pooling_templates.PoolingConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.pooling_templates.PoolingFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.quantization_templates": [[10, 1, 1, "", "ApplyAlphaConfigTemplate"], [10, 1, 1, "", "ApplyAlphaFunctionTemplate"]], "hls4ml.backends.catapult.passes.quantization_templates.ApplyAlphaConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.quantization_templates.ApplyAlphaFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.recurrent_templates": [[10, 1, 1, "", "RecurrentConfigTemplate"], [10, 1, 1, "", "RecurrentFunctionTemplate"]], "hls4ml.backends.catapult.passes.recurrent_templates.RecurrentConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.recurrent_templates.RecurrentFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates": [[10, 1, 1, "", "ResizeConfigTemplate"], [10, 1, 1, "", "ResizeFunctionTemplate"], [10, 1, 1, "", "TransposeConfigTemplate"], [10, 1, 1, "", "TransposeFunctionTemplate"], [10, 1, 1, "", "ZeroPaddingConfigTemplate"], [10, 1, 1, "", "ZeroPaddingFunctionTemplate"]], "hls4ml.backends.catapult.passes.reshaping_templates.ResizeConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates.ResizeFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates.TransposeConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates.TransposeFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates.ZeroPaddingConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates.ZeroPaddingFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.resource_strategy": [[10, 1, 1, "", "ApplyResourceStrategy"]], "hls4ml.backends.catapult.passes.resource_strategy.ApplyResourceStrategy": [[10, 2, 1, "", "match"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.transform_types": [[10, 1, 1, "", "TransformTypes"]], "hls4ml.backends.catapult.passes.transform_types.TransformTypes": [[10, 2, 1, "", "transform"]], "hls4ml.backends.fpga": [[11, 0, 0, "-", "fpga_backend"], [11, 0, 0, "-", "fpga_layers"], [11, 0, 0, "-", "fpga_types"], [12, 0, 0, "-", "passes"]], "hls4ml.backends.fpga.fpga_backend": [[11, 1, 1, "", "FPGABackend"]], "hls4ml.backends.fpga.fpga_backend.FPGABackend": [[11, 2, 1, "", "compile"], [11, 2, 1, "", "compute_conv1d_instructions"], [11, 2, 1, "", "compute_conv2d_instructions"], [11, 2, 1, "", "convert_precision_string"], [11, 2, 1, "", "create_layer_class"], [11, 2, 1, "", "generate_conv1d_line_buffer_fn"], [11, 2, 1, "", "generate_conv2d_line_buffer_fn"], [11, 2, 1, "", "get_closest_reuse_factor"], [11, 2, 1, "", "get_layer_mult_size"], [11, 2, 1, "", "get_valid_conv_partition_splits"], [11, 2, 1, "", "get_valid_reuse_factors"], [11, 2, 1, "", "get_writer_flow"], [11, 2, 1, "", "product_type"], [11, 2, 1, "", "set_closest_reuse_factor"], [11, 2, 1, "", "set_target_reuse_factor"], [11, 2, 1, "", "write"], [11, 2, 1, "", "write_hls"]], "hls4ml.backends.fpga.fpga_layers": [[11, 1, 1, "", "BatchNormalizationQuantizedTanh"], [11, 1, 1, "", "PointwiseConv1D"], [11, 1, 1, "", "PointwiseConv2D"]], "hls4ml.backends.fpga.fpga_layers.BatchNormalizationQuantizedTanh": [[11, 2, 1, "", "initialize"], [11, 2, 1, "", "set_thresholds"]], "hls4ml.backends.fpga.fpga_types": [[11, 1, 1, "", "ACFixedPrecisionDefinition"], [11, 1, 1, "", "ACIntegerPrecisionDefinition"], [11, 1, 1, "", "ACTypeConverter"], [11, 1, 1, "", "APFixedPrecisionDefinition"], [11, 1, 1, "", "APIntegerPrecisionDefinition"], [11, 1, 1, "", "APTypeConverter"], [11, 1, 1, "", "ArrayVariableConverter"], [11, 1, 1, "", "BramWeightVariableConverter"], [11, 1, 1, "", "CompressedTypeConverter"], [11, 1, 1, "", "ExponentTypeConverter"], [11, 1, 1, "", "FixedPrecisionConverter"], [11, 1, 1, "", "HLSTypeConverter"], [11, 1, 1, "", "InplaceStreamVariableConverter"], [11, 1, 1, "", "NamedTypeConverter"], [11, 1, 1, "", "PackedTypeConverter"], [11, 1, 1, "", "PrecisionConverter"], [11, 1, 1, "", "PrecisionDefinition"], [11, 1, 1, "", "StaticWeightVariableConverter"], [11, 1, 1, "", "StaticWeightVariableDefinition"], [11, 1, 1, "", "StreamVariableConverter"], [11, 1, 1, "", "StructMemberVariableConverter"], [11, 1, 1, "", "TypeDefinition"], [11, 1, 1, "", "TypePrecisionConverter"], [11, 1, 1, "", "VariableDefinition"]], "hls4ml.backends.fpga.fpga_types.ACFixedPrecisionDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ACIntegerPrecisionDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.APFixedPrecisionDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.APIntegerPrecisionDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ArrayVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.BramWeightVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.CompressedTypeConverter": [[11, 2, 1, "", "convert_precision"], [11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ExponentTypeConverter": [[11, 2, 1, "", "convert_precision"], [11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.FixedPrecisionConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.HLSTypeConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.InplaceStreamVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.NamedTypeConverter": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.PackedTypeConverter": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.PrecisionConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.PrecisionDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.StaticWeightVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.StaticWeightVariableDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.StreamVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.StructMemberVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.TypeDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.TypePrecisionConverter": [[11, 2, 1, "", "convert_precision"]], "hls4ml.backends.fpga.fpga_types.VariableDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.passes": [[12, 0, 0, "-", "bn_quant"], [12, 0, 0, "-", "bram_weights"], [12, 0, 0, "-", "clone"], [12, 0, 0, "-", "codegen"], [12, 0, 0, "-", "embedding"], [12, 0, 0, "-", "final_reshape"], [12, 0, 0, "-", "fix_softmax_table_size"], [12, 0, 0, "-", "hgq_proxy_model"], [12, 0, 0, "-", "inplace_parallel_reshape"], [12, 0, 0, "-", "inplace_stream_flatten"], [12, 0, 0, "-", "remove_softmax"], [12, 0, 0, "-", "repack_stream"], [12, 0, 0, "-", "xnor_pooling"]], "hls4ml.backends.fpga.passes.bn_quant": [[12, 1, 1, "", "BatchNormalizationQuantizedTanhConfigTemplate"], [12, 1, 1, "", "BatchNormalizationQuantizedTanhFunctionTemplate"], [12, 1, 1, "", "MergeBatchNormAndQuantizedTanh"], [12, 1, 1, "", "QuantizeDenseOutput"], [12, 3, 1, "", "register_bn_quant"]], "hls4ml.backends.fpga.passes.bn_quant.BatchNormalizationQuantizedTanhConfigTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.bn_quant.BatchNormalizationQuantizedTanhFunctionTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.bn_quant.MergeBatchNormAndQuantizedTanh": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.bn_quant.QuantizeDenseOutput": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.bram_weights": [[12, 1, 1, "", "RegisterBramWeights"]], "hls4ml.backends.fpga.passes.bram_weights.RegisterBramWeights": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.clone": [[12, 1, 1, "", "Clone"], [12, 1, 1, "", "CloneFunctionTemplate"], [12, 1, 1, "", "CloneOutput"], [12, 3, 1, "", "register_clone"]], "hls4ml.backends.fpga.passes.clone.Clone": [[12, 2, 1, "", "initialize"]], "hls4ml.backends.fpga.passes.clone.CloneFunctionTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.clone.CloneOutput": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.codegen": [[12, 1, 1, "", "GenerateConvIm2col"]], "hls4ml.backends.fpga.passes.codegen.GenerateConvIm2col": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.embedding": [[12, 1, 1, "", "EmbeddingConfigTemplate"], [12, 1, 1, "", "EmbeddingFunctionTemplate"]], "hls4ml.backends.fpga.passes.embedding.EmbeddingConfigTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.embedding.EmbeddingFunctionTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.final_reshape": [[12, 1, 1, "", "RemoveFinalReshape"]], "hls4ml.backends.fpga.passes.final_reshape.RemoveFinalReshape": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.fix_softmax_table_size": [[12, 1, 1, "", "FixSoftmaxTableSize"], [12, 3, 1, "", "register_softmax__table_size_fix"]], "hls4ml.backends.fpga.passes.fix_softmax_table_size.FixSoftmaxTableSize": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.hgq_proxy_model": [[12, 1, 1, "", "ProcessFixedPointQuantizerCall"], [12, 1, 1, "", "ProcessFixedPointQuantizerLayer"], [12, 1, 1, "", "ProcessUnaryLUTCall"], [12, 3, 1, "", "generate_mask_fn"], [12, 3, 1, "", "register_hgq_proxy_model"], [12, 3, 1, "", "to_acfixed"], [12, 3, 1, "", "to_apfixed"]], "hls4ml.backends.fpga.passes.hgq_proxy_model.ProcessFixedPointQuantizerCall": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.hgq_proxy_model.ProcessFixedPointQuantizerLayer": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.hgq_proxy_model.ProcessUnaryLUTCall": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.inplace_parallel_reshape": [[12, 1, 1, "", "InplaceParallelReshape"]], "hls4ml.backends.fpga.passes.inplace_parallel_reshape.InplaceParallelReshape": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.inplace_stream_flatten": [[12, 1, 1, "", "InplaceStreamFlatten"]], "hls4ml.backends.fpga.passes.inplace_stream_flatten.InplaceStreamFlatten": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.remove_softmax": [[12, 1, 1, "", "SkipSoftmax"]], "hls4ml.backends.fpga.passes.remove_softmax.SkipSoftmax": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.repack_stream": [[12, 1, 1, "", "Repack"], [12, 1, 1, "", "RepackFunctionTemplate"], [12, 1, 1, "", "ReshapeStream"], [12, 3, 1, "", "register_repack_stream"]], "hls4ml.backends.fpga.passes.repack_stream.Repack": [[12, 2, 1, "", "initialize"]], "hls4ml.backends.fpga.passes.repack_stream.RepackFunctionTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.repack_stream.ReshapeStream": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.xnor_pooling": [[12, 1, 1, "", "XnorPooling"]], "hls4ml.backends.fpga.passes.xnor_pooling.XnorPooling": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.quartus": [[14, 0, 0, "-", "passes"], [13, 0, 0, "-", "quartus_backend"], [13, 0, 0, "-", "quartus_types"]], "hls4ml.backends.quartus.passes": [[14, 0, 0, "-", "convolution_templates"], [14, 0, 0, "-", "convolution_winograd"], [14, 0, 0, "-", "core_templates"], [14, 0, 0, "-", "merge_templates"], [14, 0, 0, "-", "pointwise"], [14, 0, 0, "-", "pooling_templates"], [14, 0, 0, "-", "quantization_templates"], [14, 0, 0, "-", "recurrent_templates"], [14, 0, 0, "-", "reshaping_templates"], [14, 0, 0, "-", "resource_strategy"], [14, 0, 0, "-", "transform_types"]], "hls4ml.backends.quartus.passes.convolution_templates": [[14, 1, 1, "", "Conv1DConfigTemplate"], [14, 1, 1, "", "Conv1DFunctionTemplate"], [14, 1, 1, "", "Conv2DConfigTemplate"], [14, 1, 1, "", "Conv2DFunctionTemplate"], [14, 5, 1, "", "conv_mult_config_template"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv1DConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv1DFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv2DConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv2DFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_winograd": [[14, 1, 1, "", "ApplyWinogradKernelTransformation"]], "hls4ml.backends.quartus.passes.convolution_winograd.ApplyWinogradKernelTransformation": [[14, 2, 1, "", "match"], [14, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.core_templates": [[14, 1, 1, "", "ActivationConfigTemplate"], [14, 1, 1, "", "ActivationFunctionTemplate"], [14, 1, 1, "", "BatchNormalizationConfigTemplate"], [14, 1, 1, "", "BatchNormalizationFunctionTemplate"], [14, 1, 1, "", "DenseConfigTemplate"], [14, 1, 1, "", "DenseFunctionTemplate"], [14, 1, 1, "", "HardActivationConfigTemplate"], [14, 1, 1, "", "PReLUFunctionTemplate"], [14, 1, 1, "", "ParamActivationConfigTemplate"], [14, 1, 1, "", "ParametrizedActivationFunctionTemplate"], [14, 1, 1, "", "SoftmaxConfigTemplate"]], "hls4ml.backends.quartus.passes.core_templates.ActivationConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.ActivationFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.BatchNormalizationConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.BatchNormalizationFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.DenseConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.DenseFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.HardActivationConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.PReLUFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.ParamActivationConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.ParametrizedActivationFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates": [[14, 1, 1, "", "ConcatenateConfigTemplate"], [14, 1, 1, "", "DotConfigTemplate"], [14, 1, 1, "", "MergeConfigTemplate"], [14, 1, 1, "", "MergeFunctionTemplate"]], "hls4ml.backends.quartus.passes.merge_templates.ConcatenateConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.DotConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.MergeConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.MergeFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.pointwise": [[14, 1, 1, "", "OptimizePointwiseConv"], [14, 1, 1, "", "PointwiseConv1DConfigTemplate"], [14, 1, 1, "", "PointwiseConv1DFunctionTemplate"], [14, 1, 1, "", "PointwiseConv2DConfigTemplate"], [14, 1, 1, "", "PointwiseConv2DFunctionTemplate"], [14, 3, 1, "", "register_pointwise"]], "hls4ml.backends.quartus.passes.pointwise.OptimizePointwiseConv": [[14, 2, 1, "", "match"], [14, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.pooling_templates": [[14, 1, 1, "", "PoolingConfigTemplate"], [14, 1, 1, "", "PoolingFunctionTemplate"]], "hls4ml.backends.quartus.passes.pooling_templates.PoolingConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.pooling_templates.PoolingFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.quantization_templates": [[14, 1, 1, "", "ApplyAlphaConfigTemplate"], [14, 1, 1, "", "ApplyAlphaFunctionTemplate"]], "hls4ml.backends.quartus.passes.quantization_templates.ApplyAlphaConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.quantization_templates.ApplyAlphaFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates": [[14, 1, 1, "", "GRUConfigTemplate"], [14, 1, 1, "", "GRUFunctionTemplate"], [14, 1, 1, "", "LSTMConfigTemplate"], [14, 1, 1, "", "LSTMFunctionTemplate"], [14, 1, 1, "", "SimpleRNNConfigTemplate"], [14, 1, 1, "", "SimpleRNNFunctionTemplate"]], "hls4ml.backends.quartus.passes.recurrent_templates.GRUConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.GRUFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.LSTMConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.LSTMFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.SimpleRNNConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.SimpleRNNFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates": [[14, 1, 1, "", "ResizeConfigTemplate"], [14, 1, 1, "", "ResizeFunctionTemplate"], [14, 1, 1, "", "TransposeConfigTemplate"], [14, 1, 1, "", "TransposeFunctionTemplate"], [14, 1, 1, "", "ZeroPaddingConfigTemplate"], [14, 1, 1, "", "ZeroPaddingFunctionTemplate"]], "hls4ml.backends.quartus.passes.reshaping_templates.ResizeConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ResizeFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.TransposeConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.TransposeFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ZeroPaddingConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ZeroPaddingFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.resource_strategy": [[14, 1, 1, "", "ApplyResourceStrategy"]], "hls4ml.backends.quartus.passes.resource_strategy.ApplyResourceStrategy": [[14, 2, 1, "", "match"], [14, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.transform_types": [[14, 1, 1, "", "TransformTypes"]], "hls4ml.backends.quartus.passes.transform_types.TransformTypes": [[14, 2, 1, "", "transform"]], "hls4ml.backends.quartus.quartus_backend": [[13, 1, 1, "", "QuartusBackend"], [13, 3, 1, "", "chdir"]], "hls4ml.backends.quartus.quartus_backend.QuartusBackend": [[13, 2, 1, "", "build"], [13, 2, 1, "", "create_initial_config"], [13, 2, 1, "", "get_default_flow"], [13, 2, 1, "", "get_writer_flow"], [13, 2, 1, "", "init_activation"], [13, 2, 1, "", "init_base_layer"], [13, 2, 1, "", "init_conv1d"], [13, 2, 1, "", "init_conv2d"], [13, 2, 1, "", "init_dense"], [13, 2, 1, "", "init_embed"], [13, 2, 1, "", "init_gru"], [13, 2, 1, "", "init_lstm"], [13, 2, 1, "", "init_simple_rnn"], [13, 2, 1, "", "init_softmax"]], "hls4ml.backends.quartus.quartus_types": [[13, 1, 1, "", "QuartusArrayVariableConverter"], [13, 1, 1, "", "QuartusArrayVariableDefinition"], [13, 1, 1, "", "QuartusInplaceArrayVariableConverter"], [13, 1, 1, "", "QuartusInplaceArrayVariableDefinition"], [13, 1, 1, "", "QuartusInplaceStreamVariableConverter"], [13, 1, 1, "", "QuartusInplaceStreamVariableDefinition"], [13, 1, 1, "", "QuartusStreamVariableConverter"], [13, 1, 1, "", "QuartusStreamVariableDefinition"], [13, 1, 1, "", "QuartusStructMemberVariableConverter"], [13, 1, 1, "", "QuartusStructMemberVariableDefinition"]], "hls4ml.backends.quartus.quartus_types.QuartusArrayVariableDefinition": [[13, 2, 1, "", "definition_cpp"]], "hls4ml.backends.quartus.quartus_types.QuartusInplaceArrayVariableDefinition": [[13, 2, 1, "", "definition_cpp"]], "hls4ml.backends.quartus.quartus_types.QuartusInplaceStreamVariableDefinition": [[13, 2, 1, "", "definition_cpp"]], "hls4ml.backends.quartus.quartus_types.QuartusStreamVariableDefinition": [[13, 2, 1, "", "definition_cpp"]], "hls4ml.backends.quartus.quartus_types.QuartusStructMemberVariableDefinition": [[13, 2, 1, "", "definition_cpp"]], "hls4ml.backends.symbolic": [[16, 0, 0, "-", "passes"], [15, 0, 0, "-", "symbolic_backend"]], "hls4ml.backends.symbolic.passes": [[16, 0, 0, "-", "validate_lut"]], "hls4ml.backends.symbolic.passes.validate_lut": [[16, 1, 1, "", "ValidateUserLookupTable"]], "hls4ml.backends.symbolic.passes.validate_lut.ValidateUserLookupTable": [[16, 2, 1, "", "match"], [16, 2, 1, "", "transform"]], "hls4ml.backends.symbolic.symbolic_backend": [[15, 1, 1, "", "SymbolicExpressionBackend"]], "hls4ml.backends.symbolic.symbolic_backend.SymbolicExpressionBackend": [[15, 2, 1, "", "build"], [15, 2, 1, "", "create_initial_config"], [15, 2, 1, "", "get_default_flow"], [15, 2, 1, "", "get_writer_flow"]], "hls4ml.backends.template": [[8, 1, 1, "", "FunctionCallTemplate"], [8, 1, 1, "", "LayerConfigTemplate"], [8, 1, 1, "", "Template"]], "hls4ml.backends.template.FunctionCallTemplate": [[8, 2, 1, "", "transform"]], "hls4ml.backends.template.Template": [[8, 2, 1, "", "format"], [8, 2, 1, "", "get_name"], [8, 2, 1, "", "match"], [8, 2, 1, "", "transform"]], "hls4ml.backends.vitis": [[18, 0, 0, "-", "passes"], [17, 0, 0, "-", "vitis_backend"]], "hls4ml.backends.vitis.passes": [[18, 0, 0, "-", "feature_check"]], "hls4ml.backends.vitis.passes.feature_check": [[18, 1, 1, "", "ValidateConvImplementation"], [18, 1, 1, "", "ValidateStrategy"]], "hls4ml.backends.vitis.passes.feature_check.ValidateConvImplementation": [[18, 2, 1, "", "match"], [18, 2, 1, "", "transform"]], "hls4ml.backends.vitis.passes.feature_check.ValidateStrategy": [[18, 2, 1, "", "match"], [18, 2, 1, "", "transform"]], "hls4ml.backends.vitis.vitis_backend": [[17, 1, 1, "", "VitisBackend"]], "hls4ml.backends.vitis.vitis_backend.VitisBackend": [[17, 2, 1, "", "build"], [17, 2, 1, "", "create_initial_config"]], "hls4ml.backends.vivado": [[20, 0, 0, "-", "passes"], [19, 0, 0, "-", "vivado_backend"], [19, 0, 0, "-", "vivado_types"]], "hls4ml.backends.vivado.passes": [[20, 0, 0, "-", "broadcast_stream"], [20, 0, 0, "-", "conv_same_pad"], [20, 0, 0, "-", "conv_stream"], [20, 0, 0, "-", "convolution_templates"], [20, 0, 0, "-", "core_templates"], [20, 0, 0, "-", "fifo_depth_optimization"], [20, 0, 0, "-", "garnet_templates"], [20, 0, 0, "-", "merge_templates"], [20, 0, 0, "-", "pointwise"], [20, 0, 0, "-", "pooling_templates"], [20, 0, 0, "-", "quantization_templates"], [20, 0, 0, "-", "recurrent_templates"], [20, 0, 0, "-", "reshaping_templates"], [20, 0, 0, "-", "resource_strategy"], [20, 0, 0, "-", "transform_types"]], "hls4ml.backends.vivado.passes.broadcast_stream": [[20, 1, 1, "", "Broadcast"], [20, 1, 1, "", "BroadcastConfigTemplate"], [20, 1, 1, "", "BroadcastFunctionTemplate"], [20, 1, 1, "", "BroadcastStream"], [20, 3, 1, "", "register_broadcast_stream"]], "hls4ml.backends.vivado.passes.broadcast_stream.Broadcast": [[20, 2, 1, "", "initialize"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastStream": [[20, 2, 1, "", "match"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_same_pad": [[20, 1, 1, "", "InsertZeroPaddingBeforeConv1D"], [20, 1, 1, "", "InsertZeroPaddingBeforeConv2D"]], "hls4ml.backends.vivado.passes.conv_same_pad.InsertZeroPaddingBeforeConv1D": [[20, 2, 1, "", "match"], [20, 4, 1, "", "name"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_same_pad.InsertZeroPaddingBeforeConv2D": [[20, 2, 1, "", "match"], [20, 4, 1, "", "name"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_stream": [[20, 1, 1, "", "GenerateConvStreamingInstructions"]], "hls4ml.backends.vivado.passes.conv_stream.GenerateConvStreamingInstructions": [[20, 2, 1, "", "match"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.convolution_templates": [[20, 1, 1, "", "Conv1DConfigTemplate"], [20, 1, 1, "", "Conv1DFunctionTemplate"], [20, 1, 1, "", "Conv2DConfigTemplate"], [20, 1, 1, "", "Conv2DFunctionTemplate"], [20, 1, 1, "", "DepthwiseConv1DFunctionTemplate"], [20, 1, 1, "", "DepthwiseConv2DFunctionTemplate"], [20, 1, 1, "", "SeparableConv1DConfigTemplate"], [20, 1, 1, "", "SeparableConv1DFunctionTemplate"], [20, 1, 1, "", "SeparableConv2DConfigTemplate"], [20, 1, 1, "", "SeparableConv2DFunctionTemplate"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv1DConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv1DFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv2DConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv2DFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv1DConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv1DFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv2DConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv2DFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates": [[20, 1, 1, "", "ActivationConfigTemplate"], [20, 1, 1, "", "ActivationFunctionTemplate"], [20, 1, 1, "", "BatchNormalizationConfigTemplate"], [20, 1, 1, "", "BatchNormalizationFunctionTemplate"], [20, 1, 1, "", "DenseConfigTemplate"], [20, 1, 1, "", "DenseFunctionTemplate"], [20, 1, 1, "", "HardActivationConfigTemplate"], [20, 1, 1, "", "PReLUFunctionTemplate"], [20, 1, 1, "", "ParamActivationConfigTemplate"], [20, 1, 1, "", "ParametrizedActivationFunctionTemplate"], [20, 1, 1, "", "SoftmaxConfigTemplate"]], "hls4ml.backends.vivado.passes.core_templates.ActivationConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.ActivationFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.BatchNormalizationConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.BatchNormalizationFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.DenseConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.DenseFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.HardActivationConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.PReLUFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.ParamActivationConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.ParametrizedActivationFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.fifo_depth_optimization": [[20, 1, 1, "", "FifoDepthOptimization"], [20, 3, 1, "", "generate_max_depth_file"], [20, 3, 1, "", "get_vcd_data"], [20, 3, 1, "", "populate_values"], [20, 3, 1, "", "set_big_fifos"], [20, 3, 1, "", "set_fifo_depth"]], "hls4ml.backends.vivado.passes.fifo_depth_optimization.FifoDepthOptimization": [[20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.garnet_templates": [[20, 1, 1, "", "GarNetConfigTemplate"], [20, 1, 1, "", "GarNetFunctionTemplate"], [20, 1, 1, "", "GarNetStackConfigTemplate"], [20, 1, 1, "", "GarNetStackFunctionTemplate"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetConfigTemplate": [[20, 2, 1, "", "format"], [20, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetStackConfigTemplate": [[20, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.vivado.passes.merge_templates": [[20, 1, 1, "", "ConcatenateConfigTemplate"], [20, 1, 1, "", "DotConfigTemplate"], [20, 1, 1, "", "MergeConfigTemplate"], [20, 1, 1, "", "MergeFunctionTemplate"]], "hls4ml.backends.vivado.passes.merge_templates.ConcatenateConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.DotConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.MergeConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.MergeFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.pointwise": [[20, 1, 1, "", "OptimizePointwiseConv"], [20, 1, 1, "", "PointwiseConv1DConfigTemplate"], [20, 1, 1, "", "PointwiseConv1DFunctionTemplate"], [20, 1, 1, "", "PointwiseConv2DConfigTemplate"], [20, 1, 1, "", "PointwiseConv2DFunctionTemplate"], [20, 3, 1, "", "register_pointwise"]], "hls4ml.backends.vivado.passes.pointwise.OptimizePointwiseConv": [[20, 2, 1, "", "match"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.pooling_templates": [[20, 1, 1, "", "PoolingConfigTemplate"], [20, 1, 1, "", "PoolingFunctionTemplate"]], "hls4ml.backends.vivado.passes.pooling_templates.PoolingConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.pooling_templates.PoolingFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.quantization_templates": [[20, 1, 1, "", "ApplyAlphaConfigTemplate"], [20, 1, 1, "", "ApplyAlphaFunctionTemplate"]], "hls4ml.backends.vivado.passes.quantization_templates.ApplyAlphaConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.quantization_templates.ApplyAlphaFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.recurrent_templates": [[20, 1, 1, "", "RecurrentConfigTemplate"], [20, 1, 1, "", "RecurrentFunctionTemplate"]], "hls4ml.backends.vivado.passes.recurrent_templates.RecurrentConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.recurrent_templates.RecurrentFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates": [[20, 1, 1, "", "ResizeConfigTemplate"], [20, 1, 1, "", "ResizeFunctionTemplate"], [20, 1, 1, "", "TransposeConfigTemplate"], [20, 1, 1, "", "TransposeFunctionTemplate"], [20, 1, 1, "", "ZeroPaddingConfigTemplate"], [20, 1, 1, "", "ZeroPaddingFunctionTemplate"]], "hls4ml.backends.vivado.passes.reshaping_templates.ResizeConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ResizeFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.TransposeConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.TransposeFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ZeroPaddingConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ZeroPaddingFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.resource_strategy": [[20, 1, 1, "", "ApplyResourceStrategy"]], "hls4ml.backends.vivado.passes.resource_strategy.ApplyResourceStrategy": [[20, 2, 1, "", "match"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.transform_types": [[20, 1, 1, "", "TransformTypes"]], "hls4ml.backends.vivado.passes.transform_types.TransformTypes": [[20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.vivado_backend": [[19, 1, 1, "", "VivadoBackend"]], "hls4ml.backends.vivado.vivado_backend.VivadoBackend": [[19, 2, 1, "", "build"], [19, 2, 1, "", "create_initial_config"], [19, 2, 1, "", "get_default_flow"], [19, 2, 1, "", "get_writer_flow"], [19, 2, 1, "", "init_base_layer"], [19, 2, 1, "", "init_conv1d"], [19, 2, 1, "", "init_conv2d"], [19, 2, 1, "", "init_dense"], [19, 2, 1, "", "init_depconv1d"], [19, 2, 1, "", "init_depconv2d"], [19, 2, 1, "", "init_embed"], [19, 2, 1, "", "init_garnet"], [19, 2, 1, "", "init_garnet_stack"], [19, 2, 1, "", "init_gru"], [19, 2, 1, "", "init_lstm"], [19, 2, 1, "", "init_pooling1d"], [19, 2, 1, "", "init_pooling2d"], [19, 2, 1, "", "init_sepconv1d"], [19, 2, 1, "", "init_sepconv2d"], [19, 2, 1, "", "init_softmax"]], "hls4ml.backends.vivado.vivado_types": [[19, 1, 1, "", "VivadoArrayVariableConverter"], [19, 1, 1, "", "VivadoArrayVariableDefinition"], [19, 1, 1, "", "VivadoInplaceArrayVariableConverter"], [19, 1, 1, "", "VivadoInplaceArrayVariableDefinition"], [19, 1, 1, "", "VivadoInplaceStreamVariableConverter"], [19, 1, 1, "", "VivadoInplaceStreamVariableDefinition"], [19, 1, 1, "", "VivadoStreamVariableConverter"], [19, 1, 1, "", "VivadoStreamVariableDefinition"]], "hls4ml.backends.vivado.vivado_types.VivadoArrayVariableDefinition": [[19, 2, 1, "", "definition_cpp"]], "hls4ml.backends.vivado.vivado_types.VivadoInplaceArrayVariableDefinition": [[19, 2, 1, "", "definition_cpp"]], "hls4ml.backends.vivado.vivado_types.VivadoInplaceStreamVariableDefinition": [[19, 2, 1, "", "definition_cpp"]], "hls4ml.backends.vivado.vivado_types.VivadoStreamVariableDefinition": [[19, 2, 1, "", "definition_cpp"]], "hls4ml.backends.vivado_accelerator": [[22, 0, 0, "-", "passes"], [21, 0, 0, "-", "vivado_accelerator_backend"], [21, 0, 0, "-", "vivado_accelerator_config"]], "hls4ml.backends.vivado_accelerator.passes": [[22, 0, 0, "-", "fifo_depth_optimization"]], "hls4ml.backends.vivado_accelerator.passes.fifo_depth_optimization": [[22, 1, 1, "", "FifoDepthOptimization"]], "hls4ml.backends.vivado_accelerator.passes.fifo_depth_optimization.FifoDepthOptimization": [[22, 2, 1, "", "transform"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_backend": [[21, 1, 1, "", "VivadoAcceleratorBackend"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_backend.VivadoAcceleratorBackend": [[21, 2, 1, "", "build"], [21, 2, 1, "", "create_initial_config"], [21, 2, 1, "", "get_default_flow"], [21, 2, 1, "", "get_writer_flow"], [21, 2, 1, "", "make_xclbin"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_config": [[21, 1, 1, "", "VivadoAcceleratorConfig"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_config.VivadoAcceleratorConfig": [[21, 2, 1, "", "get_board"], [21, 2, 1, "", "get_board_info"], [21, 2, 1, "", "get_clock_period"], [21, 2, 1, "", "get_corrected_types"], [21, 2, 1, "", "get_driver"], [21, 2, 1, "", "get_driver_file"], [21, 2, 1, "", "get_driver_path"], [21, 2, 1, "", "get_input_type"], [21, 2, 1, "", "get_interface"], [21, 2, 1, "", "get_io_bitwidth"], [21, 2, 1, "", "get_krnl_rtl_src_dir"], [21, 2, 1, "", "get_output_type"], [21, 2, 1, "", "get_part"], [21, 2, 1, "", "get_platform"], [21, 2, 1, "", "get_tcl_file_path"]], "hls4ml.converters": [[23, 3, 1, "", "convert_from_config"], [23, 3, 1, "", "convert_from_keras_model"], [23, 3, 1, "", "convert_from_onnx_model"], [23, 3, 1, "", "convert_from_pytorch_model"], [23, 3, 1, "", "convert_from_symbolic_expression"], [24, 0, 0, "-", "keras"], [23, 0, 0, "-", "keras_to_hls"], [25, 0, 0, "-", "onnx"], [23, 0, 0, "-", "onnx_to_hls"], [23, 3, 1, "", "parse_yaml_config"], [26, 0, 0, "-", "pytorch"], [23, 0, 0, "-", "utils"]], "hls4ml.converters.keras": [[24, 0, 0, "-", "convolution"], [24, 0, 0, "-", "core"], [24, 0, 0, "-", "graph"], [24, 0, 0, "-", "hgq_proxy_model"], [24, 0, 0, "-", "merge"], [24, 0, 0, "-", "model"], [24, 0, 0, "-", "pooling"], [24, 0, 0, "-", "qkeras"], [24, 0, 0, "-", "recurrent"], [24, 0, 0, "-", "reshape"], [24, 0, 0, "-", "reshaping"]], "hls4ml.converters.keras.convolution": [[24, 3, 1, "", "parse_conv1d_layer"], [24, 3, 1, "", "parse_conv2d_layer"]], "hls4ml.converters.keras.core": [[24, 3, 1, "", "parse_activation_layer"], [24, 3, 1, "", "parse_batchnorm_layer"], [24, 3, 1, "", "parse_dense_layer"], [24, 3, 1, "", "parse_embedding_layer"], [24, 3, 1, "", "parse_input_layer"]], "hls4ml.converters.keras.graph": [[24, 3, 1, "", "parse_garnet_layer"]], "hls4ml.converters.keras.hgq_proxy_model": [[24, 3, 1, "", "fixedpoint_quantizer_handler"], [24, 3, 1, "", "unary_lut_keras_handler"]], "hls4ml.converters.keras.merge": [[24, 3, 1, "", "parse_merge_layer"]], "hls4ml.converters.keras.model": [[24, 3, 1, "", "parse_model_layer"]], "hls4ml.converters.keras.pooling": [[24, 3, 1, "", "parse_global_pooling_layer"], [24, 3, 1, "", "parse_pooling_layer"]], "hls4ml.converters.keras.qkeras": [[24, 3, 1, "", "get_quantizer_from_config"], [24, 3, 1, "", "parse_qactivation_layer"], [24, 3, 1, "", "parse_qbatchnorm_layer"], [24, 3, 1, "", "parse_qconv2dbatchnorm_layer"], [24, 3, 1, "", "parse_qconv_layer"], [24, 3, 1, "", "parse_qdense_layer"], [24, 3, 1, "", "parse_qdepthwiseqconv_layer"], [24, 3, 1, "", "parse_qrnn_layer"], [24, 3, 1, "", "parse_qsepconv_layer"]], "hls4ml.converters.keras.recurrent": [[24, 3, 1, "", "parse_rnn_layer"]], "hls4ml.converters.keras.reshape": [[24, 3, 1, "", "parse_flatten_layer"], [24, 3, 1, "", "parse_permute_layer"], [24, 3, 1, "", "parse_reshape_layer"], [24, 3, 1, "", "parse_upsampling1d_layer"], [24, 3, 1, "", "parse_upsampling2d_layer"]], "hls4ml.converters.keras.reshaping": [[24, 3, 1, "", "parse_zeropadding1d_layer"], [24, 3, 1, "", "parse_zeropadding2d_layer"]], "hls4ml.converters.keras_to_hls": [[23, 1, 1, "", "KerasFileReader"], [23, 1, 1, "", "KerasModelReader"], [23, 1, 1, "", "KerasNestedFileReader"], [23, 1, 1, "", "KerasReader"], [23, 3, 1, "", "get_model_arch"], [23, 3, 1, "", "get_supported_keras_layers"], [23, 3, 1, "", "get_weights_data"], [23, 3, 1, "", "keras_handler"], [23, 3, 1, "", "keras_to_hls"], [23, 3, 1, "", "parse_default_keras_layer"], [23, 3, 1, "", "parse_keras_model"], [23, 3, 1, "", "register_keras_layer_handler"]], "hls4ml.converters.keras_to_hls.KerasFileReader": [[23, 2, 1, "", "get_weights_data"]], "hls4ml.converters.keras_to_hls.KerasModelReader": [[23, 2, 1, "", "get_weights_data"]], "hls4ml.converters.keras_to_hls.KerasReader": [[23, 2, 1, "", "get_weights_data"]], "hls4ml.converters.onnx": [[25, 0, 0, "-", "convolution"], [25, 0, 0, "-", "core"], [25, 0, 0, "-", "merge"], [25, 0, 0, "-", "pooling"], [25, 0, 0, "-", "reshape"]], "hls4ml.converters.onnx.convolution": [[25, 3, 1, "", "parse_conv_layer"]], "hls4ml.converters.onnx.core": [[25, 3, 1, "", "parse_activation_layer"], [25, 3, 1, "", "parse_batchnorm_layer"], [25, 3, 1, "", "parse_gemm_layer"]], "hls4ml.converters.onnx.merge": [[25, 3, 1, "", "parse_merge_layer"]], "hls4ml.converters.onnx.pooling": [[25, 3, 1, "", "parse_global_pooling_layer"], [25, 3, 1, "", "parse_pool_layer"]], "hls4ml.converters.onnx.reshape": [[25, 3, 1, "", "parse_reshape_layer"], [25, 3, 1, "", "parse_transpose_layer"]], "hls4ml.converters.onnx_to_hls": [[23, 1, 1, "", "ONNXDataReader"], [23, 3, 1, "", "compute_pads_1d"], [23, 3, 1, "", "compute_pads_2d"], [23, 3, 1, "", "get_input_shape"], [23, 3, 1, "", "get_onnx_attribute"], [23, 3, 1, "", "get_onnx_input_name"], [23, 3, 1, "", "get_out_layer_name"], [23, 3, 1, "", "get_supported_onnx_layers"], [23, 3, 1, "", "onnx_handler"], [23, 3, 1, "", "onnx_to_hls"], [23, 3, 1, "", "register_onnx_layer_handler"], [23, 3, 1, "", "replace_char_inconsitency"], [23, 3, 1, "", "sanitize_layer_name"]], "hls4ml.converters.onnx_to_hls.ONNXDataReader": [[23, 2, 1, "", "add_input"], [23, 2, 1, "", "get_weights_data"]], "hls4ml.converters.utils": [[23, 3, 1, "", "compute_padding_1d"], [23, 3, 1, "", "compute_padding_1d_pytorch"], [23, 3, 1, "", "compute_padding_2d"], [23, 3, 1, "", "compute_padding_2d_pytorch"], [23, 3, 1, "", "parse_data_format"]], "hls4ml.model": [[27, 0, 0, "-", "attributes"], [28, 0, 0, "-", "flow"], [27, 0, 0, "-", "graph"], [27, 0, 0, "-", "layers"], [29, 0, 0, "-", "optimizer"], [27, 0, 0, "-", "quantizers"], [27, 0, 0, "-", "types"]], "hls4ml.model.attributes": [[27, 1, 1, "", "Attribute"], [27, 1, 1, "", "AttributeDict"], [27, 1, 1, "", "AttributeMapping"], [27, 1, 1, "", "ChoiceAttribute"], [27, 1, 1, "", "CodeAttrubute"], [27, 1, 1, "", "CodeMapping"], [27, 1, 1, "", "ConfigurableAttribute"], [27, 1, 1, "", "TypeAttribute"], [27, 1, 1, "", "TypeMapping"], [27, 1, 1, "", "VariableMapping"], [27, 1, 1, "", "WeightAttribute"], [27, 1, 1, "", "WeightMapping"]], "hls4ml.model.attributes.Attribute": [[27, 6, 1, "", "config_name"], [27, 2, 1, "", "validate_value"]], "hls4ml.model.attributes.ChoiceAttribute": [[27, 2, 1, "", "validate_value"]], "hls4ml.model.flow": [[28, 0, 0, "-", "flow"]], "hls4ml.model.flow.flow": [[28, 1, 1, "", "DynamicFlow"], [28, 1, 1, "", "Flow"], [28, 3, 1, "", "get_available_flows"], [28, 3, 1, "", "get_backend_flows"], [28, 3, 1, "", "get_flow"], [28, 3, 1, "", "register_flow"], [28, 3, 1, "", "update_flow"]], "hls4ml.model.flow.flow.DynamicFlow": [[28, 6, 1, "", "optimizers"]], "hls4ml.model.flow.flow.Flow": [[28, 6, 1, "", "optimizers"]], "hls4ml.model.graph": [[27, 1, 1, "", "HLSConfig"], [27, 1, 1, "", "ModelGraph"]], "hls4ml.model.graph.HLSConfig": [[27, 2, 1, "", "get_bram_size"], [27, 2, 1, "", "get_compression"], [27, 2, 1, "", "get_config_value"], [27, 2, 1, "", "get_conv_implementation"], [27, 2, 1, "", "get_layer_config"], [27, 2, 1, "", "get_layer_config_value"], [27, 2, 1, "", "get_output_dir"], [27, 2, 1, "", "get_precision"], [27, 2, 1, "", "get_project_dir"], [27, 2, 1, "", "get_project_name"], [27, 2, 1, "", "get_reuse_factor"], [27, 2, 1, "", "get_strategy"], [27, 2, 1, "", "get_target_cycles"], [27, 2, 1, "", "get_writer_config"], [27, 2, 1, "", "is_resource_strategy"], [27, 2, 1, "", "parse_name_config"], [27, 2, 1, "", "set_name_config"]], "hls4ml.model.graph.ModelGraph": [[27, 2, 1, "", "apply_flow"], [27, 2, 1, "", "build"], [27, 2, 1, "", "compile"], [27, 2, 1, "", "get_input_variables"], [27, 2, 1, "", "get_layer_output_variable"], [27, 2, 1, "", "get_layers"], [27, 2, 1, "", "get_output_variables"], [27, 2, 1, "", "get_weight_variables"], [27, 2, 1, "", "insert_node"], [27, 2, 1, "", "make_node"], [27, 2, 1, "", "next_layer"], [27, 2, 1, "", "predict"], [27, 2, 1, "", "register_output_variable"], [27, 2, 1, "", "remove_node"], [27, 2, 1, "", "replace_node"], [27, 2, 1, "", "split_node"], [27, 2, 1, "", "trace"], [27, 2, 1, "", "write"]], "hls4ml.model.layers": [[27, 1, 1, "", "Activation"], [27, 1, 1, "", "BatchNormalization"], [27, 1, 1, "", "BiasAdd"], [27, 1, 1, "", "Concatenate"], [27, 1, 1, "", "Conv1D"], [27, 1, 1, "", "Conv2D"], [27, 1, 1, "", "Conv2DBatchnorm"], [27, 1, 1, "", "Dense"], [27, 1, 1, "", "DepthwiseConv1D"], [27, 1, 1, "", "DepthwiseConv2D"], [27, 1, 1, "", "Dot"], [27, 1, 1, "", "Embedding"], [27, 1, 1, "", "GRU"], [27, 1, 1, "", "GarNet"], [27, 1, 1, "", "GarNetStack"], [27, 1, 1, "", "GlobalPooling1D"], [27, 1, 1, "", "GlobalPooling2D"], [27, 1, 1, "", "HardActivation"], [27, 1, 1, "", "Input"], [27, 1, 1, "", "LSTM"], [27, 1, 1, "", "Layer"], [27, 1, 1, "", "LayerGroup"], [27, 1, 1, "", "Merge"], [27, 1, 1, "", "PReLU"], [27, 1, 1, "", "ParametrizedActivation"], [27, 1, 1, "", "Pooling1D"], [27, 1, 1, "", "Pooling2D"], [27, 1, 1, "", "Reshape"], [27, 1, 1, "", "Resize"], [27, 1, 1, "", "SeparableConv1D"], [27, 1, 1, "", "SeparableConv2D"], [27, 1, 1, "", "SimpleRNN"], [27, 1, 1, "", "Softmax"], [27, 1, 1, "", "SymbolicExpression"], [27, 1, 1, "", "TernaryTanh"], [27, 1, 1, "", "Transpose"], [27, 1, 1, "", "ZeroPadding1D"], [27, 1, 1, "", "ZeroPadding2D"], [27, 1, 1, "", "classproperty"], [27, 3, 1, "", "register_layer"]], "hls4ml.model.layers.Activation": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.BatchNormalization": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.BiasAdd": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Concatenate": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv2DBatchnorm": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Dense": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.DepthwiseConv1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.DepthwiseConv2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Dot": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Embedding": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.GRU": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.GarNet": [[27, 2, 1, "", "initialize"], [27, 4, 1, "", "ref_impl"]], "hls4ml.model.layers.GlobalPooling1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.GlobalPooling2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.HardActivation": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Input": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.LSTM": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Layer": [[27, 2, 1, "", "add_bias"], [27, 2, 1, "", "add_output_variable"], [27, 2, 1, "", "add_weights"], [27, 2, 1, "", "add_weights_variable"], [27, 6, 1, "", "class_name"], [27, 4, 1, "", "expected_attributes"], [27, 2, 1, "", "get_attr"], [27, 2, 1, "", "get_input_node"], [27, 2, 1, "", "get_input_variable"], [27, 2, 1, "", "get_layer_precision"], [27, 2, 1, "", "get_output_nodes"], [27, 2, 1, "", "get_output_use_map"], [27, 2, 1, "", "get_output_variable"], [27, 2, 1, "", "get_variables"], [27, 2, 1, "", "get_weights"], [27, 2, 1, "", "initialize"], [27, 2, 1, "", "set_attr"]], "hls4ml.model.layers.LayerGroup": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Merge": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.PReLU": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.ParametrizedActivation": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Pooling1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Pooling2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Reshape": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Resize": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.SeparableConv1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.SeparableConv2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.SimpleRNN": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Softmax": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.SymbolicExpression": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.TernaryTanh": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Transpose": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.ZeroPadding1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.ZeroPadding2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.optimizer": [[29, 0, 0, "-", "optimizer"], [30, 0, 0, "-", "passes"]], "hls4ml.model.optimizer.optimizer": [[29, 1, 1, "", "ConfigurableOptimizerPass"], [29, 1, 1, "", "GlobalOptimizerPass"], [29, 1, 1, "", "LayerOptimizerPass"], [29, 1, 1, "", "ModelOptimizerPass"], [29, 1, 1, "", "OptimizerPass"], [29, 1, 1, "", "WrappedOptimizerPass"], [29, 3, 1, "", "extract_optimizers_from_object"], [29, 3, 1, "", "extract_optimizers_from_path"], [29, 3, 1, "", "get_available_passes"], [29, 3, 1, "", "get_backend_passes"], [29, 3, 1, "", "get_optimizer"], [29, 3, 1, "", "layer_optimizer"], [29, 3, 1, "", "model_optimizer"], [29, 3, 1, "", "optimize_model"], [29, 3, 1, "", "optimizer_pass"], [29, 3, 1, "", "register_pass"]], "hls4ml.model.optimizer.optimizer.ConfigurableOptimizerPass": [[29, 2, 1, "", "configure"], [29, 2, 1, "", "get_config"]], "hls4ml.model.optimizer.optimizer.GlobalOptimizerPass": [[29, 2, 1, "", "match"]], "hls4ml.model.optimizer.optimizer.ModelOptimizerPass": [[29, 2, 1, "", "transform"]], "hls4ml.model.optimizer.optimizer.OptimizerPass": [[29, 2, 1, "", "get_name"], [29, 2, 1, "", "match"], [29, 4, 1, "", "name"], [29, 2, 1, "", "transform"]], "hls4ml.model.optimizer.optimizer.WrappedOptimizerPass": [[29, 2, 1, "", "get_name"], [29, 2, 1, "", "match"], [29, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes": [[30, 0, 0, "-", "bn_fuse"], [30, 0, 0, "-", "convert_to_channels_last"], [30, 0, 0, "-", "expand_layer_group"], [30, 0, 0, "-", "fuse_biasadd"], [30, 0, 0, "-", "hgq_proxy_model"], [30, 0, 0, "-", "infer_precision"], [30, 0, 0, "-", "multi_dense"], [30, 0, 0, "-", "nop"], [30, 0, 0, "-", "qkeras"], [30, 0, 0, "-", "seperable_to_dw_conv"], [30, 0, 0, "-", "stamp"], [30, 0, 0, "-", "transpose_opt"]], "hls4ml.model.optimizer.passes.bn_fuse": [[30, 1, 1, "", "FuseBatchNormalization"]], "hls4ml.model.optimizer.passes.bn_fuse.FuseBatchNormalization": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.convert_to_channels_last": [[30, 1, 1, "", "ChannelsLastConverter"], [30, 1, 1, "", "RemoveTransposeBeforeFlatten"]], "hls4ml.model.optimizer.passes.convert_to_channels_last.ChannelsLastConverter": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.convert_to_channels_last.RemoveTransposeBeforeFlatten": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.expand_layer_group": [[30, 1, 1, "", "ExpandLayerGroup"]], "hls4ml.model.optimizer.passes.expand_layer_group.ExpandLayerGroup": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.fuse_biasadd": [[30, 1, 1, "", "FuseBiasAdd"]], "hls4ml.model.optimizer.passes.fuse_biasadd.FuseBiasAdd": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.hgq_proxy_model": [[30, 1, 1, "", "EnforceProxyModelEmbeddedConfig"], [30, 1, 1, "", "FixedPointQuantizer"], [30, 1, 1, "", "UnaryLUT"], [30, 3, 1, "", "register_hgq_proxy_model"], [30, 3, 1, "", "to_hls4ml_fixed"], [30, 3, 1, "", "userconf_ifdef"]], "hls4ml.model.optimizer.passes.hgq_proxy_model.EnforceProxyModelEmbeddedConfig": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.hgq_proxy_model.FixedPointQuantizer": [[30, 2, 1, "", "initialize"]], "hls4ml.model.optimizer.passes.hgq_proxy_model.UnaryLUT": [[30, 2, 1, "", "initialize"]], "hls4ml.model.optimizer.passes.infer_precision": [[30, 1, 1, "", "InferPrecisionTypes"]], "hls4ml.model.optimizer.passes.infer_precision.InferPrecisionTypes": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.multi_dense": [[30, 1, 1, "", "ReplaceMultidimensionalDenseWithConv"]], "hls4ml.model.optimizer.passes.multi_dense.ReplaceMultidimensionalDenseWithConv": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.nop": [[30, 1, 1, "", "EliminateLinearActivation"]], "hls4ml.model.optimizer.passes.nop.EliminateLinearActivation": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras": [[30, 1, 1, "", "ApplyAlpha"], [30, 1, 1, "", "ExtractTernaryThreshold"], [30, 1, 1, "", "FuseConsecutiveBatchNormalization"], [30, 1, 1, "", "OutputRoundingSaturationMode"], [30, 1, 1, "", "QKerasFactorizeAlpha"], [30, 3, 1, "", "register_qkeras"]], "hls4ml.model.optimizer.passes.qkeras.ApplyAlpha": [[30, 2, 1, "", "add_bias"], [30, 2, 1, "", "add_weights"], [30, 2, 1, "", "initialize"]], "hls4ml.model.optimizer.passes.qkeras.ExtractTernaryThreshold": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.FuseConsecutiveBatchNormalization": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.OutputRoundingSaturationMode": [[30, 2, 1, "", "match"], [30, 2, 1, "", "precision_string_modify"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.QKerasFactorizeAlpha": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.seperable_to_dw_conv": [[30, 1, 1, "", "SeperableToDepthwiseAndConv"]], "hls4ml.model.optimizer.passes.seperable_to_dw_conv.SeperableToDepthwiseAndConv": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.stamp": [[30, 1, 1, "", "MakeStamp"]], "hls4ml.model.optimizer.passes.stamp.MakeStamp": [[30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.transpose_opt": [[30, 1, 1, "", "RemoveNopTranspose"], [30, 1, 1, "", "RemoveSingleChannelTranspose"]], "hls4ml.model.optimizer.passes.transpose_opt.RemoveNopTranspose": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.transpose_opt.RemoveSingleChannelTranspose": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.quantizers": [[27, 1, 1, "", "BinaryQuantizer"], [27, 1, 1, "", "QKerasBinaryQuantizer"], [27, 1, 1, "", "QKerasPO2Quantizer"], [27, 1, 1, "", "QKerasQuantizer"], [27, 1, 1, "", "Quantizer"], [27, 1, 1, "", "TernaryQuantizer"]], "hls4ml.model.types": [[27, 1, 1, "", "CompressedType"], [27, 1, 1, "", "CompressedWeightVariable"], [27, 1, 1, "", "ExponentPrecisionType"], [27, 1, 1, "", "ExponentType"], [27, 1, 1, "", "ExponentWeightVariable"], [27, 1, 1, "", "FixedPrecisionType"], [27, 1, 1, "", "InplaceTensorVariable"], [27, 1, 1, "", "IntegerPrecisionType"], [27, 1, 1, "", "NamedType"], [27, 1, 1, "", "PackedType"], [27, 1, 1, "", "PrecisionType"], [27, 1, 1, "", "RoundingMode"], [27, 1, 1, "", "SaturationMode"], [27, 1, 1, "", "Source"], [27, 1, 1, "", "TensorVariable"], [27, 1, 1, "", "UnspecifiedPrecisionType"], [27, 1, 1, "", "Variable"], [27, 1, 1, "", "WeightVariable"], [27, 1, 1, "", "XnorPrecisionType"], [27, 3, 1, "", "find_minimum_width"]], "hls4ml.model.types.CompressedWeightVariable": [[27, 2, 1, "", "next"]], "hls4ml.model.types.ExponentWeightVariable": [[27, 2, 1, "", "next"]], "hls4ml.model.types.FixedPrecisionType": [[27, 6, 1, "", "fractional"], [27, 6, 1, "", "rounding_mode"], [27, 6, 1, "", "saturation_bits"], [27, 6, 1, "", "saturation_mode"]], "hls4ml.model.types.IntegerPrecisionType": [[27, 6, 1, "", "fractional"], [27, 6, 1, "", "integer"], [27, 6, 1, "", "rounding_mode"], [27, 6, 1, "", "saturation_bits"], [27, 6, 1, "", "saturation_mode"]], "hls4ml.model.types.RoundingMode": [[27, 4, 1, "", "RND"], [27, 4, 1, "", "RND_CONV"], [27, 4, 1, "", "RND_INF"], [27, 4, 1, "", "RND_MIN_INF"], [27, 4, 1, "", "RND_ZERO"], [27, 4, 1, "", "TRN"], [27, 4, 1, "", "TRN_ZERO"], [27, 2, 1, "", "from_string"]], "hls4ml.model.types.SaturationMode": [[27, 4, 1, "", "SAT"], [27, 4, 1, "", "SAT_SYM"], [27, 4, 1, "", "SAT_ZERO"], [27, 4, 1, "", "WRAP"], [27, 2, 1, "", "from_string"]], "hls4ml.model.types.TensorVariable": [[27, 2, 1, "", "get_shape"], [27, 2, 1, "", "size"], [27, 2, 1, "", "size_cpp"]], "hls4ml.model.types.WeightVariable": [[27, 2, 1, "", "next"], [27, 2, 1, "", "update_precision"]], "hls4ml.optimization": [[31, 0, 0, "-", "attributes"], [31, 0, 0, "-", "config"], [32, 0, 0, "-", "keras"], [31, 0, 0, "-", "knapsack"], [33, 0, 0, "-", "objectives"], [31, 3, 1, "", "optimize_keras_model_for_hls4ml"], [31, 0, 0, "-", "scheduler"]], "hls4ml.optimization.attributes": [[31, 1, 1, "", "LayerAttributes"], [31, 1, 1, "", "OptimizationAttributes"], [31, 3, 1, "", "get_attributes_from_keras_model"], [31, 3, 1, "", "get_attributes_from_keras_model_and_hls4ml_config"], [31, 1, 1, "", "hls4mlAttributes"]], "hls4ml.optimization.attributes.LayerAttributes": [[31, 2, 1, "", "update_args"]], "hls4ml.optimization.config": [[31, 1, 1, "", "SUPPORTED_STRUCTURES"]], "hls4ml.optimization.config.SUPPORTED_STRUCTURES": [[31, 4, 1, "", "BLOCK"], [31, 4, 1, "", "PATTERN"], [31, 4, 1, "", "STRUCTURED"], [31, 4, 1, "", "UNSTRUCTURED"]], "hls4ml.optimization.keras": [[32, 1, 1, "", "MaskedBackprop"], [32, 0, 0, "-", "builder"], [32, 0, 0, "-", "config"], [32, 0, 0, "-", "masking"], [32, 3, 1, "", "optimize_model"], [32, 0, 0, "-", "reduction"], [32, 0, 0, "-", "regularizers"], [32, 0, 0, "-", "utils"]], "hls4ml.optimization.keras.MaskedBackprop": [[32, 2, 1, "", "update_masks"]], "hls4ml.optimization.keras.builder": [[32, 1, 1, "", "HyperOptimizationModel"], [32, 3, 1, "", "build_optimizable_model"], [32, 3, 1, "", "remove_custom_regularizers"]], "hls4ml.optimization.keras.builder.HyperOptimizationModel": [[32, 2, 1, "", "build"]], "hls4ml.optimization.keras.config": [[32, 5, 1, "", "SUPPORTED_LAYERS"], [32, 5, 1, "", "SUPPORTED_METRICS"]], "hls4ml.optimization.keras.masking": [[32, 3, 1, "", "get_model_masks"]], "hls4ml.optimization.keras.reduction": [[32, 3, 1, "", "reduce_model"]], "hls4ml.optimization.keras.regularizers": [[32, 1, 1, "", "Conv2DRegularizer"], [32, 1, 1, "", "DenseRegularizer"]], "hls4ml.optimization.keras.regularizers.Conv2DRegularizer": [[32, 2, 1, "", "get_config"]], "hls4ml.optimization.keras.regularizers.DenseRegularizer": [[32, 2, 1, "", "get_config"]], "hls4ml.optimization.keras.utils": [[32, 3, 1, "", "get_last_layer_with_weights"], [32, 3, 1, "", "get_model_gradients"], [32, 3, 1, "", "get_model_hessians"], [32, 3, 1, "", "get_model_sparsity"]], "hls4ml.optimization.knapsack": [[31, 3, 1, "", "solve_knapsack"]], "hls4ml.optimization.objectives": [[33, 1, 1, "", "ObjectiveEstimator"], [33, 1, 1, "", "ParameterEstimator"], [33, 0, 0, "-", "gpu_objectives"], [33, 0, 0, "-", "vivado_objectives"]], "hls4ml.optimization.objectives.ObjectiveEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.objectives.ParameterEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.objectives.gpu_objectives": [[33, 1, 1, "", "GPUFLOPEstimator"]], "hls4ml.optimization.objectives.gpu_objectives.GPUFLOPEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.objectives.vivado_objectives": [[33, 1, 1, "", "VivadoDSPEstimator"], [33, 1, 1, "", "VivadoFFEstimator"], [33, 1, 1, "", "VivadoMultiObjectiveEstimator"]], "hls4ml.optimization.objectives.vivado_objectives.VivadoDSPEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.objectives.vivado_objectives.VivadoFFEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.objectives.vivado_objectives.VivadoMultiObjectiveEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.scheduler": [[31, 1, 1, "", "BinaryScheduler"], [31, 1, 1, "", "ConstantScheduler"], [31, 1, 1, "", "OptimizationScheduler"], [31, 1, 1, "", "PolynomialScheduler"]], "hls4ml.optimization.scheduler.BinaryScheduler": [[31, 2, 1, "", "repair_step"], [31, 2, 1, "", "update_step"]], "hls4ml.optimization.scheduler.ConstantScheduler": [[31, 2, 1, "", "repair_step"], [31, 2, 1, "", "update_step"]], "hls4ml.optimization.scheduler.OptimizationScheduler": [[31, 2, 1, "", "get_sparsity"], [31, 2, 1, "", "repair_step"], [31, 2, 1, "", "update_step"]], "hls4ml.optimization.scheduler.PolynomialScheduler": [[31, 2, 1, "", "repair_step"], [31, 2, 1, "", "update_step"]], "hls4ml.report": [[34, 0, 0, "-", "catapult_report"], [34, 0, 0, "-", "quartus_report"], [34, 0, 0, "-", "vivado_report"]], "hls4ml.report.catapult_report": [[34, 3, 1, "", "get_latest_project_prj_directory"], [34, 3, 1, "", "get_latest_project_version_directory"], [34, 3, 1, "", "parse_catapult_report"], [34, 3, 1, "", "qofr"], [34, 3, 1, "", "read_catapult_report"]], "hls4ml.report.quartus_report": [[34, 3, 1, "", "parse_quartus_report"], [34, 3, 1, "", "read_js_object"], [34, 3, 1, "", "read_quartus_report"]], "hls4ml.report.vivado_report": [[34, 3, 1, "", "parse_vivado_report"], [34, 3, 1, "", "print_vivado_report"], [34, 3, 1, "", "read_vivado_report"]], "hls4ml.utils": [[35, 0, 0, "-", "config"], [35, 0, 0, "-", "example_models"], [35, 0, 0, "-", "fixed_point_utils"], [35, 0, 0, "-", "plot"], [35, 0, 0, "-", "string_utils"], [35, 0, 0, "-", "symbolic_utils"]], "hls4ml.utils.config": [[35, 3, 1, "", "config_from_keras_model"], [35, 3, 1, "", "config_from_onnx_model"], [35, 3, 1, "", "config_from_pytorch_model"], [35, 3, 1, "", "create_config"]], "hls4ml.utils.example_models": [[35, 3, 1, "", "fetch_example_list"], [35, 3, 1, "", "fetch_example_model"]], "hls4ml.utils.fixed_point_utils": [[35, 1, 1, "", "FixedPointEmulator"], [35, 3, 1, "", "ceil_log2"], [35, 3, 1, "", "uint_to_binary"]], "hls4ml.utils.fixed_point_utils.FixedPointEmulator": [[35, 2, 1, "", "exp_float"], [35, 2, 1, "", "inv_float"], [35, 2, 1, "", "set_msb_bits"], [35, 2, 1, "", "to_float"]], "hls4ml.utils.plot": [[35, 3, 1, "", "add_edge"], [35, 3, 1, "", "check_pydot"], [35, 3, 1, "", "model_to_dot"], [35, 3, 1, "", "plot_model"]], "hls4ml.utils.string_utils": [[35, 3, 1, "", "convert_to_pascal_case"], [35, 3, 1, "", "convert_to_snake_case"]], "hls4ml.utils.symbolic_utils": [[35, 1, 1, "", "LUTFunction"], [35, 3, 1, "", "generate_operator_complexity"], [35, 3, 1, "", "init_pysr_lut_functions"], [35, 3, 1, "", "register_pysr_lut_function"]], "hls4ml.writer": [[36, 0, 0, "-", "catapult_writer"], [36, 0, 0, "-", "quartus_writer"], [36, 0, 0, "-", "symbolic_writer"], [36, 0, 0, "-", "vitis_writer"], [36, 0, 0, "-", "vivado_accelerator_writer"], [36, 0, 0, "-", "vivado_writer"], [36, 0, 0, "-", "writers"]], "hls4ml.writer.catapult_writer": [[36, 1, 1, "", "CatapultWriter"]], "hls4ml.writer.catapult_writer.CatapultWriter": [[36, 2, 1, "", "print_array_to_cpp"], [36, 2, 1, "", "write_bridge"], [36, 2, 1, "", "write_build_script"], [36, 2, 1, "", "write_defines"], [36, 2, 1, "", "write_generated_code"], [36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_nnet_utils"], [36, 2, 1, "", "write_output_dir"], [36, 2, 1, "", "write_parameters"], [36, 2, 1, "", "write_project_cpp"], [36, 2, 1, "", "write_project_header"], [36, 2, 1, "", "write_tar"], [36, 2, 1, "", "write_test_bench"], [36, 2, 1, "", "write_weights"], [36, 2, 1, "", "write_yml"]], "hls4ml.writer.quartus_writer": [[36, 1, 1, "", "QuartusWriter"]], "hls4ml.writer.quartus_writer.QuartusWriter": [[36, 2, 1, "", "get_max_reuse_factor"], [36, 2, 1, "", "next_pow2"], [36, 2, 1, "", "print_array_to_cpp"], [36, 2, 1, "", "write_activation_tables"], [36, 2, 1, "", "write_bridge"], [36, 2, 1, "", "write_build_script"], [36, 2, 1, "", "write_defines"], [36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_nnet_utils"], [36, 2, 1, "", "write_parameters"], [36, 2, 1, "", "write_project_cpp"], [36, 2, 1, "", "write_project_dir"], [36, 2, 1, "", "write_project_header"], [36, 2, 1, "", "write_tar"], [36, 2, 1, "", "write_test_bench"], [36, 2, 1, "", "write_testbench_parallel"], [36, 2, 1, "", "write_testbench_stream"], [36, 2, 1, "", "write_weights"], [36, 2, 1, "", "write_yml"]], "hls4ml.writer.symbolic_writer": [[36, 1, 1, "", "SymbolicExpressionWriter"]], "hls4ml.writer.symbolic_writer.SymbolicExpressionWriter": [[36, 2, 1, "", "write_build_script"], [36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_nnet_utils"]], "hls4ml.writer.vitis_writer": [[36, 1, 1, "", "VitisWriter"]], "hls4ml.writer.vitis_writer.VitisWriter": [[36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_nnet_utils_overrides"]], "hls4ml.writer.vivado_accelerator_writer": [[36, 1, 1, "", "VivadoAcceleratorWriter"]], "hls4ml.writer.vivado_accelerator_writer.VivadoAcceleratorWriter": [[36, 2, 1, "", "modify_build_script"], [36, 2, 1, "", "write_axi_wrapper"], [36, 2, 1, "", "write_board_script"], [36, 2, 1, "", "write_driver"], [36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_new_tar"], [36, 2, 1, "", "write_wrapper_test"]], "hls4ml.writer.vivado_writer": [[36, 1, 1, "", "VivadoWriter"]], "hls4ml.writer.vivado_writer.VivadoWriter": [[36, 2, 1, "", "print_array_to_cpp"], [36, 2, 1, "", "write_bridge"], [36, 2, 1, "", "write_build_script"], [36, 2, 1, "", "write_defines"], [36, 2, 1, "", "write_generated_code"], [36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_nnet_utils"], [36, 2, 1, "", "write_parameters"], [36, 2, 1, "", "write_project_cpp"], [36, 2, 1, "", "write_project_dir"], [36, 2, 1, "", "write_project_header"], [36, 2, 1, "", "write_tar"], [36, 2, 1, "", "write_test_bench"], [36, 2, 1, "", "write_weights"], [36, 2, 1, "", "write_yml"]], "hls4ml.writer.writers": [[36, 1, 1, "", "Writer"], [36, 3, 1, "", "get_writer"], [36, 3, 1, "", "register_writer"]], "hls4ml.writer.writers.Writer": [[36, 2, 1, "", "write_hls"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:attribute", "5": "py:data", "6": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "data", "Python data"], "6": ["py", "property", "Python property"]}, "titleterms": {"vivadoacceler": 0, "backend": [0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 39], "neural": 0, "network": 0, "overlai": 0, "exampl": [0, 1, 44, 45], "extens": 1, "api": [1, 3, 4], "complet": 1, "fifo": 2, "buffer": 2, "depth": 2, "optim": [2, 3, 29, 30, 31, 32, 33, 40], "hardwar": 3, "awar": 3, "configur": 4, "1": [4, 43], "python": 4, "2": [4, 43], "yaml": 4, "file": 4, "top": 4, "level": 4, "per": 4, "layer": [4, 27], "detail": [4, 39], "convert": [4, 23, 24, 25, 26, 37], "hl": [4, 5], "code": 4, "model": [5, 24, 27, 28, 29, 30, 45], "class": 5, "write": 5, "method": 5, "compil": 5, "predict": 5, "build": [5, 37], "trace": 5, "profil": [6, 27], "hls4ml": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 44], "packag": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "subpackag": [7, 8, 9, 11, 13, 15, 17, 19, 21, 23, 27, 29, 31], "modul": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "content": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "submodul": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "templat": 8, "catapult": [9, 10], "catapult_backend": 9, "catapult_typ": 9, "pass": [10, 12, 14, 16, 18, 20, 22, 30, 40], "broadcast_stream": [10, 20], "conv_same_pad": [10, 20], "conv_stream": [10, 20], "convolution_templ": [10, 14, 20], "convolution_winograd": [10, 14], "core_templ": [10, 14, 20], "fifo_depth_optim": [10, 20, 22], "garnet_templ": [10, 20], "merge_templ": [10, 14, 20], "pointwis": [10, 14, 20], "pooling_templ": [10, 14, 20], "quantization_templ": [10, 14, 20], "recurrent_templ": [10, 14, 20], "reshaping_templ": [10, 14, 20], "resource_strategi": [10, 14, 20], "transform_typ": [10, 14, 20], "fpga": [11, 12], "fpga_backend": 11, "fpga_lay": 11, "fpga_typ": 11, "bn_quant": 12, "bram_weight": 12, "clone": 12, "codegen": 12, "embed": 12, "final_reshap": 12, "fix_softmax_table_s": 12, "hgq_proxy_model": [12, 24, 30], "inplace_parallel_reshap": 12, "inplace_stream_flatten": 12, "remove_softmax": 12, "repack_stream": 12, "xnor_pool": 12, "quartu": [13, 14], "quartus_backend": 13, "quartus_typ": 13, "symbol": [15, 16], "symbolic_backend": 15, "expr_templ": 16, "validate_lut": 16, "viti": [17, 18], "vitis_backend": 17, "feature_check": 18, "vivado": [19, 20], "vivado_backend": 19, "vivado_typ": 19, "vivado_acceler": [21, 22], "vivado_accelerator_backend": 21, "vivado_accelerator_config": 21, "keras_to_hl": 23, "onnx_to_hl": 23, "pytorch_to_hl": 23, "util": [23, 32, 35], "kera": [24, 32], "convolut": [24, 25, 26], "core": [24, 25, 26], "graph": [24, 27], "merg": [24, 25, 26], "pool": [24, 25, 26], "qkera": [24, 30], "recurr": [24, 26], "reshap": [24, 25, 26], "onnx": 25, "pytorch": 26, "attribut": [27, 31], "quantiz": 27, "type": [27, 39], "flow": [28, 40], "bn_fuse": 30, "convert_to_channels_last": 30, "expand_layer_group": 30, "fuse_biasadd": 30, "infer_precis": 30, "multi_dens": 30, "nop": 30, "seperable_to_dw_conv": 30, "stamp": 30, "transpose_opt": 30, "config": [31, 32, 35, 37], "knapsack": 31, "schedul": 31, "builder": 32, "mask": 32, "reduct": 32, "regular": 32, "object": 33, "gpu_object": 33, "vivado_object": 33, "report": [34, 37], "catapult_report": 34, "quartus_report": 34, "vivado_report": 34, "example_model": 35, "fixed_point_util": 35, "plot": 35, "string_util": 35, "symbolic_util": 35, "writer": 36, "catapult_writ": 36, "quartus_writ": 36, "symbolic_writ": 36, "vitis_writ": 36, "vivado_accelerator_writ": 36, "vivado_writ": 36, "command": 37, "line": 37, "interfac": 37, "deprec": [37, 44], "overview": 37, "concept": 38, "The": 38, "inspir": 38, "solut": 38, "how": 38, "work": 38, "softwar": 39, "frontend": 39, "i": 39, "o": 39, "io_parallel": 39, "io_stream": 39, "intern": 40, "structur": 40, "welcom": 41, "s": 41, "document": 41, "project": 41, "statu": [41, 45], "tutori": 41, "citat": 42, "acknowledg": 42, "contributor": 42, "fund": 42, "releas": 43, "note": 43, "v0": 43, "8": 43, "edelweiss": 43, "0": 43, "0rc1": 43, "7": 43, "delphinium": 43, "rc1": 43, "6": 43, "cori": 43, "5": 43, "bartsia": 43, "beta": 43, "4": 43, "aster": 43, "3": 43, "setup": 44, "quick": 44, "start": 44, "instal": 44, "develop": 44, "version": 44, "depend": 44, "get": 44, "cli": 44, "further": 44, "help": 44, "exist": 44, "uninstal": 44, "featur": 45}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file +Search.setIndex({"docnames": ["advanced/accelerator", "advanced/extension", "advanced/fifo_depth", "advanced/model_optimization", "api/configuration", "api/hls-model", "api/profiling", "autodoc/hls4ml", "autodoc/hls4ml.backends", "autodoc/hls4ml.backends.catapult", "autodoc/hls4ml.backends.catapult.passes", "autodoc/hls4ml.backends.fpga", "autodoc/hls4ml.backends.fpga.passes", "autodoc/hls4ml.backends.quartus", "autodoc/hls4ml.backends.quartus.passes", "autodoc/hls4ml.backends.symbolic", "autodoc/hls4ml.backends.symbolic.passes", "autodoc/hls4ml.backends.vitis", "autodoc/hls4ml.backends.vitis.passes", "autodoc/hls4ml.backends.vivado", "autodoc/hls4ml.backends.vivado.passes", "autodoc/hls4ml.backends.vivado_accelerator", "autodoc/hls4ml.backends.vivado_accelerator.passes", "autodoc/hls4ml.converters", "autodoc/hls4ml.converters.keras", "autodoc/hls4ml.converters.onnx", "autodoc/hls4ml.converters.pytorch", "autodoc/hls4ml.model", "autodoc/hls4ml.model.flow", "autodoc/hls4ml.model.optimizer", "autodoc/hls4ml.model.optimizer.passes", "autodoc/hls4ml.optimization", "autodoc/hls4ml.optimization.keras", "autodoc/hls4ml.optimization.objectives", "autodoc/hls4ml.report", "autodoc/hls4ml.utils", "autodoc/hls4ml.writer", "command", "concepts", "details", "flows", "index", "reference", "release_notes", "setup", "status"], "filenames": ["advanced/accelerator.rst", "advanced/extension.rst", "advanced/fifo_depth.rst", "advanced/model_optimization.rst", "api/configuration.rst", "api/hls-model.rst", "api/profiling.rst", "autodoc/hls4ml.rst", "autodoc/hls4ml.backends.rst", "autodoc/hls4ml.backends.catapult.rst", "autodoc/hls4ml.backends.catapult.passes.rst", "autodoc/hls4ml.backends.fpga.rst", "autodoc/hls4ml.backends.fpga.passes.rst", "autodoc/hls4ml.backends.quartus.rst", "autodoc/hls4ml.backends.quartus.passes.rst", "autodoc/hls4ml.backends.symbolic.rst", "autodoc/hls4ml.backends.symbolic.passes.rst", "autodoc/hls4ml.backends.vitis.rst", "autodoc/hls4ml.backends.vitis.passes.rst", "autodoc/hls4ml.backends.vivado.rst", "autodoc/hls4ml.backends.vivado.passes.rst", "autodoc/hls4ml.backends.vivado_accelerator.rst", "autodoc/hls4ml.backends.vivado_accelerator.passes.rst", "autodoc/hls4ml.converters.rst", "autodoc/hls4ml.converters.keras.rst", "autodoc/hls4ml.converters.onnx.rst", "autodoc/hls4ml.converters.pytorch.rst", "autodoc/hls4ml.model.rst", "autodoc/hls4ml.model.flow.rst", "autodoc/hls4ml.model.optimizer.rst", "autodoc/hls4ml.model.optimizer.passes.rst", "autodoc/hls4ml.optimization.rst", "autodoc/hls4ml.optimization.keras.rst", "autodoc/hls4ml.optimization.objectives.rst", "autodoc/hls4ml.report.rst", "autodoc/hls4ml.utils.rst", "autodoc/hls4ml.writer.rst", "command.rst", "concepts.rst", "details.rst", "flows.rst", "index.rst", "reference.rst", "release_notes.rst", "setup.rst", "status.rst"], "titles": ["VivadoAccelerator Backend", "Extension API", "FIFO Buffer Depth Optimization", "Hardware-aware Optimization API", "Configuration", "HLS Model Class", "Profiling", "hls4ml package", "hls4ml.backends package", "hls4ml.backends.catapult package", "hls4ml.backends.catapult.passes package", "hls4ml.backends.fpga package", "hls4ml.backends.fpga.passes package", "hls4ml.backends.quartus package", "hls4ml.backends.quartus.passes package", "hls4ml.backends.symbolic package", "hls4ml.backends.symbolic.passes package", "hls4ml.backends.vitis package", "hls4ml.backends.vitis.passes package", "hls4ml.backends.vivado package", "hls4ml.backends.vivado.passes package", "hls4ml.backends.vivado_accelerator package", "hls4ml.backends.vivado_accelerator.passes package", "hls4ml.converters package", "hls4ml.converters.keras package", "hls4ml.converters.onnx package", "hls4ml.converters.pytorch package", "hls4ml.model package", "hls4ml.model.flow package", "hls4ml.model.optimizer package", "hls4ml.model.optimizer.passes package", "hls4ml.optimization package", "hls4ml.optimization.keras package", "hls4ml.optimization.objectives package", "hls4ml.report package", "hls4ml.utils package", "hls4ml.writer package", "Command Line Interface (deprecated)", "Concepts", "Software Details", "Optimizer Passes and Flows", "Welcome to hls4ml\u2019s documentation!", "Citation, Acknowledgments, and Contributors", "Release Notes", "Setup and Quick Start", "Status and Features"], "terms": {"The": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39, 40, 41, 44, 45], "hls4ml": [0, 1, 2, 3, 4, 5, 6, 39, 40, 42, 43, 45], "leverag": 0, "pynq": [0, 21, 43], "softwar": [0, 42], "stack": [0, 21], "easili": 0, "deploi": 0, "model": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 31, 32, 35, 36, 37, 38, 39, 40, 41, 43, 44], "support": [0, 1, 4, 5, 23, 31, 32, 35, 37, 39, 42, 43, 44, 45], "devic": [0, 13, 23], "current": [0, 4, 27, 31, 32, 37, 39, 41, 42], "follow": [0, 23, 27, 30, 37, 38, 42, 43, 44], "board": [0, 21, 23, 43], "z2": [0, 21, 43], "part": [0, 1, 2, 4, 8, 9, 13, 15, 17, 19, 21, 23, 27, 35, 38, 43], "xc7z020clg400": [0, 2], "1": [0, 1, 2, 3, 6, 11, 13, 27, 30, 31, 32, 33, 35, 38, 42, 44, 45], "zcu102": [0, 43], "xczu9eg": 0, "ffvb1156": 0, "2": [0, 3, 6, 9, 13, 15, 17, 19, 21, 23, 27, 31, 32, 35, 42, 44, 45], "e": [0, 3, 4, 6, 8, 15, 17, 19, 23, 27, 30, 31, 32, 33, 37, 40, 42, 43], "alveo": [0, 21, 43], "u50": 0, "xcu50": 0, "fsvh2104": 0, "u250": 0, "xcu250": 0, "figd2104": 0, "2l": [0, 32], "u200": 0, "xcu200": 0, "fsgd2104": 0, "u280": 0, "xcu280": 0, "fsvh2892": 0, "principl": [0, 4], "can": [0, 1, 2, 4, 5, 6, 11, 21, 23, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 41, 43, 44, 45], "extend": [0, 1, 6, 8, 11, 32, 43], "ani": [0, 1, 3, 4, 8, 23, 29, 32, 36, 37, 40, 42, 43, 44], "For": [0, 1, 2, 4, 10, 12, 14, 27, 30, 31, 33, 35, 37, 38, 39, 40, 41, 42, 43, 44], "zynq": 0, "base": [0, 1, 4, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 35, 36, 40, 44], "ar": [0, 1, 3, 4, 5, 6, 8, 11, 12, 23, 27, 29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 41, 42, 43, 44, 45], "two": [0, 1, 3, 4, 6, 11, 23, 27, 32, 35], "compon": [0, 1], "an": [0, 2, 3, 4, 5, 8, 12, 21, 23, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 42, 43, 44], "arm": 0, "process": [0, 11, 27, 31, 35, 38, 40], "system": [0, 27], "ps": 0, "fpga": [0, 2, 4, 6, 7, 8, 9, 13, 17, 19, 23, 35, 37, 38, 40, 41, 42, 43, 44], "programm": 0, "logic": [0, 31, 43], "pl": 0, "variou": [0, 4, 41, 44], "intefac": 0, "between": [0, 3, 4, 10, 12, 20, 31, 32, 38, 39, 43], "In": [0, 1, 2, 3, 4, 6, 23, 30, 31, 32, 39, 40, 44], "project": [0, 4, 5, 8, 11, 13, 21, 23, 27, 34, 35, 36, 37, 38, 42, 43, 44], "circuit": 0, "present": [0, 3, 23], "hardwar": [0, 21, 31, 32, 38], "librari": [0, 4, 11, 23, 27, 40, 43, 44], "call": [0, 1, 6, 8, 23, 27, 28, 29, 32, 36, 37, 38, 43], "access": [0, 43], "through": [0, 1, 2, 4, 5, 23, 39, 40, 41, 43], "python": [0, 6, 11, 21, 23, 32, 36, 37, 41, 43, 44], "api": [0, 5, 23, 31, 37, 42, 43, 44], "we": [0, 1, 2, 3, 4, 5, 11, 30, 32, 37, 38, 39, 41, 42, 43, 44, 45], "creat": [0, 3, 4, 8, 9, 13, 15, 17, 19, 21, 23, 27, 28, 29, 32, 35, 36, 37, 38, 40, 41, 43, 44], "custom": [0, 1, 3, 8, 30, 32, 35, 36, 43], "which": [0, 1, 2, 4, 6, 11, 17, 19, 21, 23, 27, 28, 29, 30, 31, 32, 35, 36, 38, 39, 40, 45], "send": [0, 39], "receiv": 0, "data": [0, 3, 4, 6, 10, 20, 21, 23, 27, 30, 32, 35, 38, 39, 40, 42, 43], "via": [0, 27, 44], "axi": [0, 1, 3, 21, 36], "stream": [0, 4, 10, 12, 20, 21, 27, 38, 39, 43], "target": [0, 3, 4, 8, 9, 13, 15, 19, 21, 23, 31, 40, 43], "program": [0, 31, 37, 38, 42], "us": [0, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 23, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 41, 42, 43, 44], "bitfil": [0, 9, 21], "gener": [0, 2, 4, 5, 10, 11, 12, 17, 19, 20, 21, 23, 27, 29, 31, 32, 33, 35, 36, 37, 38, 39, 40, 43, 44], "thi": [0, 1, 2, 3, 4, 5, 6, 8, 9, 11, 12, 13, 15, 23, 27, 28, 29, 30, 31, 32, 33, 35, 37, 38, 39, 40, 42, 44, 45], "taken": [0, 27, 33, 38], "from": [0, 1, 2, 3, 4, 5, 6, 11, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 39, 40, 42, 43, 44, 45], "7": [0, 27, 31, 32], "tutori": [0, 44], "specif": [0, 4, 8, 11, 27, 29, 30, 35, 38, 40, 42], "ll": 0, "first": [0, 2, 3, 6, 21, 23, 27, 38, 39, 42, 43, 44], "kera": [0, 1, 2, 3, 4, 5, 6, 7, 23, 27, 31, 35, 37, 38, 39, 40, 43, 44, 45], "config": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 13, 14, 15, 21, 23, 25, 27, 36, 43, 44], "import": [0, 2, 3, 4, 5, 6, 32, 38, 42, 44], "util": [0, 2, 3, 4, 5, 7, 31, 33, 38, 39, 43, 44], "config_from_keras_model": [0, 2, 3, 4, 5, 31, 35, 43], "granular": [0, 2, 3, 4, 5, 6, 35, 43], "name": [0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, 19, 20, 21, 23, 27, 28, 29, 30, 31, 32, 35, 36, 37, 42, 43], "hls_model": [0, 2, 4, 5, 6, 43, 44], "convert": [0, 1, 2, 5, 6, 7, 11, 27, 30, 35, 38, 40, 43, 44], "convert_from_keras_model": [0, 1, 2, 4, 5, 23, 35], "hls_config": [0, 1, 2, 3, 4, 5, 23, 27, 31, 35, 43], "output_dir": [0, 1, 2, 4, 5, 23, 34, 35], "hls4ml_prj_pynq": 0, "build": [0, 2, 9, 13, 15, 17, 19, 21, 27, 31, 32, 36, 38, 43, 44], "true": [0, 2, 3, 4, 9, 13, 15, 17, 19, 21, 23, 27, 31, 32, 33, 34, 35, 36], "after": [0, 3, 4, 5, 6, 11, 12, 27, 30, 31, 32, 38, 40, 43, 44], "command": [0, 5, 43, 44], "complet": [0, 4, 32], "need": [0, 1, 4, 6, 8, 11, 23, 32, 33, 35, 38, 43, 44], "packag": [0, 38, 41, 43, 44, 45], "up": [0, 17, 19, 37, 38, 43], "handoff": 0, "driver": [0, 21], "copi": [0, 36, 43], "mkdir": 0, "p": [0, 37, 43, 44], "cp": 0, "myproject_vivado_acceler": 0, "project_1": 0, "run": [0, 4, 6, 13, 32, 37, 38, 40, 43, 44], "impl_1": 0, "design_1_wrapp": 0, "bit": [0, 4, 6, 21, 27, 32, 35, 38, 43], "hls4ml_nn": 0, "src": [0, 32, 35], "sources_1": 0, "bd": 0, "design_1": 0, "hw_handoff": 0, "hwh": 0, "axi_stream_driv": [0, 43], "py": [0, 43], "tar": [0, 17, 19, 36], "czvf": 0, "gz": [0, 17, 19, 36], "c": [0, 6, 11, 21, 27, 29, 36, 37, 43, 44], "Then": [0, 2, 4, 31], "untar": 0, "final": [0, 1, 3, 4, 6, 12, 38, 40, 43], "neuralnetworkoverlai": 0, "object": [0, 3, 5, 6, 7, 8, 11, 21, 23, 27, 28, 29, 31, 32, 35, 36, 43], "download": [0, 35, 44], "onto": 0, "also": [0, 1, 4, 5, 27, 38, 40, 44, 45], "must": [0, 3, 4, 8, 21, 35, 38, 40, 44], "provid": [0, 4, 6, 8, 9, 13, 15, 23, 27, 32, 37, 38, 40, 43, 44, 45], "shape": [0, 1, 12, 23, 27, 31, 32, 33, 35, 40, 43], "our": [0, 1, 5, 38, 41, 42, 44], "input": [0, 1, 4, 5, 6, 10, 11, 12, 20, 21, 23, 27, 30, 31, 32, 35, 36, 38, 39, 40, 43], "output": [0, 1, 4, 5, 6, 8, 10, 11, 12, 17, 19, 20, 21, 23, 27, 30, 31, 32, 35, 36, 37, 38, 39, 40, 43], "x_test": [0, 3], "y_test": [0, 3], "respect": [0, 1, 32, 33, 38], "alloc": [0, 43], "buffer": [0, 39, 40], "transfer": 0, "predict": [0, 1, 3, 4, 6, 27, 38, 43], "method": [0, 1, 4, 6, 8, 9, 13, 15, 27, 29, 30, 31, 32, 33, 39], "return": [0, 1, 5, 8, 10, 11, 12, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 40, 43, 44], "y_hw": 0, "nn": [0, 39, 43, 45], "latenc": [0, 4, 31, 34, 38, 43], "throughput": [0, 38], "profil": [0, 5, 7, 43, 44], "nativ": 1, "larg": [1, 2, 21, 31, 32, 38], "number": [1, 3, 4, 11, 21, 23, 27, 30, 31, 32, 33, 35, 37, 38, 40, 42, 43, 44], "neural": [1, 2, 4, 6, 10, 14, 31, 32, 38, 39, 42, 45], "network": [1, 2, 3, 4, 6, 10, 14, 27, 31, 32, 38, 39, 42, 45], "layer": [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 18, 19, 20, 22, 23, 29, 30, 31, 32, 33, 35, 36, 38, 39, 40, 43], "But": 1, "what": [1, 4, 39, 40, 43], "desir": [1, 27, 32, 40], "If": [1, 3, 4, 5, 8, 11, 17, 19, 23, 27, 28, 29, 31, 32, 35, 42, 44], "standard": 1, "enough": [1, 31, 32, 40, 44], "its": [1, 3, 4, 5, 23, 27, 31, 33, 40], "implement": [1, 2, 4, 8, 9, 10, 11, 13, 15, 17, 19, 20, 23, 27, 30, 31, 32, 33, 38, 39, 40, 41, 43, 44], "would": [1, 6, 32, 38, 41, 43], "benefit": [1, 38, 42], "commun": [1, 38, 42], "whole": [1, 35, 37], "welcom": [1, 4], "contribut": [1, 2, 39, 43], "add": [1, 2, 8, 23, 27, 28, 29, 36, 40, 43], "set": [1, 2, 3, 4, 5, 23, 27, 29, 30, 32, 35, 36, 38, 40, 43, 44], "howev": [1, 3, 23, 32, 38, 40], "somewhat": 1, "nich": 1, "anoth": [1, 27, 40], "approach": [1, 4, 33], "take": [1, 4, 27, 32, 38, 44], "document": [1, 4, 5, 23, 35, 37, 43, 44, 45], "walk": 1, "end": [1, 23, 27, 35], "test": [1, 4, 6, 23, 35, 37, 43, 44, 45], "suit": [1, 38], "To": [1, 3, 4, 6, 30, 31, 32, 37, 38, 40, 44], "requir": [1, 3, 4, 12, 21, 23, 27, 28, 31, 32, 38, 40, 43, 44], "your": [1, 4, 5, 6, 37, 38, 41, 44], "class": [1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 35, 36, 40], "equival": [1, 3, 27, 31, 32, 43], "parser": [1, 39, 43], "hl": [1, 3, 11, 13, 21, 23, 27, 29, 35, 36, 37, 38, 39, 40, 41, 43, 44, 45], "templat": [1, 4, 7, 14, 40, 43], "function": [1, 3, 5, 8, 11, 12, 23, 27, 29, 31, 32, 35, 36, 38, 40, 41, 43, 44], "registr": 1, "sourc": [1, 2, 8, 27, 36, 38, 41], "code": [1, 3, 6, 17, 19, 27, 36, 38, 40, 44], "concret": [1, 27], "let": [1, 4, 38, 41, 43], "s": [1, 3, 4, 5, 8, 11, 23, 27, 31, 32, 33, 35, 37, 38, 40, 42, 43], "sai": 1, "krevers": 1, "revers": 1, "order": [1, 2, 38, 39, 40, 43, 44], "last": [1, 23, 27, 30, 32, 44], "dimens": [1, 23, 27, 33], "tf": [1, 30, 32], "hypothet": 1, "def": [1, 29], "__init__": 1, "self": [1, 29, 35], "super": 1, "get_config": [1, 29, 32], "make": [1, 6, 27, 32, 33, 40, 43], "sure": [1, 6], "you": [1, 4, 5, 6, 32, 37, 41, 42, 43, 44, 45], "defin": [1, 2, 3, 4, 16, 17, 19, 21, 27, 31, 32, 34, 36, 38, 40, 44], "correct": [1, 2, 12, 27, 30, 32, 33, 39, 40, 43], "pars": [1, 3, 23, 34, 38, 39, 40, 43], "hrevers": 1, "inherit": [1, 33, 40, 43], "initi": [1, 4, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 27, 29, 30, 35, 38, 43], "inp": 1, "get_input_vari": [1, 27], "dim": [1, 4, 43], "dim_nam": [1, 27], "add_output_vari": [1, 27], "A": [1, 3, 4, 5, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 40, 43, 45], "read": [1, 5, 34], "attribut": [1, 3, 7, 8, 10, 11, 12, 20, 30, 32, 33, 40, 43], "instanc": [1, 8, 27, 29, 31, 32, 35, 36], "popul": [1, 21, 40], "dictionari": [1, 4, 5, 23, 27, 31, 32, 34, 35, 43], "It": [1, 4, 5, 6, 23, 27, 35, 40], "list": [1, 5, 8, 11, 23, 27, 28, 29, 30, 31, 32, 33, 35, 40, 44, 45], "one": [1, 4, 21, 23, 27, 31, 32, 33, 38, 39], "sjape": 1, "each": [1, 2, 3, 4, 5, 6, 11, 23, 27, 30, 31, 32, 33, 35, 38, 39, 40, 44], "case": [1, 3, 4, 6, 23, 27, 30, 31, 32, 38, 40, 41, 43], "singl": [1, 27, 30, 31, 38, 39, 40], "same": [1, 23, 27, 32], "parse_reverse_lay": 1, "keras_lay": [1, 23, 24], "input_nam": [1, 23, 24, 27], "input_shap": [1, 2, 23, 24, 25, 31, 35], "data_read": [1, 23, 24], "class_nam": [1, 23, 27], "n_in": [1, 4, 11, 14, 31], "0": [1, 3, 4, 11, 13, 23, 27, 30, 31, 32, 33, 35, 44, 45], "none": [1, 4, 6, 8, 9, 10, 11, 12, 15, 17, 19, 20, 21, 23, 27, 28, 29, 30, 31, 32, 34, 35, 36], "next": [1, 4, 21, 27, 31, 40, 44], "actual": [1, 6, 27], "implementaton": 1, "written": [1, 33, 35], "header": [1, 36], "file": [1, 6, 8, 11, 17, 19, 23, 27, 34, 35, 36, 37, 43, 44], "nnet_revers": 1, "h": [1, 2, 4, 27, 36, 37, 44], "ifndef": 1, "nnet_reverse_h_": 1, "includ": [1, 2, 3, 4, 27, 29, 35, 41, 45], "nnet_common": 1, "namespac": [1, 17, 19, 36], "nnet": [1, 4, 14], "struct": [1, 4, 14], "reverse_config": 1, "static": [1, 4, 14], "const": [1, 4, 14], "unsign": [1, 4, 14, 27, 43], "10": [1, 3, 23, 42, 43], "data_t": [1, 11], "typenam": 1, "config_t": 1, "void": 1, "int": [1, 11, 12, 17, 19, 23, 27, 31, 32, 33, 35, 43], "i": [1, 3, 4, 9, 12, 27, 30, 31, 35], "endif": 1, "now": [1, 43], "These": [1, 6, 8, 11, 27, 30], "determin": [1, 2, 11, 27, 32, 38], "how": [1, 2, 3, 4, 31, 32, 33, 37, 40, 41, 44], "signatur": [1, 23], "rev_config_templ": 1, "index": [1, 11, 14, 23, 27, 32], "n": [1, 4, 14, 31, 32, 35, 43, 45], "rev_function_templ": 1, "input_t": [1, 4], "rev_include_list": 1, "nnet_util": [1, 8, 36], "hreverseconfigtempl": 1, "backend": [1, 2, 4, 7, 23, 27, 28, 29, 30, 35, 40, 43, 44, 45], "layerconfigtempl": [1, 8, 10, 12, 14, 20], "format": [1, 4, 6, 8, 10, 12, 14, 20, 23, 27, 30, 32, 35, 43], "node": [1, 8, 10, 12, 14, 16, 18, 20, 22, 23, 25, 27, 29, 30, 31, 40, 43], "param": [1, 10, 20, 32, 35, 36], "_default_config_param": 1, "hreversefunctiontempl": 1, "functioncalltempl": [1, 8, 10, 12, 14, 20], "include_head": [1, 8], "_default_function_param": 1, "tell": 1, "about": [1, 27, 35, 37, 40, 44], "exist": [1, 8, 27, 28, 29, 30, 32, 40, 43], "new": [1, 8, 11, 27, 29, 32, 38, 40, 41, 43, 44], "regist": [1, 3, 8, 23, 27, 28, 29, 35, 40, 43], "k": [1, 12], "handler": [1, 23], "pass": [1, 2, 8, 9, 11, 13, 15, 17, 19, 21, 23, 27, 29, 32, 35, 39, 43], "particular": [1, 2, 4, 37, 39, 40, 42, 44], "valid": [1, 3, 6, 9, 11, 15, 16, 17, 19, 21, 23, 27, 31, 32, 37, 43], "both": [1, 3, 4, 6, 32, 33, 35], "vivado": [1, 2, 3, 4, 7, 8, 23, 33, 35, 36, 37, 39, 40, 43, 44, 45], "quartu": [1, 7, 8, 23, 34, 40, 43, 44], "register_keras_layer_handl": [1, 23], "ir": 1, "register_lay": [1, 27], "backend_id": 1, "optim": [1, 4, 6, 7, 8, 10, 11, 12, 14, 16, 18, 20, 22, 27, 28, 38, 39, 42, 43], "get_backend": [1, 4, 8], "register_pass": [1, 8, 29, 40], "remove_duplicate_revers": 1, "removeduplicaterevers": 1, "flow": [1, 2, 7, 8, 9, 13, 15, 19, 21, 27, 29, 39, 43], "f": [1, 3, 35, 37, 44], "lower": [1, 31, 38], "given": [1, 3, 6, 8, 10, 12, 14, 16, 18, 20, 21, 23, 27, 29, 30, 31, 32, 33, 34, 35, 38, 40, 45], "register_templ": [1, 8], "register_sourc": [1, 8], "compar": [1, 6, 38, 43], "work": [1, 4, 6, 11, 12, 23, 29, 31, 32, 35, 43, 44], "kmodel": 1, "sequenti": [1, 2, 4, 38, 43], "8": [1, 4, 33, 42, 45], "relu": [1, 2, 4], "x": [1, 4, 5, 6, 27, 31, 32, 35, 36, 38, 43], "np": [1, 3, 31, 32, 43], "random": 1, "randint": 1, "5": [1, 2, 3, 4, 9, 11, 13, 15, 17, 19, 21, 23, 27, 31, 32], "dtype": 1, "int32": 1, "kre": 1, "hmodel": 1, "str": [1, 8, 11, 12, 17, 19, 21, 23, 27, 28, 29, 30, 31, 32, 35, 36], "hls4mlprj_extensions_": 1, "io_typ": [1, 2, 4, 9, 13, 15, 17, 19, 21, 23, 31, 39, 43], "io_parallel": [1, 3, 4, 9, 12, 13, 15, 17, 19, 21, 23, 30, 31, 36, 43], "precis": [1, 4, 6, 11, 16, 21, 23, 27, 31, 33, 35, 38, 42, 43], "ap_int": [1, 4], "6": [1, 3, 4, 23, 27, 31, 32, 33, 35], "reusefactor": [1, 4, 6, 23, 43], "compil": [1, 11, 13, 15, 17, 19, 21, 23, 27, 30, 43, 44], "hre": 1, "astyp": 1, "float32": 1, "assert_array_equ": 1, "With": [2, 33, 38, 39], "io_stream": [2, 4, 12, 17, 19, 21, 23, 31, 36, 43], "io": [2, 39, 43], "type": [2, 4, 6, 7, 8, 11, 12, 17, 19, 23, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 40, 43], "connect": [2, 27, 39, 40, 43, 45], "subsequ": [2, 30, 39, 43], "out": [2, 3, 39, 40, 43, 44, 45], "overal": [2, 3, 39, 43], "resourc": [2, 3, 4, 6, 13, 31, 32, 33, 34, 38, 39, 42, 43, 44], "design": [2, 11, 21, 23, 35, 38, 39], "impact": [2, 39], "bram": [2, 3, 32, 33, 39, 43], "lut": [2, 16, 23, 35, 39, 43], "becaus": [2, 4, 6, 12, 39], "have": [2, 4, 5, 12, 23, 27, 28, 30, 32, 37, 39, 40, 43], "complex": [2, 31, 35, 38, 39], "architectur": [2, 4, 31, 36, 38, 39, 43, 45], "hard": [2, 27, 39], "know": [2, 39, 41], "priori": [2, 39], "By": [2, 3, 23, 27, 39], "default": [2, 4, 6, 8, 9, 11, 13, 15, 17, 19, 21, 23, 27, 28, 29, 30, 31, 32, 35, 36, 39, 40, 43, 44], "chose": [2, 39], "most": [2, 4, 31, 33, 35, 38, 39], "conserv": [2, 39], "possibl": [2, 3, 4, 6, 27, 32, 35, 38, 39, 43], "result": [2, 4, 5, 6, 11, 27, 31, 32, 33, 34, 35, 38, 39], "unnecessari": [2, 39], "overutil": [2, 39], "reduc": [2, 3, 6, 32, 38, 39, 43], "ha": [2, 4, 6, 8, 9, 13, 15, 19, 21, 23, 28, 29, 31, 32, 35, 37, 38, 40, 45], "been": [2, 8, 9, 13, 15, 19, 21, 23, 27, 28, 29, 37, 38, 43], "develop": [2, 4, 21, 32, 41, 42, 43, 45], "509": [2, 43], "correctli": [2, 23, 27, 43], "size": [2, 4, 11, 23, 27, 31, 32, 35, 38, 43], "analyz": 2, "rtl": [2, 37, 43], "cosimul": [2, 43], "resiz": [2, 27], "fifo_depth_optim": [2, 8, 9, 19, 21, 43], "simul": [2, 4, 5, 6, 27, 37, 43, 44], "100": [2, 3], "000": 2, "estim": [2, 13, 33], "maximum": [2, 3, 31, 32, 35], "occup": 2, "onc": [2, 12, 44], "valu": [2, 4, 5, 6, 8, 10, 11, 12, 14, 16, 18, 20, 21, 22, 23, 27, 29, 30, 31, 32, 38, 40], "plu": 2, "As": [2, 3, 6, 23, 27, 32, 38, 44], "exampl": [2, 3, 4, 6, 23, 27, 29, 31, 32, 33, 35, 37, 39, 40, 42, 43], "show": [2, 6, 37, 44], "below": [2, 3, 4, 6, 27, 31, 32, 33, 37, 40, 45], "inspir": 2, "github": [2, 32, 35, 41, 42, 43, 44, 45], "gist": 2, "simpl": [2, 4, 5, 27, 43], "tensorflow": [2, 3, 31, 32, 37, 43, 44], "dens": [2, 3, 4, 6, 27, 30, 31, 32, 33, 39, 40, 43], "64": 2, "16": [2, 3, 4, 23, 27, 32, 33, 35, 43], "fc1": [2, 4, 6], "activ": [2, 4, 6, 11, 27, 30, 32, 36, 38, 43], "32": [2, 32], "fc2": 2, "fc3": 2, "softmax": [2, 27, 43], "get_optim": [2, 29, 30], "configur": [2, 5, 6, 8, 9, 13, 15, 17, 19, 23, 27, 29, 30, 31, 32, 35, 37, 38, 40, 41, 43, 44], "profiling_fifo_depth": [2, 10, 20], "100_000": 2, "hls4mlprj_fifo_depth_opt": 2, "reset": [2, 9, 15, 17, 19, 21, 37], "fals": [2, 4, 9, 11, 13, 15, 17, 19, 21, 23, 27, 31, 32, 33, 34, 35, 43], "csim": [2, 5, 9, 15, 17, 19, 21, 23, 44], "synth": [2, 9, 13, 15, 17, 19, 21, 44], "cosim": [2, 9, 15, 17, 19, 21, 23, 44], "more": [2, 3, 4, 6, 12, 23, 31, 32, 35, 37, 38, 43, 44], "detail": [2, 37, 38, 41, 44], "see": [2, 4, 23, 27, 31, 35, 39, 40, 41, 43, 44, 45], "borra": 2, "et": [2, 32], "al": [2, 32], "open": [2, 6, 34, 38, 41, 42], "ml": [2, 45], "codesign": [2, 42], "mlperf": 2, "tini": 2, "benchmark": 2, "2022": [2, 42, 44, 45], "prune": [3, 31, 32, 33, 42], "weight": [3, 4, 6, 10, 14, 17, 19, 20, 23, 27, 30, 31, 32, 33, 36, 37, 38, 40, 43, 44], "share": [3, 31, 32, 33], "effect": 3, "techniqu": 3, "footprint": 3, "comput": [3, 4, 23, 30, 32, 38, 42], "introduc": [3, 32], "algorithm": [3, 4, 10, 11, 14, 31, 32, 38, 41, 42], "solv": [3, 31, 32], "knapsack": [3, 7, 32], "problem": [3, 31, 32, 38, 43], "aim": 3, "maxim": [3, 38], "perform": [3, 6, 27, 30, 31, 32, 35, 38, 40], "while": [3, 4, 6, 23, 32, 35, 38, 40], "keep": 3, "minimum": [3, 27], "box": [3, 6], "sparsiti": [3, 31, 32, 33], "gpu": [3, 38], "flop": [3, 32], "dsp": [3, 32, 33], "memori": [3, 32], "etc": [3, 11, 27, 31, 32, 33, 34, 35], "block": [3, 27, 31, 32, 33, 40], "showcas": 3, "three": [3, 6], "unstructur": [3, 31, 32, 33], "structur": [3, 4, 31, 32, 33, 42, 43], "pattern": [3, 31, 32, 33], "start": [3, 4, 6, 21, 23, 35, 37, 40], "sklearn": 3, "metric": [3, 31, 32, 33], "accuracy_scor": 3, "adam": 3, "categoricalaccuraci": 3, "loss": [3, 6, 31, 32, 43], "categoricalcrossentropi": 3, "optimize_model": [3, 29, 32], "get_model_spars": [3, 32], "get_attributes_from_keras_model": [3, 31, 32], "parameterestim": [3, 33], "schedul": [3, 7, 32], "polynomialschedul": [3, 31], "baselin": [3, 31, 32], "load": [3, 6, 32, 43], "x_train": [3, 31, 32], "y_train": [3, 31, 32], "x_val": [3, 31, 32], "y_val": [3, 31, 32], "baseline_model": 3, "evalu": [3, 6, 32, 35, 38], "y_baselin": 3, "acc_bas": 3, "argmax": [3, 43], "print": [3, 34, 43, 44], "accuraci": [3, 6, 31, 32], "per": [3, 31, 32, 35], "train": [3, 4, 6, 31, 32, 38, 43, 44], "paramet": [3, 4, 8, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 40, 43, 44], "epoch": [3, 31, 32], "refer": [3, 4, 5, 10, 14, 21, 23, 37, 38, 43], "impos": 3, "some": [3, 4, 6, 23, 32, 33, 40, 43, 44], "pre": [3, 42, 43], "good": [3, 6, 39], "rule": [3, 31], "thumb": 3, "3": [3, 6, 11, 27, 31, 32], "batch_siz": [3, 31, 32], "128": 3, "loss_fn": [3, 31, 32], "from_logit": 3, "monitor": 3, "well": [3, 6, 31, 32, 35, 42], "increas": [3, 31, 32], "decreas": [3, 31], "disctinct": 3, "allow": [3, 6, 31, 32, 35, 38, 43], "regress": 3, "classif": 3, "g": [3, 4, 6, 8, 23, 27, 30, 31, 32, 33, 40, 43, 44], "minim": [3, 8, 9, 13, 15, 23, 32, 33], "mse": [3, 31, 32], "rel": [3, 31, 32, 38], "toler": [3, 31, 32], "rtol": [3, 31, 32], "incur": 3, "975": 3, "increment": [3, 31], "step": [3, 12, 31, 35, 36, 37, 44], "50": 3, "appli": [3, 8, 10, 11, 12, 14, 16, 18, 20, 22, 27, 28, 29, 30, 31, 33, 35, 40, 43], "polynomi": [3, 31, 32], "rate": [3, 11, 32], "unspecifi": [3, 27], "stop": [3, 31, 32], "either": [3, 4, 11], "when": [3, 4, 5, 6, 12, 23, 27, 31, 32, 33, 35, 43], "drop": 3, "threshold": [3, 11, 30, 31, 32], "ii": [3, 43], "reach": [3, 31, 40, 41], "final_spars": [3, 31], "get": [3, 4, 5, 21, 23, 28, 37, 38, 43], "model_attribut": [3, 31, 32], "total": [3, 4, 27, 31, 32, 33, 35], "optimized_model": 3, "y_optim": 3, "acc_optim": 3, "opim": 3, "similar": [3, 5, 12], "manner": [3, 4], "instead": [3, 4, 11, 23, 30, 43], "512": 3, "256": 3, "abov": [3, 4, 32, 38, 40], "gpu_object": [3, 7, 31], "gpuflopestim": [3, 33], "note": [3, 4, 5, 8, 21, 23, 27, 30, 31, 32, 35, 38, 40, 44, 45], "chang": [3, 29, 30, 31, 32, 35, 40, 43], "differ": [3, 4, 5, 6, 12, 23, 27, 29, 30, 31, 32, 38, 43], "remov": [3, 8, 10, 12, 14, 16, 18, 20, 22, 27, 28, 29, 30, 32, 37, 43, 44], "entir": [3, 32, 35], "filter": [3, 27, 32, 38], "neuron": [3, 32, 38], "summari": [3, 45], "vivado_object": [3, 7, 31], "vivadodspestim": [3, 33], "optimize_keras_model_for_hls4ml": [3, 31], "act": 3, "wrapper": [3, 21, 27, 29, 36], "default_reuse_factor": [3, 35], "4": [3, 4, 6, 27, 33, 42, 44, 45], "default_precis": [3, 4, 35], "ac_fix": [3, 27, 43], "iotyp": [3, 4, 12, 23, 43], "strategi": [3, 4, 31, 43], "optimis": 3, "There": [3, 4, 40, 44], "vivadoffestim": [3, 33], "utilis": 3, "vivadomultiobjectiveestim": [3, 33], "ensur": [3, 23, 27, 38, 40, 43], "unrol": [3, 4, 31, 43], "multipl": [3, 12, 27, 29, 31, 38, 39, 43], "befor": [3, 4, 5, 6, 23, 27, 28, 38, 40, 43], "synthes": [3, 35, 44], "modifi": [3, 27, 32, 36], "denseresourceimplement": 3, "addit": [3, 4, 23, 27, 31, 36, 40, 43, 44], "reus": [3, 4, 14, 23, 27, 31, 32, 35, 38], "factor": [3, 4, 12, 23, 27, 31, 32, 35, 38, 43], "wai": 4, "page": [4, 5, 37, 38, 41, 42, 44, 45], "usag": [4, 5, 6, 13, 34, 37, 43], "recommend": [4, 23, 32, 35, 39, 44], "user": [4, 8, 16, 23, 27, 29, 31, 32, 35, 37, 38, 40], "help": [4, 5, 6, 37, 38, 42], "One": [4, 17, 19, 23], "rememb": 4, "respons": 4, "automat": [4, 23, 38, 44], "normal": [4, 6, 11, 32, 43], "so": [4, 11, 27, 30, 31, 32, 35, 38, 41, 43], "done": [4, 12, 38, 44], "quickli": [4, 5], "edit": [4, 43], "advanc": [4, 5, 42], "fix": [4, 27, 30, 35, 38, 43], "viti": [4, 7, 8, 23, 36, 39, 43, 44, 45], "option": [4, 6, 8, 11, 13, 17, 19, 21, 23, 27, 28, 29, 32, 34, 35, 36, 37, 38, 43, 44], "depend": [4, 6, 11, 28, 31, 38, 40, 43, 45], "higher": [4, 27, 31, 32, 43], "granularit": 4, "usual": [4, 31, 32, 40], "auto": [4, 35], "mean": [4, 11, 23, 32, 35, 38], "try": [4, 8, 10, 12, 14, 16, 18, 20, 29, 30, 43], "precend": 4, "over": [4, 27, 31, 43], "inform": [4, 10, 14, 23, 27, 31, 35, 38, 40, 44], "overrid": [4, 43], "layernam": [4, 27], "Or": 4, "ap_fix": [4, 23, 33, 35], "better": [4, 31, 32, 43], "understand": [4, 44], "hierachi": 4, "section": [4, 5, 21, 37, 39, 40, 44, 45], "my_project_dir": 4, "yml": [4, 6, 37, 43, 44], "here": [4, 5, 44], "look": [4, 23, 31, 38, 43], "like": [4, 23, 27, 32, 35, 37, 38, 41], "outputdir": [4, 23], "my": [4, 23, 35, 37, 44], "projectnam": [4, 23, 34], "myproject": [4, 23, 35, 36], "kerasjson": 4, "keras_3lay": [4, 35, 44], "json": [4, 21, 23, 32, 35, 37, 43, 44], "kerash5": [4, 23, 43], "keras_3layer_weight": 4, "h5": [4, 23, 37, 43], "save": [4, 32, 33, 35, 38], "without": [4, 8, 23, 27, 31, 32], "suppli": [4, 5], "inputdata": 4, "keras_3layer_input_featur": 4, "dat": [4, 23, 36], "outputpredict": 4, "keras_3layer_predict": 4, "xcvu13p": [4, 17, 19, 23], "flga2577": [4, 15, 17, 19, 23], "clockperiod": [4, 23], "hlsconfig": [4, 23, 27], "layertyp": 4, "compress": [4, 17, 19, 27, 31, 38, 42], "go": [4, 44, 45], "them": [4, 5, 30, 35, 40, 43], "basic": [4, 27, 44], "setup": [4, 37, 38, 43, 45], "directori": [4, 8, 11, 17, 19, 23, 27, 31, 32, 34, 35, 36, 37, 43, 44, 45], "where": [4, 5, 23, 27, 31, 32, 34, 35], "want": [4, 5, 27, 44], "appear": [4, 27], "ip": [4, 37, 38, 40, 43], "produc": [4, 6, 11, 38, 39, 40], "store": [4, 12, 27, 31, 32, 33, 35, 40], "path": [4, 8, 23, 35], "those": [4, 27, 37, 42], "obtain": [4, 11, 31, 32, 33, 35], "just": [4, 5, 27, 32, 37], "field": 4, "aritifici": 4, "found": [4, 23, 29, 34, 41, 44], "npy": [4, 23], "suggest": 4, "point": [4, 6, 27, 30, 31, 35, 38], "necessari": [4, 30, 38], "create_initial_config": [4, 8, 9, 13, 15, 17, 19, 21, 35], "consid": [4, 32, 38], "xilinx": [4, 44], "virtex": 4, "ultrascal": 4, "vu13p": [4, 43], "clock": [4, 17, 19, 21, 23, 35], "period": [4, 17, 19, 21, 23], "ns": 4, "intermedi": [4, 32, 43], "arrai": [4, 5, 12, 27, 30, 31, 32, 36, 39, 43], "fulli": [4, 45], "typic": [4, 38], "ram": 4, "effici": [4, 32, 38], "scalabl": 4, "mechan": [4, 27], "repres": [4, 6, 8, 23, 27, 28, 31, 32, 35, 38, 40], "consum": [4, 32], "fifo": [4, 9, 27, 39, 40, 43], "parallel": [4, 11, 31, 38, 39, 43], "pipelin": [4, 38, 43], "interv": [4, 38, 43], "hl4ml": 4, "larger": [4, 39, 43], "than": [4, 12, 31, 32, 43], "should": [4, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 23, 27, 29, 30, 31, 32, 33, 35, 38, 40, 44], "specifi": [4, 6, 8, 9, 11, 13, 15, 19, 21, 23, 27, 30, 32, 35, 43], "precsion": 4, "bias": [4, 32], "denot": 4, "y": [4, 5, 32], "sign": [4, 11, 27, 35, 38, 43], "binari": [4, 11, 27, 31, 32, 35, 42, 43], "integ": [4, 6, 27, 31, 35, 43], "addition": [4, 42], "1024": [4, 35], "chanc": 4, "further": [4, 6, 10, 14, 43], "fine": [4, 6, 31, 32, 35], "describ": [4, 37, 39], "finer": 4, "under": [4, 32, 42], "head": 4, "variabl": [4, 6, 8, 11, 12, 23, 27, 32, 34, 35, 36, 40, 43], "within": [4, 8, 11, 17, 19, 27, 32], "onli": [4, 6, 12, 21, 23, 27, 32, 35, 38, 44], "mai": [4, 6, 23, 27, 30, 39, 40, 43], "everi": [4, 11, 29, 31, 32, 33, 35], "throughout": 4, "all": [4, 5, 17, 19, 23, 27, 28, 29, 30, 31, 32, 35, 37, 38, 39, 40, 43], "14": [4, 43], "other": [4, 23, 28, 29, 40, 42, 43, 44, 45], "dense1": 4, "bia": [4, 11, 30, 38, 40, 43], "12": [4, 19, 21, 23, 35, 43], "batchnormalization1": 4, "dense2": 4, "thei": [4, 27, 32, 40, 43], "visit": [4, 37, 44], "concept": [4, 39, 44], "chapter": [4, 44], "orient": 4, "opportun": 4, "do": [4, 5, 11, 30, 32, 37, 38, 40, 44, 45], "choos": [4, 31, 32], "firmwar": [4, 41], "cpp": [4, 36], "construct": [4, 27], "snippet": 4, "layer2_t": 4, "layer2_out": 4, "n_layer_2": 4, "pragma": [4, 11, 43], "array_partit": 4, "dense_lat": 4, "config2": 4, "input_1": 4, "w2": 4, "b2": 4, "layer3_t": 4, "layer3_out": 4, "relu_config3": 4, "layer4_t": 4, "layer4_out": 4, "n_layer_4": 4, "config4": 4, "w4": 4, "b4": 4, "sigmoid": [4, 27, 43], "result_t": 4, "sigmoid_config5": 4, "layer5_out": 4, "dnn": 4, "calucl": 4, "own": 4, "machin": [4, 21, 37, 38, 41, 42], "learn": [4, 32, 37, 38, 41, 42, 44], "insert": [4, 10, 12, 20, 27, 30, 31, 43], "dense_config": [4, 14], "n_input_1_1": 4, "n_out": [4, 11, 14, 31], "reuse_factor": [4, 11, 14, 27, 31], "n_zero": 4, "n_nonzero": 4, "320": 4, "bool": [4, 17, 19, 23, 27, 31, 32, 34, 35, 36], "store_weights_in_bram": 4, "typedef": [4, 14, 27], "accum_t": [4, 14, 43], "model_default_t": 4, "bias_t": [4, 14], "weight_t": [4, 11, 14], "ap_uint": 4, "index_t": 4, "stage": [4, 40], "even": [4, 38, 43], "keras_model": [5, 23, 31, 32], "test_prj": 5, "sever": [5, 27, 31, 32, 33, 44, 45], "line": [5, 35, 43, 44], "interfac": [5, 21, 36, 44], "prefer": 5, "pleas": [5, 23, 27, 32, 41, 42, 44], "numpi": 5, "suppos": [5, 37], "alreadi": [5, 8, 23, 27, 28, 29, 38], "much": [5, 38, 43], "faster": [5, 32], "veri": [5, 31, 32, 44], "prototyp": [5, 38], "report": [5, 7, 43, 44], "read_vivado_report": [5, 34, 44], "hls4ml_prj": 5, "version": [5, 32, 35, 37, 42, 43, 45], "individu": [5, 42], "debug": [5, 31, 32], "appropri": [5, 6, 31], "kei": [5, 8, 21, 27, 30, 31, 32, 35], "predict_ouput": 5, "trace_output": 5, "keras_trac": 5, "get_ymodel_kera": 5, "low": [6, 38], "chosen": [6, 39], "inappropri": 6, "tool": [6, 27, 31, 38, 43, 44, 45], "decid": 6, "extra": [6, 23, 29, 35, 36, 43, 44], "instal": [6, 21, 32, 35], "pip": [6, 44], "modul": 6, "modelgraph": [6, 8, 10, 11, 12, 13, 14, 16, 18, 20, 21, 22, 23, 27, 29, 30, 36, 40, 43], "pytorch": [6, 7, 23, 35, 37, 38, 40, 43, 44, 45], "initialis": 6, "numer": 6, "keras_to_hl": [6, 7, 44], "matplotlib": 6, "pyplot": 6, "plt": 6, "yaml": [6, 23, 36], "pseudo": 6, "load_model": 6, "load_data": 6, "real": [6, 42], "r": [6, 32, 33, 37], "ymlfile": 6, "plot": [6, 7, 43], "four": [6, 32, 38], "figur": [6, 38], "titl": [6, 42], "distribut": 6, "origin": [6, 8, 11, 27, 43], "imag": [6, 11, 35, 43], "notic": 6, "bn1": 6, "bn2": 6, "bn3": 6, "label": [6, 31, 32], "miss": 6, "batchnorm": [6, 27, 30, 43], "fuse": [6, 30, 43], "preced": 6, "fc": 6, "product": [6, 11, 14, 43], "similarli": 6, "correspond": [6, 27, 31, 32, 33, 35, 40], "style": [6, 39, 43], "avail": [6, 28, 32, 35, 44], "keyword": 6, "argument": [6, 23, 27, 31, 35, 37, 43], "boxplot": 6, "histogram": 6, "violinplot": 6, "non": [6, 31, 33], "zero": [6, 32, 33, 43], "shown": [6, 38], "whisker": 6, "diagram": 6, "combin": [6, 30], "No": [6, 42, 43], "grei": 6, "indic": [6, 8, 10, 12, 14, 16, 18, 20, 22, 27, 29, 30, 31, 34, 40], "second": [6, 27, 31, 32, 43], "median": 6, "quartil": 6, "shade": 6, "rang": [6, 23, 32, 35], "least": 6, "cover": 6, "contain": [6, 23, 27, 31, 32, 33, 34, 35, 38, 43], "right": [6, 23], "suffici": 6, "avoid": [6, 12, 32, 36, 43], "overflow": [6, 27, 43], "might": [6, 31, 32, 44], "left": [6, 23, 27, 43], "achiev": [6, 33, 38], "satisfactori": 6, "safe": 6, "bare": [6, 21], "still": [6, 32], "establish": 6, "whether": [6, 13, 32, 33, 34, 35, 38], "give": [6, 27, 38, 44], "cpu": [6, 38], "float": [6, 21, 31, 32, 35, 38, 43], "catapult": [7, 8, 23], "submodul": [7, 43, 44, 45], "catapult_backend": [7, 8], "catapult_typ": [7, 8], "fpga_backend": [7, 8], "fpga_lay": [7, 8], "fpga_typ": [7, 8], "quartus_backend": [7, 8], "quartus_typ": [7, 8], "symbol": [7, 8, 23, 43], "symbolic_backend": [7, 8], "vitis_backend": [7, 8], "vivado_backend": [7, 8], "vivado_typ": [7, 8], "vivado_acceler": [7, 8], "vivado_accelerator_backend": [7, 8], "vivado_accelerator_config": [7, 8], "convolut": [7, 10, 11, 12, 14, 23, 27, 30, 32, 42, 43, 45], "core": [7, 23, 32], "graph": [7, 8, 10, 12, 14, 16, 18, 20, 22, 23, 25, 29, 30, 32, 39, 40, 45], "hgq_proxy_model": [7, 8, 11, 23, 27, 29], "merg": [7, 11, 23, 27, 30, 43], "pool": [7, 23, 43], "qkera": [7, 23, 27, 29, 32, 38, 43, 44], "recurr": [7, 23, 32, 45], "reshap": [7, 12, 23, 27, 43], "onnx": [7, 23, 35, 37, 39, 40, 43, 44, 45], "onnx_to_hl": 7, "pytorch_to_hl": 7, "quantiz": [7, 11, 12, 30, 38, 43], "builder": [7, 31], "mask": [7, 12, 31], "reduct": [7, 31, 42], "regular": [7, 27, 30, 31], "catapult_report": 7, "quartus_report": 7, "vivado_report": 7, "example_model": [7, 44], "fixed_point_util": 7, "string_util": 7, "symbolic_util": 7, "writer": [7, 43], "catapult_writ": 7, "quartus_writ": 7, "symbolic_writ": 7, "vitis_writ": 7, "vivado_accelerator_writ": 7, "vivado_writ": 7, "rese": 7, "newse": 7, "broadcast_stream": [8, 9, 19], "conv_same_pad": [8, 9, 19], "conv_stream": [8, 9, 19], "convolution_templ": [8, 9, 13, 19], "convolution_winograd": [8, 9, 13], "core_templ": [8, 9, 13, 19], "garnet_templ": [8, 9, 19], "merge_templ": [8, 9, 13, 19], "pointwis": [8, 9, 13, 19, 30, 43], "pooling_templ": [8, 9, 13, 19], "quantization_templ": [8, 9, 13, 19], "recurrent_templ": [8, 9, 13, 19], "reshaping_templ": [8, 9, 13, 19], "resource_strategi": [8, 9, 13, 19], "transform_typ": [8, 9, 13, 19], "bn_quant": [8, 11], "bram_weight": [8, 11], "clone": [8, 11, 32, 43, 44], "codegen": [8, 11], "embed": [8, 11, 27, 43], "final_reshap": [8, 11], "fix_softmax_table_s": [8, 11], "inplace_parallel_reshap": [8, 11], "inplace_stream_flatten": [8, 11], "remove_softmax": [8, 11], "repack_stream": [8, 11, 43], "xnor_pool": [8, 11], "expr_templ": [8, 15], "validate_lut": [8, 15], "feature_check": [8, 17], "kwarg": [8, 23, 27, 29, 31, 35], "convers": [8, 9, 13, 15, 19, 21, 23, 27, 30, 35, 37, 38, 40, 44], "subclass": [8, 9, 13, 15, 27, 40], "create_layer_class": [8, 11], "layer_class": [8, 11, 29], "wrap": [8, 11, 27, 29, 36, 40], "get_available_flow": [8, 28], "get_custom_sourc": 8, "destin": 8, "absolut": 8, "dict": [8, 17, 19, 23, 27, 31, 32, 34, 35], "get_default_flow": [8, 9, 13, 15, 19, 21], "opt_cl": [8, 29], "invok": 8, "tupl": [8, 12, 23, 27, 31, 32, 33, 35], "source_fil": 8, "destination_dir": 8, "sub": [8, 31, 40], "write": [8, 11, 17, 19, 23, 27, 29, 34, 36, 37, 40, 43], "rais": [8, 11, 13, 23, 27, 28, 29, 35, 43], "except": [8, 11, 13, 23, 27, 28, 29, 35], "template_cl": 8, "op": 8, "get_available_backend": 8, "register_backend": 8, "backend_cl": 8, "registri": [8, 28, 29], "instanti": 8, "constructor": [8, 35], "transform": [8, 10, 11, 12, 14, 16, 18, 20, 22, 29, 30, 40], "match": [8, 10, 12, 14, 16, 18, 20, 22, 29, 30, 40, 43], "wa": [8, 10, 12, 14, 16, 18, 20, 22, 29, 30, 32, 43], "success": [8, 10, 12, 14, 16, 18, 20, 22, 29, 30], "boolean": [8, 10, 12, 14, 16, 18, 20, 22, 29, 30, 31, 32, 33, 40], "alter": [8, 10, 12, 14, 16, 18, 20, 22, 29, 30], "ad": [8, 10, 12, 14, 16, 18, 20, 22, 23, 27, 29, 30, 32, 41, 43], "attribute_nam": [8, 27], "optimizerpass": [8, 10, 12, 14, 18, 20, 29, 30, 40], "get_nam": [8, 29], "predic": [8, 10, 12, 14, 16, 18, 20, 29, 30], "catapultbackend": 9, "fpgabackend": [9, 11, 13, 15, 19], "vhdl": 9, "verilog": 9, "export": [9, 15, 17, 19, 21, 32, 37, 43, 44], "vsynth": [9, 15, 17, 19, 21, 44], "fifo_opt": [9, 19, 21], "ran_fram": 9, "sw_opt": 9, "power": [9, 21, 23, 27, 35, 38], "da": 9, "bup": 9, "tech": [9, 42], "xcku115": 9, "flvb2104": 9, "asiclib": 9, "nangat": 9, "45nm": 9, "clock_period": [9, 13, 15, 17, 19, 21, 23], "get_writer_flow": [9, 11, 13, 15, 19, 21], "init_base_lay": [9, 13, 19], "init_conv1d": [9, 13, 19], "init_conv2d": [9, 13, 19], "init_dens": [9, 13, 19], "init_depconv2d": [9, 19], "init_emb": [9, 13, 19], "init_garnet": [9, 19], "init_garnet_stack": [9, 19], "init_global_pooling1d": 9, "init_global_pooling2d": 9, "init_gru": [9, 13, 19], "init_lstm": [9, 13, 19], "init_pooling1d": [9, 19], "init_pooling2d": [9, 19], "init_sepconv1d": [9, 19], "init_sepconv2d": [9, 19], "init_softmax": [9, 13, 19], "catapultarrayvariableconvert": 9, "type_convert": [9, 11, 13, 19], "arrayvariableconvert": [9, 11, 13, 19], "catapultarrayvariabledefinit": 9, "variabledefinit": [9, 11, 13, 19], "definition_cpp": [9, 11, 13, 19], "name_suffix": [9, 11, 13, 19], "as_refer": [9, 11, 13, 19], "catapultinplacearrayvariableconvert": 9, "catapultinplacearrayvariabledefinit": 9, "catapultinplacestreamvariableconvert": 9, "inplacestreamvariableconvert": [9, 11, 13, 19], "catapultinplacestreamvariabledefinit": 9, "catapultstreamvariableconvert": 9, "streamvariableconvert": [9, 11, 13, 19], "catapultstreamvariabledefinit": 9, "catapultstructmembervariableconvert": 9, "structmembervariableconvert": [9, 11, 13], "catapultstructmembervariabledefinit": 9, "broadcast": [10, 20, 43], "broadcastconfigtempl": [10, 20], "broadcastfunctiontempl": [10, 20], "broadcaststream": [10, 20], "register_broadcast_stream": [10, 20], "insertzeropaddingbeforeconv1d": [10, 20], "insert_zero_padding_before_conv1d": [10, 20], "insertzeropaddingbeforeconv2d": [10, 20], "insert_zero_padding_before_conv2d": [10, 20], "generateconvstreaminginstruct": [10, 20], "instruct": [10, 13, 20, 44], "cnn": [10, 20, 39, 42, 43, 45], "conv1dconfigtempl": [10, 14, 20], "conv1dfunctiontempl": [10, 14, 20], "conv2dconfigtempl": [10, 14, 20], "conv2dfunctiontempl": [10, 14, 20], "depthwiseconv1dfunctiontempl": [10, 20], "depthwiseconv2dfunctiontempl": [10, 20], "separableconv1dconfigtempl": [10, 20], "separableconv1dfunctiontempl": [10, 20], "separableconv2dconfigtempl": [10, 20], "separableconv2dfunctiontempl": [10, 20], "applywinogradkerneltransform": [10, 14], "conv2d": [10, 11, 14, 27, 30, 31, 32, 40, 43], "kernel": [10, 11, 14, 23, 36, 38], "suitabl": [10, 14, 31, 32, 33], "wingorad": [10, 14], "lavin": [10, 14], "grai": [10, 14], "2015": [10, 14], "fast": [10, 14, 32, 38, 42], "activationconfigtempl": [10, 14, 20], "activationfunctiontempl": [10, 14, 20], "batchnormalizationconfigtempl": [10, 14, 20], "batchnormalizationfunctiontempl": [10, 14, 20], "denseconfigtempl": [10, 14, 20], "densefunctiontempl": [10, 14, 20], "hardactivationconfigtempl": [10, 14, 20], "prelufunctiontempl": [10, 14, 20], "paramactivationconfigtempl": [10, 14, 20], "parametrizedactivationfunctiontempl": [10, 14, 20], "softmaxconfigtempl": [10, 14, 20], "fifodepthoptim": [10, 20, 22], "configurableoptimizerpass": [10, 16, 20, 22, 29, 30, 40], "modeloptimizerpass": [10, 20, 22, 29, 30, 40], "generate_max_depth_fil": [10, 20], "max": [10, 20, 31, 43], "get_vcd_data": [10, 20], "populate_valu": [10, 20], "depth": [10, 11, 20, 39, 40, 43], "set_big_fifo": [10, 20], "vars_to_profil": [10, 20], "set_fifo_depth": [10, 20], "garnetconfigtempl": [10, 20], "get_transforms_config": [10, 20], "garnetfunctiontempl": [10, 20], "garnetstackconfigtempl": [10, 20], "garnetstackfunctiontempl": [10, 20], "concatenateconfigtempl": [10, 14, 20], "dotconfigtempl": [10, 14, 20], "mergeconfigtempl": [10, 14, 20], "mergefunctiontempl": [10, 14, 20], "optimizepointwiseconv": [10, 14, 20], "pointwiseconv1dconfigtempl": [10, 14, 20], "pointwiseconv1dfunctiontempl": [10, 14, 20], "pointwiseconv2dconfigtempl": [10, 14, 20], "pointwiseconv2dfunctiontempl": [10, 14, 20], "register_pointwis": [10, 14, 20], "poolingconfigtempl": [10, 14, 20], "poolingfunctiontempl": [10, 14, 20], "applyalphaconfigtempl": [10, 14, 20], "applyalphafunctiontempl": [10, 14, 20], "recurrentconfigtempl": [10, 20], "recurrentfunctiontempl": [10, 20], "resizeconfigtempl": [10, 14, 20], "resizefunctiontempl": [10, 14, 20], "transposeconfigtempl": [10, 14, 20], "transposefunctiontempl": [10, 14, 20], "zeropaddingconfigtempl": [10, 14, 20], "zeropaddingfunctiontempl": [10, 14, 20], "applyresourcestrategi": [10, 14, 20], "transpos": [10, 14, 20, 23, 27, 30, 35], "dense_resourc": [10, 14, 20], "matrix": [10, 14, 20, 31, 32, 33, 38, 43], "multipli": [10, 14, 20, 38], "routin": [10, 14, 20, 23], "transformtyp": [10, 14, 20], "globaloptimizerpass": [10, 14, 20, 29, 40], "link": [11, 27, 43], "runtim": [11, 43], "fail": [11, 39], "string": [11, 23, 31, 32, 34, 35, 43], "compute_conv1d_instruct": 11, "in_w": 11, "in_c": 11, "kernel_s": 11, "stride": [11, 23], "pad": [11, 23, 27, 43], "compute_conv2d_instruct": 11, "in_h": 11, "classmethod": [11, 27, 29, 33], "convert_precision_str": 11, "generate_conv1d_line_buffer_fn": 11, "layer_idx": 11, "n_partit": 11, "dilat": [11, 23], "mimic": 11, "im2col": [11, 12], "1d": [11, 12, 14, 23, 30], "suboptim": 11, "trick": [11, 32, 38], "explicitli": [11, 38, 43], "reli": 11, "loop": 11, "sinc": [11, 31, 32, 43], "partit": 11, "divid": 11, "pixel": [11, 39], "width": [11, 23, 27, 32, 35, 38], "channel": [11, 21, 23, 30, 39], "length": [11, 23, 31, 32], "iter": [11, 31, 32], "left_pad": 11, "right_pad": 11, "generate_conv2d_line_buffer_fn": 11, "2d": [11, 12, 23, 43], "height": [11, 23], "top_pad": 11, "bottom_pad": 11, "get_closest_reuse_factor": 11, "valid_rf": 11, "chosen_rf": 11, "closest": 11, "sort": [11, 40], "get_valid_reuse_factor": 11, "equal": [11, 32], "close": 11, "smallest": 11, "get_layer_mult_s": 11, "get_valid_conv_partition_split": 11, "out_height": 11, "out_width": 11, "split": [11, 38], "conv1d": [11, 27, 40, 43], "essenti": [11, 38], "divisor": 11, "product_typ": [11, 14], "helper": [11, 27, 32], "dure": [11, 13, 23, 27, 31, 32, 38], "infer": [11, 23, 30, 32, 37, 38, 41, 42], "set_closest_reuse_factor": 11, "set_target_reuse_factor": 11, "disk": [11, 27], "write_hl": [11, 36], "batchnormalizationquantizedtanh": [11, 30], "batch": [11, 23, 31, 32, 35, 43], "ternari": [11, 30, 42, 43], "tanh": [11, 27, 43], "varianc": [11, 32], "beta": [11, 32], "gamma": 11, "fold": 11, "flip": 11, "set_threshold": 11, "scale": [11, 30, 31, 38, 43], "ternary_threshold": 11, "pointwiseconv1d": 11, "1x1": [11, 43], "pointwiseconv2d": 11, "acfixedprecisiondefinit": 11, "precisiondefinit": 11, "acintegerprecisiondefinit": 11, "actypeconvert": 11, "fixedprecisionconvert": 11, "apfixedprecisiondefinit": 11, "apintegerprecisiondefinit": 11, "aptypeconvert": 11, "prefix": 11, "definition_cl": 11, "tensor_var": 11, "bramweightvariableconvert": 11, "weight_var": 11, "compressedtypeconvert": 11, "typedefinit": 11, "typeprecisionconvert": 11, "convert_precis": 11, "precision_convert": 11, "exponenttypeconvert": 11, "type_map": 11, "precisionconvert": 11, "precision_typ": 11, "hlstypeconvert": 11, "atyp": [11, 27], "n_pack": [11, 27], "namedtypeconvert": 11, "packedtypeconvert": 11, "staticweightvariableconvert": 11, "staticweightvariabledefinit": 11, "struct_nam": 11, "batchnormalizationquantizedtanhconfigtempl": 12, "batchnormalizationquantizedtanhfunctiontempl": 12, "mergebatchnormandquantizedtanh": 12, "quantizedenseoutput": 12, "register_bn_qu": 12, "registerbramweight": 12, "whose": [12, 27], "clonefunctiontempl": 12, "cloneoutput": 12, "time": [12, 31, 32, 38, 39, 42, 43], "register_clon": 12, "generateconvim2col": 12, "tcode": 12, "embeddingconfigtempl": 12, "embeddingfunctiontempl": 12, "removefinalreshap": 12, "fixsoftmaxtables": 12, "register_softmax__table_size_fix": 12, "processfixedpointquantizercal": 12, "processfixedpointquantizerlay": 12, "fixedpointquant": [12, 30], "processunarylutcal": 12, "generate_mask_fn": 12, "ndarrai": [12, 23, 27], "b": [12, 31, 38], "rnd": [12, 27], "sat": [12, 27], "heterogen": 12, "register_hgq_proxy_model": [12, 30], "to_acfix": 12, "to_apfix": 12, "inplaceparallelreshap": 12, "replac": [12, 23, 27], "inplac": [12, 43], "tensor": [12, 23, 27, 32, 35, 43], "flat": 12, "inplacestreamflatten": 12, "flatten": [12, 30, 32, 43], "expens": [12, 30, 38], "repack": [12, 43], "skipsoftmax": 12, "pack": [12, 27], "repackfunctiontempl": 12, "reshapestream": 12, "register_repack_stream": 12, "xnorpool": 12, "behavior": 12, "maxpool": 12, "xnorprecisiontyp": [12, 27, 43], "propag": [12, 43], "quartusbackend": 13, "fpgasynth": 13, "log_level": 13, "cont_if_large_area": 13, "intel": [13, 39, 44, 45], "synthesi": [13, 23, 37, 38, 39, 41, 43, 44], "log": [13, 23, 31, 32, 35], "level": [13, 31, 32, 35, 36, 38, 40, 41, 45], "displai": [13, 31, 32, 35], "continu": 13, "exce": 13, "error": [13, 43], "arria10": 13, "_": [13, 17, 19, 38], "init_activ": 13, "init_simple_rnn": 13, "chdir": 13, "newdir": 13, "quartusarrayvariableconvert": 13, "quartusarrayvariabledefinit": 13, "quartusinplacearrayvariableconvert": 13, "quartusinplacearrayvariabledefinit": 13, "quartusinplacestreamvariableconvert": 13, "quartusinplacestreamvariabledefinit": 13, "quartusstreamvariableconvert": 13, "quartusstreamvariabledefinit": 13, "quartusstructmembervariableconvert": 13, "quartusstructmembervariabledefinit": 13, "conv_mult_config_templ": 14, "_mult": 14, "rf_pad": 14, "rfpad": 14, "bf_pad": 14, "bfpad": 14, "reuse_factor_round": 14, "block_factor": 14, "div_roundup": 14, "block_factor_round": 14, "multiplier_factor": 14, "min": [14, 43], "multiplier_limit": 14, "multiplier_scal": 14, "x_t": 14, "y_t": 14, "conv": [14, 30, 43], "gruconfigtempl": 14, "grufunctiontempl": 14, "lstmconfigtempl": 14, "lstmfunctiontempl": 14, "simplernnconfigtempl": 14, "simplernnfunctiontempl": 14, "symbolicexpressionbackend": 15, "xcvu9p": 15, "clock_uncertainti": [15, 17, 19, 21, 23], "vivado_hl": [15, 23, 44], "hls_include_path": [15, 23, 35], "hls_libs_path": [15, 23, 35], "validateuserlookupt": 16, "adequ": 16, "vitisbackend": 17, "vivadobackend": [17, 19, 21, 36], "27": [17, 23], "write_weights_txt": [17, 19], "write_tar": [17, 19, 36], "uncertainti": [17, 19, 23], "place": [17, 19], "txt": [17, 19, 36], "speed": [17, 19, 38, 43], "validateconvimplement": 18, "validatestrategi": 18, "init_depconv1d": 19, "vivadoarrayvariableconvert": 19, "vivadoarrayvariabledefinit": 19, "vivadoinplacearrayvariableconvert": 19, "vivadoinplacearrayvariabledefinit": 19, "vivadoinplacestreamvariableconvert": 19, "vivadoinplacestreamvariabledefinit": 19, "vivadostreamvariableconvert": 19, "vivadostreamvariabledefinit": 19, "vivadoacceleratorbackend": 21, "axi_stream": 21, "input_typ": 21, "output_typ": 21, "platform": [21, 31], "xilinx_u250_xdma_201830_2": 21, "acceler": [21, 42], "supported_board": [21, 23], "exploit": 21, "axi_mast": 21, "master": [21, 43], "axi_lit": 21, "lite": 21, "don": [21, 27, 43], "t": [21, 23, 27, 30, 31, 32, 33, 38, 43], "exchang": 21, "amount": [21, 23], "metal": 21, "ap_typ": 21, "round": [21, 30], "make_xclbin": 21, "xclbin": 21, "deploy": 21, "host": 21, "guid": [21, 35], "vivadoacceleratorconfig": 21, "model_input": 21, "model_output": 21, "get_board": 21, "get_board_info": 21, "get_clock_period": 21, "get_corrected_typ": 21, "get_driv": 21, "get_driver_fil": 21, "get_driver_path": 21, "get_input_typ": 21, "get_interfac": 21, "get_io_bitwidth": 21, "get_krnl_rtl_src_dir": 21, "get_output_typ": 21, "get_part": 21, "get_platform": 21, "get_tcl_file_path": 21, "kerasfileread": 23, "kerasread": [23, 24], "get_weights_data": 23, "layer_nam": [23, 27, 30], "var_nam": [23, 27], "kerasmodelread": 23, "kerasnestedfileread": 23, "nested_path": 23, "get_model_arch": 23, "get_supported_keras_lay": 23, "intern": [23, 35, 39, 43], "represent": [23, 30], "vari": [23, 38], "across": 23, "keras_handl": 23, "arg": [23, 31, 43], "parse_default_keras_lay": 23, "parse_keras_model": 23, "model_arch": 23, "reader": [23, 25, 43], "layer_cnam": 23, "handler_func": 23, "parse_func": 23, "properti": [23, 27, 28], "callabl": 23, "onnxdataread": 23, "extract": [23, 30, 31, 43], "relev": [23, 30], "add_input": 23, "perm": [23, 30], "compute_pads_1d": 23, "oper": [23, 35, 40, 43], "compute_pads_2d": 23, "get_input_shap": 23, "input_idx": [23, 27], "get_onnx_attribut": 23, "get_onnx_input_nam": 23, "get_out_layer_nam": 23, "get_supported_onnx_lay": 23, "onnx_handl": 23, "unsupport": [23, 43], "register_onnx_layer_handl": 23, "replace_char_inconsit": 23, "inconsist": 23, "charact": 23, "caus": [23, 32], "issu": [23, 43], "sanitize_layer_nam": 23, "compute_padding_1d": 23, "pad_typ": 23, "in_siz": 23, "filt_siz": 23, "side": 23, "tri": 23, "evenli": 23, "column": 23, "odd": 23, "causal": [23, 43], "insensit": 23, "window": [23, 45], "unknown": [23, 35], "compute_padding_1d_pytorch": 23, "compute_padding_2d": 23, "in_height": 23, "in_width": [23, 43], "stride_height": 23, "stride_width": 23, "filt_height": [23, 32, 43], "filt_width": [23, 32], "top": [23, 31, 32, 35, 36, 43, 45], "bottom": 23, "compute_padding_2d_pytorch": 23, "dilation_height": 23, "dilation_width": 23, "parse_data_format": 23, "data_format": 23, "channels_last": [23, 30, 35], "accord": [23, 31], "element": [23, 27, 31, 32], "interpret": 23, "discard": 23, "3d": 23, "channels_first": [23, 30, 35], "convert_from_config": 23, "filesystem": 23, "project_nam": [23, 35], "input_data_tb": 23, "output_data_tb": 23, "associ": [23, 32], "overwrit": 23, "unus": [23, 43], "convert_from_onnx_model": [23, 35], "convert_from_pytorch_model": [23, 35], "expect": [23, 27, 30, 40], "Not": 23, "hand": 23, "inputs_channel_last": 23, "config_from_pytorch_model": [23, 35], "remain": [23, 40], "transpose_output": [23, 35], "back": 23, "convert_from_symbolic_express": 23, "expr": 23, "n_symbol": 23, "lut_funct": 23, "use_built_in_lut_funct": 23, "sympi": 23, "express": [23, 27, 38, 43], "form": [23, 32, 35], "x0": 23, "x1": 23, "x2": 23, "largest": [23, 38], "definit": [23, 27, 35, 36], "func_nam": [23, 35], "math_func": [23, 35], "func": [23, 27, 35], "table_s": [23, 35], "range_start": [23, 35], "range_end": [23, 35], "pysr": [23, 35], "math": [23, 35], "approxim": [23, 35], "sin": [23, 35], "co": [23, 29, 35, 37, 38], "lookup": [23, 35, 36], "tabl": [23, 35, 36, 43, 45], "strongli": [23, 35], "built": [23, 32, 43, 44, 45], "vitis_hl": 23, "inlcud": 23, "locat": [23, 32, 40], "empti": [23, 30], "won": 23, "integr": [23, 27], "unless": [23, 32], "doesn": [23, 30, 33], "affect": [23, 30, 35], "lib": [23, 35], "parse_yaml_config": 23, "config_fil": 23, "proper": 23, "serial": 23, "my_keras_model": 23, "doc": [23, 43], "parse_conv1d_lay": 24, "parse_conv2d_lay": 24, "parse_activation_lay": [24, 25], "parse_batchnorm_lay": [24, 25], "parse_dense_lay": 24, "parse_embedding_lay": 24, "parse_input_lay": 24, "parse_garnet_lay": 24, "fixedpoint_quantizer_handl": 24, "unary_lut_keras_handl": 24, "parse_merge_lay": [24, 25], "parse_model_lay": 24, "parse_global_pooling_lay": [24, 25], "parse_pooling_lay": 24, "get_quantizer_from_config": 24, "quantizer_var": 24, "parse_qactivation_lay": 24, "parse_qbatchnorm_lay": 24, "parse_qconv2dbatchnorm_lay": 24, "parse_qconv_lay": 24, "parse_qdense_lay": 24, "parse_qdepthwiseqconv_lay": 24, "parse_qrnn_lay": 24, "parse_qsepconv_lay": 24, "parse_rnn_lay": 24, "parse_flatten_lay": 24, "parse_permute_lay": 24, "parse_reshape_lay": [24, 25], "parse_upsampling1d_lay": 24, "parse_upsampling2d_lay": 24, "parse_zeropadding1d_lay": 24, "parse_zeropadding2d_lay": 24, "parse_conv_lay": 25, "inputs_map": 25, "parse_gemm_lay": 25, "parse_pool_lay": 25, "parse_transpose_lay": 25, "bn_fuse": [27, 29], "convert_to_channels_last": [27, 29], "expand_layer_group": [27, 29], "fuse_biasadd": [27, 29, 40], "infer_precis": [27, 29], "multi_dens": [27, 29], "nop": [27, 29], "seperable_to_dw_conv": [27, 29], "stamp": [27, 29, 40], "transpose_opt": [27, 29], "hidden": 27, "unit": [27, 33], "endpoint": 27, "expos": 27, "handl": [27, 31, 39, 43], "unifi": 27, "view": [27, 28, 40], "map": [27, 32, 40, 43], "conveni": 27, "certain": [27, 28, 31, 32, 33, 38, 40], "attributemap": 27, "value_typ": 27, "consist": 27, "creation": [27, 38], "flag": [27, 34], "expected_attribut": 27, "config_nam": 27, "pascal": 27, "attributenam": 27, "pascal_cas": [27, 35], "validate_valu": 27, "attributedict": 27, "mutablemap": 27, "behav": 27, "upon": 27, "trigger": [27, 38], "action": [27, 43], "convent": 27, "clazz": [27, 29], "choiceattribut": 27, "choic": 27, "predefin": 27, "codeattrubut": 27, "codemap": 27, "configurableattribut": 27, "advis": [27, 35, 37], "typeattribut": 27, "namedtyp": 27, "_t": 27, "typemap": 27, "variablemap": 27, "tensorvari": 27, "weightattribut": 27, "weightmap": 27, "weightvari": [27, 36], "get_bram_s": 27, "get_compress": 27, "get_config_valu": 27, "get_conv_implement": 27, "get_layer_config": 27, "get_layer_config_valu": 27, "get_output_dir": 27, "get_precis": 27, "var": [27, 36], "get_project_dir": 27, "get_project_nam": 27, "get_reuse_factor": 27, "get_strategi": 27, "get_target_cycl": 27, "get_writer_config": 27, "is_resource_strategi": 27, "parse_name_config": 27, "layer_cfg": 27, "_parse_hls_config": 27, "set_name_config": 27, "layer_list": 27, "being": [27, 32], "apply_flow": [27, 40], "reappli": [27, 30], "collect": [27, 28, 42], "skip": [27, 43], "environ": [27, 32, 38, 43], "get_layer_output_vari": 27, "output_nam": 27, "get_lay": 27, "get_output_vari": 27, "get_weight_vari": 27, "insert_nod": 27, "make_nod": 27, "ambigu": 27, "sequenc": [27, 30, 38, 40], "attempt": [27, 29], "made": [27, 40, 43], "doe": [27, 31, 32, 42], "kind": 27, "replace_nod": 27, "next_lay": 27, "register_output_vari": 27, "out_nam": 27, "remove_nod": 27, "rewir": [27, 32], "previou": [27, 31, 37, 38, 42], "leaf": 27, "old_nod": 27, "new_nod": 27, "split_nod": 27, "new_node1": 27, "new_node2": 27, "trace": [27, 43], "biasadd": [27, 30], "concaten": [27, 43], "conv2dbatchnorm": 27, "depthwiseconv1d": [27, 43], "depthwiseconv2d": [27, 43], "dot": [27, 35], "gru": [27, 43], "garnet": [27, 43, 45], "ref_impl": 27, "garnetstack": [27, 43], "globalpooling1d": [27, 43], "globalpooling2d": 27, "hardactiv": 27, "tan": [27, 35], "unction": 27, "clip": 27, "slope": 27, "shift": [27, 43], "hard_sigmoid": 27, "lstm": [27, 43, 45], "necessarili": 27, "add_bia": [27, 30], "_out": 27, "type_nam": 27, "add_weight": [27, 30], "add_weights_vari": 27, "get_attr": 27, "get_input_nod": 27, "get_layer_precis": 27, "get_output_nod": 27, "get_output_use_map": 27, "get_vari": 27, "get_weight": 27, "set_attr": [27, 29], "layergroup": [27, 30], "prelu": 27, "parametrizedactiv": 27, "pooling1d": 27, "pooling2d": 27, "separableconv1d": [27, 43], "separableconv2d": [27, 43], "simplernn": 27, "symbolicexpress": 27, "ternarytanh": 27, "zeropadding1d": 27, "zeropadding2d": 27, "classproperti": 27, "local": [27, 31, 32], "binaryquant": 27, "qkerasbinaryquant": 27, "xnor": 27, "around": 27, "qkeraspo2quant": 27, "qkerasquant": 27, "hls_type": 27, "upstream": 27, "ternaryquant": 27, "precisiontyp": 27, "dimension": [27, 31, 32, 33, 43], "compressedtyp": 27, "index_precis": 27, "coo": 27, "compressedweightvari": 27, "_type_": [27, 29], "exponentprecisiontyp": [27, 43], "differenti": 27, "expon": 27, "po2": [27, 43], "exponenttyp": 27, "special": [27, 29, 30, 40, 43], "mark": 27, "exponentweightvari": 27, "aka": 27, "fixedprecisiontyp": [27, 31], "rounding_mod": [27, 30], "saturation_mod": [27, 30], "saturation_bit": 27, "arbitrari": 27, "ap_": 27, "u": [27, 42], "decim": [27, 35], "roundingmod": 27, "mode": [27, 30], "trn": 27, "saturationmod": 27, "satur": [27, 30], "fraction": 27, "inplacetensorvari": 27, "tv": 27, "input_var": 27, "integerprecisiontyp": [27, 43], "ac_int": [27, 43], "packedtyp": 27, "n_elem": 27, "w": [27, 31, 32, 33, 37], "_description_": [27, 28, 29], "enum": [27, 31], "enumer": [27, 31], "rnd_conv": 27, "rnd_inf": 27, "rnd_min_inf": 27, "rnd_zero": 27, "trn_zero": 27, "from_str": 27, "sat_sym": 27, "sat_zero": 27, "get_shap": 27, "size_cpp": 27, "unspecifiedprecisiontyp": 27, "multidimension": [27, 30, 43], "update_precis": 27, "new_precis": 27, "bnn": 27, "ones": 27, "find_minimum_width": 27, "find": [27, 32, 44], "entri": [27, 31, 32], "dynamicflow": 28, "optimizer_func": 28, "dynam": [28, 31, 38], "updat": [28, 31, 32, 43, 45], "get_backend_flow": 28, "get_flow": 28, "register_flow": [28, 40], "belong": [28, 29, 36], "append": [28, 29, 43], "update_flow": 28, "flow_nam": 28, "add_optim": 28, "remove_optim": 28, "global": [29, 31, 32, 36], "layeroptimizerpass": [29, 40], "wrappedoptimizerpass": 29, "commonli": [29, 32, 40], "itself": [29, 40], "deriv": [29, 32, 40, 43], "condit": 29, "manual": [29, 35], "extract_optimizers_from_object": 29, "extract_optimizers_from_path": 29, "opt_path": 29, "module_path": 29, "get_available_pass": 29, "get_backend_pass": 29, "layer_optim": 29, "decor": [29, 40], "turn": [29, 43], "mylay": 29, "init_mylay": 29, "new_attribut": 29, "some_valu": 29, "model_optim": 29, "until": [29, 31, 40], "longer": [29, 32, 38, 40, 43], "occur": 29, "optimizer_pass": 29, "fusebatchnorm": 30, "channelslastconvert": 30, "removetransposebeforeflatten": 30, "expandlayergroup": 30, "expand": [30, 43], "nest": [30, 35, 43], "parent": [30, 31, 43], "fusebiasadd": 30, "common": [30, 40], "enforceproxymodelembeddedconfig": 30, "unarylut": 30, "to_hls4ml_fix": 30, "userconf_ifdef": 30, "inferprecisiontyp": 30, "replacemultidimensionaldensewithconv": 30, "bakend": 30, "eliminatelinearactiv": 30, "applyalpha": [30, 43], "qdens": [30, 32], "alpha": [30, 32, 43], "extractternarythreshold": 30, "execut": [30, 32, 40], "That": 30, "fuseconsecutivebatchnorm": 30, "consecut": [30, 31, 32], "qkerasfactorizealpha": 30, "outputroundingsaturationmod": 30, "accumul": 30, "applic": [30, 31, 32, 38], "output_rounding_saturation_mod": 30, "ap_rnd_conv": 30, "ap_sat": 30, "precision_string_modifi": 30, "pstr": 30, "q": [30, 45], "register_qkera": 30, "seper": 30, "depthwis": 30, "seperabletodepthwiseandconv": 30, "depthwiseconv": 30, "potenti": [30, 38], "later": [30, 31, 32, 40, 42], "makestamp": [30, 40], "removenoptranspos": 30, "anyth": 30, "removesinglechanneltranspos": 30, "layerattribut": [31, 32, 33], "layer_typ": 31, "inbound_lay": 31, "weight_shap": 31, "output_shap": 31, "optimiz": [31, 32, 33], "optimization_attribut": [31, 33], "identifi": [31, 32], "optimizationattribut": [31, 33], "offset": [31, 32], "hls4mlattribut": 31, "update_arg": 31, "structure_typ": [31, 32, 33], "supported_structur": [31, 32], "weight_shar": 31, "block_shap": [31, 32], "pattern_offset": [31, 32], "consecutive_pattern": [31, 32], "mani": [31, 32, 33, 38, 40, 44], "group": [31, 32], "togeth": [31, 32], "sype": 31, "get_attributes_from_keras_model_and_hls4ml_config": 31, "weight_precis": 31, "output_precis": 31, "parallelization_factor": 31, "row": [31, 32], "col": 31, "solve_knapsack": 31, "capac": 31, "cbc_mip": [31, 32], "item": 31, "greedi": [31, 32], "branch": [31, 43, 44], "bound": 31, "time_limit": 31, "limit": [31, 45], "cbc": 31, "solut": 31, "far": 31, "scaling_factor": 31, "optimal_valu": 31, "selected_item": 31, "select": [31, 38], "formul": [31, 32], "m": [31, 32, 37, 38], "v": [31, 37], "x_": 31, "j": 31, "wise": [31, 32], "inequla": 31, "vector": [31, 38], "o": [31, 37, 42], "nw": 31, "constraint": 31, "medium": 31, "googl": 31, "OR": [31, 32], "multi": [31, 33, 42, 43], "often": [31, 37, 38], "greeedi": 31, "mip": 31, "solver": 31, "high": [31, 32, 38, 41, 42], "mn": 31, "highli": [31, 32, 35, 38], "never": 31, "binaryschedul": 31, "initial_spars": 31, "01": [31, 32, 43], "optimizationschedul": [31, 32], "halv": 31, "search": 31, "space": 31, "constantli": 31, "upper": 31, "midpoint": 31, "repair": 31, "decrement": 31, "repair_step": 31, "meet": 31, "satisfi": [31, 40], "constantschedul": 31, "05": [31, 32, 43], "55": 31, "explan": 31, "75": 31, "625": [31, 43], "update_step": 31, "constant": [31, 32], "term": 31, "request": [31, 43, 44], "state": [31, 32, 40], "abc": [31, 33], "regard": 31, "get_spars": 31, "abstract": [31, 33], "maximum_step": 31, "decay_pow": 31, "decai": [31, 32], "zhu": 31, "gupta": 31, "2016": [31, 32], "explor": [31, 44], "efficaci": 31, "slightli": 31, "frequenc": 31, "underperform": 31, "simpli": 31, "jump": 31, "track": 31, "tope": 31, "trial": [31, 32], "validation_metr": [31, 32], "callback": [31, 32], "ranking_metr": [31, 32], "l1": [31, 32], "verbos": [31, 32, 35], "rewinding_epoch": [31, 32], "cutoff_bad_tri": [31, 32], "tuner": [31, 32], "bayesian": [31, 32], "knapsack_solv": [31, 32], "regularization_rang": [31, 32], "1e": [31, 32], "06": [31, 32], "8478497974222906e": [31, 32], "414548873833601e": [31, 32], "30957344480193e": [31, 32], "165914401179831e": [31, 32], "1544346900318823e": [31, 32], "9810717055349695e": [31, 32], "356422544596421e": [31, 32], "00013593563908785255": [31, 32], "00025118864315095795": [31, 32], "00046415888336127773": [31, 32], "0008576958985908938": [31, 32], "001584893192461114": [31, 32], "0029286445646252374": [31, 32], "0054116952654646375": [31, 32], "objectiveestim": [31, 32, 33], "tune": [31, 32, 35], "descript": [31, 32], "improv": [31, 32, 38, 43], "pruned_validation_metr": [31, 32], "baseline_validation_metr": [31, 32], "rank": [31, 32], "l2": [31, 32], "salienc": [31, 32], "oracl": [31, 32], "retrain": [31, 32], "freez": [31, 32], "regrowth": [31, 32], "previous": [31, 32, 43], "bad": [31, 32], "temporari": [31, 32], "hyperband": [31, 32], "hyperparamet": [31, 32], "hyperoptimizationmodel": 32, "hypermodel": 32, "hp": 32, "build_optimizable_model": 32, "train_dataset": 32, "validation_dataset": 32, "idea": 32, "coupl": 32, "quit": 32, "older": 32, "had": [32, 38], "crash": 32, "bug": [32, 43], "simultan": 32, "conflict": [32, 33], "dataset": 32, "consol": 32, "learning_rate_rang": 32, "prepar": 32, "remove_custom_regular": 32, "denseregular": 32, "conv2dregular": 32, "supported_lay": 32, "qlayer": 32, "qconvolut": 32, "qconv2d": 32, "classifi": 32, "redund": 32, "norm": 32, "ab": 32, "dl": 32, "dw": 32, "molchanov": 32, "d": [32, 42], "lecun": 32, "1989": 32, "brain": 32, "damag": 32, "supported_metr": 32, "best": [32, 33, 38], "get_model_mask": 32, "gradient": 32, "hessian": 32, "calcul": [32, 38], "frozen": 32, "resource_util": 32, "baseline_util": 32, "resource_sav": 32, "therefor": [32, 38], "And": [32, 44], "smaller": 32, "otheris": 32, "magnitud": 32, "deal": 32, "reduce_model": 32, "surgeon": 32, "http": [32, 35, 41, 42, 44], "com": [32, 35, 41, 42, 44], "benwhetton": 32, "fork": 32, "fastmachinelearn": [32, 35, 41, 42, 44], "funcion": 32, "separ": [32, 34, 35, 43], "flexibl": 32, "cluster": [32, 35], "spars": 32, "penalti": 32, "push": 32, "toward": 32, "filter_width": 32, "filter_height": 32, "n_chan": 32, "n_filt": 32, "th": 32, "serializ": 32, "reinstanti": 32, "savedmodel": 32, "checkpoint": 32, "model_to_estim": 32, "hdf5": 32, "visual": [32, 35], "penal": 32, "4x4": 32, "8x1": 32, "simd": 32, "processor": 32, "encount": 32, "less": 32, "36": 32, "thu": [32, 38], "get_last_layer_with_weight": 32, "sometim": 32, "cannot": 32, "idx": 32, "get_model_gradi": 32, "grad": 32, "get_model_hessian": 32, "repsect": 32, "diagon": 32, "percentag": 32, "todo": 32, "reccurent_kernel": 32, "maskedbackprop": 32, "backprop": 32, "__call__": 32, "deplet": 32, "update_mask": 32, "is_layer_optimiz": 33, "layer_attribut": 33, "check": [33, 35, 43, 44, 45], "sens": [33, 40], "furthermor": 33, "9": [33, 45], "layer_resourc": 33, "regardless": [33, 40], "layer_sav": 33, "alongsid": 33, "layer_attribtu": 33, "care": 33, "especi": [33, 43], "goal": [33, 38], "get_latest_project_prj_directori": 34, "base_path": 34, "projectdir": 34, "get_latest_project_version_directori": 34, "parse_catapult_report": 34, "qofr": 34, "read_catapult_report": 34, "hls_dir": 34, "full_report": 34, "parse_quartus_report": 34, "write_to_fil": 34, "read_js_object": 34, "js_script": 34, "javascript": 34, "defind": 34, "script": [34, 36, 43], "read_quartus_report": 34, "open_brows": 34, "browser": 34, "parse_vivado_report": 34, "print_vivado_report": [34, 43], "report_dict": 34, "max_precis": 35, "serv": 35, "inspect": 35, "tweak": [35, 40], "explicit": 35, "config_from_onnx_model": 35, "channels_last_convers": 35, "full": [35, 37, 40, 43, 44], "exclud": 35, "off": 35, "assum": 35, "create_config": 35, "fetch_example_list": [35, 44], "fetch_example_model": [35, 44], "model_nam": 35, "repo": [35, 43], "fixedpointemul": 35, "integer_bit": 35, "decimal_bit": 35, "complement": 35, "exp_float": 35, "sig_fig": 35, "inv_float": 35, "set_msb_bit": 35, "to_float": 35, "ceil_log2": 35, "uint_to_binari": 35, "relat": [35, 43], "add_edg": 35, "dst": 35, "check_pydot": 35, "pydot": 35, "graphviz": 35, "model_to_dot": 35, "show_shap": 35, "show_layer_nam": 35, "show_precis": 35, "rankdir": 35, "tb": 35, "dpi": 35, "96": 35, "subgraph": 35, "vertic": 35, "lr": 35, "horizont": 35, "inch": 35, "importerror": 35, "plot_model": 35, "to_fil": 35, "png": 35, "jupyt": 35, "notebook": 35, "enabl": [35, 38, 43], "convert_to_pascal_cas": 35, "snake_cas": 35, "pascalcas": 35, "convert_to_snake_cas": 35, "lutfunct": 35, "generate_operator_complex": 35, "unary_oper": 35, "binary_oper": 35, "cycl": 35, "unari": 35, "init_pysr_lut_funct": 35, "init_default": 35, "function_definit": 35, "math_lut": 35, "pysrregressor": 35, "frequent": [35, 40], "exp": 35, "register_pysr_lut_funct": 35, "julia_main": 35, "catapultwrit": 36, "print_array_to_cpp": 36, "odir": 36, "write_txt_fil": 36, "write_bridg": 36, "bridg": 36, "myproject_bridg": 36, "write_build_script": 36, "tcl": [36, 43, 44], "shell": 36, "build_prj": [36, 44], "build_lib": 36, "sh": 36, "write_defin": 36, "write_generated_cod": 36, "nnet_code_gen": 36, "write_nnet_util": 36, "ap": 36, "write_output_dir": 36, "write_paramet": 36, "write_project_cpp": 36, "main": [36, 43, 44, 45], "write_project_head": 36, "archiv": 36, "write_test_bench": 36, "testbench": 36, "myproject_test": 36, "write_weight": 36, "write_yml": 36, "quartuswrit": 36, "get_max_reuse_factor": 36, "next_pow2": 36, "write_activation_t": 36, "makefil": 36, "write_project_dir": 36, "write_testbench_parallel": 36, "write_testbench_stream": 36, "symbolicexpressionwrit": 36, "vivadowrit": 36, "vivado_synth": 36, "vitiswrit": 36, "adapt": 36, "write_nnet_utils_overrid": 36, "vivadoacceleratorwrit": 36, "modify_build_script": 36, "write_axi_wrapp": 36, "write_board_script": 36, "ipi": 36, "vivadoacceler": [36, 43], "write_driv": 36, "write_new_tar": 36, "write_wrapper_test": 36, "clash": 36, "get_writ": 36, "register_writ": 36, "writer_cl": 36, "migrat": 37, "messag": 37, "posit": 37, "exit": 37, "pb": [37, 43], "pt": 37, "l": [37, 42, 43], "csimul": 37, "impli": 37, "vivado_synthesi": 37, "translat": [38, 41, 44], "transpil": 38, "plug": 38, "freedom": 38, "greatli": 38, "intuit": 38, "balanc": 38, "stem": 38, "energi": [38, 42], "physic": [38, 42], "cern": 38, "hadron": 38, "collid": 38, "lhc": 38, "proven": 38, "extrem": [38, 42], "analysi": 38, "detector": 38, "offlin": 38, "agglomer": 38, "collis": 38, "event": 38, "too": 38, "everyth": 38, "kept": 38, "significantli": [38, 43], "live": 38, "preserv": 38, "mind": 38, "realiz": 38, "task": 38, "remap": 38, "isn": 38, "realli": [38, 43], "come": 38, "cost": 38, "microsecond": 38, "invest": 38, "languag": [38, 41], "rapid": 38, "multilay": [38, 45], "At": 38, "n_m": 38, "mathbf": 38, "_m": 38, "said": 38, "sum": 38, "independ": [38, 39, 40], "n_": 38, "w_": 38, "g_m": 38, "compactli": 38, "accept": 38, "nontrivi": 38, "precomput": 38, "control": [38, 39, 40, 44], "aspect": 38, "princip": 38, "though": 38, "dataflow": 38, "awar": [38, 42, 43], "decis": 38, "Of": 38, "simplifi": 38, "sizabl": 38, "speedup": 38, "arithmet": 38, "offer": 38, "bin": 38, "lowest": 38, "highest": 38, "therebi": 38, "paper": [38, 42, 43], "jinst": [38, 42], "13": [38, 42, 43], "p07027": [38, 42], "2018": [38, 42, 43, 44, 45], "statu": 39, "featur": [39, 41, 42, 44], "known": 39, "mlp": [39, 45], "small": 39, "alwai": 39, "sent": 39, "verifi": 40, "undergo": 40, "seri": 40, "dub": 40, "modif": 40, "uniqu": 40, "criteria": 40, "again": 40, "folder": 40, "assign": 40, "explain": 40, "tradit": 41, "interest": 41, "experi": 41, "latest": [41, 44, 45], "plan": 41, "public": 42, "cite": 42, "fastml_hls4ml": 42, "author": 42, "fastml": 42, "team": 42, "year": 42, "2023": [42, 43], "publish": [42, 43], "zenodo": 42, "v0": 42, "doi": 42, "5281": 42, "1201549": 42, "url": 42, "articl": 42, "duart": 42, "2018ite": 42, "javier": 42, "deep": 42, "particl": 42, "eprint": 42, "1804": 42, "06913": 42, "archiveprefix": 42, "arxiv": [42, 43], "primaryclass": 42, "ins": 42, "det": 42, "reportnumb": 42, "fermilab": 42, "pub": 42, "18": [42, 43], "089": 42, "1088": 42, "1748": 42, "0221": 42, "07": [42, 43], "journal": 42, "volum": 42, "aarrestad": 42, "2021zo": 42, "thea": 42, "2101": [42, 43], "05108": [42, 43], "cs": 42, "lg": 42, "21": [42, 44, 45], "130": 42, "scd": 42, "2632": 42, "2153": 42, "ac0ea1": 42, "mach": 42, "sci": 42, "045015": 42, "2021": [42, 43], "ghielmetti": 42, "2022ndm": 42, "nicol": 42, "semant": 42, "segment": 42, "autonom": 42, "vehicl": 42, "2205": 42, "07690": 42, "cv": 42, "22": 42, "435": [42, 43], "ppd": 42, "ac9cb5": 42, "loncar": 42, "2020hqp": 42, "ngadiuba": 42, "jennif": 42, "2003": 42, "06308": 42, "20": [42, 43, 44, 45], "167": 42, "aba042": 42, "015001": 42, "ramhorst": 42, "2023fpga": 42, "benjamin": 42, "2308": 42, "05170": 42, "particip": 42, "ask": 42, "collabor": 42, "who": 42, "text": 42, "domain": 42, "expert": 42, "were": 42, "gratefulli": 42, "nation": 42, "scienc": 42, "foundat": 42, "nsf": 42, "har": 42, "revolut": 42, "hdr": 42, "institut": 42, "ai": 42, "driven": 42, "discoveri": 42, "a3d3": [42, 43], "cooper": 42, "agreement": 42, "phy": 42, "2117997": 42, "depart": 42, "offic": 42, "scientif": 42, "research": 42, "edg": 42, "xdr": 42, "de": 42, "foa": 42, "0002501": 42, "earli": 42, "career": 42, "sc0021187": 42, "0000247070": 42, "european": 42, "council": 42, "erc": 42, "union": 42, "horizon": 42, "2020": [42, 43, 44, 45], "innov": 42, "grant": [42, 43], "772369": 42, "thank": 42, "vloncar": [42, 43], "jmitrev": [42, 43], "jmduart": [42, 43], "thesp": [42, 43], "bo3z": [42, 43], "nhanvtran": 42, "benjaminkrei": 42, "calad0i": [42, 43], "janfschult": [42, 43], "nghielm": 42, "commit": [42, 43], "ci": [42, 43], "bot": 42, "jngadiub": 42, "drankincm": [42, 43], "duchstf": [42, 43], "hamzajaved780": 42, "ejk43": 42, "laurilaatu": 42, "keb": [42, 43], "adrianalan": [42, 43], "yiiyama": [42, 43], "ngpaladi": 42, "gol": 42, "joshlern": [42, 43], "zhenbinwu": 42, "dependabot": [42, 43], "delonshen": 42, "pitmonticon": [42, 43], "landay7": [42, 43], "jochist": [42, 43], "melko": 42, "qberthet": [42, 43], "veyron8800": 42, "jicampo": 42, "pzejdl": 42, "guyzsarun": 42, "selwyn96": [42, 43], "schsu": [42, 43], "thaarr": 42, "cgutsch": [42, 43], "dgburnett": 42, "katyagovorkova": [42, 43], "nemerchiedd": [42, 43], "sei": 42, "rquartiano": 42, "maksgraczyk": [42, 43], "consvin": [42, 43], "kovi89alip": [42, 43], "jonathan": [42, 43], "shoemak": [42, 43], "siorpa": [42, 43], "chiruichen": [42, 43], "bkmgit": [42, 43], "ander": [42, 43], "wind": [42, 43], "apfusco": [42, 43], "19": 43, "pypi": [43, 45], "905": 43, "906": 43, "autoupd": 43, "921": 43, "logo": 43, "readm": 43, "md": 43, "930": 43, "fp": 43, "gt": 43, "909": 43, "inheirt": 43, "907": 43, "941": 43, "911": 43, "942": 43, "908": 43, "940": 43, "937": 43, "944": 43, "bump": 43, "upload": 43, "artifact": 43, "943": 43, "repalce_nod": 43, "fn": 43, "934": 43, "945": 43, "contributor": 43, "changelog": [43, 45], "11": [43, 44], "decoupl": 43, "781": 43, "770": 43, "tf_to_hl": 43, "795": 43, "796": 43, "qconv2dbatchnorm": 43, "802": 43, "801": 43, "discuss": 43, "inlin": 43, "slow": 43, "down": 43, "x15": 43, "x20": 43, "800": 43, "807": 43, "quantis": 43, "806": 43, "797": 43, "815": 43, "torch": 43, "fx": 43, "clean": 43, "799": 43, "816": 43, "794": 43, "821": 43, "828": 43, "827": 43, "830": 43, "833": 43, "835": 43, "obsolet": 43, "docker": 43, "836": 43, "842": 43, "847": 43, "804": 43, "845": 43, "852": 43, "851": 43, "848": 43, "qdepthwiseconv2d": 43, "834": 43, "660": 43, "837": 43, "checkout": 43, "866": 43, "869": 43, "runner": 43, "gitlab": 43, "879": 43, "880": 43, "877": 43, "acknowledg": 43, "862": 43, "861": 43, "863": 43, "882": 43, "891": 43, "886": 43, "884": 43, "895": 43, "887": 43, "915": 43, "902": 43, "fund": 43, "918": 43, "fetch": [43, 44], "919": 43, "blank": 43, "rst": 43, "923": 43, "ku115": 43, "924": 43, "925": 43, "08": 43, "778": 43, "760": 43, "rnn": [43, 45], "780": 43, "jenkin": 43, "hell": 43, "786": 43, "785": 43, "minor": 43, "788": 43, "791": 43, "04": 43, "26": 43, "403": 43, "407": 43, "399": 43, "414": 43, "qkeras_mnist_dens": 43, "423": 43, "424": 43, "pyyaml": 43, "nicologhielmetti": 43, "420": 43, "443": 43, "amp": 43, "448": 43, "384": 43, "disabl": [43, 44], "447": 43, "quantized_relu": 43, "441": 43, "344": 43, "zeropad": 43, "480": 43, "framework": [43, 45], "395": 43, "499": 43, "501": 43, "cast": 43, "490": 43, "511": 43, "510": 43, "508": 43, "527": 43, "upsampling2d": 43, "520": 43, "upsampling1d": 43, "475": 43, "521": 43, "523": 43, "540": 43, "531": 43, "519": 43, "ingest": 43, "downstream": 43, "544": 43, "547": 43, "extens": 43, "528": 43, "416": 43, "bn": 43, "532": 43, "482": 43, "551": 43, "471": 43, "548": 43, "qactiv": 43, "553": 43, "directli": [43, 44], "567": 43, "559": 43, "transpose2d": 43, "concatenate2d": 43, "402": 43, "io_seri": 43, "info": 43, "334": 43, "453": 43, "487": 43, "few": [43, 44], "typo": 43, "467": 43, "_compute_n_sampl": 43, "537": 43, "552": 43, "sensit": 43, "577": 43, "pr": 43, "582": 43, "560": 43, "syntax": 43, "593": 43, "588": 43, "595": 43, "cppname": 43, "562": 43, "email": 43, "helplin": 43, "601": 43, "598": 43, "609": 43, "test_graph": 43, "611": 43, "597": 43, "enforc": 43, "605": 43, "583": 43, "557": 43, "qconv": 43, "612": 43, "602": 43, "bramfactor": 43, "621": 43, "570": 43, "618": 43, "628": 43, "596": 43, "634": 43, "nondefault": 43, "626": 43, "639": 43, "direct": 43, "635": 43, "qu": 43, "575": 43, "softsign": 43, "585": 43, "561": 43, "contd": 43, "655": 43, "661": 43, "600": 43, "pytest": 43, "663": 43, "664": 43, "applied_flow": 43, "fill": 43, "641": 43, "setuptools_scm": 43, "479": 43, "627": 43, "sphinx": 43, "669": 43, "citat": 43, "615": 43, "fusion": 43, "481": 43, "wider": 43, "averag": 43, "681": 43, "656": 43, "636": 43, "delet": 43, "prj": 43, "682": 43, "adiabat": 43, "678": 43, "688": 43, "689": 43, "690": 43, "703": 43, "clang": [43, 44], "mac": 43, "704": 43, "694": 43, "contrib": 43, "706": 43, "wip": 43, "kl": 43, "606": 43, "incorrectli": 43, "lint": 43, "709": 43, "encod": 43, "min_width": 43, "610": 43, "642": 43, "isort": 43, "719": 43, "727": 43, "715": 43, "keepdim": 43, "globalpool": 43, "716": 43, "724": 43, "569": 43, "nicer": 43, "730": 43, "700": 43, "714": 43, "708": 43, "629": 43, "710": 43, "742": 43, "precommit": 43, "741": 43, "mv": 43, "743": 43, "748": 43, "mess": 43, "751": 43, "cleanup": 43, "codebas": 43, "750": 43, "center": 43, "754": 43, "gpl": 43, "licens": 43, "761": 43, "757": 43, "744": 43, "763": 43, "766": 43, "weight_siz": 43, "772": 43, "749": 43, "774": 43, "15": 43, "line_buff": 43, "violatingcp": 43, "easier": 43, "vs": 43, "302": 43, "318": 43, "323": 43, "332": 43, "307": 43, "298": 43, "03": 43, "redefinit": 43, "standalon": 43, "deprec": 43, "superced": 43, "bugfix": [43, 44], "warn": 43, "mix": 43, "30": 43, "skipoptim": 43, "subtract": 43, "fuse_consecutive_batch_norm": 43, "gor": 43, "reload": 43, "emul": 43, "use_bia": 43, "31": 43, "expans": 43, "move": [43, 45], "retriev": 43, "protobuf": 43, "enhanc": 43, "gather": 43, "02": 43, "refin": 43, "2019": 43, "easi": 44, "releas": [44, 45], "toolbox": 44, "conda": 44, "forg": 44, "repositori": [44, 45], "outdat": 44, "rapidli": 44, "evolv": 44, "experiment": [44, 45], "git": [44, 45], "extern": 44, "manag": 44, "newer": 44, "compat": 44, "On": 44, "linux": [44, 45], "gcc": 44, "recent": 44, "maco": [44, 45], "demonstr": 44, "workflow": 44, "minut": 44, "ve": 44, "apart": 44, "altern": 44, "pi": 44, "recurs": [44, 45], "along": 44, "cd": 44, "dev65": 45, "gafed23b1": 45, "stabl": 45, "perceptron": 45, "gnn": 45, "2024": 45, "bdt": 45, "conif": 45, "init": 45}, "objects": {"": [[7, 0, 0, "-", "hls4ml"]], "hls4ml": [[8, 0, 0, "-", "backends"], [23, 0, 0, "-", "converters"], [27, 0, 0, "-", "model"], [31, 0, 0, "-", "optimization"], [34, 0, 0, "-", "report"], [7, 3, 1, "", "reseed"], [35, 0, 0, "-", "utils"], [36, 0, 0, "-", "writer"]], "hls4ml.backends": [[8, 0, 0, "-", "backend"], [9, 0, 0, "-", "catapult"], [11, 0, 0, "-", "fpga"], [13, 0, 0, "-", "quartus"], [15, 0, 0, "-", "symbolic"], [8, 0, 0, "-", "template"], [17, 0, 0, "-", "vitis"], [19, 0, 0, "-", "vivado"], [21, 0, 0, "-", "vivado_accelerator"]], "hls4ml.backends.backend": [[8, 1, 1, "", "Backend"], [8, 3, 1, "", "get_available_backends"], [8, 3, 1, "", "get_backend"], [8, 3, 1, "", "register_backend"]], "hls4ml.backends.backend.Backend": [[8, 2, 1, "", "create_initial_config"], [8, 2, 1, "", "create_layer_class"], [8, 2, 1, "", "get_available_flows"], [8, 2, 1, "", "get_custom_source"], [8, 2, 1, "", "get_default_flow"], [8, 2, 1, "", "register_pass"], [8, 2, 1, "", "register_source"], [8, 2, 1, "", "register_template"]], "hls4ml.backends.catapult": [[9, 0, 0, "-", "catapult_backend"], [9, 0, 0, "-", "catapult_types"], [10, 0, 0, "-", "passes"]], "hls4ml.backends.catapult.catapult_backend": [[9, 1, 1, "", "CatapultBackend"]], "hls4ml.backends.catapult.catapult_backend.CatapultBackend": [[9, 2, 1, "", "build"], [9, 2, 1, "", "create_initial_config"], [9, 2, 1, "", "get_default_flow"], [9, 2, 1, "", "get_writer_flow"], [9, 2, 1, "", "init_base_layer"], [9, 2, 1, "", "init_conv1d"], [9, 2, 1, "", "init_conv2d"], [9, 2, 1, "", "init_dense"], [9, 2, 1, "", "init_depconv2d"], [9, 2, 1, "", "init_embed"], [9, 2, 1, "", "init_garnet"], [9, 2, 1, "", "init_garnet_stack"], [9, 2, 1, "", "init_global_pooling1d"], [9, 2, 1, "", "init_global_pooling2d"], [9, 2, 1, "", "init_gru"], [9, 2, 1, "", "init_lstm"], [9, 2, 1, "", "init_pooling1d"], [9, 2, 1, "", "init_pooling2d"], [9, 2, 1, "", "init_sepconv1d"], [9, 2, 1, "", "init_sepconv2d"], [9, 2, 1, "", "init_softmax"]], "hls4ml.backends.catapult.catapult_types": [[9, 1, 1, "", "CatapultArrayVariableConverter"], [9, 1, 1, "", "CatapultArrayVariableDefinition"], [9, 1, 1, "", "CatapultInplaceArrayVariableConverter"], [9, 1, 1, "", "CatapultInplaceArrayVariableDefinition"], [9, 1, 1, "", "CatapultInplaceStreamVariableConverter"], [9, 1, 1, "", "CatapultInplaceStreamVariableDefinition"], [9, 1, 1, "", "CatapultStreamVariableConverter"], [9, 1, 1, "", "CatapultStreamVariableDefinition"], [9, 1, 1, "", "CatapultStructMemberVariableConverter"], [9, 1, 1, "", "CatapultStructMemberVariableDefinition"]], "hls4ml.backends.catapult.catapult_types.CatapultArrayVariableDefinition": [[9, 2, 1, "", "definition_cpp"]], "hls4ml.backends.catapult.catapult_types.CatapultInplaceArrayVariableDefinition": [[9, 2, 1, "", "definition_cpp"]], "hls4ml.backends.catapult.catapult_types.CatapultInplaceStreamVariableDefinition": [[9, 2, 1, "", "definition_cpp"]], "hls4ml.backends.catapult.catapult_types.CatapultStreamVariableDefinition": [[9, 2, 1, "", "definition_cpp"]], "hls4ml.backends.catapult.catapult_types.CatapultStructMemberVariableDefinition": [[9, 2, 1, "", "definition_cpp"]], "hls4ml.backends.catapult.passes": [[10, 0, 0, "-", "broadcast_stream"], [10, 0, 0, "-", "conv_same_pad"], [10, 0, 0, "-", "conv_stream"], [10, 0, 0, "-", "convolution_templates"], [10, 0, 0, "-", "convolution_winograd"], [10, 0, 0, "-", "core_templates"], [10, 0, 0, "-", "fifo_depth_optimization"], [10, 0, 0, "-", "garnet_templates"], [10, 0, 0, "-", "merge_templates"], [10, 0, 0, "-", "pointwise"], [10, 0, 0, "-", "pooling_templates"], [10, 0, 0, "-", "quantization_templates"], [10, 0, 0, "-", "recurrent_templates"], [10, 0, 0, "-", "reshaping_templates"], [10, 0, 0, "-", "resource_strategy"], [10, 0, 0, "-", "transform_types"]], "hls4ml.backends.catapult.passes.broadcast_stream": [[10, 1, 1, "", "Broadcast"], [10, 1, 1, "", "BroadcastConfigTemplate"], [10, 1, 1, "", "BroadcastFunctionTemplate"], [10, 1, 1, "", "BroadcastStream"], [10, 3, 1, "", "register_broadcast_stream"]], "hls4ml.backends.catapult.passes.broadcast_stream.Broadcast": [[10, 2, 1, "", "initialize"]], "hls4ml.backends.catapult.passes.broadcast_stream.BroadcastConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.broadcast_stream.BroadcastFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.broadcast_stream.BroadcastStream": [[10, 2, 1, "", "match"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.conv_same_pad": [[10, 1, 1, "", "InsertZeroPaddingBeforeConv1D"], [10, 1, 1, "", "InsertZeroPaddingBeforeConv2D"]], "hls4ml.backends.catapult.passes.conv_same_pad.InsertZeroPaddingBeforeConv1D": [[10, 2, 1, "", "match"], [10, 4, 1, "", "name"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.conv_same_pad.InsertZeroPaddingBeforeConv2D": [[10, 2, 1, "", "match"], [10, 4, 1, "", "name"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.conv_stream": [[10, 1, 1, "", "GenerateConvStreamingInstructions"]], "hls4ml.backends.catapult.passes.conv_stream.GenerateConvStreamingInstructions": [[10, 2, 1, "", "match"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.convolution_templates": [[10, 1, 1, "", "Conv1DConfigTemplate"], [10, 1, 1, "", "Conv1DFunctionTemplate"], [10, 1, 1, "", "Conv2DConfigTemplate"], [10, 1, 1, "", "Conv2DFunctionTemplate"], [10, 1, 1, "", "DepthwiseConv1DFunctionTemplate"], [10, 1, 1, "", "DepthwiseConv2DFunctionTemplate"], [10, 1, 1, "", "SeparableConv1DConfigTemplate"], [10, 1, 1, "", "SeparableConv1DFunctionTemplate"], [10, 1, 1, "", "SeparableConv2DConfigTemplate"], [10, 1, 1, "", "SeparableConv2DFunctionTemplate"]], "hls4ml.backends.catapult.passes.convolution_templates.Conv1DConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.Conv1DFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.Conv2DConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.Conv2DFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.SeparableConv1DConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.SeparableConv1DFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.SeparableConv2DConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_templates.SeparableConv2DFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.convolution_winograd": [[10, 1, 1, "", "ApplyWinogradKernelTransformation"]], "hls4ml.backends.catapult.passes.convolution_winograd.ApplyWinogradKernelTransformation": [[10, 2, 1, "", "match"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.core_templates": [[10, 1, 1, "", "ActivationConfigTemplate"], [10, 1, 1, "", "ActivationFunctionTemplate"], [10, 1, 1, "", "BatchNormalizationConfigTemplate"], [10, 1, 1, "", "BatchNormalizationFunctionTemplate"], [10, 1, 1, "", "DenseConfigTemplate"], [10, 1, 1, "", "DenseFunctionTemplate"], [10, 1, 1, "", "HardActivationConfigTemplate"], [10, 1, 1, "", "PReLUFunctionTemplate"], [10, 1, 1, "", "ParamActivationConfigTemplate"], [10, 1, 1, "", "ParametrizedActivationFunctionTemplate"], [10, 1, 1, "", "SoftmaxConfigTemplate"]], "hls4ml.backends.catapult.passes.core_templates.ActivationConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.ActivationFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.BatchNormalizationConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.BatchNormalizationFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.DenseConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.DenseFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.HardActivationConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.PReLUFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.ParamActivationConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.core_templates.ParametrizedActivationFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.fifo_depth_optimization": [[10, 1, 1, "", "FifoDepthOptimization"], [10, 3, 1, "", "generate_max_depth_file"], [10, 3, 1, "", "get_vcd_data"], [10, 3, 1, "", "populate_values"], [10, 3, 1, "", "set_big_fifos"], [10, 3, 1, "", "set_fifo_depth"]], "hls4ml.backends.catapult.passes.fifo_depth_optimization.FifoDepthOptimization": [[10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.garnet_templates": [[10, 1, 1, "", "GarNetConfigTemplate"], [10, 1, 1, "", "GarNetFunctionTemplate"], [10, 1, 1, "", "GarNetStackConfigTemplate"], [10, 1, 1, "", "GarNetStackFunctionTemplate"]], "hls4ml.backends.catapult.passes.garnet_templates.GarNetConfigTemplate": [[10, 2, 1, "", "format"], [10, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.catapult.passes.garnet_templates.GarNetFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.garnet_templates.GarNetStackConfigTemplate": [[10, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.catapult.passes.merge_templates": [[10, 1, 1, "", "ConcatenateConfigTemplate"], [10, 1, 1, "", "DotConfigTemplate"], [10, 1, 1, "", "MergeConfigTemplate"], [10, 1, 1, "", "MergeFunctionTemplate"]], "hls4ml.backends.catapult.passes.merge_templates.ConcatenateConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.merge_templates.DotConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.merge_templates.MergeConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.merge_templates.MergeFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.pointwise": [[10, 1, 1, "", "OptimizePointwiseConv"], [10, 1, 1, "", "PointwiseConv1DConfigTemplate"], [10, 1, 1, "", "PointwiseConv1DFunctionTemplate"], [10, 1, 1, "", "PointwiseConv2DConfigTemplate"], [10, 1, 1, "", "PointwiseConv2DFunctionTemplate"], [10, 3, 1, "", "register_pointwise"]], "hls4ml.backends.catapult.passes.pointwise.OptimizePointwiseConv": [[10, 2, 1, "", "match"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.pooling_templates": [[10, 1, 1, "", "PoolingConfigTemplate"], [10, 1, 1, "", "PoolingFunctionTemplate"]], "hls4ml.backends.catapult.passes.pooling_templates.PoolingConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.pooling_templates.PoolingFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.quantization_templates": [[10, 1, 1, "", "ApplyAlphaConfigTemplate"], [10, 1, 1, "", "ApplyAlphaFunctionTemplate"]], "hls4ml.backends.catapult.passes.quantization_templates.ApplyAlphaConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.quantization_templates.ApplyAlphaFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.recurrent_templates": [[10, 1, 1, "", "RecurrentConfigTemplate"], [10, 1, 1, "", "RecurrentFunctionTemplate"]], "hls4ml.backends.catapult.passes.recurrent_templates.RecurrentConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.recurrent_templates.RecurrentFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates": [[10, 1, 1, "", "ResizeConfigTemplate"], [10, 1, 1, "", "ResizeFunctionTemplate"], [10, 1, 1, "", "TransposeConfigTemplate"], [10, 1, 1, "", "TransposeFunctionTemplate"], [10, 1, 1, "", "ZeroPaddingConfigTemplate"], [10, 1, 1, "", "ZeroPaddingFunctionTemplate"]], "hls4ml.backends.catapult.passes.reshaping_templates.ResizeConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates.ResizeFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates.TransposeConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates.TransposeFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates.ZeroPaddingConfigTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.reshaping_templates.ZeroPaddingFunctionTemplate": [[10, 2, 1, "", "format"]], "hls4ml.backends.catapult.passes.resource_strategy": [[10, 1, 1, "", "ApplyResourceStrategy"]], "hls4ml.backends.catapult.passes.resource_strategy.ApplyResourceStrategy": [[10, 2, 1, "", "match"], [10, 2, 1, "", "transform"]], "hls4ml.backends.catapult.passes.transform_types": [[10, 1, 1, "", "TransformTypes"]], "hls4ml.backends.catapult.passes.transform_types.TransformTypes": [[10, 2, 1, "", "transform"]], "hls4ml.backends.fpga": [[11, 0, 0, "-", "fpga_backend"], [11, 0, 0, "-", "fpga_layers"], [11, 0, 0, "-", "fpga_types"], [12, 0, 0, "-", "passes"]], "hls4ml.backends.fpga.fpga_backend": [[11, 1, 1, "", "FPGABackend"]], "hls4ml.backends.fpga.fpga_backend.FPGABackend": [[11, 2, 1, "", "compile"], [11, 2, 1, "", "compute_conv1d_instructions"], [11, 2, 1, "", "compute_conv2d_instructions"], [11, 2, 1, "", "convert_precision_string"], [11, 2, 1, "", "create_layer_class"], [11, 2, 1, "", "generate_conv1d_line_buffer_fn"], [11, 2, 1, "", "generate_conv2d_line_buffer_fn"], [11, 2, 1, "", "get_closest_reuse_factor"], [11, 2, 1, "", "get_layer_mult_size"], [11, 2, 1, "", "get_valid_conv_partition_splits"], [11, 2, 1, "", "get_valid_reuse_factors"], [11, 2, 1, "", "get_writer_flow"], [11, 2, 1, "", "product_type"], [11, 2, 1, "", "set_closest_reuse_factor"], [11, 2, 1, "", "set_target_reuse_factor"], [11, 2, 1, "", "write"], [11, 2, 1, "", "write_hls"]], "hls4ml.backends.fpga.fpga_layers": [[11, 1, 1, "", "BatchNormalizationQuantizedTanh"], [11, 1, 1, "", "PointwiseConv1D"], [11, 1, 1, "", "PointwiseConv2D"]], "hls4ml.backends.fpga.fpga_layers.BatchNormalizationQuantizedTanh": [[11, 2, 1, "", "initialize"], [11, 2, 1, "", "set_thresholds"]], "hls4ml.backends.fpga.fpga_types": [[11, 1, 1, "", "ACFixedPrecisionDefinition"], [11, 1, 1, "", "ACIntegerPrecisionDefinition"], [11, 1, 1, "", "ACTypeConverter"], [11, 1, 1, "", "APFixedPrecisionDefinition"], [11, 1, 1, "", "APIntegerPrecisionDefinition"], [11, 1, 1, "", "APTypeConverter"], [11, 1, 1, "", "ArrayVariableConverter"], [11, 1, 1, "", "BramWeightVariableConverter"], [11, 1, 1, "", "CompressedTypeConverter"], [11, 1, 1, "", "ExponentTypeConverter"], [11, 1, 1, "", "FixedPrecisionConverter"], [11, 1, 1, "", "HLSTypeConverter"], [11, 1, 1, "", "InplaceStreamVariableConverter"], [11, 1, 1, "", "NamedTypeConverter"], [11, 1, 1, "", "PackedTypeConverter"], [11, 1, 1, "", "PrecisionConverter"], [11, 1, 1, "", "PrecisionDefinition"], [11, 1, 1, "", "StaticWeightVariableConverter"], [11, 1, 1, "", "StaticWeightVariableDefinition"], [11, 1, 1, "", "StreamVariableConverter"], [11, 1, 1, "", "StructMemberVariableConverter"], [11, 1, 1, "", "TypeDefinition"], [11, 1, 1, "", "TypePrecisionConverter"], [11, 1, 1, "", "VariableDefinition"]], "hls4ml.backends.fpga.fpga_types.ACFixedPrecisionDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ACIntegerPrecisionDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.APFixedPrecisionDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.APIntegerPrecisionDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ArrayVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.BramWeightVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.CompressedTypeConverter": [[11, 2, 1, "", "convert_precision"], [11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.ExponentTypeConverter": [[11, 2, 1, "", "convert_precision"], [11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.FixedPrecisionConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.HLSTypeConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.InplaceStreamVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.NamedTypeConverter": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.PackedTypeConverter": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.PrecisionConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.PrecisionDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.StaticWeightVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.StaticWeightVariableDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.StreamVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.StructMemberVariableConverter": [[11, 2, 1, "", "convert"]], "hls4ml.backends.fpga.fpga_types.TypeDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.fpga_types.TypePrecisionConverter": [[11, 2, 1, "", "convert_precision"]], "hls4ml.backends.fpga.fpga_types.VariableDefinition": [[11, 2, 1, "", "definition_cpp"]], "hls4ml.backends.fpga.passes": [[12, 0, 0, "-", "bn_quant"], [12, 0, 0, "-", "bram_weights"], [12, 0, 0, "-", "clone"], [12, 0, 0, "-", "codegen"], [12, 0, 0, "-", "embedding"], [12, 0, 0, "-", "final_reshape"], [12, 0, 0, "-", "fix_softmax_table_size"], [12, 0, 0, "-", "hgq_proxy_model"], [12, 0, 0, "-", "inplace_parallel_reshape"], [12, 0, 0, "-", "inplace_stream_flatten"], [12, 0, 0, "-", "remove_softmax"], [12, 0, 0, "-", "repack_stream"], [12, 0, 0, "-", "xnor_pooling"]], "hls4ml.backends.fpga.passes.bn_quant": [[12, 1, 1, "", "BatchNormalizationQuantizedTanhConfigTemplate"], [12, 1, 1, "", "BatchNormalizationQuantizedTanhFunctionTemplate"], [12, 1, 1, "", "MergeBatchNormAndQuantizedTanh"], [12, 1, 1, "", "QuantizeDenseOutput"], [12, 3, 1, "", "register_bn_quant"]], "hls4ml.backends.fpga.passes.bn_quant.BatchNormalizationQuantizedTanhConfigTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.bn_quant.BatchNormalizationQuantizedTanhFunctionTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.bn_quant.MergeBatchNormAndQuantizedTanh": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.bn_quant.QuantizeDenseOutput": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.bram_weights": [[12, 1, 1, "", "RegisterBramWeights"]], "hls4ml.backends.fpga.passes.bram_weights.RegisterBramWeights": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.clone": [[12, 1, 1, "", "Clone"], [12, 1, 1, "", "CloneFunctionTemplate"], [12, 1, 1, "", "CloneOutput"], [12, 3, 1, "", "register_clone"]], "hls4ml.backends.fpga.passes.clone.Clone": [[12, 2, 1, "", "initialize"]], "hls4ml.backends.fpga.passes.clone.CloneFunctionTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.clone.CloneOutput": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.codegen": [[12, 1, 1, "", "GenerateConvIm2col"]], "hls4ml.backends.fpga.passes.codegen.GenerateConvIm2col": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.embedding": [[12, 1, 1, "", "EmbeddingConfigTemplate"], [12, 1, 1, "", "EmbeddingFunctionTemplate"]], "hls4ml.backends.fpga.passes.embedding.EmbeddingConfigTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.embedding.EmbeddingFunctionTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.final_reshape": [[12, 1, 1, "", "RemoveFinalReshape"]], "hls4ml.backends.fpga.passes.final_reshape.RemoveFinalReshape": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.fix_softmax_table_size": [[12, 1, 1, "", "FixSoftmaxTableSize"], [12, 3, 1, "", "register_softmax__table_size_fix"]], "hls4ml.backends.fpga.passes.fix_softmax_table_size.FixSoftmaxTableSize": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.hgq_proxy_model": [[12, 1, 1, "", "ProcessFixedPointQuantizerCall"], [12, 1, 1, "", "ProcessFixedPointQuantizerLayer"], [12, 1, 1, "", "ProcessUnaryLUTCall"], [12, 3, 1, "", "generate_mask_fn"], [12, 3, 1, "", "register_hgq_proxy_model"], [12, 3, 1, "", "to_acfixed"], [12, 3, 1, "", "to_apfixed"]], "hls4ml.backends.fpga.passes.hgq_proxy_model.ProcessFixedPointQuantizerCall": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.hgq_proxy_model.ProcessFixedPointQuantizerLayer": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.hgq_proxy_model.ProcessUnaryLUTCall": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.inplace_parallel_reshape": [[12, 1, 1, "", "InplaceParallelReshape"]], "hls4ml.backends.fpga.passes.inplace_parallel_reshape.InplaceParallelReshape": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.inplace_stream_flatten": [[12, 1, 1, "", "InplaceStreamFlatten"]], "hls4ml.backends.fpga.passes.inplace_stream_flatten.InplaceStreamFlatten": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.remove_softmax": [[12, 1, 1, "", "SkipSoftmax"]], "hls4ml.backends.fpga.passes.remove_softmax.SkipSoftmax": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.repack_stream": [[12, 1, 1, "", "Repack"], [12, 1, 1, "", "RepackFunctionTemplate"], [12, 1, 1, "", "ReshapeStream"], [12, 3, 1, "", "register_repack_stream"]], "hls4ml.backends.fpga.passes.repack_stream.Repack": [[12, 2, 1, "", "initialize"]], "hls4ml.backends.fpga.passes.repack_stream.RepackFunctionTemplate": [[12, 2, 1, "", "format"]], "hls4ml.backends.fpga.passes.repack_stream.ReshapeStream": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.fpga.passes.xnor_pooling": [[12, 1, 1, "", "XnorPooling"]], "hls4ml.backends.fpga.passes.xnor_pooling.XnorPooling": [[12, 2, 1, "", "match"], [12, 2, 1, "", "transform"]], "hls4ml.backends.quartus": [[14, 0, 0, "-", "passes"], [13, 0, 0, "-", "quartus_backend"], [13, 0, 0, "-", "quartus_types"]], "hls4ml.backends.quartus.passes": [[14, 0, 0, "-", "convolution_templates"], [14, 0, 0, "-", "convolution_winograd"], [14, 0, 0, "-", "core_templates"], [14, 0, 0, "-", "merge_templates"], [14, 0, 0, "-", "pointwise"], [14, 0, 0, "-", "pooling_templates"], [14, 0, 0, "-", "quantization_templates"], [14, 0, 0, "-", "recurrent_templates"], [14, 0, 0, "-", "reshaping_templates"], [14, 0, 0, "-", "resource_strategy"], [14, 0, 0, "-", "transform_types"]], "hls4ml.backends.quartus.passes.convolution_templates": [[14, 1, 1, "", "Conv1DConfigTemplate"], [14, 1, 1, "", "Conv1DFunctionTemplate"], [14, 1, 1, "", "Conv2DConfigTemplate"], [14, 1, 1, "", "Conv2DFunctionTemplate"], [14, 5, 1, "", "conv_mult_config_template"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv1DConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv1DFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv2DConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_templates.Conv2DFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.convolution_winograd": [[14, 1, 1, "", "ApplyWinogradKernelTransformation"]], "hls4ml.backends.quartus.passes.convolution_winograd.ApplyWinogradKernelTransformation": [[14, 2, 1, "", "match"], [14, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.core_templates": [[14, 1, 1, "", "ActivationConfigTemplate"], [14, 1, 1, "", "ActivationFunctionTemplate"], [14, 1, 1, "", "BatchNormalizationConfigTemplate"], [14, 1, 1, "", "BatchNormalizationFunctionTemplate"], [14, 1, 1, "", "DenseConfigTemplate"], [14, 1, 1, "", "DenseFunctionTemplate"], [14, 1, 1, "", "HardActivationConfigTemplate"], [14, 1, 1, "", "PReLUFunctionTemplate"], [14, 1, 1, "", "ParamActivationConfigTemplate"], [14, 1, 1, "", "ParametrizedActivationFunctionTemplate"], [14, 1, 1, "", "SoftmaxConfigTemplate"]], "hls4ml.backends.quartus.passes.core_templates.ActivationConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.ActivationFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.BatchNormalizationConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.BatchNormalizationFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.DenseConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.DenseFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.HardActivationConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.PReLUFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.ParamActivationConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.core_templates.ParametrizedActivationFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates": [[14, 1, 1, "", "ConcatenateConfigTemplate"], [14, 1, 1, "", "DotConfigTemplate"], [14, 1, 1, "", "MergeConfigTemplate"], [14, 1, 1, "", "MergeFunctionTemplate"]], "hls4ml.backends.quartus.passes.merge_templates.ConcatenateConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.DotConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.MergeConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.merge_templates.MergeFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.pointwise": [[14, 1, 1, "", "OptimizePointwiseConv"], [14, 1, 1, "", "PointwiseConv1DConfigTemplate"], [14, 1, 1, "", "PointwiseConv1DFunctionTemplate"], [14, 1, 1, "", "PointwiseConv2DConfigTemplate"], [14, 1, 1, "", "PointwiseConv2DFunctionTemplate"], [14, 3, 1, "", "register_pointwise"]], "hls4ml.backends.quartus.passes.pointwise.OptimizePointwiseConv": [[14, 2, 1, "", "match"], [14, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.pooling_templates": [[14, 1, 1, "", "PoolingConfigTemplate"], [14, 1, 1, "", "PoolingFunctionTemplate"]], "hls4ml.backends.quartus.passes.pooling_templates.PoolingConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.pooling_templates.PoolingFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.quantization_templates": [[14, 1, 1, "", "ApplyAlphaConfigTemplate"], [14, 1, 1, "", "ApplyAlphaFunctionTemplate"]], "hls4ml.backends.quartus.passes.quantization_templates.ApplyAlphaConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.quantization_templates.ApplyAlphaFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates": [[14, 1, 1, "", "GRUConfigTemplate"], [14, 1, 1, "", "GRUFunctionTemplate"], [14, 1, 1, "", "LSTMConfigTemplate"], [14, 1, 1, "", "LSTMFunctionTemplate"], [14, 1, 1, "", "SimpleRNNConfigTemplate"], [14, 1, 1, "", "SimpleRNNFunctionTemplate"]], "hls4ml.backends.quartus.passes.recurrent_templates.GRUConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.GRUFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.LSTMConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.LSTMFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.SimpleRNNConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.recurrent_templates.SimpleRNNFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates": [[14, 1, 1, "", "ResizeConfigTemplate"], [14, 1, 1, "", "ResizeFunctionTemplate"], [14, 1, 1, "", "TransposeConfigTemplate"], [14, 1, 1, "", "TransposeFunctionTemplate"], [14, 1, 1, "", "ZeroPaddingConfigTemplate"], [14, 1, 1, "", "ZeroPaddingFunctionTemplate"]], "hls4ml.backends.quartus.passes.reshaping_templates.ResizeConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ResizeFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.TransposeConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.TransposeFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ZeroPaddingConfigTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.reshaping_templates.ZeroPaddingFunctionTemplate": [[14, 2, 1, "", "format"]], "hls4ml.backends.quartus.passes.resource_strategy": [[14, 1, 1, "", "ApplyResourceStrategy"]], "hls4ml.backends.quartus.passes.resource_strategy.ApplyResourceStrategy": [[14, 2, 1, "", "match"], [14, 2, 1, "", "transform"]], "hls4ml.backends.quartus.passes.transform_types": [[14, 1, 1, "", "TransformTypes"]], "hls4ml.backends.quartus.passes.transform_types.TransformTypes": [[14, 2, 1, "", "transform"]], "hls4ml.backends.quartus.quartus_backend": [[13, 1, 1, "", "QuartusBackend"], [13, 3, 1, "", "chdir"]], "hls4ml.backends.quartus.quartus_backend.QuartusBackend": [[13, 2, 1, "", "build"], [13, 2, 1, "", "create_initial_config"], [13, 2, 1, "", "get_default_flow"], [13, 2, 1, "", "get_writer_flow"], [13, 2, 1, "", "init_activation"], [13, 2, 1, "", "init_base_layer"], [13, 2, 1, "", "init_conv1d"], [13, 2, 1, "", "init_conv2d"], [13, 2, 1, "", "init_dense"], [13, 2, 1, "", "init_embed"], [13, 2, 1, "", "init_gru"], [13, 2, 1, "", "init_lstm"], [13, 2, 1, "", "init_simple_rnn"], [13, 2, 1, "", "init_softmax"]], "hls4ml.backends.quartus.quartus_types": [[13, 1, 1, "", "QuartusArrayVariableConverter"], [13, 1, 1, "", "QuartusArrayVariableDefinition"], [13, 1, 1, "", "QuartusInplaceArrayVariableConverter"], [13, 1, 1, "", "QuartusInplaceArrayVariableDefinition"], [13, 1, 1, "", "QuartusInplaceStreamVariableConverter"], [13, 1, 1, "", "QuartusInplaceStreamVariableDefinition"], [13, 1, 1, "", "QuartusStreamVariableConverter"], [13, 1, 1, "", "QuartusStreamVariableDefinition"], [13, 1, 1, "", "QuartusStructMemberVariableConverter"], [13, 1, 1, "", "QuartusStructMemberVariableDefinition"]], "hls4ml.backends.quartus.quartus_types.QuartusArrayVariableDefinition": [[13, 2, 1, "", "definition_cpp"]], "hls4ml.backends.quartus.quartus_types.QuartusInplaceArrayVariableDefinition": [[13, 2, 1, "", "definition_cpp"]], "hls4ml.backends.quartus.quartus_types.QuartusInplaceStreamVariableDefinition": [[13, 2, 1, "", "definition_cpp"]], "hls4ml.backends.quartus.quartus_types.QuartusStreamVariableDefinition": [[13, 2, 1, "", "definition_cpp"]], "hls4ml.backends.quartus.quartus_types.QuartusStructMemberVariableDefinition": [[13, 2, 1, "", "definition_cpp"]], "hls4ml.backends.symbolic": [[16, 0, 0, "-", "passes"], [15, 0, 0, "-", "symbolic_backend"]], "hls4ml.backends.symbolic.passes": [[16, 0, 0, "-", "validate_lut"]], "hls4ml.backends.symbolic.passes.validate_lut": [[16, 1, 1, "", "ValidateUserLookupTable"]], "hls4ml.backends.symbolic.passes.validate_lut.ValidateUserLookupTable": [[16, 2, 1, "", "match"], [16, 2, 1, "", "transform"]], "hls4ml.backends.symbolic.symbolic_backend": [[15, 1, 1, "", "SymbolicExpressionBackend"]], "hls4ml.backends.symbolic.symbolic_backend.SymbolicExpressionBackend": [[15, 2, 1, "", "build"], [15, 2, 1, "", "create_initial_config"], [15, 2, 1, "", "get_default_flow"], [15, 2, 1, "", "get_writer_flow"]], "hls4ml.backends.template": [[8, 1, 1, "", "FunctionCallTemplate"], [8, 1, 1, "", "LayerConfigTemplate"], [8, 1, 1, "", "Template"]], "hls4ml.backends.template.FunctionCallTemplate": [[8, 2, 1, "", "transform"]], "hls4ml.backends.template.Template": [[8, 2, 1, "", "format"], [8, 2, 1, "", "get_name"], [8, 2, 1, "", "match"], [8, 2, 1, "", "transform"]], "hls4ml.backends.vitis": [[18, 0, 0, "-", "passes"], [17, 0, 0, "-", "vitis_backend"]], "hls4ml.backends.vitis.passes": [[18, 0, 0, "-", "feature_check"]], "hls4ml.backends.vitis.passes.feature_check": [[18, 1, 1, "", "ValidateConvImplementation"], [18, 1, 1, "", "ValidateStrategy"]], "hls4ml.backends.vitis.passes.feature_check.ValidateConvImplementation": [[18, 2, 1, "", "match"], [18, 2, 1, "", "transform"]], "hls4ml.backends.vitis.passes.feature_check.ValidateStrategy": [[18, 2, 1, "", "match"], [18, 2, 1, "", "transform"]], "hls4ml.backends.vitis.vitis_backend": [[17, 1, 1, "", "VitisBackend"]], "hls4ml.backends.vitis.vitis_backend.VitisBackend": [[17, 2, 1, "", "build"], [17, 2, 1, "", "create_initial_config"]], "hls4ml.backends.vivado": [[20, 0, 0, "-", "passes"], [19, 0, 0, "-", "vivado_backend"], [19, 0, 0, "-", "vivado_types"]], "hls4ml.backends.vivado.passes": [[20, 0, 0, "-", "broadcast_stream"], [20, 0, 0, "-", "conv_same_pad"], [20, 0, 0, "-", "conv_stream"], [20, 0, 0, "-", "convolution_templates"], [20, 0, 0, "-", "core_templates"], [20, 0, 0, "-", "fifo_depth_optimization"], [20, 0, 0, "-", "garnet_templates"], [20, 0, 0, "-", "merge_templates"], [20, 0, 0, "-", "pointwise"], [20, 0, 0, "-", "pooling_templates"], [20, 0, 0, "-", "quantization_templates"], [20, 0, 0, "-", "recurrent_templates"], [20, 0, 0, "-", "reshaping_templates"], [20, 0, 0, "-", "resource_strategy"], [20, 0, 0, "-", "transform_types"]], "hls4ml.backends.vivado.passes.broadcast_stream": [[20, 1, 1, "", "Broadcast"], [20, 1, 1, "", "BroadcastConfigTemplate"], [20, 1, 1, "", "BroadcastFunctionTemplate"], [20, 1, 1, "", "BroadcastStream"], [20, 3, 1, "", "register_broadcast_stream"]], "hls4ml.backends.vivado.passes.broadcast_stream.Broadcast": [[20, 2, 1, "", "initialize"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.broadcast_stream.BroadcastStream": [[20, 2, 1, "", "match"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_same_pad": [[20, 1, 1, "", "InsertZeroPaddingBeforeConv1D"], [20, 1, 1, "", "InsertZeroPaddingBeforeConv2D"]], "hls4ml.backends.vivado.passes.conv_same_pad.InsertZeroPaddingBeforeConv1D": [[20, 2, 1, "", "match"], [20, 4, 1, "", "name"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_same_pad.InsertZeroPaddingBeforeConv2D": [[20, 2, 1, "", "match"], [20, 4, 1, "", "name"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.conv_stream": [[20, 1, 1, "", "GenerateConvStreamingInstructions"]], "hls4ml.backends.vivado.passes.conv_stream.GenerateConvStreamingInstructions": [[20, 2, 1, "", "match"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.convolution_templates": [[20, 1, 1, "", "Conv1DConfigTemplate"], [20, 1, 1, "", "Conv1DFunctionTemplate"], [20, 1, 1, "", "Conv2DConfigTemplate"], [20, 1, 1, "", "Conv2DFunctionTemplate"], [20, 1, 1, "", "DepthwiseConv1DFunctionTemplate"], [20, 1, 1, "", "DepthwiseConv2DFunctionTemplate"], [20, 1, 1, "", "SeparableConv1DConfigTemplate"], [20, 1, 1, "", "SeparableConv1DFunctionTemplate"], [20, 1, 1, "", "SeparableConv2DConfigTemplate"], [20, 1, 1, "", "SeparableConv2DFunctionTemplate"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv1DConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv1DFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv2DConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.Conv2DFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv1DConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv1DFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv2DConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.convolution_templates.SeparableConv2DFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates": [[20, 1, 1, "", "ActivationConfigTemplate"], [20, 1, 1, "", "ActivationFunctionTemplate"], [20, 1, 1, "", "BatchNormalizationConfigTemplate"], [20, 1, 1, "", "BatchNormalizationFunctionTemplate"], [20, 1, 1, "", "DenseConfigTemplate"], [20, 1, 1, "", "DenseFunctionTemplate"], [20, 1, 1, "", "HardActivationConfigTemplate"], [20, 1, 1, "", "PReLUFunctionTemplate"], [20, 1, 1, "", "ParamActivationConfigTemplate"], [20, 1, 1, "", "ParametrizedActivationFunctionTemplate"], [20, 1, 1, "", "SoftmaxConfigTemplate"]], "hls4ml.backends.vivado.passes.core_templates.ActivationConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.ActivationFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.BatchNormalizationConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.BatchNormalizationFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.DenseConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.DenseFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.HardActivationConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.PReLUFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.ParamActivationConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.core_templates.ParametrizedActivationFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.fifo_depth_optimization": [[20, 1, 1, "", "FifoDepthOptimization"], [20, 3, 1, "", "generate_max_depth_file"], [20, 3, 1, "", "get_vcd_data"], [20, 3, 1, "", "populate_values"], [20, 3, 1, "", "set_big_fifos"], [20, 3, 1, "", "set_fifo_depth"]], "hls4ml.backends.vivado.passes.fifo_depth_optimization.FifoDepthOptimization": [[20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.garnet_templates": [[20, 1, 1, "", "GarNetConfigTemplate"], [20, 1, 1, "", "GarNetFunctionTemplate"], [20, 1, 1, "", "GarNetStackConfigTemplate"], [20, 1, 1, "", "GarNetStackFunctionTemplate"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetConfigTemplate": [[20, 2, 1, "", "format"], [20, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.garnet_templates.GarNetStackConfigTemplate": [[20, 2, 1, "", "get_transforms_config"]], "hls4ml.backends.vivado.passes.merge_templates": [[20, 1, 1, "", "ConcatenateConfigTemplate"], [20, 1, 1, "", "DotConfigTemplate"], [20, 1, 1, "", "MergeConfigTemplate"], [20, 1, 1, "", "MergeFunctionTemplate"]], "hls4ml.backends.vivado.passes.merge_templates.ConcatenateConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.DotConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.MergeConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.merge_templates.MergeFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.pointwise": [[20, 1, 1, "", "OptimizePointwiseConv"], [20, 1, 1, "", "PointwiseConv1DConfigTemplate"], [20, 1, 1, "", "PointwiseConv1DFunctionTemplate"], [20, 1, 1, "", "PointwiseConv2DConfigTemplate"], [20, 1, 1, "", "PointwiseConv2DFunctionTemplate"], [20, 3, 1, "", "register_pointwise"]], "hls4ml.backends.vivado.passes.pointwise.OptimizePointwiseConv": [[20, 2, 1, "", "match"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.pooling_templates": [[20, 1, 1, "", "PoolingConfigTemplate"], [20, 1, 1, "", "PoolingFunctionTemplate"]], "hls4ml.backends.vivado.passes.pooling_templates.PoolingConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.pooling_templates.PoolingFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.quantization_templates": [[20, 1, 1, "", "ApplyAlphaConfigTemplate"], [20, 1, 1, "", "ApplyAlphaFunctionTemplate"]], "hls4ml.backends.vivado.passes.quantization_templates.ApplyAlphaConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.quantization_templates.ApplyAlphaFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.recurrent_templates": [[20, 1, 1, "", "RecurrentConfigTemplate"], [20, 1, 1, "", "RecurrentFunctionTemplate"]], "hls4ml.backends.vivado.passes.recurrent_templates.RecurrentConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.recurrent_templates.RecurrentFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates": [[20, 1, 1, "", "ResizeConfigTemplate"], [20, 1, 1, "", "ResizeFunctionTemplate"], [20, 1, 1, "", "TransposeConfigTemplate"], [20, 1, 1, "", "TransposeFunctionTemplate"], [20, 1, 1, "", "ZeroPaddingConfigTemplate"], [20, 1, 1, "", "ZeroPaddingFunctionTemplate"]], "hls4ml.backends.vivado.passes.reshaping_templates.ResizeConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ResizeFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.TransposeConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.TransposeFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ZeroPaddingConfigTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.reshaping_templates.ZeroPaddingFunctionTemplate": [[20, 2, 1, "", "format"]], "hls4ml.backends.vivado.passes.resource_strategy": [[20, 1, 1, "", "ApplyResourceStrategy"]], "hls4ml.backends.vivado.passes.resource_strategy.ApplyResourceStrategy": [[20, 2, 1, "", "match"], [20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.passes.transform_types": [[20, 1, 1, "", "TransformTypes"]], "hls4ml.backends.vivado.passes.transform_types.TransformTypes": [[20, 2, 1, "", "transform"]], "hls4ml.backends.vivado.vivado_backend": [[19, 1, 1, "", "VivadoBackend"]], "hls4ml.backends.vivado.vivado_backend.VivadoBackend": [[19, 2, 1, "", "build"], [19, 2, 1, "", "create_initial_config"], [19, 2, 1, "", "get_default_flow"], [19, 2, 1, "", "get_writer_flow"], [19, 2, 1, "", "init_base_layer"], [19, 2, 1, "", "init_conv1d"], [19, 2, 1, "", "init_conv2d"], [19, 2, 1, "", "init_dense"], [19, 2, 1, "", "init_depconv1d"], [19, 2, 1, "", "init_depconv2d"], [19, 2, 1, "", "init_embed"], [19, 2, 1, "", "init_garnet"], [19, 2, 1, "", "init_garnet_stack"], [19, 2, 1, "", "init_gru"], [19, 2, 1, "", "init_lstm"], [19, 2, 1, "", "init_pooling1d"], [19, 2, 1, "", "init_pooling2d"], [19, 2, 1, "", "init_sepconv1d"], [19, 2, 1, "", "init_sepconv2d"], [19, 2, 1, "", "init_softmax"]], "hls4ml.backends.vivado.vivado_types": [[19, 1, 1, "", "VivadoArrayVariableConverter"], [19, 1, 1, "", "VivadoArrayVariableDefinition"], [19, 1, 1, "", "VivadoInplaceArrayVariableConverter"], [19, 1, 1, "", "VivadoInplaceArrayVariableDefinition"], [19, 1, 1, "", "VivadoInplaceStreamVariableConverter"], [19, 1, 1, "", "VivadoInplaceStreamVariableDefinition"], [19, 1, 1, "", "VivadoStreamVariableConverter"], [19, 1, 1, "", "VivadoStreamVariableDefinition"]], "hls4ml.backends.vivado.vivado_types.VivadoArrayVariableDefinition": [[19, 2, 1, "", "definition_cpp"]], "hls4ml.backends.vivado.vivado_types.VivadoInplaceArrayVariableDefinition": [[19, 2, 1, "", "definition_cpp"]], "hls4ml.backends.vivado.vivado_types.VivadoInplaceStreamVariableDefinition": [[19, 2, 1, "", "definition_cpp"]], "hls4ml.backends.vivado.vivado_types.VivadoStreamVariableDefinition": [[19, 2, 1, "", "definition_cpp"]], "hls4ml.backends.vivado_accelerator": [[22, 0, 0, "-", "passes"], [21, 0, 0, "-", "vivado_accelerator_backend"], [21, 0, 0, "-", "vivado_accelerator_config"]], "hls4ml.backends.vivado_accelerator.passes": [[22, 0, 0, "-", "fifo_depth_optimization"]], "hls4ml.backends.vivado_accelerator.passes.fifo_depth_optimization": [[22, 1, 1, "", "FifoDepthOptimization"]], "hls4ml.backends.vivado_accelerator.passes.fifo_depth_optimization.FifoDepthOptimization": [[22, 2, 1, "", "transform"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_backend": [[21, 1, 1, "", "VivadoAcceleratorBackend"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_backend.VivadoAcceleratorBackend": [[21, 2, 1, "", "build"], [21, 2, 1, "", "create_initial_config"], [21, 2, 1, "", "get_default_flow"], [21, 2, 1, "", "get_writer_flow"], [21, 2, 1, "", "make_xclbin"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_config": [[21, 1, 1, "", "VivadoAcceleratorConfig"]], "hls4ml.backends.vivado_accelerator.vivado_accelerator_config.VivadoAcceleratorConfig": [[21, 2, 1, "", "get_board"], [21, 2, 1, "", "get_board_info"], [21, 2, 1, "", "get_clock_period"], [21, 2, 1, "", "get_corrected_types"], [21, 2, 1, "", "get_driver"], [21, 2, 1, "", "get_driver_file"], [21, 2, 1, "", "get_driver_path"], [21, 2, 1, "", "get_input_type"], [21, 2, 1, "", "get_interface"], [21, 2, 1, "", "get_io_bitwidth"], [21, 2, 1, "", "get_krnl_rtl_src_dir"], [21, 2, 1, "", "get_output_type"], [21, 2, 1, "", "get_part"], [21, 2, 1, "", "get_platform"], [21, 2, 1, "", "get_tcl_file_path"]], "hls4ml.converters": [[23, 3, 1, "", "convert_from_config"], [23, 3, 1, "", "convert_from_keras_model"], [23, 3, 1, "", "convert_from_onnx_model"], [23, 3, 1, "", "convert_from_pytorch_model"], [23, 3, 1, "", "convert_from_symbolic_expression"], [24, 0, 0, "-", "keras"], [23, 0, 0, "-", "keras_to_hls"], [25, 0, 0, "-", "onnx"], [23, 0, 0, "-", "onnx_to_hls"], [23, 3, 1, "", "parse_yaml_config"], [26, 0, 0, "-", "pytorch"], [23, 0, 0, "-", "utils"]], "hls4ml.converters.keras": [[24, 0, 0, "-", "convolution"], [24, 0, 0, "-", "core"], [24, 0, 0, "-", "graph"], [24, 0, 0, "-", "hgq_proxy_model"], [24, 0, 0, "-", "merge"], [24, 0, 0, "-", "model"], [24, 0, 0, "-", "pooling"], [24, 0, 0, "-", "qkeras"], [24, 0, 0, "-", "recurrent"], [24, 0, 0, "-", "reshape"], [24, 0, 0, "-", "reshaping"]], "hls4ml.converters.keras.convolution": [[24, 3, 1, "", "parse_conv1d_layer"], [24, 3, 1, "", "parse_conv2d_layer"]], "hls4ml.converters.keras.core": [[24, 3, 1, "", "parse_activation_layer"], [24, 3, 1, "", "parse_batchnorm_layer"], [24, 3, 1, "", "parse_dense_layer"], [24, 3, 1, "", "parse_embedding_layer"], [24, 3, 1, "", "parse_input_layer"]], "hls4ml.converters.keras.graph": [[24, 3, 1, "", "parse_garnet_layer"]], "hls4ml.converters.keras.hgq_proxy_model": [[24, 3, 1, "", "fixedpoint_quantizer_handler"], [24, 3, 1, "", "unary_lut_keras_handler"]], "hls4ml.converters.keras.merge": [[24, 3, 1, "", "parse_merge_layer"]], "hls4ml.converters.keras.model": [[24, 3, 1, "", "parse_model_layer"]], "hls4ml.converters.keras.pooling": [[24, 3, 1, "", "parse_global_pooling_layer"], [24, 3, 1, "", "parse_pooling_layer"]], "hls4ml.converters.keras.qkeras": [[24, 3, 1, "", "get_quantizer_from_config"], [24, 3, 1, "", "parse_qactivation_layer"], [24, 3, 1, "", "parse_qbatchnorm_layer"], [24, 3, 1, "", "parse_qconv2dbatchnorm_layer"], [24, 3, 1, "", "parse_qconv_layer"], [24, 3, 1, "", "parse_qdense_layer"], [24, 3, 1, "", "parse_qdepthwiseqconv_layer"], [24, 3, 1, "", "parse_qrnn_layer"], [24, 3, 1, "", "parse_qsepconv_layer"]], "hls4ml.converters.keras.recurrent": [[24, 3, 1, "", "parse_rnn_layer"]], "hls4ml.converters.keras.reshape": [[24, 3, 1, "", "parse_flatten_layer"], [24, 3, 1, "", "parse_permute_layer"], [24, 3, 1, "", "parse_reshape_layer"], [24, 3, 1, "", "parse_upsampling1d_layer"], [24, 3, 1, "", "parse_upsampling2d_layer"]], "hls4ml.converters.keras.reshaping": [[24, 3, 1, "", "parse_zeropadding1d_layer"], [24, 3, 1, "", "parse_zeropadding2d_layer"]], "hls4ml.converters.keras_to_hls": [[23, 1, 1, "", "KerasFileReader"], [23, 1, 1, "", "KerasModelReader"], [23, 1, 1, "", "KerasNestedFileReader"], [23, 1, 1, "", "KerasReader"], [23, 3, 1, "", "get_model_arch"], [23, 3, 1, "", "get_supported_keras_layers"], [23, 3, 1, "", "get_weights_data"], [23, 3, 1, "", "keras_handler"], [23, 3, 1, "", "keras_to_hls"], [23, 3, 1, "", "parse_default_keras_layer"], [23, 3, 1, "", "parse_keras_model"], [23, 3, 1, "", "register_keras_layer_handler"]], "hls4ml.converters.keras_to_hls.KerasFileReader": [[23, 2, 1, "", "get_weights_data"]], "hls4ml.converters.keras_to_hls.KerasModelReader": [[23, 2, 1, "", "get_weights_data"]], "hls4ml.converters.keras_to_hls.KerasReader": [[23, 2, 1, "", "get_weights_data"]], "hls4ml.converters.onnx": [[25, 0, 0, "-", "convolution"], [25, 0, 0, "-", "core"], [25, 0, 0, "-", "merge"], [25, 0, 0, "-", "pooling"], [25, 0, 0, "-", "reshape"]], "hls4ml.converters.onnx.convolution": [[25, 3, 1, "", "parse_conv_layer"]], "hls4ml.converters.onnx.core": [[25, 3, 1, "", "parse_activation_layer"], [25, 3, 1, "", "parse_batchnorm_layer"], [25, 3, 1, "", "parse_gemm_layer"]], "hls4ml.converters.onnx.merge": [[25, 3, 1, "", "parse_merge_layer"]], "hls4ml.converters.onnx.pooling": [[25, 3, 1, "", "parse_global_pooling_layer"], [25, 3, 1, "", "parse_pool_layer"]], "hls4ml.converters.onnx.reshape": [[25, 3, 1, "", "parse_reshape_layer"], [25, 3, 1, "", "parse_transpose_layer"]], "hls4ml.converters.onnx_to_hls": [[23, 1, 1, "", "ONNXDataReader"], [23, 3, 1, "", "compute_pads_1d"], [23, 3, 1, "", "compute_pads_2d"], [23, 3, 1, "", "get_input_shape"], [23, 3, 1, "", "get_onnx_attribute"], [23, 3, 1, "", "get_onnx_input_name"], [23, 3, 1, "", "get_out_layer_name"], [23, 3, 1, "", "get_supported_onnx_layers"], [23, 3, 1, "", "onnx_handler"], [23, 3, 1, "", "onnx_to_hls"], [23, 3, 1, "", "register_onnx_layer_handler"], [23, 3, 1, "", "replace_char_inconsitency"], [23, 3, 1, "", "sanitize_layer_name"]], "hls4ml.converters.onnx_to_hls.ONNXDataReader": [[23, 2, 1, "", "add_input"], [23, 2, 1, "", "get_weights_data"]], "hls4ml.converters.utils": [[23, 3, 1, "", "compute_padding_1d"], [23, 3, 1, "", "compute_padding_1d_pytorch"], [23, 3, 1, "", "compute_padding_2d"], [23, 3, 1, "", "compute_padding_2d_pytorch"], [23, 3, 1, "", "parse_data_format"]], "hls4ml.model": [[27, 0, 0, "-", "attributes"], [28, 0, 0, "-", "flow"], [27, 0, 0, "-", "graph"], [27, 0, 0, "-", "layers"], [29, 0, 0, "-", "optimizer"], [27, 0, 0, "-", "quantizers"], [27, 0, 0, "-", "types"]], "hls4ml.model.attributes": [[27, 1, 1, "", "Attribute"], [27, 1, 1, "", "AttributeDict"], [27, 1, 1, "", "AttributeMapping"], [27, 1, 1, "", "ChoiceAttribute"], [27, 1, 1, "", "CodeAttrubute"], [27, 1, 1, "", "CodeMapping"], [27, 1, 1, "", "ConfigurableAttribute"], [27, 1, 1, "", "TypeAttribute"], [27, 1, 1, "", "TypeMapping"], [27, 1, 1, "", "VariableMapping"], [27, 1, 1, "", "WeightAttribute"], [27, 1, 1, "", "WeightMapping"]], "hls4ml.model.attributes.Attribute": [[27, 6, 1, "", "config_name"], [27, 2, 1, "", "validate_value"]], "hls4ml.model.attributes.ChoiceAttribute": [[27, 2, 1, "", "validate_value"]], "hls4ml.model.flow": [[28, 0, 0, "-", "flow"]], "hls4ml.model.flow.flow": [[28, 1, 1, "", "DynamicFlow"], [28, 1, 1, "", "Flow"], [28, 3, 1, "", "get_available_flows"], [28, 3, 1, "", "get_backend_flows"], [28, 3, 1, "", "get_flow"], [28, 3, 1, "", "register_flow"], [28, 3, 1, "", "update_flow"]], "hls4ml.model.flow.flow.DynamicFlow": [[28, 6, 1, "", "optimizers"]], "hls4ml.model.flow.flow.Flow": [[28, 6, 1, "", "optimizers"]], "hls4ml.model.graph": [[27, 1, 1, "", "HLSConfig"], [27, 1, 1, "", "ModelGraph"]], "hls4ml.model.graph.HLSConfig": [[27, 2, 1, "", "get_bram_size"], [27, 2, 1, "", "get_compression"], [27, 2, 1, "", "get_config_value"], [27, 2, 1, "", "get_conv_implementation"], [27, 2, 1, "", "get_layer_config"], [27, 2, 1, "", "get_layer_config_value"], [27, 2, 1, "", "get_output_dir"], [27, 2, 1, "", "get_precision"], [27, 2, 1, "", "get_project_dir"], [27, 2, 1, "", "get_project_name"], [27, 2, 1, "", "get_reuse_factor"], [27, 2, 1, "", "get_strategy"], [27, 2, 1, "", "get_target_cycles"], [27, 2, 1, "", "get_writer_config"], [27, 2, 1, "", "is_resource_strategy"], [27, 2, 1, "", "parse_name_config"], [27, 2, 1, "", "set_name_config"]], "hls4ml.model.graph.ModelGraph": [[27, 2, 1, "", "apply_flow"], [27, 2, 1, "", "build"], [27, 2, 1, "", "compile"], [27, 2, 1, "", "get_input_variables"], [27, 2, 1, "", "get_layer_output_variable"], [27, 2, 1, "", "get_layers"], [27, 2, 1, "", "get_output_variables"], [27, 2, 1, "", "get_weight_variables"], [27, 2, 1, "", "insert_node"], [27, 2, 1, "", "make_node"], [27, 2, 1, "", "next_layer"], [27, 2, 1, "", "predict"], [27, 2, 1, "", "register_output_variable"], [27, 2, 1, "", "remove_node"], [27, 2, 1, "", "replace_node"], [27, 2, 1, "", "split_node"], [27, 2, 1, "", "trace"], [27, 2, 1, "", "write"]], "hls4ml.model.layers": [[27, 1, 1, "", "Activation"], [27, 1, 1, "", "BatchNormalization"], [27, 1, 1, "", "BiasAdd"], [27, 1, 1, "", "Concatenate"], [27, 1, 1, "", "Conv1D"], [27, 1, 1, "", "Conv2D"], [27, 1, 1, "", "Conv2DBatchnorm"], [27, 1, 1, "", "Dense"], [27, 1, 1, "", "DepthwiseConv1D"], [27, 1, 1, "", "DepthwiseConv2D"], [27, 1, 1, "", "Dot"], [27, 1, 1, "", "Embedding"], [27, 1, 1, "", "GRU"], [27, 1, 1, "", "GarNet"], [27, 1, 1, "", "GarNetStack"], [27, 1, 1, "", "GlobalPooling1D"], [27, 1, 1, "", "GlobalPooling2D"], [27, 1, 1, "", "HardActivation"], [27, 1, 1, "", "Input"], [27, 1, 1, "", "LSTM"], [27, 1, 1, "", "Layer"], [27, 1, 1, "", "LayerGroup"], [27, 1, 1, "", "Merge"], [27, 1, 1, "", "PReLU"], [27, 1, 1, "", "ParametrizedActivation"], [27, 1, 1, "", "Pooling1D"], [27, 1, 1, "", "Pooling2D"], [27, 1, 1, "", "Reshape"], [27, 1, 1, "", "Resize"], [27, 1, 1, "", "SeparableConv1D"], [27, 1, 1, "", "SeparableConv2D"], [27, 1, 1, "", "SimpleRNN"], [27, 1, 1, "", "Softmax"], [27, 1, 1, "", "SymbolicExpression"], [27, 1, 1, "", "TernaryTanh"], [27, 1, 1, "", "Transpose"], [27, 1, 1, "", "ZeroPadding1D"], [27, 1, 1, "", "ZeroPadding2D"], [27, 1, 1, "", "classproperty"], [27, 3, 1, "", "register_layer"]], "hls4ml.model.layers.Activation": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.BatchNormalization": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.BiasAdd": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Concatenate": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Conv2DBatchnorm": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Dense": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.DepthwiseConv1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.DepthwiseConv2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Dot": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Embedding": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.GRU": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.GarNet": [[27, 2, 1, "", "initialize"], [27, 4, 1, "", "ref_impl"]], "hls4ml.model.layers.GlobalPooling1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.GlobalPooling2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.HardActivation": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Input": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.LSTM": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Layer": [[27, 2, 1, "", "add_bias"], [27, 2, 1, "", "add_output_variable"], [27, 2, 1, "", "add_weights"], [27, 2, 1, "", "add_weights_variable"], [27, 6, 1, "", "class_name"], [27, 4, 1, "", "expected_attributes"], [27, 2, 1, "", "get_attr"], [27, 2, 1, "", "get_input_node"], [27, 2, 1, "", "get_input_variable"], [27, 2, 1, "", "get_layer_precision"], [27, 2, 1, "", "get_output_nodes"], [27, 2, 1, "", "get_output_use_map"], [27, 2, 1, "", "get_output_variable"], [27, 2, 1, "", "get_variables"], [27, 2, 1, "", "get_weights"], [27, 2, 1, "", "initialize"], [27, 2, 1, "", "set_attr"]], "hls4ml.model.layers.LayerGroup": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Merge": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.PReLU": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.ParametrizedActivation": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Pooling1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Pooling2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Reshape": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Resize": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.SeparableConv1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.SeparableConv2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.SimpleRNN": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Softmax": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.SymbolicExpression": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.TernaryTanh": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.Transpose": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.ZeroPadding1D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.layers.ZeroPadding2D": [[27, 2, 1, "", "initialize"]], "hls4ml.model.optimizer": [[29, 0, 0, "-", "optimizer"], [30, 0, 0, "-", "passes"]], "hls4ml.model.optimizer.optimizer": [[29, 1, 1, "", "ConfigurableOptimizerPass"], [29, 1, 1, "", "GlobalOptimizerPass"], [29, 1, 1, "", "LayerOptimizerPass"], [29, 1, 1, "", "ModelOptimizerPass"], [29, 1, 1, "", "OptimizerPass"], [29, 1, 1, "", "WrappedOptimizerPass"], [29, 3, 1, "", "extract_optimizers_from_object"], [29, 3, 1, "", "extract_optimizers_from_path"], [29, 3, 1, "", "get_available_passes"], [29, 3, 1, "", "get_backend_passes"], [29, 3, 1, "", "get_optimizer"], [29, 3, 1, "", "layer_optimizer"], [29, 3, 1, "", "model_optimizer"], [29, 3, 1, "", "optimize_model"], [29, 3, 1, "", "optimizer_pass"], [29, 3, 1, "", "register_pass"]], "hls4ml.model.optimizer.optimizer.ConfigurableOptimizerPass": [[29, 2, 1, "", "configure"], [29, 2, 1, "", "get_config"]], "hls4ml.model.optimizer.optimizer.GlobalOptimizerPass": [[29, 2, 1, "", "match"]], "hls4ml.model.optimizer.optimizer.ModelOptimizerPass": [[29, 2, 1, "", "transform"]], "hls4ml.model.optimizer.optimizer.OptimizerPass": [[29, 2, 1, "", "get_name"], [29, 2, 1, "", "match"], [29, 4, 1, "", "name"], [29, 2, 1, "", "transform"]], "hls4ml.model.optimizer.optimizer.WrappedOptimizerPass": [[29, 2, 1, "", "get_name"], [29, 2, 1, "", "match"], [29, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes": [[30, 0, 0, "-", "bn_fuse"], [30, 0, 0, "-", "convert_to_channels_last"], [30, 0, 0, "-", "expand_layer_group"], [30, 0, 0, "-", "fuse_biasadd"], [30, 0, 0, "-", "hgq_proxy_model"], [30, 0, 0, "-", "infer_precision"], [30, 0, 0, "-", "multi_dense"], [30, 0, 0, "-", "nop"], [30, 0, 0, "-", "qkeras"], [30, 0, 0, "-", "seperable_to_dw_conv"], [30, 0, 0, "-", "stamp"], [30, 0, 0, "-", "transpose_opt"]], "hls4ml.model.optimizer.passes.bn_fuse": [[30, 1, 1, "", "FuseBatchNormalization"]], "hls4ml.model.optimizer.passes.bn_fuse.FuseBatchNormalization": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.convert_to_channels_last": [[30, 1, 1, "", "ChannelsLastConverter"], [30, 1, 1, "", "RemoveTransposeBeforeFlatten"]], "hls4ml.model.optimizer.passes.convert_to_channels_last.ChannelsLastConverter": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.convert_to_channels_last.RemoveTransposeBeforeFlatten": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.expand_layer_group": [[30, 1, 1, "", "ExpandLayerGroup"]], "hls4ml.model.optimizer.passes.expand_layer_group.ExpandLayerGroup": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.fuse_biasadd": [[30, 1, 1, "", "FuseBiasAdd"]], "hls4ml.model.optimizer.passes.fuse_biasadd.FuseBiasAdd": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.hgq_proxy_model": [[30, 1, 1, "", "EnforceProxyModelEmbeddedConfig"], [30, 1, 1, "", "FixedPointQuantizer"], [30, 1, 1, "", "UnaryLUT"], [30, 3, 1, "", "register_hgq_proxy_model"], [30, 3, 1, "", "to_hls4ml_fixed"], [30, 3, 1, "", "userconf_ifdef"]], "hls4ml.model.optimizer.passes.hgq_proxy_model.EnforceProxyModelEmbeddedConfig": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.hgq_proxy_model.FixedPointQuantizer": [[30, 2, 1, "", "initialize"]], "hls4ml.model.optimizer.passes.hgq_proxy_model.UnaryLUT": [[30, 2, 1, "", "initialize"]], "hls4ml.model.optimizer.passes.infer_precision": [[30, 1, 1, "", "InferPrecisionTypes"]], "hls4ml.model.optimizer.passes.infer_precision.InferPrecisionTypes": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.multi_dense": [[30, 1, 1, "", "ReplaceMultidimensionalDenseWithConv"]], "hls4ml.model.optimizer.passes.multi_dense.ReplaceMultidimensionalDenseWithConv": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.nop": [[30, 1, 1, "", "EliminateLinearActivation"]], "hls4ml.model.optimizer.passes.nop.EliminateLinearActivation": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras": [[30, 1, 1, "", "ApplyAlpha"], [30, 1, 1, "", "ExtractTernaryThreshold"], [30, 1, 1, "", "FuseConsecutiveBatchNormalization"], [30, 1, 1, "", "OutputRoundingSaturationMode"], [30, 1, 1, "", "QKerasFactorizeAlpha"], [30, 3, 1, "", "register_qkeras"]], "hls4ml.model.optimizer.passes.qkeras.ApplyAlpha": [[30, 2, 1, "", "add_bias"], [30, 2, 1, "", "add_weights"], [30, 2, 1, "", "initialize"]], "hls4ml.model.optimizer.passes.qkeras.ExtractTernaryThreshold": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.FuseConsecutiveBatchNormalization": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.OutputRoundingSaturationMode": [[30, 2, 1, "", "match"], [30, 2, 1, "", "precision_string_modify"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.qkeras.QKerasFactorizeAlpha": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.seperable_to_dw_conv": [[30, 1, 1, "", "SeperableToDepthwiseAndConv"]], "hls4ml.model.optimizer.passes.seperable_to_dw_conv.SeperableToDepthwiseAndConv": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.stamp": [[30, 1, 1, "", "MakeStamp"]], "hls4ml.model.optimizer.passes.stamp.MakeStamp": [[30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.transpose_opt": [[30, 1, 1, "", "RemoveNopTranspose"], [30, 1, 1, "", "RemoveSingleChannelTranspose"]], "hls4ml.model.optimizer.passes.transpose_opt.RemoveNopTranspose": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.optimizer.passes.transpose_opt.RemoveSingleChannelTranspose": [[30, 2, 1, "", "match"], [30, 2, 1, "", "transform"]], "hls4ml.model.quantizers": [[27, 1, 1, "", "BinaryQuantizer"], [27, 1, 1, "", "QKerasBinaryQuantizer"], [27, 1, 1, "", "QKerasPO2Quantizer"], [27, 1, 1, "", "QKerasQuantizer"], [27, 1, 1, "", "Quantizer"], [27, 1, 1, "", "TernaryQuantizer"]], "hls4ml.model.types": [[27, 1, 1, "", "CompressedType"], [27, 1, 1, "", "CompressedWeightVariable"], [27, 1, 1, "", "ExponentPrecisionType"], [27, 1, 1, "", "ExponentType"], [27, 1, 1, "", "ExponentWeightVariable"], [27, 1, 1, "", "FixedPrecisionType"], [27, 1, 1, "", "InplaceTensorVariable"], [27, 1, 1, "", "IntegerPrecisionType"], [27, 1, 1, "", "NamedType"], [27, 1, 1, "", "PackedType"], [27, 1, 1, "", "PrecisionType"], [27, 1, 1, "", "RoundingMode"], [27, 1, 1, "", "SaturationMode"], [27, 1, 1, "", "Source"], [27, 1, 1, "", "TensorVariable"], [27, 1, 1, "", "UnspecifiedPrecisionType"], [27, 1, 1, "", "Variable"], [27, 1, 1, "", "WeightVariable"], [27, 1, 1, "", "XnorPrecisionType"], [27, 3, 1, "", "find_minimum_width"]], "hls4ml.model.types.CompressedWeightVariable": [[27, 2, 1, "", "next"]], "hls4ml.model.types.ExponentWeightVariable": [[27, 2, 1, "", "next"]], "hls4ml.model.types.FixedPrecisionType": [[27, 6, 1, "", "fractional"], [27, 6, 1, "", "rounding_mode"], [27, 6, 1, "", "saturation_bits"], [27, 6, 1, "", "saturation_mode"]], "hls4ml.model.types.IntegerPrecisionType": [[27, 6, 1, "", "fractional"], [27, 6, 1, "", "integer"], [27, 6, 1, "", "rounding_mode"], [27, 6, 1, "", "saturation_bits"], [27, 6, 1, "", "saturation_mode"]], "hls4ml.model.types.RoundingMode": [[27, 4, 1, "", "RND"], [27, 4, 1, "", "RND_CONV"], [27, 4, 1, "", "RND_INF"], [27, 4, 1, "", "RND_MIN_INF"], [27, 4, 1, "", "RND_ZERO"], [27, 4, 1, "", "TRN"], [27, 4, 1, "", "TRN_ZERO"], [27, 2, 1, "", "from_string"]], "hls4ml.model.types.SaturationMode": [[27, 4, 1, "", "SAT"], [27, 4, 1, "", "SAT_SYM"], [27, 4, 1, "", "SAT_ZERO"], [27, 4, 1, "", "WRAP"], [27, 2, 1, "", "from_string"]], "hls4ml.model.types.TensorVariable": [[27, 2, 1, "", "get_shape"], [27, 2, 1, "", "size"], [27, 2, 1, "", "size_cpp"]], "hls4ml.model.types.WeightVariable": [[27, 2, 1, "", "next"], [27, 2, 1, "", "update_precision"]], "hls4ml.optimization": [[31, 0, 0, "-", "attributes"], [31, 0, 0, "-", "config"], [32, 0, 0, "-", "keras"], [31, 0, 0, "-", "knapsack"], [33, 0, 0, "-", "objectives"], [31, 3, 1, "", "optimize_keras_model_for_hls4ml"], [31, 0, 0, "-", "scheduler"]], "hls4ml.optimization.attributes": [[31, 1, 1, "", "LayerAttributes"], [31, 1, 1, "", "OptimizationAttributes"], [31, 3, 1, "", "get_attributes_from_keras_model"], [31, 3, 1, "", "get_attributes_from_keras_model_and_hls4ml_config"], [31, 1, 1, "", "hls4mlAttributes"]], "hls4ml.optimization.attributes.LayerAttributes": [[31, 2, 1, "", "update_args"]], "hls4ml.optimization.config": [[31, 1, 1, "", "SUPPORTED_STRUCTURES"]], "hls4ml.optimization.config.SUPPORTED_STRUCTURES": [[31, 4, 1, "", "BLOCK"], [31, 4, 1, "", "PATTERN"], [31, 4, 1, "", "STRUCTURED"], [31, 4, 1, "", "UNSTRUCTURED"]], "hls4ml.optimization.keras": [[32, 1, 1, "", "MaskedBackprop"], [32, 0, 0, "-", "builder"], [32, 0, 0, "-", "config"], [32, 0, 0, "-", "masking"], [32, 3, 1, "", "optimize_model"], [32, 0, 0, "-", "reduction"], [32, 0, 0, "-", "regularizers"], [32, 0, 0, "-", "utils"]], "hls4ml.optimization.keras.MaskedBackprop": [[32, 2, 1, "", "update_masks"]], "hls4ml.optimization.keras.builder": [[32, 1, 1, "", "HyperOptimizationModel"], [32, 3, 1, "", "build_optimizable_model"], [32, 3, 1, "", "remove_custom_regularizers"]], "hls4ml.optimization.keras.builder.HyperOptimizationModel": [[32, 2, 1, "", "build"]], "hls4ml.optimization.keras.config": [[32, 5, 1, "", "SUPPORTED_LAYERS"], [32, 5, 1, "", "SUPPORTED_METRICS"]], "hls4ml.optimization.keras.masking": [[32, 3, 1, "", "get_model_masks"]], "hls4ml.optimization.keras.reduction": [[32, 3, 1, "", "reduce_model"]], "hls4ml.optimization.keras.regularizers": [[32, 1, 1, "", "Conv2DRegularizer"], [32, 1, 1, "", "DenseRegularizer"]], "hls4ml.optimization.keras.regularizers.Conv2DRegularizer": [[32, 2, 1, "", "get_config"]], "hls4ml.optimization.keras.regularizers.DenseRegularizer": [[32, 2, 1, "", "get_config"]], "hls4ml.optimization.keras.utils": [[32, 3, 1, "", "get_last_layer_with_weights"], [32, 3, 1, "", "get_model_gradients"], [32, 3, 1, "", "get_model_hessians"], [32, 3, 1, "", "get_model_sparsity"]], "hls4ml.optimization.knapsack": [[31, 3, 1, "", "solve_knapsack"]], "hls4ml.optimization.objectives": [[33, 1, 1, "", "ObjectiveEstimator"], [33, 1, 1, "", "ParameterEstimator"], [33, 0, 0, "-", "gpu_objectives"], [33, 0, 0, "-", "vivado_objectives"]], "hls4ml.optimization.objectives.ObjectiveEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.objectives.ParameterEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.objectives.gpu_objectives": [[33, 1, 1, "", "GPUFLOPEstimator"]], "hls4ml.optimization.objectives.gpu_objectives.GPUFLOPEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.objectives.vivado_objectives": [[33, 1, 1, "", "VivadoDSPEstimator"], [33, 1, 1, "", "VivadoFFEstimator"], [33, 1, 1, "", "VivadoMultiObjectiveEstimator"]], "hls4ml.optimization.objectives.vivado_objectives.VivadoDSPEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.objectives.vivado_objectives.VivadoFFEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.objectives.vivado_objectives.VivadoMultiObjectiveEstimator": [[33, 2, 1, "", "is_layer_optimizable"], [33, 2, 1, "", "layer_resources"], [33, 2, 1, "", "layer_savings"]], "hls4ml.optimization.scheduler": [[31, 1, 1, "", "BinaryScheduler"], [31, 1, 1, "", "ConstantScheduler"], [31, 1, 1, "", "OptimizationScheduler"], [31, 1, 1, "", "PolynomialScheduler"]], "hls4ml.optimization.scheduler.BinaryScheduler": [[31, 2, 1, "", "repair_step"], [31, 2, 1, "", "update_step"]], "hls4ml.optimization.scheduler.ConstantScheduler": [[31, 2, 1, "", "repair_step"], [31, 2, 1, "", "update_step"]], "hls4ml.optimization.scheduler.OptimizationScheduler": [[31, 2, 1, "", "get_sparsity"], [31, 2, 1, "", "repair_step"], [31, 2, 1, "", "update_step"]], "hls4ml.optimization.scheduler.PolynomialScheduler": [[31, 2, 1, "", "repair_step"], [31, 2, 1, "", "update_step"]], "hls4ml.report": [[34, 0, 0, "-", "catapult_report"], [34, 0, 0, "-", "quartus_report"], [34, 0, 0, "-", "vivado_report"]], "hls4ml.report.catapult_report": [[34, 3, 1, "", "get_latest_project_prj_directory"], [34, 3, 1, "", "get_latest_project_version_directory"], [34, 3, 1, "", "parse_catapult_report"], [34, 3, 1, "", "qofr"], [34, 3, 1, "", "read_catapult_report"]], "hls4ml.report.quartus_report": [[34, 3, 1, "", "parse_quartus_report"], [34, 3, 1, "", "read_js_object"], [34, 3, 1, "", "read_quartus_report"]], "hls4ml.report.vivado_report": [[34, 3, 1, "", "parse_vivado_report"], [34, 3, 1, "", "print_vivado_report"], [34, 3, 1, "", "read_vivado_report"]], "hls4ml.utils": [[35, 0, 0, "-", "config"], [35, 0, 0, "-", "example_models"], [35, 0, 0, "-", "fixed_point_utils"], [35, 0, 0, "-", "plot"], [35, 0, 0, "-", "string_utils"], [35, 0, 0, "-", "symbolic_utils"]], "hls4ml.utils.config": [[35, 3, 1, "", "config_from_keras_model"], [35, 3, 1, "", "config_from_onnx_model"], [35, 3, 1, "", "config_from_pytorch_model"], [35, 3, 1, "", "create_config"]], "hls4ml.utils.example_models": [[35, 3, 1, "", "fetch_example_list"], [35, 3, 1, "", "fetch_example_model"]], "hls4ml.utils.fixed_point_utils": [[35, 1, 1, "", "FixedPointEmulator"], [35, 3, 1, "", "ceil_log2"], [35, 3, 1, "", "uint_to_binary"]], "hls4ml.utils.fixed_point_utils.FixedPointEmulator": [[35, 2, 1, "", "exp_float"], [35, 2, 1, "", "inv_float"], [35, 2, 1, "", "set_msb_bits"], [35, 2, 1, "", "to_float"]], "hls4ml.utils.plot": [[35, 3, 1, "", "add_edge"], [35, 3, 1, "", "check_pydot"], [35, 3, 1, "", "model_to_dot"], [35, 3, 1, "", "plot_model"]], "hls4ml.utils.string_utils": [[35, 3, 1, "", "convert_to_pascal_case"], [35, 3, 1, "", "convert_to_snake_case"]], "hls4ml.utils.symbolic_utils": [[35, 1, 1, "", "LUTFunction"], [35, 3, 1, "", "generate_operator_complexity"], [35, 3, 1, "", "init_pysr_lut_functions"], [35, 3, 1, "", "register_pysr_lut_function"]], "hls4ml.writer": [[36, 0, 0, "-", "catapult_writer"], [36, 0, 0, "-", "quartus_writer"], [36, 0, 0, "-", "symbolic_writer"], [36, 0, 0, "-", "vitis_writer"], [36, 0, 0, "-", "vivado_accelerator_writer"], [36, 0, 0, "-", "vivado_writer"], [36, 0, 0, "-", "writers"]], "hls4ml.writer.catapult_writer": [[36, 1, 1, "", "CatapultWriter"]], "hls4ml.writer.catapult_writer.CatapultWriter": [[36, 2, 1, "", "print_array_to_cpp"], [36, 2, 1, "", "write_bridge"], [36, 2, 1, "", "write_build_script"], [36, 2, 1, "", "write_defines"], [36, 2, 1, "", "write_generated_code"], [36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_nnet_utils"], [36, 2, 1, "", "write_output_dir"], [36, 2, 1, "", "write_parameters"], [36, 2, 1, "", "write_project_cpp"], [36, 2, 1, "", "write_project_header"], [36, 2, 1, "", "write_tar"], [36, 2, 1, "", "write_test_bench"], [36, 2, 1, "", "write_weights"], [36, 2, 1, "", "write_yml"]], "hls4ml.writer.quartus_writer": [[36, 1, 1, "", "QuartusWriter"]], "hls4ml.writer.quartus_writer.QuartusWriter": [[36, 2, 1, "", "get_max_reuse_factor"], [36, 2, 1, "", "next_pow2"], [36, 2, 1, "", "print_array_to_cpp"], [36, 2, 1, "", "write_activation_tables"], [36, 2, 1, "", "write_bridge"], [36, 2, 1, "", "write_build_script"], [36, 2, 1, "", "write_defines"], [36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_nnet_utils"], [36, 2, 1, "", "write_parameters"], [36, 2, 1, "", "write_project_cpp"], [36, 2, 1, "", "write_project_dir"], [36, 2, 1, "", "write_project_header"], [36, 2, 1, "", "write_tar"], [36, 2, 1, "", "write_test_bench"], [36, 2, 1, "", "write_testbench_parallel"], [36, 2, 1, "", "write_testbench_stream"], [36, 2, 1, "", "write_weights"], [36, 2, 1, "", "write_yml"]], "hls4ml.writer.symbolic_writer": [[36, 1, 1, "", "SymbolicExpressionWriter"]], "hls4ml.writer.symbolic_writer.SymbolicExpressionWriter": [[36, 2, 1, "", "write_build_script"], [36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_nnet_utils"]], "hls4ml.writer.vitis_writer": [[36, 1, 1, "", "VitisWriter"]], "hls4ml.writer.vitis_writer.VitisWriter": [[36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_nnet_utils_overrides"]], "hls4ml.writer.vivado_accelerator_writer": [[36, 1, 1, "", "VivadoAcceleratorWriter"]], "hls4ml.writer.vivado_accelerator_writer.VivadoAcceleratorWriter": [[36, 2, 1, "", "modify_build_script"], [36, 2, 1, "", "write_axi_wrapper"], [36, 2, 1, "", "write_board_script"], [36, 2, 1, "", "write_driver"], [36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_new_tar"], [36, 2, 1, "", "write_wrapper_test"]], "hls4ml.writer.vivado_writer": [[36, 1, 1, "", "VivadoWriter"]], "hls4ml.writer.vivado_writer.VivadoWriter": [[36, 2, 1, "", "print_array_to_cpp"], [36, 2, 1, "", "write_bridge"], [36, 2, 1, "", "write_build_script"], [36, 2, 1, "", "write_defines"], [36, 2, 1, "", "write_generated_code"], [36, 2, 1, "", "write_hls"], [36, 2, 1, "", "write_nnet_utils"], [36, 2, 1, "", "write_parameters"], [36, 2, 1, "", "write_project_cpp"], [36, 2, 1, "", "write_project_dir"], [36, 2, 1, "", "write_project_header"], [36, 2, 1, "", "write_tar"], [36, 2, 1, "", "write_test_bench"], [36, 2, 1, "", "write_weights"], [36, 2, 1, "", "write_yml"]], "hls4ml.writer.writers": [[36, 1, 1, "", "Writer"], [36, 3, 1, "", "get_writer"], [36, 3, 1, "", "register_writer"]], "hls4ml.writer.writers.Writer": [[36, 2, 1, "", "write_hls"]]}, "objtypes": {"0": "py:module", "1": "py:class", "2": "py:method", "3": "py:function", "4": "py:attribute", "5": "py:data", "6": "py:property"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "class", "Python class"], "2": ["py", "method", "Python method"], "3": ["py", "function", "Python function"], "4": ["py", "attribute", "Python attribute"], "5": ["py", "data", "Python data"], "6": ["py", "property", "Python property"]}, "titleterms": {"vivadoacceler": 0, "backend": [0, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 39], "neural": 0, "network": 0, "overlai": 0, "exampl": [0, 1, 44, 45], "extens": 1, "api": [1, 3, 4], "complet": 1, "fifo": 2, "buffer": 2, "depth": 2, "optim": [2, 3, 29, 30, 31, 32, 33, 40], "hardwar": 3, "awar": 3, "configur": 4, "1": [4, 43], "python": 4, "2": [4, 43], "yaml": 4, "file": 4, "top": 4, "level": 4, "per": 4, "layer": [4, 27], "detail": [4, 39], "convert": [4, 23, 24, 25, 26, 37], "hl": [4, 5], "code": 4, "model": [5, 24, 27, 28, 29, 30, 45], "class": 5, "write": 5, "method": 5, "compil": 5, "predict": 5, "build": [5, 37], "trace": 5, "profil": [6, 27], "hls4ml": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 41, 44], "packag": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "subpackag": [7, 8, 9, 11, 13, 15, 17, 19, 21, 23, 27, 29, 31], "modul": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "content": [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "submodul": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36], "templat": 8, "catapult": [9, 10], "catapult_backend": 9, "catapult_typ": 9, "pass": [10, 12, 14, 16, 18, 20, 22, 30, 40], "broadcast_stream": [10, 20], "conv_same_pad": [10, 20], "conv_stream": [10, 20], "convolution_templ": [10, 14, 20], "convolution_winograd": [10, 14], "core_templ": [10, 14, 20], "fifo_depth_optim": [10, 20, 22], "garnet_templ": [10, 20], "merge_templ": [10, 14, 20], "pointwis": [10, 14, 20], "pooling_templ": [10, 14, 20], "quantization_templ": [10, 14, 20], "recurrent_templ": [10, 14, 20], "reshaping_templ": [10, 14, 20], "resource_strategi": [10, 14, 20], "transform_typ": [10, 14, 20], "fpga": [11, 12], "fpga_backend": 11, "fpga_lay": 11, "fpga_typ": 11, "bn_quant": 12, "bram_weight": 12, "clone": 12, "codegen": 12, "embed": 12, "final_reshap": 12, "fix_softmax_table_s": 12, "hgq_proxy_model": [12, 24, 30], "inplace_parallel_reshap": 12, "inplace_stream_flatten": 12, "remove_softmax": 12, "repack_stream": 12, "xnor_pool": 12, "quartu": [13, 14], "quartus_backend": 13, "quartus_typ": 13, "symbol": [15, 16], "symbolic_backend": 15, "expr_templ": 16, "validate_lut": 16, "viti": [17, 18], "vitis_backend": 17, "feature_check": 18, "vivado": [19, 20], "vivado_backend": 19, "vivado_typ": 19, "vivado_acceler": [21, 22], "vivado_accelerator_backend": 21, "vivado_accelerator_config": 21, "keras_to_hl": 23, "onnx_to_hl": 23, "pytorch_to_hl": 23, "util": [23, 32, 35], "kera": [24, 32], "convolut": [24, 25, 26], "core": [24, 25, 26], "graph": [24, 27], "merg": [24, 25, 26], "pool": [24, 25, 26], "qkera": [24, 30], "recurr": [24, 26], "reshap": [24, 25, 26], "onnx": 25, "pytorch": 26, "attribut": [27, 31], "quantiz": 27, "type": [27, 39], "flow": [28, 40], "bn_fuse": 30, "convert_to_channels_last": 30, "expand_layer_group": 30, "fuse_biasadd": 30, "infer_precis": 30, "multi_dens": 30, "nop": 30, "seperable_to_dw_conv": 30, "stamp": 30, "transpose_opt": 30, "config": [31, 32, 35, 37], "knapsack": 31, "schedul": 31, "builder": 32, "mask": 32, "reduct": 32, "regular": 32, "object": 33, "gpu_object": 33, "vivado_object": 33, "report": [34, 37], "catapult_report": 34, "quartus_report": 34, "vivado_report": 34, "example_model": 35, "fixed_point_util": 35, "plot": 35, "string_util": 35, "symbolic_util": 35, "writer": 36, "catapult_writ": 36, "quartus_writ": 36, "symbolic_writ": 36, "vitis_writ": 36, "vivado_accelerator_writ": 36, "vivado_writ": 36, "command": 37, "line": 37, "interfac": 37, "deprec": [37, 44], "overview": 37, "concept": 38, "The": 38, "inspir": 38, "solut": 38, "how": 38, "work": 38, "softwar": 39, "frontend": 39, "i": 39, "o": 39, "io_parallel": 39, "io_stream": 39, "intern": 40, "structur": 40, "welcom": 41, "s": 41, "document": 41, "project": 41, "statu": [41, 45], "tutori": 41, "citat": 42, "acknowledg": 42, "contributor": 42, "fund": 42, "releas": 43, "note": 43, "v0": 43, "8": 43, "edelweiss": 43, "0": 43, "0rc1": 43, "7": 43, "delphinium": 43, "rc1": 43, "6": 43, "cori": 43, "5": 43, "bartsia": 43, "beta": 43, "4": 43, "aster": 43, "3": 43, "setup": 44, "quick": 44, "start": 44, "instal": 44, "develop": 44, "version": 44, "depend": 44, "get": 44, "cli": 44, "further": 44, "help": 44, "exist": 44, "uninstal": 44, "featur": 45}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 56}}) \ No newline at end of file diff --git a/setup.html b/setup.html index b70aef45c8..31b9f0d0c1 100644 --- a/setup.html +++ b/setup.html @@ -40,7 +40,7 @@
    - 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
    diff --git a/status.html b/status.html index 1e43877608..04c0c1f47c 100644 --- a/status.html +++ b/status.html @@ -40,7 +40,7 @@
    - 0.9.0.dev64+gd439f26c + 0.9.0.dev65+gafed23b1
    @@ -118,7 +118,7 @@

    Status and Features

    Status

    -

    The latest version (built from main) is 0.9.0.dev64+gd439f26c. +

    The latest version (built from main) is 0.9.0.dev65+gafed23b1. The stable version (released on PyPI) is 0.8.1. See the Release Notes section for a changelog.