如何将默认张量设置为Keras模型输入



我有一个Keras模型,它有多个图像作为输入,但经过训练后,我想将一些图像设置为默认输入,只让一个占位符/输入作为Query图像。

我试着使用layers.Input(tensor=my_default_tensor),但它似乎不是我所需要的,模型似乎仍然需要在推理时给出这个输入。我希望它对用户隐藏,所以他只需要传递查询图像作为输入。

您尝试过tf.keras.layers.Input(tensor=tftensor, shape=())?

我发现这很容易,这就是为什么我在谷歌上搜索时找不到答案的原因哈哈哈

它只需要包装我的";默认输入图像";作为tf.constant(input_image),所以我现在可以将它们用作正常的Keras输入,但不需要将其作为Model输入传递。

用法示例:

from tensorflow.keras import layers
from tensorflow.keras import Model

image_1 = cv2.imread("image/path/1.jpg")
image_2 = cv2.imread("image/path/2.jpg")
normal_input = layers.Input((256, 256, 3))
default_input_1 = tf.constant(image_1)
default_input_2 = tf.constant(image_2)
x_1 = embeddingModule(default_input_1)
x_2 = embeddingModule(default_input_2)
x_3 = embeddingModule(normal_input)
concat_x1_x3 = layers.Concatenate()([x_1, x_3])
concat_x2_x3 = layers.Concatenate()([x_2, x_3])
relation_1 = relationModule(concat_x1_x3)
relation_2 = relationModule(concat_x2_x3)    
model = Model(inputs=[normal_input], outputs=[relation_1, relation_2])

这里,embeddingModulerelationModule是两个预先训练的Keras模型。

最新更新