Какие параметры input_arrays и output_arrays необходимы для преобразования файла замороженной модели «.pb» в файл «.tflite»?

Мне нужно преобразовать мою модель .pb тензорного потока вместе с моим файлом .cpkt в модель tflite, чтобы она работала на мобильных устройствах. Есть ли какой-либо простой способ узнать, как я могу найти, какие параметры я должен использовать для input_arrays и output_arrays?

import tensorflow as tf

graph_def_file = "/path/to/Downloads/mobilenet_v1_1.0_224/frozen_graph.pb"
input_arrays = ["input"]
output_arrays = ["MobilenetV1/Predictions/Softmax"]

converter = tf.lite.TFLiteConverter.from_frozen_graph(
  graph_def_file, input_arrays, output_arrays)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)

person Dani    schedule 23.03.2019    source источник


Ответы (1)


Согласно официальным документам здесь:

input_arrays: Список входных тензоров для заморозки графика.

output_arrays: Список выходных тензоров для заморозки графика.

Это означает, что input_arrays — это список входных тензоров (которые в основном являются тензорами-заполнителями). output_arrays — это список Tensor объектов, которые будут выступать в качестве выходов.

В вашем случае вы предоставляете name объекта Tensor. Требуется реальный объект Tensor.

Вы можете понять это на этом примере:

x1 = tf.placeholder( dtype=tf.float32 )
x2 = tf.placeholder( dtype=tf.float32 )
y = x1 + x2

input_arrays = [ x1 , x2 ]
output_arrays = [ y ]

Вы можете научиться находить входные и выходные тензоры из здесь . Глядя на ваш код, кажется, что вы знаете имена тензоров, поэтому вы можете сослаться на это ответить.

person Shubham Panchal    schedule 24.03.2019
comment
Итак, вы имеете в виду, что вместо имен я должен предоставить сами тензоры? Большое спасибо - person Dani; 24.03.2019
comment
Да. Укажите тензоры, а не их имена. Кроме того, примите ответ, если он кажется вам полезным. - person Shubham Panchal; 24.03.2019