STT-tensorflow/tensorflow/lite/g3doc/guide/python.md
Scott Main 92671a470b Update tflite runtime with bug fix
PiperOrigin-RevId: 294484091
Change-Id: I73e7cd56dc2ea1a0ebcae96c9357a42eb8d76c34
2020-02-11 11:39:57 -08:00

6.2 KiB

Python quickstart

Using TensorFlow Lite with Python is great for embedded devices based on Linux, such as Raspberry Pi{:.external} and Coral devices with Edge TPU{:.external}, among many others.

This page shows how you can start running TensorFlow Lite models with Python in just a few minutes. All you need is a TensorFlow model converted to TensorFlow Lite. (If you don't have a model converted yet, you can experiment using the model provided with the example linked below.)

Install just the TensorFlow Lite interpreter

To quickly run TensorFlow Lite models with Python, you can install just the TensorFlow Lite interpreter, instead of all TensorFlow packages.

This interpreter-only package is a fraction the size of the full TensorFlow package and includes the bare minimum code required to run inferences with TensorFlow Lite—it includes only the tf.lite.Interpreter Python class. This small package is ideal when all you want to do is execute .tflite models and avoid wasting disk space with the large TensorFlow library.

Note: If you need access to other Python APIs, such as the TensorFlow Lite Converter, you must install the full TensorFlow package.

To install, run pip3 install and pass it the appropriate Python wheel URL from the following table.

For example, if you have Raspberry Pi that's running Raspbian Buster (which has Python 3.7), install the Python wheel as follows:

pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-linux_armv7l.whl
PlatformPythonURL
Linux (ARM 32) 3.5 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp35-cp35m-linux_armv7l.whl
3.6 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp36-cp36m-linux_armv7l.whl
3.7 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-linux_armv7l.whl
Linux (ARM 64) 3.5 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp35-cp35m-linux_aarch64.whl
3.6 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp36-cp36m-linux_aarch64.whl
3.7 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-linux_aarch64.whl
Linux (x86-64) 3.5 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp35-cp35m-linux_x86_64.whl
3.6 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp36-cp36m-linux_x86_64.whl
3.7 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-linux_x86_64.whl
macOS 10.14 3.5 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp35-cp35m-macosx_10_14_x86_64.whl
3.6 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp36-cp36m-macosx_10_14_x86_64.whl
3.7 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-macosx_10_14_x86_64.whl
Windows 10 3.5 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp35-cp35m-win_amd64.whl
3.6 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp36-cp36m-win_amd64.whl
3.7 https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp37-cp37m-win_amd64.whl

Run an inference using tflite_runtime

To distinguish this interpreter-only package from the full TensorFlow package (allowing both to be installed, if you choose), the Python module provided in the above wheel is named tflite_runtime.

So instead of importing Interpreter from the tensorflow module, you need to import it from tflite_runtime.

For example, after you install the package above, copy and run the label_image.py file. It will (probably) fail because you don't have the tensorflow library installed. To fix it, edit this line of the file:

import tensorflow as tf

So it instead reads:

import tflite_runtime.interpreter as tflite

And then change this line:

interpreter = tf.lite.Interpreter(model_path=args.model_file)

So it reads:

interpreter = tflite.Interpreter(model_path=args.model_file)

Now run label_image.py again. That's it! You're now executing TensorFlow Lite models.

Learn more

For more details about the Interpreter API, read Load and run a model in Python.

If you have a Raspberry Pi, try the classify_picamera.py example to perform image classification with the Pi Camera and TensorFlow Lite.

If you're using a Coral ML accelerator, check out the Coral examples on GitHub.

To convert other TensorFlow models to TensorFlow Lite, read about the the TensorFlow Lite Converter.