Skip to content

Commit ed373e9

Browse files
fergushendersoncopybara-github
authored andcommitted
Document that we use separate semantic version numbers for TF Lite, and for the
TF Lite Extension APIs (custom ops + delegates), than for TensorFlow itself. PiperOrigin-RevId: 565723934
1 parent e47ed5d commit ed373e9

File tree

1 file changed

+75
-17
lines changed

1 file changed

+75
-17
lines changed

site/en/guide/versions.md

Lines changed: 75 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,41 @@ patch versions. The public APIs consist of
6161

6262
* [tensorflow/c/c_api.h](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/c/c_api.h))
6363

64+
* The following protocol buffer files:
65+
66+
* [`attr_value`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/attr_value.proto)
67+
* [`config`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/protobuf/config.proto)
68+
* [`event`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/util/event.proto)
69+
* [`graph`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/graph.proto)
70+
* [`op_def`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/op_def.proto)
71+
* [`reader_base`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/reader_base.proto)
72+
* [`summary`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/summary.proto)
73+
* [`tensor`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/tensor.proto)
74+
* [`tensor_shape`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/tensor_shape.proto)
75+
* [`types`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/types.proto)
76+
77+
<a name="lite"></a>
78+
79+
## Separate version number for TensorFlow Lite
80+
81+
Currently TensorFlow Lite is distributed as a part of TensorFlow. However, we
82+
reserve the right to in future release changes to the TensorFlow Lite APIs on a
83+
different schedule than for the other TensorFlow APIs, or even to move
84+
TensorFlow Lite into a separate source distribution and/or a separate source
85+
repository than TensorFlow.
86+
87+
Because of this, we use a different version number for TensorFlow Lite
88+
(`TFLITE_VERSION_STRING` in `tensorflow/lite/version.h`, and `TfLiteVersion()`
89+
in `tensorflow/lite/c/c_api.h`) than for TensorFlow (`TF_VERSION_STRING` in
90+
`tensorflow/core/public/version.h`, and `TF_Version()` in
91+
`tensorflow/c/c_api.h`). Currently, these two version numbers happen to have the
92+
same value. But in future, they may diverge; for example, we may increment the
93+
major version number for TensorFlow Lite without incrementing the major version
94+
number for TensorFlow, or vice versa.
95+
96+
The API surface that is covered by the TensorFlow Lite version number is
97+
comprised of the following public APIs:
98+
6499
* The TensorFlow Lite C API:
65100

66101
* [tensorflow/lite/c/c_api.h](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/c/c_api.h)
@@ -108,20 +143,43 @@ patch versions. The public APIs consist of
108143
* TensorFlowLite.swift
109144
* Tensor.swift
110145

111-
* The following protocol buffer files:
146+
Experimental symbols are not covered; see [below](#not_covered) for details.
112147

113-
* [`attr_value`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/attr_value.proto)
114-
* [`config`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/protobuf/config.proto)
115-
* [`event`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/util/event.proto)
116-
* [`graph`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/graph.proto)
117-
* [`op_def`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/op_def.proto)
118-
* [`reader_base`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/reader_base.proto)
119-
* [`summary`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/summary.proto)
120-
* [`tensor`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/tensor.proto)
121-
* [`tensor_shape`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/tensor_shape.proto)
122-
* [`types`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/types.proto)
148+
## Separate version number for TensorFlow Lite Extension APIs
149+
150+
TensorFlow Lite provides C APIs for extending the TensorFlow Lite interpreter
151+
with "custom ops", which provide user-defined operations in a graph, or
152+
"delegates", which allow delegating the computation for a graph (or for a subset
153+
of a graph) to a custom backend. These APIs, which we collectively call the
154+
"TensorFlow Lite Extension APIs", require more intimate dependencies on some of
155+
the details of the TensorFlow Lite implementation.
156+
157+
We reserve the right to in future release changes to these APIs, potentially
158+
including non-backwards-compatible changes, on a different schedule than for the
159+
other TensorFlow Lite APIs. So we use a different version number for the
160+
TensorFlow Lite Extension APIs than the version numbers for TensorFlow Lite or
161+
TensorFlow (which were described in the previous section). The version number
162+
for the TensorFlow Lite Extension APIs is currently the same as the version
163+
number for TensorFlow and TensorFlow Lite. But in future, they may diverge; for
164+
example, we may increment the major version number for the TensorFlow Lite
165+
Extension APIs without incrementing the major version number for TensorFlow
166+
Lite, or vice versa.
167+
168+
The API surface that is covered by the TensorFlow Lite Extension APIs version
169+
number is comprised of the following public APIs:
170+
171+
```
172+
* [tensorflow/lite/c/c_api_opaque.h](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/c/c_api_opaque.h)
173+
* [tensorflow/lite/c/common.h](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/c/common.h)
174+
* [tensorflow/lite/c/builtin_op_data.h](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/c/builtin_op_data.h)
175+
* [tensorflow/lite/builtin_ops.h](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/builtin_ops.h)
176+
```
177+
178+
Again, experimental symbols are not covered; see [below](#not_covered) for
179+
details.
180+
181+
<e name="not_covered"></a>
123182

124-
<a name="not_covered"></a>
125183
## What is *not* covered
126184

127185
Some parts of TensorFlow can change in backward incompatible ways at any point.
@@ -132,11 +190,11 @@ These include:
132190
particular, the following are not covered by any compatibility guarantees:
133191

134192
- any symbol in the `tf.contrib` module or its submodules;
135-
- any symbol (module, function, argument, property, class, or constant)
136-
whose name contains `experimental` or `Experimental`; or
137-
- any symbol whose fully qualified name includes a module or class which
138-
is itself experimental. This includes fields and submessages of any
139-
protocol buffer called `experimental`.
193+
- any symbol (module, function, argument, property, class, constant, type,
194+
package, etc.) whose name contains `experimental` or `Experimental`; or
195+
- any symbol whose fully qualified name includes a module or class or
196+
package which is itself experimental. This includes fields and
197+
submessages of any protocol buffer called `experimental`.
140198

141199
* **Other languages**: TensorFlow APIs in languages other than Python and C,
142200
such as:

0 commit comments

Comments
 (0)