web-dev-qa-db-fra.com

Appelé sur un tenseur avec une forme incompatible

J'essaie de créer un modèle de régression CNN + ici via le code ci-dessous:

# Create the base model from the pre-trained model MobileNet V2
cnn_model = keras.applications.MobileNetV2(input_shape=IMG_SHAPE,
                                            include_top=False,
                                            weights='imagenet')

# The Regression Model
regression_model = keras.Sequential([
                        keras.layers.Dense(64, activation='relu', 
                                            input_shape=cnn_model.output_shape),
                        keras.layers.Dense(64, activation='relu')
                    ])

prediction_layer = tf.keras.layers.Dense(1)

# Final Model
model = keras.Sequential([
            cnn_model,
            regression_model,
            prediction_layer
        ])

Maintenant, le problème est que je reçois l'avertissement ci-dessous:

AVERTISSEMENT: TENSORFLOW: Le modèle a été construit avec tenseur de forme ("dense_12_input: 0", forme = (none, nul, 7, 7, 1280), DTYPE = flottant32) pour entrée (aucune, aucune, 7, 7, 1280), mais Il a été appelé sur un tenseur avec une forme incompatible (aucun, 7, 7, 1280).

Est-ce que quelqu'un sait pourquoi cet avertissement apparaît et comment je peux le combattre, à moins que ce ne soit inoffensif.

3
Sharan Duggirala

Il semble que l'ajout d'un aplatissé après que le CNN a résolu mon problème. Puisque nous voulons passer un vecteur aplati sur la couche entièrement connectée. Le modèle devrait ressembler à:

model = keras.Sequential([
            cnn_model, keras.layers.Flatten(),
            regression_model,
            prediction_layer
        ])
3
Sharan Duggirala