Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在Tensorflow lite中输入具有动态尺寸的图像_Python_Tensorflow_Keras_Tensorflow Lite - Fatal编程技术网

Python 在Tensorflow lite中输入具有动态尺寸的图像

Python 在Tensorflow lite中输入具有动态尺寸的图像,python,tensorflow,keras,tensorflow-lite,Python,Tensorflow,Keras,Tensorflow Lite,我有一个tensorflow模型,可以获取不同大小的输入图像: inputs = layers.Input(shape=(128,None,1), name='x_input') <tf.Tensor 'x_input:0' shape=(?, 128, ?, 1) dtype=float32> 我无法将图像缩放到固定大小。我看到的唯一解决方案是将图像填充到某个最大大小,并在图表中使用该大小,但这似乎相当浪费。有没有其他方法可以让tensorflow lite处理动态图像尺寸?这

我有一个tensorflow模型,可以获取不同大小的输入图像:

inputs = layers.Input(shape=(128,None,1), name='x_input')

<tf.Tensor 'x_input:0' shape=(?, 128, ?, 1) dtype=float32>

我无法将图像缩放到固定大小。我看到的唯一解决方案是将图像填充到某个最大大小,并在图表中使用该大小,但这似乎相当浪费。有没有其他方法可以让tensorflow lite处理动态图像尺寸?这种限制有什么理由吗?谢谢。

是的,您可以在TF Lite中使用动态张量。无法直接将形状设置为
[None,128,None,1]
的原因是,通过这种方式,将来可以轻松支持更多语言。此外,它充分利用了静态内存分配方案。这是一个智能的框架设计选择,用于低计算能力的小型设备。 以下是有关如何动态设置张量大小的步骤:

0冰冻的 似乎您正在从冻结的GraphDef转换,即
*.pb
文件。假设您的冻结模型具有输入形状
[None,128,None,1]

1.转换步骤。 在此步骤中,将输入大小设置为模型可以接受的任何有效大小。例如:

tflite\u转换\
--图形_def_file='model.pb'\
--输出文件=“model.tflite”\
--输入形状=1128,80,1#
converter = tf.lite.TFLiteConverter.from_frozen_graph(
  graph_def_file, input_arrays, output_arrays)
tflite_model = converter.convert() 

ValueError: None is only supported in the 1st dimension.
Tensor 'x_input_1' has invalid shape '[None, 128, None, 1]'.