无法在Jetson Nano上使用Python在GPU上运行tflite模型

28

我有一个量化后的tflite模型,希望在Nvidia Jetson Nano上进行推理基准测试。我使用tf.lite.Interpreter()方法进行推理。由于CPU和GPU的推理时间相同,该过程似乎没有在GPU上运行。

有没有办法在Python中使用GPU运行tflite模型?

我尝试通过设置tf.device()方法来强制使用GPU,但仍然无效。官方文档中提到了委托(delegates)以加速GPU计算,但我似乎找不到任何与Python相关的信息。

with tf.device('/device:GPU:0'):

    interpreter = tf.lite.Interpreter(model_path="model.tflite")

    interpreter.allocate_tensors()

    input_details = interpreter.get_input_details()
    output_details = interpreter.get_output_details()

    input_shape = input_details[0]['shape']
    input_data = np.array(np.random.random_sample(input_shape), dtype=np.uint8)
    interpreter.set_tensor(input_details[0]['index'], input_data)

    start_time = time.time()

    interpreter.invoke()

    elapsed_time = time.time() - start_time
    print(elapsed_time)

    output_data = interpreter.get_tensor(output_details[0]['index'])
4个回答

3

根据此链接,TFLite不支持Nvidia GPU。


1
一些更详细的解释会更好。 - Shabari nath k
1
TFLite 推理库目前不支持 Nvidia GPU。因此,您无法在 Nvidia Jetson 上直接运行 tflite 模型。需要将其转换为 tensorflow 或 tensorRT 模型才能在 Jetson 上执行。 - user13337627

1

1

根据最近的this帖子,它似乎可用于Jetson Nano。但它看起来是一种定制版本,请尝试使用它代替TensorFlow Lite。

如果您已经安装了它,可以向Nvidia开发人员询问该版本是否支持GPU。

或者您可以按照以下方式安装Nvidia定制版TensorFlow。

Python 3.6+JetPack4.4

sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
sudo apt-get install python3-pip
sudo pip3 install -U pip
sudo pip3 install -U pip testresources setuptools numpy==1.16.1 future==0.17.1 mock==3.0.5 h5py==2.9.0 keras_preprocessing==1.0.5 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11
# TF-2.x
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow==2.2.0+nv20.8
# TF-1.15
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 ‘tensorflow<2’

Python 3.6+JetPack4.3

$ sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev
$ sudo apt-get install python3-pip
$ sudo pip3 install -U pip
$ sudo pip3 install -U numpy grpcio absl-py py-cpuinfo psutil portpicker six mock requests gast h5py astor termcolor protobuf keras-applications keras-preprocessing wrapt google-pasta
# TF-2.x
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v43 tensorflow==2.1.0+nv20.3
# TF-1.15
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v43 tensorflow==1.15.2+nv20.3

0

这是因为您某种方式正在使用tf的完整解释器。 请参见此处

interpreter = tf.lite.Interpreter(model_path="model.tflite").

你可以做的是安装。
python3 -m pip install tflite-runtime

并使用

import tflite_runtime.interpreter as tflite
interpreter = tflite.Interpreter(model_path=args.model_file)

你应该能够正常运行。

希望对你有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接