Python 如何将Lambda层作为输入层添加到Keras中的现有模型中?

Python 如何将Lambda层作为输入层添加到Keras中的现有模型中?,python,machine-learning,keras,keras-layer,vgg-net,Python,Machine Learning,Keras,Keras Layer,Vgg Net,我有一个任务是向Keras模型添加一个图像预处理层,所以在加载Keras模型后,我想为这个模型添加一个新的输入层 我发现我可以使用Lambda层来预处理图像数据。图层代码为: def vgg16preprocessing(x): mean_tensor = K.backend.variable([125.307, 122.95, 113.865], name="mean") std_tensor = K.backend.constant([62.9932, 62.0887, 66

我有一个任务是向Keras模型添加一个图像预处理层,所以在加载Keras模型后,我想为这个模型添加一个新的输入层

我发现我可以使用
Lambda
层来预处理图像数据。图层代码为:

def vgg16preprocessing(x):
    mean_tensor = K.backend.variable([125.307, 122.95, 113.865], name="mean")
    std_tensor = K.backend.constant([62.9932, 62.0887, 66.7048], name="std_tensor")
    result = (x - mean_tensor) / (std_tensor)
    return K.backend.reshape(result, (-1, 32, 32, 3))
preproc_layer = K.layers.Lambda(vgg16preprocessing, output_shape=(32, 32, 3), input_shape=(32, 32, 3))
但是我不知道如何在我的模型前面添加这个层。我找到了,但无法在
keras.layers.Input()
中添加层


有没有办法将
Lambda
层设置为新的输入层?

您可以使用VGG16模型并将其应用于
Lambda
层的输出:

vgg = VGG16(...)

input_img = Input(shape=...)
preproc_img = Lambda(vgg16preprocessing)(input_img)
output = vgg(preproc_img)

model = Model(input_img, output)