[Python] I am getting error like "Input 1 of layer "model_5" is incompatible with the layer:...

Discussão em 'Python' iniciado por Stack, Abril 13, 2025.

  1. Stack

    Stack Membro Participativo

    I am trying to fuse features of two image inputs of shape (299, 299, 3), (224, 224, 3) and am getting shape errors.

    Here is my code


    from tensorFlow.keras.applications.inception_v3 import InceptionV3
    from tensorflow.keras.applications.vgg16 import VGG16
    import tensorflow as tf
    from tensorflow.keras import layers, Input

    inp_pre_trained_model = InceptionV3( include_top=False)
    inp_pre_trained_model.trainable=False
    inp_input=tf.keras.Input(shape=(299,299,3),name="input_layer_inception_V3")
    inp_x=inp_pre_trained_model (inp_input)
    inp_x=layers.GlobalAveragePooling2D(name="global_average_pooling_layer_inception_v3")(inp_x)
    vgg_pre_trained_model = VGG16( include_top=False)
    vgg_pre_trained_model.trainable=False
    vgg_input=tf.keras.Input(shape=(224,224,3),name="input_layer_VGG_16")

    vgg_x=vgg_pre_trained_model(vgg_input)
    vgg_x=layers.GlobalAveragePooling2D(name="global_average_pooling_layer_vgg_16")(vgg_x)
    x=tf.keras.layers.concatenate([inp_x,vgg_x],axis=-1)
    x = tf.keras.layers.Flatten()(x)
    outputs=tf.keras.layers.Dense(5,activation="softmax", name= "output_layer") (x)
    model=tf.keras.Model(inputs=[inp_input,vgg_input],outputs=outputs)


    model.summary()


    My model summary


    Model: "model_9"
    __________________________________________________________________________________________________
    Layer (type) Output Shape Param # Connected to
    ==================================================================================================
    input_layer_inception_V3 (Inpu [(None, 224, 224, 3 0 []
    tLayer) )]

    input_layer_VGG_16 (InputLayer [(None, 299, 299, 3 0 []
    ) )]

    inception_v3 (Functional) (None, None, None, 21802784 ['input_layer_inception_V3[0][0]'
    2048) ]

    vgg16 (Functional) (None, None, None, 14714688 ['input_layer_VGG_16[0][0]']
    512)

    global_average_pooling_incepti (None, 2048) 0 ['inception_v3[0][0]']
    on (GlobalAveragePooling2D)

    global_average_pooling_vgg (Gl (None, 512) 0 ['vgg16[0][0]']
    obalAveragePooling2D)

    concatenate_71 (Concatenate) (None, 2560) 0 ['global_average_pooling_inceptio
    n[0][0]',
    'global_average_pooling_vgg[0][0
    ]']

    output_layer (Dense) (None, 5) 12805 ['concatenate_71[0][0]']

    ==================================================================================================
    Total params: 36,530,277
    Trainable params: 12,805
    Non-trainable params: 36,517,472


    compiler

    model.compile(loss="sparse_categorical_crossentropy",optimizer=tf.keras.optimizers.Adam(learning_rate=0.001),metrics=["accuracy"])

    train = tf.data.Dataset.zip((cache_train_data, ceced_train_data))
    test = tf.data.Dataset.zip((cache_test_data, ceced_test_data))
    train_dataset = train.prefetch(tf.data.AUTOTUNE)
    test_dataset = test.prefetch(tf.data.AUTOTUNE)

    train_dataset, test_dataset


    --->(<PrefetchDataset element_spec=((TensorSpec(shape=(None, 224, 224, 3), dtype=tf.float32, name=None), TensorSpec(shape=(None, 5), dtype=tf.float32, name=None)), (TensorSpec(shape=(None, 224, 224, 3), dtype=tf.float32, name=None), TensorSpec(shape=(None, 5), dtype=tf.float32, name=None)))>,
    <PrefetchDataset element_spec=((TensorSpec(shape=(None, 224, 224, 3), dtype=tf.float32, name=None), TensorSpec(shape=(None, 5), dtype=tf.float32, name=None)), (TensorSpec(shape=(None, 224, 224, 3), dtype=tf.float32, name=None), TensorSpec(shape=(None, 5), dtype=tf.float32, name=None)))>)

    fit the model

    model_history = model.fit(train_dataset,
    steps_per_epoch=len(train_dataset),
    epochs=3,
    validation_data=test_dataset,
    validation_steps=len(test_dataset))



    error ValueError: in user code:

    File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1051, in train_function *
    return step_function(self, iterator)
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1040, in step_function **
    outputs = model.distribute_strategy.run(run_step, args=(data,))
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 1030, in run_step **
    outputs = model.train_step(data)
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/training.py", line 889, in train_step
    y_pred = self(x, training=True)
    File "/usr/local/lib/python3.7/dist-packages/keras/utils/traceback_utils.py", line 67, in error_handler
    raise e.with_traceback(filtered_tb) from None
    File "/usr/local/lib/python3.7/dist-packages/keras/engine/input_spec.py", line 264, in assert_input_compatibility
    raise ValueError(f'Input {input_index} of layer "{layer_name}" is '

    ValueError: Input 1 of layer "model_9" is incompatible with the layer: expected shape=(None, 299, 299, 3), found shape=(None, 5)

    Continue reading...

Compartilhe esta Página