1
2
3
4
5
6
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
%global _empty_manifest_terminate_build 0
Name: python-tflite
Version: 2.10.0
Release: 1
Summary: Parsing TensorFlow Lite Models (*.tflite) Easily
License: Apache License 2.0
URL: https://zhenhuaw.me/tflite
Source0: https://mirrors.nju.edu.cn/pypi/web/packages/0d/a8/8e84e361b77733157e04bac54b1479f877f3185cdc0dbbc412823fbfc7c8/tflite-2.10.0.tar.gz
BuildArch: noarch
Requires: python3-flatbuffers
Requires: python3-numpy
%description

This [`tflite` package](https://pypi.org/project/tflite/) parses TensorFlow Lite (TFLite) models (`*.tflite`), which are built by [TFLite converter](https://www.tensorflow.org/lite/convert). For background, please refer to [Introducing TFLite Parser Python Package](https://zhenhuaw.me/blog/2020/introducing-tflite-parser-package.html).
## Usage
Install the package and use it like what you build from the TensorFlow codebase.
It's recommended to install the version that same as the TensorFlow that generates the TFLite model.
```sh
pip install tensorflow==2.3.0
pip install tflite==2.3.0
```
The raw API of `tflite` can be found in [this documentation](https://zhenhuaw.me/tflite/docs/).
The [MobileNet test](tests/test_mobilenet.py) can serve as a usage example of parsing models.
## Enhancements
The generated python package is not friendly to use sometimes.
We have introduced several enhancements:
* **Easy import**: A single `import tflite` ([example](https://github.com/zhenhuaw-me/tflite/blob/master/tests/test_mobilenet.py)) to replace importing every classes and funtions in `tflite` ([example](tests/test_original_import.py)).
* **Builtin opcode helper**: The opcode is _encoded_ as digits which is hard to parse for human. Two APIs added to make it easy to use.
* [`tflite.opcode2name()`](https://github.com/zhenhuaw-me/tflite/blob/master/tflite/utils.py#L1): get the type name of given opcode.
* [`tflite.BUILTIN_OPCODE2NAME`](https://github.com/zhenhuaw-me/tflite/blob/master/tflite/utils.py#L9): a dict that maps the opcode to name of all the builtin operators.
## Compatibility Handling
TensorFlow sometimes leaves compability hanlding of the TFLite model to the users.
As these are API breaking change that can be easily fixed, we do this in the `tflite` package.
* [`tflite.OperatorCode.BuiltinCode()`](https://github.com/zhenhuaw-me/tflite/blob/master/tflite/OperatorCode.py#L43): maintains API compability in `2.4.0`, see [this issue](https://github.com/tensorflow/tensorflow/issues/46663).
## Contributing Updates
As the operator definition may change across different TensorFlow versions, this package needs to be updated accordingly. If you notice that the package is out of date, please feel free to contribute new versions. This is pretty simple, instructions as below.
1. [Fork the repository](https://help.github.com/en/github/getting-started-with-github/fork-a-repo), and download it.
2. Install additional depdendency via `pip install -r requirements.txt`. And install [flatbuffer compiler](https://google.github.io/flatbuffers/flatbuffers_guide_using_schema_compiler.html) (you may need to [manually build it](https://google.github.io/flatbuffers/flatbuffers_guide_building.html)).
3. Generate the code for update. Tools have been prepared, there are prompt for actions.
1. [Download](scripts/update-schema.sh) `schema.fbs` for a new version.
2. [Update](scripts/gen-op-list.py) the builtin operator mapping.
3. [Update](scripts/update-importing.py) the classes and functions import of submodules.
4. [Update](scripts/gen-doc.sh) the API document.
5. Update the versioning in [`__init__.py`](tflite/__init__.py).
6. [Build](scripts/build-wheel.sh) and [test](tests) (simply `pytest`) around. Don't forget to re-install the newly built `tflite` package before testing it.
4. Push your change and open [Pull Request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests).
5. The maintainer will take the responsibility to upload change to PyPI when merged.
## Resources
* [PyPI page](https://pypi.org/project/tflite/).
* [GitHub page](https://github.com/zhenhuaw-me/tflite).
* [Module list](https://zhenhuaw.me/tflite/docs).
* [TensorFlow Lite converter](https://www.tensorflow.org/lite/convert).
## License
Apache License Version 2.0 as TensorFlow's.
## Disclaimer
The `schema.fbs` is obtained from TensorFlow directly. Maintainer of this package had tried to [contact](assets/disclaimer.eml) TensorFlow maintainers for licensing issues, but received no reply. Ownership or maintainship is open to transfer or close if there were any issue.
%package -n python3-tflite
Summary: Parsing TensorFlow Lite Models (*.tflite) Easily
Provides: python-tflite
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-pip
%description -n python3-tflite

This [`tflite` package](https://pypi.org/project/tflite/) parses TensorFlow Lite (TFLite) models (`*.tflite`), which are built by [TFLite converter](https://www.tensorflow.org/lite/convert). For background, please refer to [Introducing TFLite Parser Python Package](https://zhenhuaw.me/blog/2020/introducing-tflite-parser-package.html).
## Usage
Install the package and use it like what you build from the TensorFlow codebase.
It's recommended to install the version that same as the TensorFlow that generates the TFLite model.
```sh
pip install tensorflow==2.3.0
pip install tflite==2.3.0
```
The raw API of `tflite` can be found in [this documentation](https://zhenhuaw.me/tflite/docs/).
The [MobileNet test](tests/test_mobilenet.py) can serve as a usage example of parsing models.
## Enhancements
The generated python package is not friendly to use sometimes.
We have introduced several enhancements:
* **Easy import**: A single `import tflite` ([example](https://github.com/zhenhuaw-me/tflite/blob/master/tests/test_mobilenet.py)) to replace importing every classes and funtions in `tflite` ([example](tests/test_original_import.py)).
* **Builtin opcode helper**: The opcode is _encoded_ as digits which is hard to parse for human. Two APIs added to make it easy to use.
* [`tflite.opcode2name()`](https://github.com/zhenhuaw-me/tflite/blob/master/tflite/utils.py#L1): get the type name of given opcode.
* [`tflite.BUILTIN_OPCODE2NAME`](https://github.com/zhenhuaw-me/tflite/blob/master/tflite/utils.py#L9): a dict that maps the opcode to name of all the builtin operators.
## Compatibility Handling
TensorFlow sometimes leaves compability hanlding of the TFLite model to the users.
As these are API breaking change that can be easily fixed, we do this in the `tflite` package.
* [`tflite.OperatorCode.BuiltinCode()`](https://github.com/zhenhuaw-me/tflite/blob/master/tflite/OperatorCode.py#L43): maintains API compability in `2.4.0`, see [this issue](https://github.com/tensorflow/tensorflow/issues/46663).
## Contributing Updates
As the operator definition may change across different TensorFlow versions, this package needs to be updated accordingly. If you notice that the package is out of date, please feel free to contribute new versions. This is pretty simple, instructions as below.
1. [Fork the repository](https://help.github.com/en/github/getting-started-with-github/fork-a-repo), and download it.
2. Install additional depdendency via `pip install -r requirements.txt`. And install [flatbuffer compiler](https://google.github.io/flatbuffers/flatbuffers_guide_using_schema_compiler.html) (you may need to [manually build it](https://google.github.io/flatbuffers/flatbuffers_guide_building.html)).
3. Generate the code for update. Tools have been prepared, there are prompt for actions.
1. [Download](scripts/update-schema.sh) `schema.fbs` for a new version.
2. [Update](scripts/gen-op-list.py) the builtin operator mapping.
3. [Update](scripts/update-importing.py) the classes and functions import of submodules.
4. [Update](scripts/gen-doc.sh) the API document.
5. Update the versioning in [`__init__.py`](tflite/__init__.py).
6. [Build](scripts/build-wheel.sh) and [test](tests) (simply `pytest`) around. Don't forget to re-install the newly built `tflite` package before testing it.
4. Push your change and open [Pull Request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests).
5. The maintainer will take the responsibility to upload change to PyPI when merged.
## Resources
* [PyPI page](https://pypi.org/project/tflite/).
* [GitHub page](https://github.com/zhenhuaw-me/tflite).
* [Module list](https://zhenhuaw.me/tflite/docs).
* [TensorFlow Lite converter](https://www.tensorflow.org/lite/convert).
## License
Apache License Version 2.0 as TensorFlow's.
## Disclaimer
The `schema.fbs` is obtained from TensorFlow directly. Maintainer of this package had tried to [contact](assets/disclaimer.eml) TensorFlow maintainers for licensing issues, but received no reply. Ownership or maintainship is open to transfer or close if there were any issue.
%package help
Summary: Development documents and examples for tflite
Provides: python3-tflite-doc
%description help

This [`tflite` package](https://pypi.org/project/tflite/) parses TensorFlow Lite (TFLite) models (`*.tflite`), which are built by [TFLite converter](https://www.tensorflow.org/lite/convert). For background, please refer to [Introducing TFLite Parser Python Package](https://zhenhuaw.me/blog/2020/introducing-tflite-parser-package.html).
## Usage
Install the package and use it like what you build from the TensorFlow codebase.
It's recommended to install the version that same as the TensorFlow that generates the TFLite model.
```sh
pip install tensorflow==2.3.0
pip install tflite==2.3.0
```
The raw API of `tflite` can be found in [this documentation](https://zhenhuaw.me/tflite/docs/).
The [MobileNet test](tests/test_mobilenet.py) can serve as a usage example of parsing models.
## Enhancements
The generated python package is not friendly to use sometimes.
We have introduced several enhancements:
* **Easy import**: A single `import tflite` ([example](https://github.com/zhenhuaw-me/tflite/blob/master/tests/test_mobilenet.py)) to replace importing every classes and funtions in `tflite` ([example](tests/test_original_import.py)).
* **Builtin opcode helper**: The opcode is _encoded_ as digits which is hard to parse for human. Two APIs added to make it easy to use.
* [`tflite.opcode2name()`](https://github.com/zhenhuaw-me/tflite/blob/master/tflite/utils.py#L1): get the type name of given opcode.
* [`tflite.BUILTIN_OPCODE2NAME`](https://github.com/zhenhuaw-me/tflite/blob/master/tflite/utils.py#L9): a dict that maps the opcode to name of all the builtin operators.
## Compatibility Handling
TensorFlow sometimes leaves compability hanlding of the TFLite model to the users.
As these are API breaking change that can be easily fixed, we do this in the `tflite` package.
* [`tflite.OperatorCode.BuiltinCode()`](https://github.com/zhenhuaw-me/tflite/blob/master/tflite/OperatorCode.py#L43): maintains API compability in `2.4.0`, see [this issue](https://github.com/tensorflow/tensorflow/issues/46663).
## Contributing Updates
As the operator definition may change across different TensorFlow versions, this package needs to be updated accordingly. If you notice that the package is out of date, please feel free to contribute new versions. This is pretty simple, instructions as below.
1. [Fork the repository](https://help.github.com/en/github/getting-started-with-github/fork-a-repo), and download it.
2. Install additional depdendency via `pip install -r requirements.txt`. And install [flatbuffer compiler](https://google.github.io/flatbuffers/flatbuffers_guide_using_schema_compiler.html) (you may need to [manually build it](https://google.github.io/flatbuffers/flatbuffers_guide_building.html)).
3. Generate the code for update. Tools have been prepared, there are prompt for actions.
1. [Download](scripts/update-schema.sh) `schema.fbs` for a new version.
2. [Update](scripts/gen-op-list.py) the builtin operator mapping.
3. [Update](scripts/update-importing.py) the classes and functions import of submodules.
4. [Update](scripts/gen-doc.sh) the API document.
5. Update the versioning in [`__init__.py`](tflite/__init__.py).
6. [Build](scripts/build-wheel.sh) and [test](tests) (simply `pytest`) around. Don't forget to re-install the newly built `tflite` package before testing it.
4. Push your change and open [Pull Request](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests).
5. The maintainer will take the responsibility to upload change to PyPI when merged.
## Resources
* [PyPI page](https://pypi.org/project/tflite/).
* [GitHub page](https://github.com/zhenhuaw-me/tflite).
* [Module list](https://zhenhuaw.me/tflite/docs).
* [TensorFlow Lite converter](https://www.tensorflow.org/lite/convert).
## License
Apache License Version 2.0 as TensorFlow's.
## Disclaimer
The `schema.fbs` is obtained from TensorFlow directly. Maintainer of this package had tried to [contact](assets/disclaimer.eml) TensorFlow maintainers for licensing issues, but received no reply. Ownership or maintainship is open to transfer or close if there were any issue.
%prep
%autosetup -n tflite-2.10.0
%build
%py3_build
%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .
%files -n python3-tflite -f filelist.lst
%dir %{python3_sitelib}/*
%files help -f doclist.lst
%{_docdir}/*
%changelog
* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 2.10.0-1
- Package Spec generated
|