Глядя на преобразование моей модели TensorFlow в формат Flatbuf (.tflite
).
Однако моя модель позволяет вводить произвольный размер, то есть вы можете классифицировать один элемент или N элементов одновременно.Когда я пытаюсь выполнить преобразование, он выдает ошибку, поскольку одно из моих устройств ввода / вывода имеет тип NoneType
.
Подумайте о чем-то вроде учебника TensorFlow MNIST , где в вычисленииграфик, наш ввод x
имеет форму [None, 784]
.
Из руководства разработчика tflite вы можете преобразовать свою модель в FlatBuf следующим образом:
import tensorflow as tf
img = tf.placeholder(name="img", dtype=tf.float32, shape=(1, 64, 64, 3))
val = img + tf.constant([1., 2., 3.]) + tf.constant([1., 4., 4.])
out = tf.identity(val, name="out")
with tf.Session() as sess:
tflite_model = tf.contrib.lite.toco_convert(sess.graph_def, [img], [out])
open("converteds_model.tflite", "wb").write(tflite_model)
Однако это не работает для меня.MWE может быть:
import tensorflow as tf
img = tf.placeholder(name="inputs", dtype=tf.float32, shape=(None, 784))
out = tf.identity(inputs, name="out")
with tf.Session() as sess:
tflite_model = tf.contrib.lite.toco_convert(sess.graph_def, [img], [out])
open("converteds_model.tflite", "wb").write(tflite_model)
Ошибка: TypeError: __int__ returned non-int (type NoneType)
Глядя на tf.contrib.lite.toco_convert документы, у нас есть "input_tensors: Списоквходные тензоры. Тип и форма вычисляются с использованием foo.get_shape () и foo.dtype. ".Так что вот где, скорее всего, наш провал.Но я не уверен, есть ли аргумент, который я должен использовать, или что-то, что позволило бы мне экспортировать такую модель