Tensorflow TFLite:是否可以使用Keras'转换具有不同输入形状的H5模型;负荷模型?

Tensorflow TFLite:是否可以使用Keras'转换具有不同输入形状的H5模型;负荷模型?,tensorflow,keras,tensorflow2.0,tf.keras,tensorflow-lite,Tensorflow,Keras,Tensorflow2.0,Tf.keras,Tensorflow Lite,我目前使用此脚本将H5模型转换为TFLite: # CONVERTING TO TFLITE FORMAT g.save(os.path.join(save_dir, 'full_generator_{}_{}.h5'.format(epoch_number, current_loss)), include_optimizer=False) model = tf.keras.models.load_model( os.path.join(save_dir, '

我目前使用此脚本将H5模型转换为TFLite:

 # CONVERTING TO TFLITE FORMAT
    g.save(os.path.join(save_dir, 'full_generator_{}_{}.h5'.format(epoch_number, current_loss)), include_optimizer=False)

    model = tf.keras.models.load_model(
        os.path.join(save_dir, 'full_generator_{}_{}.h5'.format(epoch_number, current_loss)), custom_objects={'ReflectionPadding2D': ReflectionPadding2D})
    converter = tf.lite.TFLiteConverter.from_keras_model(model)
    tflite_model = converter.convert()

    open(os.path.join(save_dir, 'full_generator_{}_{}.tflite'.format(epoch_number, current_loss)),
         "wb").write(tflite_model)
 # /CONVERTING TO TFLITE FORMAT
我的问题是H5模型的输入形状尺寸为256x256x3。我想要的是转换后的TFLite模型具有800x800x3的输入形状尺寸

我知道冻结图TF函数是可能的


但是有没有可能使用
加载\u model

您可以使用新的输入签名将您的模型包装在tf.函数中,并从\u concrete\u函数转换

model = tf.keras.models.load_model(
    os.path.join(save_dir, 
                 'full_generator_{}_{}.h5'.format(epoch_number, current_loss)), 
    custom_objects={'ReflectionPadding2D': ReflectionPadding2D})

wrapped_model = tf.function(lambda input_data: model(input_data))
input_spec = tf.TensorSpec((800, 800, 3), model.inputs[0].dtype)
concrete_func = wrapped_model.get_concrete_function(input_spec)
converter = tf.lite.TFLiteConverter.from_concrete_functions([concrete_func])


如果您的模型不支持更改的大小,您还可以使用tf.function调整输入的大小以匹配您的模型所需的形状。

您不能更改冻结图形的输入形状,因此也不能更改TFLite文件的输入形状。