Невозможно запустить модель tflite на графическом процессоре (Jetson Nano) с использованием Python

У меня есть квантованная модель tflite, которую я хотел бы протестировать для вывода на Nvidia Jetson Nano. Для вывода я использую метод tf.lite.Interpreter (). Похоже, что процесс не выполняется на графическом процессоре, поскольку время вывода на CPU и GPU одинаково.

Есть ли способ запустить модель tflite на графическом процессоре с помощью Python?

Я попытался принудительно использовать графический процессор, установив метод tf.device (), но все равно не работает. В официальной документации есть что-то, называемое делегатами для ускорения графического процессора, но я не могу ничего найти для 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'])

person nithinsubbiah    schedule 23.07.2019    source источник


Ответы (3)


TFLite не поддерживает графические процессоры Nvidia согласно этой ссылке.

person Community    schedule 08.03.2021
comment
еще несколько объяснений было бы лучше - person Shabari nath k; 08.03.2021
comment
Библиотека вывода TFLite в настоящее время не поддерживает графические процессоры Nvidia. Таким образом, вы не можете запустить tflite-модель как таковую на Nvidia Jetson. Необходимо преобразовать его в модель tensorflow или tensorRT для выполнения на Jetson. - person ; 09.03.2021

Похоже, что он доступен на jetson nano в соответствии с этим недавняя беседа. Но это похоже на кастомную сборку, попробуйте вместо tensorflow lite.

Если вы уже установили его, возможно, попросите разработчика nvidia, если версия должна поддерживать графический процессор.

Или вы можете установить пользовательский тензорный поток nvidia таким образом.

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
person NadTraps    schedule 02.10.2020

Поддерживает ли ваш Jetson Nano OpenCL? Если это так, вы можете использовать делегат OpenCL с TFLite. https://www.tensorflow.org/lite/guide/build_cmake#opencl_gpu_delegate

person Terry Heo    schedule 03.03.2021